From c52d02ea106aede0dcc93ee0d0c807749ad156aa Mon Sep 17 00:00:00 2001 From: Prathamesh More Date: Fri, 26 Nov 2021 20:18:13 +0530 Subject: [PATCH] Added Version check for FLAG_IMMUTABLE --- .../retromusic/appwidgets/AppWidgetBig.kt | 7 ++++++- .../retromusic/appwidgets/AppWidgetCard.kt | 7 ++++++- .../retromusic/appwidgets/AppWidgetClassic.kt | 7 ++++++- .../retromusic/appwidgets/AppWidgetSmall.kt | 7 ++++++- .../retromusic/appwidgets/AppWidgetText.kt | 7 ++++++- .../retromusic/appwidgets/base/BaseAppWidget.kt | 7 ++++++- .../retromusic/dialogs/SleepTimerDialog.kt | 7 ++++++- .../notification/PlayingNotificationImpl.kt | 17 ++++++++++++++--- .../notification/PlayingNotificationOreo.kt | 10 ++++++++-- 9 files changed, 64 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/code/name/monkey/retromusic/appwidgets/AppWidgetBig.kt b/app/src/main/java/code/name/monkey/retromusic/appwidgets/AppWidgetBig.kt index 68596c697..be426f5da 100644 --- a/app/src/main/java/code/name/monkey/retromusic/appwidgets/AppWidgetBig.kt +++ b/app/src/main/java/code/name/monkey/retromusic/appwidgets/AppWidgetBig.kt @@ -24,6 +24,7 @@ import android.text.TextUtils import android.view.View import android.widget.RemoteViews import code.name.monkey.appthemehelper.util.MaterialValueHelper +import code.name.monkey.appthemehelper.util.VersionUtils import code.name.monkey.retromusic.R import code.name.monkey.retromusic.activities.MainActivity import code.name.monkey.retromusic.appwidgets.base.BaseAppWidget @@ -208,7 +209,11 @@ class AppWidgetBig : BaseAppWidget() { // Home action.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TOP var pendingIntent = - PendingIntent.getActivity(context, 0, action, PendingIntent.FLAG_IMMUTABLE) + PendingIntent.getActivity( + context, 0, action, if (VersionUtils.hasMarshmallow()) + PendingIntent.FLAG_IMMUTABLE + else 0 + ) views.setOnClickPendingIntent(R.id.clickable_area, pendingIntent) // Previous track diff --git a/app/src/main/java/code/name/monkey/retromusic/appwidgets/AppWidgetCard.kt b/app/src/main/java/code/name/monkey/retromusic/appwidgets/AppWidgetCard.kt index 30bcf124e..e693fc535 100644 --- a/app/src/main/java/code/name/monkey/retromusic/appwidgets/AppWidgetCard.kt +++ b/app/src/main/java/code/name/monkey/retromusic/appwidgets/AppWidgetCard.kt @@ -24,6 +24,7 @@ import android.text.TextUtils import android.view.View import android.widget.RemoteViews import code.name.monkey.appthemehelper.util.MaterialValueHelper +import code.name.monkey.appthemehelper.util.VersionUtils import code.name.monkey.retromusic.R import code.name.monkey.retromusic.activities.MainActivity import code.name.monkey.retromusic.appwidgets.base.BaseAppWidget @@ -231,7 +232,11 @@ class AppWidgetCard : BaseAppWidget() { // Home action.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TOP var pendingIntent = - PendingIntent.getActivity(context, 0, action, PendingIntent.FLAG_IMMUTABLE) + PendingIntent.getActivity( + context, 0, action, if (VersionUtils.hasMarshmallow()) + PendingIntent.FLAG_IMMUTABLE + else 0 + ) views.setOnClickPendingIntent(R.id.image, pendingIntent) views.setOnClickPendingIntent(R.id.media_titles, pendingIntent) diff --git a/app/src/main/java/code/name/monkey/retromusic/appwidgets/AppWidgetClassic.kt b/app/src/main/java/code/name/monkey/retromusic/appwidgets/AppWidgetClassic.kt index 134938d20..bfe368ba7 100644 --- a/app/src/main/java/code/name/monkey/retromusic/appwidgets/AppWidgetClassic.kt +++ b/app/src/main/java/code/name/monkey/retromusic/appwidgets/AppWidgetClassic.kt @@ -25,6 +25,7 @@ import android.text.TextUtils import android.view.View import android.widget.RemoteViews import code.name.monkey.appthemehelper.util.MaterialValueHelper +import code.name.monkey.appthemehelper.util.VersionUtils import code.name.monkey.retromusic.R import code.name.monkey.retromusic.activities.MainActivity import code.name.monkey.retromusic.appwidgets.base.BaseAppWidget @@ -221,7 +222,11 @@ class AppWidgetClassic : BaseAppWidget() { // Home action.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TOP - var pendingIntent = PendingIntent.getActivity(context, 0, action, PendingIntent.FLAG_IMMUTABLE) + var pendingIntent = PendingIntent.getActivity( + context, 0, action, if (VersionUtils.hasMarshmallow()) + PendingIntent.FLAG_IMMUTABLE + else 0 + ) views.setOnClickPendingIntent(R.id.image, pendingIntent) views.setOnClickPendingIntent(R.id.media_titles, pendingIntent) diff --git a/app/src/main/java/code/name/monkey/retromusic/appwidgets/AppWidgetSmall.kt b/app/src/main/java/code/name/monkey/retromusic/appwidgets/AppWidgetSmall.kt index 4528abce0..089c38bfe 100644 --- a/app/src/main/java/code/name/monkey/retromusic/appwidgets/AppWidgetSmall.kt +++ b/app/src/main/java/code/name/monkey/retromusic/appwidgets/AppWidgetSmall.kt @@ -24,6 +24,7 @@ import android.text.TextUtils import android.view.View import android.widget.RemoteViews import code.name.monkey.appthemehelper.util.MaterialValueHelper +import code.name.monkey.appthemehelper.util.VersionUtils import code.name.monkey.retromusic.R import code.name.monkey.retromusic.activities.MainActivity import code.name.monkey.retromusic.appwidgets.base.BaseAppWidget @@ -207,7 +208,11 @@ class AppWidgetSmall : BaseAppWidget() { // Home action.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TOP var pendingIntent = - PendingIntent.getActivity(context, 0, action, PendingIntent.FLAG_IMMUTABLE) + PendingIntent.getActivity( + context, 0, action, if (VersionUtils.hasMarshmallow()) + PendingIntent.FLAG_IMMUTABLE + else 0 + ) views.setOnClickPendingIntent(R.id.image, pendingIntent) views.setOnClickPendingIntent(R.id.media_titles, pendingIntent) diff --git a/app/src/main/java/code/name/monkey/retromusic/appwidgets/AppWidgetText.kt b/app/src/main/java/code/name/monkey/retromusic/appwidgets/AppWidgetText.kt index b4abebf21..6a81d6297 100644 --- a/app/src/main/java/code/name/monkey/retromusic/appwidgets/AppWidgetText.kt +++ b/app/src/main/java/code/name/monkey/retromusic/appwidgets/AppWidgetText.kt @@ -23,6 +23,7 @@ import android.text.TextUtils import android.view.View import android.widget.RemoteViews import androidx.core.content.ContextCompat +import code.name.monkey.appthemehelper.util.VersionUtils import code.name.monkey.retromusic.App import code.name.monkey.retromusic.R import code.name.monkey.retromusic.activities.MainActivity @@ -89,7 +90,11 @@ class AppWidgetText : BaseAppWidget() { // Home action.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TOP - var pendingIntent = PendingIntent.getActivity(context, 0, action, PendingIntent.FLAG_IMMUTABLE) + var pendingIntent = PendingIntent.getActivity( + context, 0, action, if (VersionUtils.hasMarshmallow()) + PendingIntent.FLAG_IMMUTABLE + else 0 + ) views.setOnClickPendingIntent(R.id.image, pendingIntent) views.setOnClickPendingIntent(R.id.media_titles, pendingIntent) diff --git a/app/src/main/java/code/name/monkey/retromusic/appwidgets/base/BaseAppWidget.kt b/app/src/main/java/code/name/monkey/retromusic/appwidgets/base/BaseAppWidget.kt index 03a3187e8..897203f8e 100644 --- a/app/src/main/java/code/name/monkey/retromusic/appwidgets/base/BaseAppWidget.kt +++ b/app/src/main/java/code/name/monkey/retromusic/appwidgets/base/BaseAppWidget.kt @@ -28,6 +28,7 @@ import android.os.Build import android.text.TextUtils import android.widget.RemoteViews import androidx.core.content.ContextCompat +import code.name.monkey.appthemehelper.util.VersionUtils import code.name.monkey.retromusic.App import code.name.monkey.retromusic.R import code.name.monkey.retromusic.model.Song @@ -99,7 +100,11 @@ abstract class BaseAppWidget : AppWidgetProvider() { return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { PendingIntent.getForegroundService(context, 0, intent, PendingIntent.FLAG_IMMUTABLE) } else { - PendingIntent.getService(context, 0, intent, PendingIntent.FLAG_IMMUTABLE) + PendingIntent.getService( + context, 0, intent, if (VersionUtils.hasMarshmallow()) + PendingIntent.FLAG_IMMUTABLE + else 0 + ) } } diff --git a/app/src/main/java/code/name/monkey/retromusic/dialogs/SleepTimerDialog.kt b/app/src/main/java/code/name/monkey/retromusic/dialogs/SleepTimerDialog.kt index 214bef24d..fc8b05f77 100755 --- a/app/src/main/java/code/name/monkey/retromusic/dialogs/SleepTimerDialog.kt +++ b/app/src/main/java/code/name/monkey/retromusic/dialogs/SleepTimerDialog.kt @@ -29,6 +29,7 @@ import android.widget.SeekBar import android.widget.TextView import android.widget.Toast import androidx.fragment.app.DialogFragment +import code.name.monkey.appthemehelper.util.VersionUtils import code.name.monkey.retromusic.R import code.name.monkey.retromusic.extensions.addAccentColor import code.name.monkey.retromusic.extensions.colorButtons @@ -138,7 +139,11 @@ class SleepTimerDialog : DialogFragment() { } private fun makeTimerPendingIntent(flag: Int): PendingIntent? { - return PendingIntent.getService(requireActivity(), 0, makeTimerIntent(), flag or PendingIntent.FLAG_IMMUTABLE) + return PendingIntent.getService( + requireActivity(), 0, makeTimerIntent(), flag or if (VersionUtils.hasMarshmallow()) + PendingIntent.FLAG_IMMUTABLE + else 0 + ) } private fun makeTimerIntent(): Intent { diff --git a/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotificationImpl.kt b/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotificationImpl.kt index 511e36597..9f640206a 100644 --- a/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotificationImpl.kt +++ b/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotificationImpl.kt @@ -25,6 +25,7 @@ import android.os.Build import androidx.core.app.NotificationCompat import androidx.core.text.HtmlCompat import androidx.media.app.NotificationCompat.MediaStyle +import code.name.monkey.appthemehelper.util.VersionUtils import code.name.monkey.retromusic.R import code.name.monkey.retromusic.activities.MainActivity import code.name.monkey.retromusic.db.PlaylistEntity @@ -70,7 +71,11 @@ class PlayingNotificationImpl : PlayingNotification(), KoinComponent { action.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TOP val clickIntent = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - PendingIntent.getActivity(service, 0, action, PendingIntent.FLAG_IMMUTABLE) + PendingIntent.getActivity( + service, 0, action, if (VersionUtils.hasMarshmallow()) + PendingIntent.FLAG_IMMUTABLE + else 0 + ) } else { PendingIntent.getActivity(service, 0, action, PendingIntent.FLAG_UPDATE_CURRENT) } @@ -82,7 +87,9 @@ class PlayingNotificationImpl : PlayingNotification(), KoinComponent { service, 0, intent, - PendingIntent.FLAG_IMMUTABLE or PendingIntent.FLAG_UPDATE_CURRENT + if (VersionUtils.hasMarshmallow()) + PendingIntent.FLAG_IMMUTABLE + else 0 or PendingIntent.FLAG_UPDATE_CURRENT ) val bigNotificationImageSize = service.resources .getDimensionPixelSize(R.dimen.notification_big_image_size) @@ -199,6 +206,10 @@ class PlayingNotificationImpl : PlayingNotification(), KoinComponent { val serviceName = ComponentName(service, MusicService::class.java) val intent = Intent(action) intent.component = serviceName - return PendingIntent.getService(service, 0, intent, PendingIntent.FLAG_IMMUTABLE or PendingIntent.FLAG_UPDATE_CURRENT) + return PendingIntent.getService( + service, 0, intent, + if (VersionUtils.hasMarshmallow()) PendingIntent.FLAG_IMMUTABLE + else 0 or PendingIntent.FLAG_UPDATE_CURRENT + ) } } \ No newline at end of file diff --git a/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotificationOreo.kt b/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotificationOreo.kt index 201ec9637..ea7c8d9c2 100644 --- a/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotificationOreo.kt +++ b/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotificationOreo.kt @@ -83,7 +83,9 @@ class PlayingNotificationOreo : PlayingNotification() { service, 0, action, - PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE + PendingIntent.FLAG_UPDATE_CURRENT or if (VersionUtils.hasMarshmallow()) + PendingIntent.FLAG_IMMUTABLE + else 0 ) val deleteIntent = buildPendingIntent(service, ACTION_QUIT, null) @@ -262,7 +264,11 @@ class PlayingNotificationOreo : PlayingNotification() { ): PendingIntent { val intent = Intent(action) intent.component = serviceName - return PendingIntent.getService(context, 0, intent, PendingIntent.FLAG_IMMUTABLE) + return PendingIntent.getService( + context, 0, intent, if (VersionUtils.hasMarshmallow()) + PendingIntent.FLAG_IMMUTABLE + else 0 + ) }