From 8ce84cfe22a24c45e3072dbd3548d29856e9f8bc Mon Sep 17 00:00:00 2001 From: MM20 <15646950+MM2-0@users.noreply.github.com> Date: Sat, 15 Jan 2022 22:32:32 +0100 Subject: [PATCH] Check calendar permission in CalendarRepositoryImpl::getUpcomingEvents --- .../launcher2/calendar/CalendarRepository.kt | 37 +++++++++++-------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/calendar/src/main/java/de/mm20/launcher2/calendar/CalendarRepository.kt b/calendar/src/main/java/de/mm20/launcher2/calendar/CalendarRepository.kt index 2d994dd7..b51a2e3b 100644 --- a/calendar/src/main/java/de/mm20/launcher2/calendar/CalendarRepository.kt +++ b/calendar/src/main/java/de/mm20/launcher2/calendar/CalendarRepository.kt @@ -156,23 +156,30 @@ class CalendarRepositoryImpl( } override fun getUpcomingEvents(): Flow> = channelFlow { - dataStore.data.map { it.calendarWidget }.collectLatest { settings -> - hiddenItems.collectLatest { hidden -> - val now = System.currentTimeMillis() - val end = now + 14 * 24 * 60 * 60 * 1000L - val events = withContext(Dispatchers.IO) { - queryCalendarEvents( - query = "", - intervalStart = now, - intervalEnd = end, - limit = 700, - excludeAllDayEvents = settings.hideAlldayEvents, - excludeCalendars = settings.excludeCalendarsList - ).filter { - !hiddenItems.value.contains(it.key) + val hasPermission = permissionsManager.hasPermission(PermissionGroup.Calendar) + hasPermission.collectLatest { + if (it) { + dataStore.data.map { it.calendarWidget }.collectLatest { settings -> + hiddenItems.collectLatest { hidden -> + val now = System.currentTimeMillis() + val end = now + 14 * 24 * 60 * 60 * 1000L + val events = withContext(Dispatchers.IO) { + queryCalendarEvents( + query = "", + intervalStart = now, + intervalEnd = end, + limit = 700, + excludeAllDayEvents = settings.hideAlldayEvents, + excludeCalendars = settings.excludeCalendarsList + ).filter { + !hiddenItems.value.contains(it.key) + } + } + send(events) } } - send(events) + } else { + send(emptyList()) } } }