diff --git a/app/build.gradle b/app/build.gradle index 7015bb90d..c40c4cfc7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,7 +4,7 @@ apply plugin: "kotlin-kapt" apply plugin: "androidx.navigation.safeargs.kotlin" android { - compileSdkVersion 30 + compileSdkVersion 31 buildToolsVersion "30.0.3" defaultConfig { @@ -13,7 +13,7 @@ android { versionCode 7 minSdkVersion 21 - targetSdkVersion 30 + targetSdkVersion 31 buildFeatures { dataBinding true 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 2a2129feb..b5e203d8a 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 @@ -31,17 +31,11 @@ class PlaybackNotification private constructor( mediaToken: MediaSessionCompat.Token ) : NotificationCompat.Builder(context, CHANNEL_ID), PlaybackStateManager.Callback { init { - val mainActivityIntent = PendingIntent.getActivity( - context, REQUEST_CODE, - Intent(context, MainActivity::class.java), - PendingIntent.FLAG_UPDATE_CURRENT - ) - setSmallIcon(R.drawable.ic_song) setCategory(NotificationCompat.CATEGORY_SERVICE) setShowWhen(false) setSilent(true) - setContentIntent(mainActivityIntent) + setContentIntent(newPendingIntent(context, Intent(context, MainActivity::class.java))) setVisibility(NotificationCompat.VISIBILITY_PUBLIC) addAction(buildLoopAction(context, LoopMode.NONE)) @@ -158,15 +152,23 @@ class PlaybackNotification private constructor( ): NotificationCompat.Action { val action = NotificationCompat.Action.Builder( iconRes, actionName, - PendingIntent.getBroadcast( - context, REQUEST_CODE, - Intent(actionName), PendingIntent.FLAG_UPDATE_CURRENT, - ) + newPendingIntent(context, Intent(actionName)) ) 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/ui/InterfaceUtils.kt b/app/src/main/java/org/oxycblt/auxio/ui/InterfaceUtils.kt index d1ccb97ff..554996188 100644 --- a/app/src/main/java/org/oxycblt/auxio/ui/InterfaceUtils.kt +++ b/app/src/main/java/org/oxycblt/auxio/ui/InterfaceUtils.kt @@ -5,7 +5,6 @@ import android.content.Context import android.content.res.ColorStateList import android.content.res.Configuration import android.content.res.Resources -import android.graphics.Point import android.graphics.drawable.AnimatedVectorDrawable import android.graphics.drawable.Drawable import android.os.Build @@ -235,25 +234,19 @@ fun Activity.isIrregularLandscape(): Boolean { * @return If the system bars are on the bottom, false if no. */ private fun isSystemBarOnBottom(activity: Activity): Boolean { - val realPoint = Point() val metrics = DisplayMetrics() - var width = 0 - var height = 0 + var width: Int + var height: Int if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { - activity.display?.let { display -> - display.getRealSize(realPoint) - - activity.windowManager.currentWindowMetrics.bounds.also { - width = it.width() - height = it.height() - } + activity.windowManager.currentWindowMetrics.bounds.also { + width = it.width() + height = it.height() } } else { @Suppress("DEPRECATION") activity.getSystemServiceSafe(WindowManager::class).apply { - defaultDisplay.getRealSize(realPoint) defaultDisplay.getMetrics(metrics) width = metrics.widthPixels