From c3175f756d8726fd7dc6ecb26877c89ef7ac1080 Mon Sep 17 00:00:00 2001 From: Adrian Ulrich Date: Mon, 5 Sep 2022 21:18:24 +0200 Subject: [PATCH] make SDK33 happy We have to upgrade the minsdk level to android 8 - which was released in 2017; 5 years ago. --- app/build.gradle | 4 +- app/src/main/AndroidManifest.xml | 37 +++++++++++++------ .../android/vanilla/FourLongWidget.java | 6 +-- .../android/vanilla/FourSquareWidget.java | 6 +-- .../android/vanilla/FourWhiteWidget.java | 8 ++-- .../android/vanilla/OneCellWidget.java | 4 +- .../android/vanilla/PlaybackService.java | 14 +++---- .../android/vanilla/WidgetD.java | 12 +++--- .../android/vanilla/WidgetE.java | 12 +++--- build.gradle | 2 +- 10 files changed, 59 insertions(+), 46 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 0d558ba1..82096ac0 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -29,8 +29,8 @@ android { dependencies { implementation 'androidx.legacy:legacy-support-core-ui:1.0.0' - implementation 'androidx.media:media:1.2.1' - implementation 'com.google.android.material:material:1.0.0' + implementation 'androidx.media:media:1.6.0' + implementation 'com.google.android.material:material:1.6.1' implementation 'junit:junit:4.12' compileOnly 'androidx.annotation:annotation:1.0.0' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index efaa4283..6c1f174c 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -69,6 +69,7 @@ THE SOFTWARE. @@ -93,7 +94,8 @@ THE SOFTWARE. android:launchMode="singleInstance" /> + android:label="Vanilla Music 1x1" + android:exported="false"> @@ -103,7 +105,8 @@ THE SOFTWARE. + android:label="Vanilla Music 4x1 A" + android:exported="false"> @@ -113,7 +116,8 @@ THE SOFTWARE. + android:label="Vanilla Music 4x1 White" + android:exported="false"> @@ -123,7 +127,8 @@ THE SOFTWARE. + android:label="Vanilla Music 4x1 B" + android:exported="false"> @@ -133,7 +138,8 @@ THE SOFTWARE. + android:label="Vanilla Music 2x2 A" + android:exported="false"> @@ -143,7 +149,8 @@ THE SOFTWARE. + android:label="Vanilla Music 2x2 B" + android:exported="false"> @@ -151,12 +158,14 @@ THE SOFTWARE. android:name="android.appwidget.provider" android:resource="@xml/widget_d" /> - + - + @@ -169,7 +178,7 @@ THE SOFTWARE. + android:exported="true" /> @@ -187,14 +196,17 @@ THE SOFTWARE. + android:theme="@android:style/Theme.Translucent.NoTitleBar" + android:exported="false"> - + @@ -218,6 +230,7 @@ THE SOFTWARE. diff --git a/app/src/main/java/ch/blinkenlights/android/vanilla/FourLongWidget.java b/app/src/main/java/ch/blinkenlights/android/vanilla/FourLongWidget.java index 2f689e35..bbc88d5b 100644 --- a/app/src/main/java/ch/blinkenlights/android/vanilla/FourLongWidget.java +++ b/app/src/main/java/ch/blinkenlights/android/vanilla/FourLongWidget.java @@ -127,16 +127,16 @@ public class FourLongWidget extends AppWidgetProvider { int flags = Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_TASK_ON_HOME; intent = new Intent(context, LibraryActivity.class).setAction(Intent.ACTION_MAIN); - pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); + pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_IMMUTABLE); views.setOnClickPendingIntent(R.id.cover, pendingIntent); views.setOnClickPendingIntent(R.id.text_layout, pendingIntent); intent = ShortcutPseudoActivity.getIntent(context, PlaybackService.ACTION_TOGGLE_PLAYBACK); - pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); + pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_IMMUTABLE); views.setOnClickPendingIntent(R.id.play_pause, pendingIntent); intent = ShortcutPseudoActivity.getIntent(context, PlaybackService.ACTION_NEXT_SONG); - pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); + pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_IMMUTABLE); views.setOnClickPendingIntent(R.id.next, pendingIntent); manager.updateAppWidget(new ComponentName(context, FourLongWidget.class), views); diff --git a/app/src/main/java/ch/blinkenlights/android/vanilla/FourSquareWidget.java b/app/src/main/java/ch/blinkenlights/android/vanilla/FourSquareWidget.java index 16020c71..7e85fabb 100644 --- a/app/src/main/java/ch/blinkenlights/android/vanilla/FourSquareWidget.java +++ b/app/src/main/java/ch/blinkenlights/android/vanilla/FourSquareWidget.java @@ -129,16 +129,16 @@ public class FourSquareWidget extends AppWidgetProvider { int flags = Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_TASK_ON_HOME; intent = new Intent(context, LibraryActivity.class).setAction(Intent.ACTION_MAIN); - pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); + pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_IMMUTABLE); views.setOnClickPendingIntent(R.id.title, pendingIntent); views.setOnClickPendingIntent(R.id.artist, pendingIntent); intent = ShortcutPseudoActivity.getIntent(context, PlaybackService.ACTION_TOGGLE_PLAYBACK); - pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); + pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_IMMUTABLE); views.setOnClickPendingIntent(R.id.play_pause, pendingIntent); intent = ShortcutPseudoActivity.getIntent(context, PlaybackService.ACTION_NEXT_SONG); - pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); + pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_IMMUTABLE); views.setOnClickPendingIntent(R.id.next, pendingIntent); manager.updateAppWidget(new ComponentName(context, FourSquareWidget.class), views); diff --git a/app/src/main/java/ch/blinkenlights/android/vanilla/FourWhiteWidget.java b/app/src/main/java/ch/blinkenlights/android/vanilla/FourWhiteWidget.java index b08e7f07..e0333562 100644 --- a/app/src/main/java/ch/blinkenlights/android/vanilla/FourWhiteWidget.java +++ b/app/src/main/java/ch/blinkenlights/android/vanilla/FourWhiteWidget.java @@ -131,20 +131,20 @@ public class FourWhiteWidget extends AppWidgetProvider { int flags = Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_TASK_ON_HOME; intent = new Intent(context, LibraryActivity.class).setAction(Intent.ACTION_MAIN); - pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); + pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_IMMUTABLE); views.setOnClickPendingIntent(R.id.cover, pendingIntent); views.setOnClickPendingIntent(R.id.text_layout, pendingIntent); intent = ShortcutPseudoActivity.getIntent(context, PlaybackService.ACTION_TOGGLE_PLAYBACK); - pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); + pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_IMMUTABLE); views.setOnClickPendingIntent(R.id.play_pause, pendingIntent); intent = ShortcutPseudoActivity.getIntent(context, PlaybackService.ACTION_NEXT_SONG); - pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); + pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_IMMUTABLE); views.setOnClickPendingIntent(R.id.next, pendingIntent); intent = ShortcutPseudoActivity.getIntent(context, PlaybackService.ACTION_PREVIOUS_SONG); - pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); + pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_IMMUTABLE); views.setOnClickPendingIntent(R.id.previous, pendingIntent); manager.updateAppWidget(new ComponentName(context, FourWhiteWidget.class), views); diff --git a/app/src/main/java/ch/blinkenlights/android/vanilla/OneCellWidget.java b/app/src/main/java/ch/blinkenlights/android/vanilla/OneCellWidget.java index 7b013856..6765869b 100644 --- a/app/src/main/java/ch/blinkenlights/android/vanilla/OneCellWidget.java +++ b/app/src/main/java/ch/blinkenlights/android/vanilla/OneCellWidget.java @@ -103,11 +103,11 @@ public class OneCellWidget extends AppWidgetProvider { int flags = Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_TASK_ON_HOME; intent = ShortcutPseudoActivity.getIntent(context, doubleTap ? PlaybackService.ACTION_TOGGLE_PLAYBACK_DELAYED : PlaybackService.ACTION_TOGGLE_PLAYBACK); - pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); + pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_IMMUTABLE); views.setOnClickPendingIntent(R.id.play_pause, pendingIntent); intent = ShortcutPseudoActivity.getIntent(context, doubleTap ? PlaybackService.ACTION_NEXT_SONG_DELAYED : PlaybackService.ACTION_NEXT_SONG); - pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); + pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_IMMUTABLE); views.setOnClickPendingIntent(R.id.next, pendingIntent); diff --git a/app/src/main/java/ch/blinkenlights/android/vanilla/PlaybackService.java b/app/src/main/java/ch/blinkenlights/android/vanilla/PlaybackService.java index 424cf3d2..fd2c9a69 100644 --- a/app/src/main/java/ch/blinkenlights/android/vanilla/PlaybackService.java +++ b/app/src/main/java/ch/blinkenlights/android/vanilla/PlaybackService.java @@ -2088,11 +2088,11 @@ public final class PlaybackService extends Service case NOT_ACTION_NEXT_SONG: { Intent intent = new Intent(this, PlaybackService.class); intent.setAction(PlaybackService.ACTION_NEXT_SONG_AUTOPLAY); - return PendingIntent.getService(this, 0, intent, 0); + return PendingIntent.getService(this, 0, intent, PendingIntent.FLAG_IMMUTABLE); } case NOT_ACTION_MINI_ACTIVITY: { Intent intent = new Intent(this, MiniPlaybackActivity.class); - return PendingIntent.getActivity(this, 0, intent, 0); + return PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_IMMUTABLE); } default: Log.w("VanillaMusic", "Unknown value for notification_action. Defaulting to 0."); @@ -2100,12 +2100,12 @@ public final class PlaybackService extends Service case NOT_ACTION_MAIN_ACTIVITY: { Intent intent = new Intent(this, LibraryActivity.class); intent.setAction(Intent.ACTION_MAIN); - return PendingIntent.getActivity(this, 0, intent, 0); + return PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_IMMUTABLE); } case NOT_ACTION_FULL_ACTIVITY: { Intent intent = new Intent(this, FullPlaybackActivity.class); intent.setAction(Intent.ACTION_MAIN); - return PendingIntent.getActivity(this, 0, intent, 0); + return PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_IMMUTABLE); } } } @@ -2146,11 +2146,11 @@ public final class PlaybackService extends Service .setSubText(song.artist) .setContentIntent(mNotificationAction) .addAction(new NotificationCompat.Action(R.drawable.previous, - getString(R.string.previous_song), PendingIntent.getService(this, 0, previous, 0))) + getString(R.string.previous_song), PendingIntent.getService(this, 0, previous, PendingIntent.FLAG_IMMUTABLE))) .addAction(new NotificationCompat.Action(playButton, - getString(R.string.play_pause), PendingIntent.getService(this, 0, playPause, 0))) + getString(R.string.play_pause), PendingIntent.getService(this, 0, playPause, PendingIntent.FLAG_IMMUTABLE))) .addAction(new NotificationCompat.Action(R.drawable.next, - getString(R.string.next_song), PendingIntent.getService(this, 0, next, 0))) + getString(R.string.next_song), PendingIntent.getService(this, 0, next, PendingIntent.FLAG_IMMUTABLE))) .setStyle(new androidx.media.app.NotificationCompat.MediaStyle() .setMediaSession(mMediaSessionTracker.getSessionToken()) .setShowActionsInCompactView(0, 1, 2)) diff --git a/app/src/main/java/ch/blinkenlights/android/vanilla/WidgetD.java b/app/src/main/java/ch/blinkenlights/android/vanilla/WidgetD.java index 92857b94..6e008c18 100644 --- a/app/src/main/java/ch/blinkenlights/android/vanilla/WidgetD.java +++ b/app/src/main/java/ch/blinkenlights/android/vanilla/WidgetD.java @@ -124,27 +124,27 @@ public class WidgetD extends AppWidgetProvider { int flags = Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_TASK_ON_HOME; intent = new Intent(context, LibraryActivity.class).setAction(Intent.ACTION_MAIN); - pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); + pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_IMMUTABLE); views.setOnClickPendingIntent(R.id.cover, pendingIntent); intent = ShortcutPseudoActivity.getIntent(context, PlaybackService.ACTION_TOGGLE_PLAYBACK); - pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); + pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_IMMUTABLE); views.setOnClickPendingIntent(R.id.play_pause, pendingIntent); intent = ShortcutPseudoActivity.getIntent(context, PlaybackService.ACTION_NEXT_SONG); - pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); + pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_IMMUTABLE); views.setOnClickPendingIntent(R.id.next, pendingIntent); intent = ShortcutPseudoActivity.getIntent(context, PlaybackService.ACTION_PREVIOUS_SONG); - pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); + pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_IMMUTABLE); views.setOnClickPendingIntent(R.id.previous, pendingIntent); intent = ShortcutPseudoActivity.getIntent(context, PlaybackService.ACTION_CYCLE_SHUFFLE); - pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); + pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_IMMUTABLE); views.setOnClickPendingIntent(R.id.shuffle, pendingIntent); intent = ShortcutPseudoActivity.getIntent(context, PlaybackService.ACTION_CYCLE_REPEAT); - pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); + pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_IMMUTABLE); views.setOnClickPendingIntent(R.id.end_action, pendingIntent); manager.updateAppWidget(new ComponentName(context, WidgetD.class), views); diff --git a/app/src/main/java/ch/blinkenlights/android/vanilla/WidgetE.java b/app/src/main/java/ch/blinkenlights/android/vanilla/WidgetE.java index 2ac5d1bd..6431247e 100644 --- a/app/src/main/java/ch/blinkenlights/android/vanilla/WidgetE.java +++ b/app/src/main/java/ch/blinkenlights/android/vanilla/WidgetE.java @@ -114,28 +114,28 @@ public class WidgetE extends AppWidgetProvider { int flags = Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_TASK_ON_HOME; intent = new Intent(context, LibraryActivity.class).setAction(Intent.ACTION_MAIN); - pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); + pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_IMMUTABLE); views.setOnClickPendingIntent(R.id.title, pendingIntent); views.setOnClickPendingIntent(R.id.artist, pendingIntent); intent = ShortcutPseudoActivity.getIntent(context, PlaybackService.ACTION_TOGGLE_PLAYBACK); - pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); + pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_IMMUTABLE); views.setOnClickPendingIntent(R.id.play_pause, pendingIntent); intent = ShortcutPseudoActivity.getIntent(context, PlaybackService.ACTION_NEXT_SONG); - pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); + pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_IMMUTABLE); views.setOnClickPendingIntent(R.id.next, pendingIntent); intent = ShortcutPseudoActivity.getIntent(context, PlaybackService.ACTION_PREVIOUS_SONG); - pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); + pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_IMMUTABLE); views.setOnClickPendingIntent(R.id.previous, pendingIntent); intent = ShortcutPseudoActivity.getIntent(context, PlaybackService.ACTION_CYCLE_SHUFFLE); - pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); + pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_IMMUTABLE); views.setOnClickPendingIntent(R.id.shuffle, pendingIntent); intent = ShortcutPseudoActivity.getIntent(context, PlaybackService.ACTION_CYCLE_REPEAT); - pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); + pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_IMMUTABLE); views.setOnClickPendingIntent(R.id.end_action, pendingIntent); manager.updateAppWidget(new ComponentName(context, WidgetE.class), views); diff --git a/build.gradle b/build.gradle index 1b6a0542..cd06e9de 100644 --- a/build.gradle +++ b/build.gradle @@ -16,5 +16,5 @@ allprojects { ext { compileSdkVersion = 33 targetSdkVersion = 33 - minSdkVersion = 15 + minSdkVersion = 26 }