sdk 31이상에서 PendingIntent.FLAG_IMMUTABLE FLAG 추가
This commit is contained in:
parent
7c91795fb5
commit
18d16a2211
|
@ -39,8 +39,8 @@ android {
|
|||
defaultConfig {
|
||||
applicationId "kr.co.vividnext.sodalive"
|
||||
minSdk 23
|
||||
targetSdk 34
|
||||
versionCode 84
|
||||
targetSdk 33
|
||||
versionCode 85
|
||||
versionName "1.13.2"
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue