diff --git a/app/src/main/java/org/oxycblt/auxio/MainActivity.kt b/app/src/main/java/org/oxycblt/auxio/MainActivity.kt index abefa566b..a68a3584e 100644 --- a/app/src/main/java/org/oxycblt/auxio/MainActivity.kt +++ b/app/src/main/java/org/oxycblt/auxio/MainActivity.kt @@ -20,7 +20,6 @@ import org.oxycblt.auxio.ui.isNight /** * The single [AppCompatActivity] for Auxio. * TODO: Port widgets to non-12 android - * TODO: Change how I handle lifecycle owners * TODO: Fix intent issues */ class MainActivity : AppCompatActivity() { diff --git a/app/src/main/java/org/oxycblt/auxio/playback/system/PlaybackNotification.kt b/app/src/main/java/org/oxycblt/auxio/playback/system/PlaybackNotification.kt index b5e203d8a..18f82cb25 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/system/PlaybackNotification.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/system/PlaybackNotification.kt @@ -30,12 +30,22 @@ class PlaybackNotification private constructor( context: Context, mediaToken: MediaSessionCompat.Token ) : NotificationCompat.Builder(context, CHANNEL_ID), PlaybackStateManager.Callback { + private val pendingIntentFlags = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) + PendingIntent.FLAG_IMMUTABLE + else 0 + init { + val activityIntent = PendingIntent.getActivity( + context, REQUEST_CODE, + Intent(context, MainActivity::class.java), + pendingIntentFlags + ) + setSmallIcon(R.drawable.ic_song) setCategory(NotificationCompat.CATEGORY_SERVICE) setShowWhen(false) setSilent(true) - setContentIntent(newPendingIntent(context, Intent(context, MainActivity::class.java))) + setContentIntent(activityIntent) setVisibility(NotificationCompat.VISIBILITY_PUBLIC) addAction(buildLoopAction(context, LoopMode.NONE)) @@ -152,23 +162,15 @@ class PlaybackNotification private constructor( ): NotificationCompat.Action { val action = NotificationCompat.Action.Builder( iconRes, actionName, - newPendingIntent(context, Intent(actionName)) + PendingIntent.getBroadcast( + context, REQUEST_CODE, + Intent(actionName), pendingIntentFlags + ) ) return action.build() } - private fun newPendingIntent(context: Context, intent: Intent): PendingIntent { - return PendingIntent.getBroadcast( - context, REQUEST_CODE, intent, - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { - PendingIntent.FLAG_IMMUTABLE - } else { - PendingIntent.FLAG_UPDATE_CURRENT - } - ) - } - companion object { const val CHANNEL_ID = "CHANNEL_AUXIO_PLAYBACK" const val NOTIFICATION_ID = 0xA0A0 diff --git a/app/src/main/java/org/oxycblt/auxio/widgets/BaseWidget.kt b/app/src/main/java/org/oxycblt/auxio/widgets/BaseWidget.kt index fcef93b56..87f4ba240 100644 --- a/app/src/main/java/org/oxycblt/auxio/widgets/BaseWidget.kt +++ b/app/src/main/java/org/oxycblt/auxio/widgets/BaseWidget.kt @@ -84,7 +84,9 @@ abstract class BaseWidget : AppWidgetProvider() { android.R.id.background, PendingIntent.getActivity( context, 0xA0A0, Intent(context, MainActivity::class.java), - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) PendingIntent.FLAG_IMMUTABLE else 0 + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) + PendingIntent.FLAG_IMMUTABLE + else 0 ) )