From 01eada775f1e133283bb3103384daf4dbc7d6568 Mon Sep 17 00:00:00 2001 From: Nico Mexis Date: Fri, 1 Oct 2021 23:59:42 +0200 Subject: [PATCH 1/3] Fix alarm_manager_plus for Android 12+ --- .../plus/androidalarmmanager/AlarmService.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/android_alarm_manager_plus/android/src/main/java/dev/fluttercommunity/plus/androidalarmmanager/AlarmService.java b/packages/android_alarm_manager_plus/android/src/main/java/dev/fluttercommunity/plus/androidalarmmanager/AlarmService.java index 72d07b3a3d..d2f7599ae7 100644 --- a/packages/android_alarm_manager_plus/android/src/main/java/dev/fluttercommunity/plus/androidalarmmanager/AlarmService.java +++ b/packages/android_alarm_manager_plus/android/src/main/java/dev/fluttercommunity/plus/androidalarmmanager/AlarmService.java @@ -132,7 +132,9 @@ private static void scheduleAlarm( alarm.putExtra("id", requestCode); alarm.putExtra("callbackHandle", callbackHandle); PendingIntent pendingIntent = - PendingIntent.getBroadcast(context, requestCode, alarm, PendingIntent.FLAG_UPDATE_CURRENT); + PendingIntent.getBroadcast(context, requestCode, alarm, + (Build.VERSION >= 23 ? PendingIntent.FLAG_IMMUTABLE : 0) + | PendingIntent.FLAG_UPDATE_CURRENT); // Use the appropriate clock. int clock = AlarmManager.RTC; @@ -216,7 +218,9 @@ public static void cancel(Context context, int requestCode) { // Cancel the alarm with the system alarm service. Intent alarm = new Intent(context, AlarmBroadcastReceiver.class); PendingIntent existingIntent = - PendingIntent.getBroadcast(context, requestCode, alarm, PendingIntent.FLAG_NO_CREATE); + PendingIntent.getBroadcast(context, requestCode, alarm, + (Build.VERSION >= 23 ? PendingIntent.FLAG_IMMUTABLE : 0) + | PendingIntent.FLAG_NO_CREATE); if (existingIntent == null) { Log.i(TAG, "cancel: broadcast receiver not found"); return; From f5a9f2b3e38b7fd28fad13fab7be500993ed32a1 Mon Sep 17 00:00:00 2001 From: Nico Mexis Date: Sat, 2 Oct 2021 14:10:52 +0200 Subject: [PATCH 2/3] Properly format files --- .../plus/androidalarmmanager/AlarmService.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/packages/android_alarm_manager_plus/android/src/main/java/dev/fluttercommunity/plus/androidalarmmanager/AlarmService.java b/packages/android_alarm_manager_plus/android/src/main/java/dev/fluttercommunity/plus/androidalarmmanager/AlarmService.java index d2f7599ae7..3086300965 100644 --- a/packages/android_alarm_manager_plus/android/src/main/java/dev/fluttercommunity/plus/androidalarmmanager/AlarmService.java +++ b/packages/android_alarm_manager_plus/android/src/main/java/dev/fluttercommunity/plus/androidalarmmanager/AlarmService.java @@ -132,9 +132,12 @@ private static void scheduleAlarm( alarm.putExtra("id", requestCode); alarm.putExtra("callbackHandle", callbackHandle); PendingIntent pendingIntent = - PendingIntent.getBroadcast(context, requestCode, alarm, - (Build.VERSION >= 23 ? PendingIntent.FLAG_IMMUTABLE : 0) - | PendingIntent.FLAG_UPDATE_CURRENT); + PendingIntent.getBroadcast( + context, + requestCode, + alarm, + (Build.VERSION >= 23 ? PendingIntent.FLAG_IMMUTABLE : 0) + | PendingIntent.FLAG_UPDATE_CURRENT); // Use the appropriate clock. int clock = AlarmManager.RTC; @@ -218,9 +221,12 @@ public static void cancel(Context context, int requestCode) { // Cancel the alarm with the system alarm service. Intent alarm = new Intent(context, AlarmBroadcastReceiver.class); PendingIntent existingIntent = - PendingIntent.getBroadcast(context, requestCode, alarm, - (Build.VERSION >= 23 ? PendingIntent.FLAG_IMMUTABLE : 0) - | PendingIntent.FLAG_NO_CREATE); + PendingIntent.getBroadcast( + context, + requestCode, + alarm, + (Build.VERSION >= 23 ? PendingIntent.FLAG_IMMUTABLE : 0) + | PendingIntent.FLAG_NO_CREATE); if (existingIntent == null) { Log.i(TAG, "cancel: broadcast receiver not found"); return; From ea20dab59fa20512cdf1b531d245930377caaf60 Mon Sep 17 00:00:00 2001 From: Nico Mexis Date: Sat, 2 Oct 2021 14:14:58 +0200 Subject: [PATCH 3/3] Bump version --- packages/android_alarm_manager_plus/CHANGELOG.md | 4 ++++ packages/android_alarm_manager_plus/pubspec.yaml | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/android_alarm_manager_plus/CHANGELOG.md b/packages/android_alarm_manager_plus/CHANGELOG.md index 7fc79512c9..62b5336b73 100644 --- a/packages/android_alarm_manager_plus/CHANGELOG.md +++ b/packages/android_alarm_manager_plus/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.3.1 + +- Fix `PendingIntent`s for Android 12+ + ## 1.3.0 - migrate integration_test to flutter sdk diff --git a/packages/android_alarm_manager_plus/pubspec.yaml b/packages/android_alarm_manager_plus/pubspec.yaml index a41af2fb91..33922d7db2 100644 --- a/packages/android_alarm_manager_plus/pubspec.yaml +++ b/packages/android_alarm_manager_plus/pubspec.yaml @@ -1,7 +1,7 @@ name: android_alarm_manager_plus description: Flutter plugin for accessing the Android AlarmManager service, and running Dart code in the background when alarms fire. -version: 1.3.0 +version: 1.3.1 homepage: https://plus.fluttercommunity.dev/ repository: https://github.com/fluttercommunity/plus_plugins/tree/main/packages/