Always show the next event in the calendar widget
This commit is contained in:
parent
eecc676c4b
commit
0165ac5dc8
@ -275,6 +275,8 @@
|
|||||||
<string name="date_tomorrow">Tomorrow</string>
|
<string name="date_tomorrow">Tomorrow</string>
|
||||||
<!-- Headline used in calendar widget for pinned events -->
|
<!-- Headline used in calendar widget for pinned events -->
|
||||||
<string name="calendar_widget_pinned_events">Upcoming</string>
|
<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_no_events">No events today</string>
|
||||||
<string name="calendar_widget_open_app">Open calendar app</string>
|
<string name="calendar_widget_open_app">Open calendar app</string>
|
||||||
<string name="calendar_widget_new_event">New event</string>
|
<string name="calendar_widget_new_event">New event</string>
|
||||||
|
|||||||
@ -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())
|
val pinnedEvents by viewModel.pinnedCalendarEvents.observeAsState(emptyList())
|
||||||
if (pinnedEvents.size > 0) {
|
if (pinnedEvents.size > 0) {
|
||||||
Text(
|
Text(
|
||||||
|
|||||||
@ -31,6 +31,7 @@ class CalendarWidgetVM : ViewModel(), KoinComponent {
|
|||||||
val calendarEvents = MutableLiveData<List<CalendarEvent>>(emptyList())
|
val calendarEvents = MutableLiveData<List<CalendarEvent>>(emptyList())
|
||||||
val pinnedCalendarEvents =
|
val pinnedCalendarEvents =
|
||||||
favoritesRepository.getPinnedCalendarEvents().asLiveData(viewModelScope.coroutineContext)
|
favoritesRepository.getPinnedCalendarEvents().asLiveData(viewModelScope.coroutineContext)
|
||||||
|
val nextEvents = MutableLiveData<List<CalendarEvent>>(emptyList())
|
||||||
var availableDates = listOf(LocalDate.now())
|
var availableDates = listOf(LocalDate.now())
|
||||||
|
|
||||||
private val permissionsManager: PermissionsManager by inject()
|
private val permissionsManager: PermissionsManager by inject()
|
||||||
@ -133,6 +134,12 @@ class CalendarWidgetVM : ViewModel(), KoinComponent {
|
|||||||
}
|
}
|
||||||
|
|
||||||
calendarEvents.postValue(events)
|
calendarEvents.postValue(events)
|
||||||
|
val e = this.upcomingEvents
|
||||||
|
if (events.isEmpty() && e.isNotEmpty()) {
|
||||||
|
nextEvents.postValue(listOf(e[0]))
|
||||||
|
} else {
|
||||||
|
nextEvents.postValue(emptyList())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
suspend fun onActive() {
|
suspend fun onActive() {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user