File tree Expand file tree Collapse file tree 1 file changed +13
-7
lines changed
core/alarm/src/main/java/com/yapp/alarm/receivers Expand file tree Collapse file tree 1 file changed +13
-7
lines changed Original file line number Diff line number Diff line change @@ -8,6 +8,7 @@ import com.yapp.domain.usecase.AlarmUseCase
88import dagger.hilt.android.AndroidEntryPoint
99import kotlinx.coroutines.CoroutineScope
1010import kotlinx.coroutines.Dispatchers
11+ import kotlinx.coroutines.SupervisorJob
1112import kotlinx.coroutines.flow.first
1213import kotlinx.coroutines.launch
1314import javax.inject.Inject
@@ -26,16 +27,21 @@ class RescheduleAlarmReceiver : BroadcastReceiver() {
2627 intent ? : return
2728
2829 if (intent.action == Intent .ACTION_BOOT_COMPLETED ) {
29- rescheduleAlarm()
30+ val pending = goAsync()
31+ rescheduleAlarm(pending)
3032 }
3133 }
3234
33- private fun rescheduleAlarm () {
34- CoroutineScope (Dispatchers .IO ).launch {
35- val alarms = alarmUseCase.getAllAlarms().first()
36- alarms
37- .filter { it.isAlarmActive }
38- .forEach { alarm -> androidAlarmScheduler.scheduleAlarm(alarm) }
35+ private fun rescheduleAlarm (pendingResult : PendingResult ) {
36+ CoroutineScope (Dispatchers .IO + SupervisorJob ()).launch {
37+ try {
38+ val alarms = alarmUseCase.getAllAlarms().first()
39+ alarms
40+ .filter { it.isAlarmActive }
41+ .forEach { alarm -> androidAlarmScheduler.scheduleAlarm(alarm) }
42+ } finally {
43+ pendingResult.finish()
44+ }
3945 }
4046 }
4147}
You can’t perform that action at this time.
0 commit comments