sdk 31이상에서 PendingIntent.FLAG_IMMUTABLE FLAG 추가
This commit is contained in:
@@ -23,7 +23,7 @@ class AlarmScheduler(private val context: Context) {
|
||||
|
||||
val alarmIntent = Intent(context, AlarmReceiver::class.java).let { intent ->
|
||||
intent.putExtra(Constants.EXTRA_ALARM_ID, alarm.id)
|
||||
PendingIntent.getBroadcast(context, alarm.id, intent, PendingIntent.FLAG_UPDATE_CURRENT)
|
||||
createPendingIntent(requestCode = alarm.id, intent)
|
||||
}
|
||||
|
||||
val calendar = Calendar.getInstance()
|
||||
@@ -48,12 +48,7 @@ class AlarmScheduler(private val context: Context) {
|
||||
val requestCode = alarm.id * 10 + getDayOfWeek(day)
|
||||
val alarmIntent = Intent(context, AlarmReceiver::class.java).let { intent ->
|
||||
intent.putExtra(Constants.EXTRA_ALARM_ID, alarm.id)
|
||||
PendingIntent.getBroadcast(
|
||||
context,
|
||||
requestCode,
|
||||
intent,
|
||||
PendingIntent.FLAG_UPDATE_CURRENT
|
||||
)
|
||||
createPendingIntent(requestCode, intent)
|
||||
}
|
||||
|
||||
val calendar = getNextAlarmTime(day, alarm.time)
|
||||
@@ -76,31 +71,32 @@ class AlarmScheduler(private val context: Context) {
|
||||
val alarmManager = context.getSystemService(Context.ALARM_SERVICE) as AlarmManager
|
||||
|
||||
if (alarm.days.isEmpty()) {
|
||||
val alarmIntent = Intent(context, AlarmReceiver::class.java).let { intent ->
|
||||
PendingIntent.getBroadcast(
|
||||
context,
|
||||
alarm.id,
|
||||
intent,
|
||||
PendingIntent.FLAG_UPDATE_CURRENT
|
||||
)
|
||||
}
|
||||
val alarmIntent = createPendingIntent(
|
||||
requestCode = alarm.id,
|
||||
intent = Intent(context, AlarmReceiver::class.java)
|
||||
)
|
||||
alarmManager.cancel(alarmIntent)
|
||||
} else {
|
||||
alarm.days.forEach { day ->
|
||||
val requestCode = alarm.id * 10 + getDayOfWeek(day)
|
||||
val alarmIntent = Intent(context, AlarmReceiver::class.java).let { intent ->
|
||||
PendingIntent.getBroadcast(
|
||||
context,
|
||||
requestCode,
|
||||
intent,
|
||||
PendingIntent.FLAG_UPDATE_CURRENT
|
||||
)
|
||||
}
|
||||
val alarmIntent = createPendingIntent(
|
||||
requestCode,
|
||||
Intent(context, AlarmReceiver::class.java)
|
||||
)
|
||||
alarmManager.cancel(alarmIntent)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun createPendingIntent(requestCode: Int, intent: Intent): PendingIntent {
|
||||
val flags = if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.S) {
|
||||
PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE
|
||||
} else {
|
||||
PendingIntent.FLAG_UPDATE_CURRENT
|
||||
}
|
||||
return PendingIntent.getBroadcast(context, requestCode, intent, flags)
|
||||
}
|
||||
|
||||
private fun getNextAlarmTime(day: String, timeInMillis: Long): Calendar {
|
||||
val calendar = Calendar.getInstance()
|
||||
calendar.timeInMillis = timeInMillis
|
||||
|
Reference in New Issue
Block a user