From 1e67644af21ff343d48f00f07dde5572688256ea Mon Sep 17 00:00:00 2001 From: Trevor Slocum Date: Sat, 1 Apr 2023 10:29:33 -0700 Subject: [PATCH] Fix PendingIntents missing FLAG_MUTABLE Even though PendingIntents are assumed to be mutable by default, adding FLAG_MUTABLE is required when running on Android API 33+. --- MeditationAssistant/build.gradle | 4 +-- .../src/main/AndroidManifest.xml | 6 +++++ .../DailyReminderReceiver.java | 2 +- .../meditationassistant/MainActivity.java | 14 +++++----- .../meditationassistant/MediNETActivity.java | 27 +++++-------------- .../MeditationAssistant.java | 25 ++++++++++------- .../WidgetPresetProvider.java | 2 +- .../WidgetStreakService.java | 2 +- build.gradle | 2 +- 9 files changed, 42 insertions(+), 42 deletions(-) diff --git a/MeditationAssistant/build.gradle b/MeditationAssistant/build.gradle index b9b851c..1bc1a80 100644 --- a/MeditationAssistant/build.gradle +++ b/MeditationAssistant/build.gradle @@ -8,8 +8,8 @@ android { minSdkVersion 16 targetSdkVersion 33 - versionCode 166 - versionName "1.6.6" + versionCode 167 + versionName "1.6.7" applicationId "sh.ftp.rocketninelabs.meditationassistant" manifestPlaceholders = [ diff --git a/MeditationAssistant/src/main/AndroidManifest.xml b/MeditationAssistant/src/main/AndroidManifest.xml index a01c612..f9e10e3 100644 --- a/MeditationAssistant/src/main/AndroidManifest.xml +++ b/MeditationAssistant/src/main/AndroidManifest.xml @@ -27,6 +27,12 @@ + + 1) { @@ -2643,4 +2643,11 @@ public class MeditationAssistant extends Application { super.attachBaseContext(base); MultiDex.install(this); } + + public static int extraPendingIntentFlags() { + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.S) { + return 0; + } + return PendingIntent.FLAG_MUTABLE; + } } diff --git a/MeditationAssistant/src/main/java/sh/ftp/rocketninelabs/meditationassistant/WidgetPresetProvider.java b/MeditationAssistant/src/main/java/sh/ftp/rocketninelabs/meditationassistant/WidgetPresetProvider.java index 0cd55cb..6b9ee6a 100644 --- a/MeditationAssistant/src/main/java/sh/ftp/rocketninelabs/meditationassistant/WidgetPresetProvider.java +++ b/MeditationAssistant/src/main/java/sh/ftp/rocketninelabs/meditationassistant/WidgetPresetProvider.java @@ -57,7 +57,7 @@ public class WidgetPresetProvider extends AppWidgetProvider { clickintent.putExtra("widgetid", widgetId); PendingIntent pendingIntent = PendingIntent.getActivity( - context, widgetId, clickintent, 0); + context, widgetId, clickintent, MeditationAssistant.extraPendingIntentFlags()); updateViews.setOnClickPendingIntent(R.id.layWidget, pendingIntent); updateViews.setOnClickPendingIntent(R.id.txtWidgetPresetText, pendingIntent); diff --git a/MeditationAssistant/src/main/java/sh/ftp/rocketninelabs/meditationassistant/WidgetStreakService.java b/MeditationAssistant/src/main/java/sh/ftp/rocketninelabs/meditationassistant/WidgetStreakService.java index 08c06b0..57c7e15 100644 --- a/MeditationAssistant/src/main/java/sh/ftp/rocketninelabs/meditationassistant/WidgetStreakService.java +++ b/MeditationAssistant/src/main/java/sh/ftp/rocketninelabs/meditationassistant/WidgetStreakService.java @@ -54,7 +54,7 @@ public class WidgetStreakService extends Service { Intent clickintent = new Intent(getApplicationContext(), MainActivity.class); clickintent.setAction("widgetclick"); PendingIntent pendingIntent = PendingIntent.getActivity( - getApplicationContext(), 0, clickintent, 0); + getApplicationContext(), 0, clickintent, MeditationAssistant.extraPendingIntentFlags()); updateViews.setOnClickPendingIntent(R.id.layWidget, pendingIntent); updateViews.setOnClickPendingIntent(R.id.txtWidgetStreakDays, pendingIntent); updateViews.setOnClickPendingIntent(R.id.txtWidgetStreakText, pendingIntent); diff --git a/build.gradle b/build.gradle index 93efa99..9e4b99d 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:7.2.0' + classpath 'com.android.tools.build:gradle:7.2.2' } }