sdk 31이상에서 PendingIntent.FLAG_IMMUTABLE FLAG 추가

This commit is contained in:
klaus 2024-07-26 01:43:00 +09:00
parent 7c91795fb5
commit 18d16a2211
2 changed files with 21 additions and 25 deletions

View File

@ -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"
}

View File

@ -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