From fae96d1114ed0a98c96b6f8066e2884cf10fd332 Mon Sep 17 00:00:00 2001 From: vfsfitvnm Date: Mon, 10 Oct 2022 11:48:58 +0200 Subject: [PATCH] Do not expand player when queue is restored (#396) --- .../main/kotlin/it/vfsfitvnm/vimusic/MainActivity.kt | 10 +++++++--- .../it/vfsfitvnm/vimusic/service/PlayerService.kt | 4 +++- .../it/vfsfitvnm/vimusic/ui/components/BottomSheet.kt | 2 +- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/app/src/main/kotlin/it/vfsfitvnm/vimusic/MainActivity.kt b/app/src/main/kotlin/it/vfsfitvnm/vimusic/MainActivity.kt index 87f214a..ff2acaf 100644 --- a/app/src/main/kotlin/it/vfsfitvnm/vimusic/MainActivity.kt +++ b/app/src/main/kotlin/it/vfsfitvnm/vimusic/MainActivity.kt @@ -359,9 +359,9 @@ class MainActivity : ComponentActivity() { if (playerBottomSheetState.isDismissed) { if (launchedFromNotification) { intent.replaceExtras(Bundle()) - playerBottomSheetState.expandSoft() + playerBottomSheetState.expand(tween(700)) } else { - playerBottomSheetState.collapseSoft() + playerBottomSheetState.collapse(tween(700)) } } } @@ -369,7 +369,11 @@ class MainActivity : ComponentActivity() { player.listener(object : Player.Listener { override fun onMediaItemTransition(mediaItem: MediaItem?, reason: Int) { if (reason == Player.MEDIA_ITEM_TRANSITION_REASON_PLAYLIST_CHANGED && mediaItem != null) { - playerBottomSheetState.expand(tween(500)) + if (mediaItem.mediaMetadata.extras?.getBoolean("isFromPersistentQueue") != true) { + playerBottomSheetState.expand(tween(500)) + } else { + playerBottomSheetState.collapse(tween(700)) + } } } }) 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 7231fe9..a5f8528 100644 --- a/app/src/main/kotlin/it/vfsfitvnm/vimusic/service/PlayerService.kt +++ b/app/src/main/kotlin/it/vfsfitvnm/vimusic/service/PlayerService.kt @@ -377,7 +377,9 @@ class PlayerService : InvincibleService(), Player.Listener, PlaybackStatsListene mediaItem.mediaItem.buildUpon() .setUri(mediaItem.mediaItem.mediaId) .setCustomCacheKey(mediaItem.mediaItem.mediaId) - .build() + .build().apply { + mediaMetadata.extras?.putBoolean("isFromPersistentQueue", true) + } }, index, queuedSong[index].position ?: C.TIME_UNSET 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 c2df8b5..0699f15 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 @@ -129,7 +129,7 @@ class BottomSheetState( 1f - (animatable.upperBound!! - animatable.value) / (animatable.upperBound!! - collapsedBound) } - private fun collapse(animationSpec: AnimationSpec) { + fun collapse(animationSpec: AnimationSpec) { onAnchorChanged(collapsedAnchor) coroutineScope.launch { animatable.animateTo(collapsedBound, animationSpec)