diff --git a/app/src/main/kotlin/it/vfsfitvnm/vimusic/MainActivity.kt b/app/src/main/kotlin/it/vfsfitvnm/vimusic/MainActivity.kt index ca9f396..3004afd 100644 --- a/app/src/main/kotlin/it/vfsfitvnm/vimusic/MainActivity.kt +++ b/app/src/main/kotlin/it/vfsfitvnm/vimusic/MainActivity.kt @@ -153,7 +153,11 @@ class MainActivity : ComponentActivity() { binder?.setBitmapListener { bitmap: Bitmap? -> if (bitmap == null) { val colorPalette = - colorPaletteOf(ColorPaletteName.Dynamic, colorPaletteMode, isSystemInDarkTheme) + colorPaletteOf( + ColorPaletteName.Dynamic, + colorPaletteMode, + isSystemInDarkTheme + ) setSystemBarAppearance(colorPalette.isDark) @@ -170,7 +174,10 @@ class MainActivity : ComponentActivity() { withContext(Dispatchers.Main) { setSystemBarAppearance(it.isDark) } - appearance = appearance.copy(colorPalette = it, typography = typographyOf(it.text)) + appearance = appearance.copy( + colorPalette = it, + typography = typographyOf(it.text) + ) } } } @@ -181,10 +188,16 @@ class MainActivity : ComponentActivity() { when (key) { colorPaletteNameKey, colorPaletteModeKey -> { val colorPaletteName = - sharedPreferences.getEnum(colorPaletteNameKey, ColorPaletteName.Dynamic) + sharedPreferences.getEnum( + colorPaletteNameKey, + ColorPaletteName.Dynamic + ) val colorPaletteMode = - sharedPreferences.getEnum(colorPaletteModeKey, ColorPaletteMode.System) + sharedPreferences.getEnum( + colorPaletteModeKey, + ColorPaletteMode.System + ) if (colorPaletteName == ColorPaletteName.Dynamic) { setDynamicPalette(colorPaletteMode) @@ -311,13 +324,17 @@ class MainActivity : ComponentActivity() { .align(Alignment.BottomCenter) ) - binder?.player?.let { player -> - ExpandPlayerOnPlaylistChange( - player = player, - expand = { - playerBottomSheetState.expand(tween(500)) + DisposableEffect(binder?.player) { + binder?.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)) + } } - ) + }) ?: onDispose { } } } else -> IntentUriScreen(uri = uri) @@ -348,17 +365,4 @@ class MainActivity : ComponentActivity() { val LocalPlayerServiceBinder = staticCompositionLocalOf { null } -@Composable -fun ExpandPlayerOnPlaylistChange(player: Player, expand: () -> Unit) { - DisposableEffect(player, expand) { - player.listener(object : Player.Listener { - override fun onMediaItemTransition(mediaItem: MediaItem?, reason: Int) { - if (reason == Player.MEDIA_ITEM_TRANSITION_REASON_PLAYLIST_CHANGED && mediaItem != null) { - expand() - } - } - }) - } -} - val LocalPlayerAwarePaddingValues = staticCompositionLocalOf { TODO() } 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 e05e34c..6641cd5 100644 --- a/app/src/main/kotlin/it/vfsfitvnm/vimusic/service/PlayerService.kt +++ b/app/src/main/kotlin/it/vfsfitvnm/vimusic/service/PlayerService.kt @@ -272,6 +272,10 @@ class PlayerService : InvincibleService(), Player.Listener, PlaybackStatsListene maybeRecoverPlaybackError() maybeNormalizeVolume() maybeProcessRadio() + + if (mediaItem == null) { + bitmapProvider.listener?.invoke(null) + } } private fun maybeRecoverPlaybackError() { @@ -681,9 +685,6 @@ class PlayerService : InvincibleService(), Player.Listener, PlaybackStatsListene var isLoadingRadio by mutableStateOf(false) private set - val lastBitmap: Bitmap? - get() = bitmapProvider.lastBitmap - fun setBitmapListener(listener: ((Bitmap?) -> Unit)?) { bitmapProvider.listener = listener }