From 570bb9bfd7051dad0df68bcf4758b78e778da4a3 Mon Sep 17 00:00:00 2001 From: Denny Huang Date: Sat, 29 Jul 2023 13:24:55 +0800 Subject: [PATCH 1/2] Fix AlarmUtil for version >= Android 14 --- .../java/app/opass/ccip/util/AlarmUtil.kt | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/app/opass/ccip/util/AlarmUtil.kt b/app/src/main/java/app/opass/ccip/util/AlarmUtil.kt index 8d0a3211..8f829ce6 100644 --- a/app/src/main/java/app/opass/ccip/util/AlarmUtil.kt +++ b/app/src/main/java/app/opass/ccip/util/AlarmUtil.kt @@ -4,7 +4,9 @@ import android.app.AlarmManager import android.app.PendingIntent import android.content.Context import android.content.Intent +import android.net.Uri import android.os.Build +import android.provider.Settings import app.opass.ccip.model.Session import app.opass.ccip.ui.sessiondetail.SessionDetailActivity import com.google.gson.internal.bind.util.ISO8601Utils @@ -27,13 +29,31 @@ object AlarmUtil { .getBroadcast(context, 0, intent, PendingIntent.FLAG_IMMUTABLE) val alarmManager = context.getSystemService(Context.ALARM_SERVICE) as AlarmManager + + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) { alarmManager.setExact( AlarmManager.RTC_WAKEUP, calendar.timeInMillis - 10 * 60 * 1000, pendingIntent ) - } else { + } + else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { + when { + alarmManager.canScheduleExactAlarms() -> { + alarmManager.setExactAndAllowWhileIdle( + AlarmManager.RTC_WAKEUP, + calendar.timeInMillis - 10 * 60 * 1000, + pendingIntent + ) + } + else -> { + var uri = Uri.parse("package:" + context.packageName) + context.startActivity(Intent(Settings.ACTION_REQUEST_SCHEDULE_EXACT_ALARM, uri)) + } + } + } + else { alarmManager.setExactAndAllowWhileIdle( AlarmManager.RTC_WAKEUP, calendar.timeInMillis - 10 * 60 * 1000, From 80274bf092d251331267a1d591838568043a28ed Mon Sep 17 00:00:00 2001 From: Denny Huang Date: Sat, 29 Jul 2023 13:26:03 +0800 Subject: [PATCH 2/2] Set version code to 52, and version name to 3.2.8 --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 13fbb347..30b1622c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -22,8 +22,8 @@ android { applicationId "app.opass.ccip" minSdk 24 targetSdk 34 - versionCode 51 - versionName "3.2.7" + versionCode 52 + versionName "3.2.8" manifestPlaceholders = [manifestApplicationId: "${applicationId}"] }