the great warrior
05/09/2023, 5:48 PM@AndroidEntryPoint
class RescheduleAlarmJobService : JobService() {
@Inject lateinit var alarmRepository: AlarmRepository
@Inject lateinit var scheduleAlarmManager: ScheduleAlarmManager
val jobServiceScope = CoroutineScope(SupervisorJob())
override fun onStartJob(p0: JobParameters?): Boolean {
jobServiceScope.launch {
alarmRepository.alarmsList.onCompletion {
jobFinished(p0, false)
jobServiceScope.cancel()
}.buffer().collect { alarmList ->
for (alarm in alarmList) {
if (alarm.isScheduled) {
scheduleAlarmManager.schedule(alarm)
}
}
}
}
return true
}
override fun onStopJob(p0: JobParameters?): Boolean {
jobServiceScope.cancel()
return false
}
}
gildor
05/13/2023, 2:48 PMval scheduledAlarms = flow.map { alarmList ->
alarmList.filter { alarm -> alarm.isScheduled() }
}.first()
scheduledAlarms.forEach { schedule(it) }
the great warrior
05/17/2023, 2:27 PMgildor
05/17/2023, 3:29 PMthe great warrior
05/18/2023, 7:47 PM