Always show the next event in the calendar widget

This commit is contained in:
MM20 2022-05-24 20:11:37 +02:00
parent eecc676c4b
commit 0165ac5dc8
No known key found for this signature in database
GPG Key ID: 0B61A8F2DEAFA389
3 changed files with 22 additions and 0 deletions

View File

@ -275,6 +275,8 @@
<string name="date_tomorrow">Tomorrow</string>
<!-- Headline used in calendar widget for pinned events -->
<string name="calendar_widget_pinned_events">Upcoming</string>
<!-- Headline used in calendar widget for the next event, if there is no event today -->
<string name="calendar_widget_next_events">Next event</string>
<string name="calendar_widget_no_events">No events today</string>
<string name="calendar_widget_open_app">Open calendar app</string>
<string name="calendar_widget_new_event">New event</string>

View File

@ -131,6 +131,19 @@ fun CalendarWidget() {
}
)
}
val nextEvents by viewModel.nextEvents.observeAsState(emptyList())
if (nextEvents.isNotEmpty()) {
Text(
stringResource(R.string.calendar_widget_next_events),
modifier = Modifier.padding(start = 4.dp, end = 4.dp, top = 8.dp, bottom = 4.dp),
style = MaterialTheme.typography.titleMedium
)
SearchResultList(
nextEvents,
modifier = Modifier
.fillMaxWidth()
)
}
val pinnedEvents by viewModel.pinnedCalendarEvents.observeAsState(emptyList())
if (pinnedEvents.size > 0) {
Text(

View File

@ -31,6 +31,7 @@ class CalendarWidgetVM : ViewModel(), KoinComponent {
val calendarEvents = MutableLiveData<List<CalendarEvent>>(emptyList())
val pinnedCalendarEvents =
favoritesRepository.getPinnedCalendarEvents().asLiveData(viewModelScope.coroutineContext)
val nextEvents = MutableLiveData<List<CalendarEvent>>(emptyList())
var availableDates = listOf(LocalDate.now())
private val permissionsManager: PermissionsManager by inject()
@ -133,6 +134,12 @@ class CalendarWidgetVM : ViewModel(), KoinComponent {
}
calendarEvents.postValue(events)
val e = this.upcomingEvents
if (events.isEmpty() && e.isNotEmpty()) {
nextEvents.postValue(listOf(e[0]))
} else {
nextEvents.postValue(emptyList())
}
}
suspend fun onActive() {