diff --git a/app/src/main/kotlin/it/vfsfitvnm/vimusic/MainActivity.kt b/app/src/main/kotlin/it/vfsfitvnm/vimusic/MainActivity.kt index bd71a9e..7827f5c 100644 --- a/app/src/main/kotlin/it/vfsfitvnm/vimusic/MainActivity.kt +++ b/app/src/main/kotlin/it/vfsfitvnm/vimusic/MainActivity.kt @@ -73,6 +73,8 @@ class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + val expandPlayerBottomSheet = intent?.extras?.getBoolean("expandPlayerBottomSheet", false) ?: false + uri = intent?.data setContent { @@ -189,7 +191,9 @@ class MainActivity : ComponentActivity() { when (val uri = uri) { null -> { val playerBottomSheetState = rememberBottomSheetState( - lowerBound = Dimensions.collapsedPlayer, upperBound = maxHeight + lowerBound = Dimensions.collapsedPlayer, + upperBound = maxHeight, + isExpanded = expandPlayerBottomSheet ) HomeScreen() diff --git a/app/src/main/kotlin/it/vfsfitvnm/vimusic/service/PlayerService.kt b/app/src/main/kotlin/it/vfsfitvnm/vimusic/service/PlayerService.kt index 8e2aadb..eacc81c 100644 --- a/app/src/main/kotlin/it/vfsfitvnm/vimusic/service/PlayerService.kt +++ b/app/src/main/kotlin/it/vfsfitvnm/vimusic/service/PlayerService.kt @@ -417,7 +417,11 @@ class PlayerService : InvincibleService(), Player.Listener, PlaybackStatsListene .setSmallIcon(player.playerError?.let { R.drawable.alert_circle } ?: R.drawable.app_icon) .setOngoing(false) - .setContentIntent(activityPendingIntent()) + .setContentIntent(activityPendingIntent( + flags = PendingIntent.FLAG_UPDATE_CURRENT + ) { + putExtra("expandPlayerBottomSheet", true) + }) .setDeleteIntent(broadCastPendingIntent()) .setVisibility(Notification.VISIBILITY_PUBLIC) .setCategory(NotificationCompat.CATEGORY_TRANSPORT) diff --git a/app/src/main/kotlin/it/vfsfitvnm/vimusic/ui/components/BottomSheet.kt b/app/src/main/kotlin/it/vfsfitvnm/vimusic/ui/components/BottomSheet.kt index d2e2129..90a1285 100644 --- a/app/src/main/kotlin/it/vfsfitvnm/vimusic/ui/components/BottomSheet.kt +++ b/app/src/main/kotlin/it/vfsfitvnm/vimusic/ui/components/BottomSheet.kt @@ -232,12 +232,12 @@ class BottomSheetState( } @Composable -fun rememberBottomSheetState(lowerBound: Dp, upperBound: Dp): BottomSheetState { +fun rememberBottomSheetState(lowerBound: Dp, upperBound: Dp, isExpanded: Boolean = false): BottomSheetState { val density = LocalDensity.current val coroutineScope = rememberCoroutineScope() var wasExpanded by rememberSaveable { - mutableStateOf(false) + mutableStateOf(isExpanded) } return remember(lowerBound, upperBound, coroutineScope) { diff --git a/app/src/main/kotlin/it/vfsfitvnm/vimusic/utils/Context.kt b/app/src/main/kotlin/it/vfsfitvnm/vimusic/utils/Context.kt index e99b64f..dc08dbc 100644 --- a/app/src/main/kotlin/it/vfsfitvnm/vimusic/utils/Context.kt +++ b/app/src/main/kotlin/it/vfsfitvnm/vimusic/utils/Context.kt @@ -21,9 +21,10 @@ inline fun Context.broadCastPendingIntent( inline fun Context.activityPendingIntent( requestCode: Int = 0, - flags: Int = if (Build.VERSION.SDK_INT >= 23) PendingIntent.FLAG_IMMUTABLE else 0, + flags: Int = 0, + block: Intent.() -> Unit = {}, ): PendingIntent = - PendingIntent.getActivity(this, requestCode, intent(), flags) + PendingIntent.getActivity(this, requestCode, intent().apply(block), (if (Build.VERSION.SDK_INT >= 23) PendingIntent.FLAG_IMMUTABLE else 0) or flags) val Context.isIgnoringBatteryOptimizations: Boolean get() = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {