From 35887f62f81b4eda08a4ab5a1ef927c509c7d96b Mon Sep 17 00:00:00 2001 From: vfsfitvnm Date: Sat, 23 Jul 2022 12:04:46 +0200 Subject: [PATCH] Move playing song menu button to the bottom --- .../vimusic/ui/views/PlayerBottomSheet.kt | 23 +++- .../vfsfitvnm/vimusic/ui/views/PlayerView.kt | 125 ++++++++---------- 2 files changed, 76 insertions(+), 72 deletions(-) diff --git a/app/src/main/kotlin/it/vfsfitvnm/vimusic/ui/views/PlayerBottomSheet.kt b/app/src/main/kotlin/it/vfsfitvnm/vimusic/ui/views/PlayerBottomSheet.kt index 3b6eff6..deef3db 100644 --- a/app/src/main/kotlin/it/vfsfitvnm/vimusic/ui/views/PlayerBottomSheet.kt +++ b/app/src/main/kotlin/it/vfsfitvnm/vimusic/ui/views/PlayerBottomSheet.kt @@ -20,8 +20,11 @@ import it.vfsfitvnm.vimusic.ui.styling.LocalAppearance @Composable fun PlayerBottomSheet( layoutState: BottomSheetState, + isShowingLyrics: Boolean, onShowLyrics: () -> Unit, + isShowingStatsForNerds: Boolean, onShowStatsForNerds: () -> Unit, + onShowMenu: () -> Unit, onGlobalRouteEmitted: () -> Unit, modifier: Modifier = Modifier, ) { @@ -54,6 +57,12 @@ fun PlayerBottomSheet( .padding(all = 8.dp) .size(20.dp) ) + + Spacer( + modifier = Modifier + .padding(all = 8.dp) + .size(20.dp) + ) } Image( @@ -72,7 +81,7 @@ fun PlayerBottomSheet( Image( painter = painterResource(R.drawable.text), contentDescription = null, - colorFilter = ColorFilter.tint(colorPalette.text), + colorFilter = ColorFilter.tint(if (isShowingLyrics) colorPalette.text else colorPalette.textDisabled), modifier = Modifier .clickable(onClick = onShowLyrics) .padding(all = 8.dp) @@ -82,12 +91,22 @@ fun PlayerBottomSheet( Image( painter = painterResource(R.drawable.information), contentDescription = null, - colorFilter = ColorFilter.tint(colorPalette.text), + colorFilter = ColorFilter.tint(if (isShowingStatsForNerds) colorPalette.text else colorPalette.textDisabled), modifier = Modifier .clickable(onClick = onShowStatsForNerds) .padding(all = 8.dp) .size(20.dp) ) + + Image( + painter = painterResource(R.drawable.ellipsis_horizontal), + contentDescription = null, + colorFilter = ColorFilter.tint(colorPalette.text), + modifier = Modifier + .clickable(onClick = onShowMenu) + .padding(all = 8.dp) + .size(20.dp) + ) } } } diff --git a/app/src/main/kotlin/it/vfsfitvnm/vimusic/ui/views/PlayerView.kt b/app/src/main/kotlin/it/vfsfitvnm/vimusic/ui/views/PlayerView.kt index 8976f85..2815f07 100644 --- a/app/src/main/kotlin/it/vfsfitvnm/vimusic/ui/views/PlayerView.kt +++ b/app/src/main/kotlin/it/vfsfitvnm/vimusic/ui/views/PlayerView.kt @@ -255,86 +255,71 @@ fun PlayerView( } } - TopAppBar { - Spacer( - modifier = Modifier - .padding(horizontal = 16.dp, vertical = 8.dp) - .size(24.dp) - ) - - Image( - painter = painterResource(R.drawable.ellipsis_horizontal), - contentDescription = null, - colorFilter = ColorFilter.tint(colorPalette.text), - modifier = Modifier - .clickable { - menuState.display { - val resultRegistryOwner = LocalActivityResultRegistryOwner.current - - BaseMediaItemMenu( - mediaItem = mediaItem, - onStartRadio = { - binder.stopRadio() - binder.player.seamlessPlay(mediaItem) - binder.setupRadio( - NavigationEndpoint.Endpoint.Watch(videoId = mediaItem.mediaId) - ) - }, - onGoToEqualizer = { - val intent = - Intent(AudioEffect.ACTION_DISPLAY_AUDIO_EFFECT_CONTROL_PANEL).apply { - putExtra( - AudioEffect.EXTRA_AUDIO_SESSION, - binder.player.audioSessionId - ) - putExtra( - AudioEffect.EXTRA_PACKAGE_NAME, - context.packageName - ) - putExtra( - AudioEffect.EXTRA_CONTENT_TYPE, - AudioEffect.CONTENT_TYPE_MUSIC - ) - } - - if (intent.resolveActivity(context.packageManager) != null) { - val contract = - ActivityResultContracts.StartActivityForResult() - - resultRegistryOwner?.activityResultRegistry - ?.register("", contract) {} - ?.launch(intent) - } else { - Toast - .makeText( - context, - "No equalizer app found!", - Toast.LENGTH_SHORT - ) - .show() - } - }, - onSetSleepTimer = {}, - onDismiss = menuState::hide, - onGlobalRouteEmitted = layoutState::collapseSoft, - ) - } - } - .padding(horizontal = 16.dp, vertical = 8.dp) - .size(24.dp) - ) - } - PlayerBottomSheet( layoutState = rememberBottomSheetState(64.dp, layoutState.upperBound), + isShowingLyrics = isShowingLyrics, onShowLyrics = { isShowingStatsForNerds = false isShowingLyrics = !isShowingLyrics }, + isShowingStatsForNerds = isShowingStatsForNerds, onShowStatsForNerds = { isShowingLyrics = false isShowingStatsForNerds = !isShowingStatsForNerds }, + onShowMenu = { + menuState.display { + val resultRegistryOwner = LocalActivityResultRegistryOwner.current + + BaseMediaItemMenu( + mediaItem = mediaItem, + onStartRadio = { + binder.stopRadio() + binder.player.seamlessPlay(mediaItem) + binder.setupRadio( + NavigationEndpoint.Endpoint.Watch(videoId = mediaItem.mediaId) + ) + }, + onGoToEqualizer = { + val intent = + Intent(AudioEffect.ACTION_DISPLAY_AUDIO_EFFECT_CONTROL_PANEL).apply { + putExtra( + AudioEffect.EXTRA_AUDIO_SESSION, + binder.player.audioSessionId + ) + putExtra( + AudioEffect.EXTRA_PACKAGE_NAME, + context.packageName + ) + putExtra( + AudioEffect.EXTRA_CONTENT_TYPE, + AudioEffect.CONTENT_TYPE_MUSIC + ) + } + + if (intent.resolveActivity(context.packageManager) != null) { + val contract = + ActivityResultContracts.StartActivityForResult() + + resultRegistryOwner?.activityResultRegistry + ?.register("", contract) {} + ?.launch(intent) + } else { + Toast + .makeText( + context, + "No equalizer app found!", + Toast.LENGTH_SHORT + ) + .show() + } + }, + onSetSleepTimer = {}, + onDismiss = menuState::hide, + onGlobalRouteEmitted = layoutState::collapseSoft, + ) + } + }, onGlobalRouteEmitted = layoutState::collapseSoft, modifier = Modifier .align(Alignment.BottomCenter)