Restore default theme when the queue is cleared
This commit is contained in:
@@ -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<PlayerService.Binder?> { 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<PaddingValues> { TODO() }
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user