@@ -2,6 +2,8 @@ package com.yapp.alarm
22
33import android.app.AlarmManager
44import android.app.Application
5+ import android.app.PendingIntent
6+ import android.content.Intent
57import android.util.Log
68import com.yapp.alarm.pendingIntent.schedule.createAlarmReceiverPendingIntentForSchedule
79import com.yapp.alarm.pendingIntent.schedule.createAlarmReceiverPendingIntentForUnSchedule
@@ -26,6 +28,23 @@ class AndroidAlarmScheduler @Inject constructor(
2628 )
2729 }
2830
31+ private fun createShowMainActivityPendingIntent (): PendingIntent {
32+ val intent = Intent ().apply {
33+ setClassName(
34+ app.packageName,
35+ " com.yapp.orbit.MainActivity" ,
36+ )
37+ addFlags(Intent .FLAG_ACTIVITY_NEW_TASK or Intent .FLAG_ACTIVITY_CLEAR_TASK )
38+ }
39+
40+ return PendingIntent .getActivity(
41+ app,
42+ 0 ,
43+ intent,
44+ PendingIntent .FLAG_IMMUTABLE or PendingIntent .FLAG_UPDATE_CURRENT ,
45+ )
46+ }
47+
2948 override fun scheduleAlarm (alarm : Alarm ) {
3049 val selectedDays = alarm.repeatDays.toAlarmDays()
3150
@@ -42,9 +61,11 @@ class AndroidAlarmScheduler @Inject constructor(
4261 val triggerMillis = alarmTimeCalculator.calculateNextRepeatingTimeMillis(alarm, day)
4362 val pendingIntent = createAlarmReceiverPendingIntentForSchedule(app, alarm, day)
4463 logSchedule(" REPEAT" , alarm, triggerMillis, " day=$day " )
45- alarmManager.setExactAndAllowWhileIdle(
46- AlarmManager .RTC_WAKEUP ,
47- triggerMillis,
64+ alarmManager.setAlarmClock(
65+ AlarmManager .AlarmClockInfo (
66+ triggerMillis,
67+ createShowMainActivityPendingIntent(),
68+ ),
4869 pendingIntent,
4970 )
5071 }
@@ -53,9 +74,11 @@ class AndroidAlarmScheduler @Inject constructor(
5374 val triggerMillis = alarmTimeCalculator.calculateNonRepeatingTimeMillis(alarm)
5475 val pendingIntent = createAlarmReceiverPendingIntentForSchedule(app, alarm)
5576 logSchedule(" NON_REPEAT" , alarm, triggerMillis)
56- alarmManager.setExactAndAllowWhileIdle(
57- AlarmManager .RTC_WAKEUP ,
58- triggerMillis,
77+ alarmManager.setAlarmClock(
78+ AlarmManager .AlarmClockInfo (
79+ triggerMillis,
80+ createShowMainActivityPendingIntent(),
81+ ),
5982 pendingIntent,
6083 )
6184 }
@@ -64,9 +87,11 @@ class AndroidAlarmScheduler @Inject constructor(
6487 val triggerMillis = alarmTimeCalculator.calculateNextWeeklyRescheduledTimeMillis(alarm, day)
6588 val pendingIntent = createAlarmReceiverPendingIntentForSchedule(app, alarm, day)
6689 logSchedule(" RESCHEDULE_WEEKLY" , alarm, triggerMillis, " day=$day " )
67- alarmManager.setExactAndAllowWhileIdle(
68- AlarmManager .RTC_WAKEUP ,
69- triggerMillis,
90+ alarmManager.setAlarmClock(
91+ AlarmManager .AlarmClockInfo (
92+ triggerMillis,
93+ createShowMainActivityPendingIntent(),
94+ ),
7095 pendingIntent,
7196 )
7297 }
0 commit comments