sdk 31이상에서 PendingIntent.FLAG_IMMUTABLE FLAG 추가
This commit is contained in:
parent
7c91795fb5
commit
18d16a2211
|
@ -39,8 +39,8 @@ android {
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
applicationId "kr.co.vividnext.sodalive"
|
applicationId "kr.co.vividnext.sodalive"
|
||||||
minSdk 23
|
minSdk 23
|
||||||
targetSdk 34
|
targetSdk 33
|
||||||
versionCode 84
|
versionCode 85
|
||||||
versionName "1.13.2"
|
versionName "1.13.2"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@ class AlarmScheduler(private val context: Context) {
|
||||||
|
|
||||||
val alarmIntent = Intent(context, AlarmReceiver::class.java).let { intent ->
|
val alarmIntent = Intent(context, AlarmReceiver::class.java).let { intent ->
|
||||||
intent.putExtra(Constants.EXTRA_ALARM_ID, alarm.id)
|
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()
|
val calendar = Calendar.getInstance()
|
||||||
|
@ -48,12 +48,7 @@ class AlarmScheduler(private val context: Context) {
|
||||||
val requestCode = alarm.id * 10 + getDayOfWeek(day)
|
val requestCode = alarm.id * 10 + getDayOfWeek(day)
|
||||||
val alarmIntent = Intent(context, AlarmReceiver::class.java).let { intent ->
|
val alarmIntent = Intent(context, AlarmReceiver::class.java).let { intent ->
|
||||||
intent.putExtra(Constants.EXTRA_ALARM_ID, alarm.id)
|
intent.putExtra(Constants.EXTRA_ALARM_ID, alarm.id)
|
||||||
PendingIntent.getBroadcast(
|
createPendingIntent(requestCode, intent)
|
||||||
context,
|
|
||||||
requestCode,
|
|
||||||
intent,
|
|
||||||
PendingIntent.FLAG_UPDATE_CURRENT
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
val calendar = getNextAlarmTime(day, alarm.time)
|
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
|
val alarmManager = context.getSystemService(Context.ALARM_SERVICE) as AlarmManager
|
||||||
|
|
||||||
if (alarm.days.isEmpty()) {
|
if (alarm.days.isEmpty()) {
|
||||||
val alarmIntent = Intent(context, AlarmReceiver::class.java).let { intent ->
|
val alarmIntent = createPendingIntent(
|
||||||
PendingIntent.getBroadcast(
|
requestCode = alarm.id,
|
||||||
context,
|
intent = Intent(context, AlarmReceiver::class.java)
|
||||||
alarm.id,
|
|
||||||
intent,
|
|
||||||
PendingIntent.FLAG_UPDATE_CURRENT
|
|
||||||
)
|
)
|
||||||
}
|
|
||||||
alarmManager.cancel(alarmIntent)
|
alarmManager.cancel(alarmIntent)
|
||||||
} else {
|
} else {
|
||||||
alarm.days.forEach { day ->
|
alarm.days.forEach { day ->
|
||||||
val requestCode = alarm.id * 10 + getDayOfWeek(day)
|
val requestCode = alarm.id * 10 + getDayOfWeek(day)
|
||||||
val alarmIntent = Intent(context, AlarmReceiver::class.java).let { intent ->
|
val alarmIntent = createPendingIntent(
|
||||||
PendingIntent.getBroadcast(
|
|
||||||
context,
|
|
||||||
requestCode,
|
requestCode,
|
||||||
intent,
|
Intent(context, AlarmReceiver::class.java)
|
||||||
PendingIntent.FLAG_UPDATE_CURRENT
|
|
||||||
)
|
)
|
||||||
}
|
|
||||||
alarmManager.cancel(alarmIntent)
|
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 {
|
private fun getNextAlarmTime(day: String, timeInMillis: Long): Calendar {
|
||||||
val calendar = Calendar.getInstance()
|
val calendar = Calendar.getInstance()
|
||||||
calendar.timeInMillis = timeInMillis
|
calendar.timeInMillis = timeInMillis
|
||||||
|
|
Loading…
Reference in New Issue