Check calendar permission in CalendarRepositoryImpl::getUpcomingEvents

This commit is contained in:
MM20 2022-01-15 22:32:32 +01:00
parent ff0aafa41a
commit 8ce84cfe22
No known key found for this signature in database
GPG Key ID: 0B61A8F2DEAFA389

View File

@ -156,23 +156,30 @@ class CalendarRepositoryImpl(
} }
override fun getUpcomingEvents(): Flow<List<CalendarEvent>> = channelFlow { override fun getUpcomingEvents(): Flow<List<CalendarEvent>> = channelFlow {
dataStore.data.map { it.calendarWidget }.collectLatest { settings -> val hasPermission = permissionsManager.hasPermission(PermissionGroup.Calendar)
hiddenItems.collectLatest { hidden -> hasPermission.collectLatest {
val now = System.currentTimeMillis() if (it) {
val end = now + 14 * 24 * 60 * 60 * 1000L dataStore.data.map { it.calendarWidget }.collectLatest { settings ->
val events = withContext(Dispatchers.IO) { hiddenItems.collectLatest { hidden ->
queryCalendarEvents( val now = System.currentTimeMillis()
query = "", val end = now + 14 * 24 * 60 * 60 * 1000L
intervalStart = now, val events = withContext(Dispatchers.IO) {
intervalEnd = end, queryCalendarEvents(
limit = 700, query = "",
excludeAllDayEvents = settings.hideAlldayEvents, intervalStart = now,
excludeCalendars = settings.excludeCalendarsList intervalEnd = end,
).filter { limit = 700,
!hiddenItems.value.contains(it.key) excludeAllDayEvents = settings.hideAlldayEvents,
excludeCalendars = settings.excludeCalendarsList
).filter {
!hiddenItems.value.contains(it.key)
}
}
send(events)
} }
} }
send(events) } else {
send(emptyList())
} }
} }
} }