hide the mini player only while the keyboard is up

This commit is contained in:
austinried
2026-10-04 00:29:56 +00:00
parent 82b64c7bc7
commit 187a4b3dff
2 changed files with 3 additions and 12 deletions
@@ -19,6 +19,7 @@ import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.WindowInsets
import androidx.compose.foundation.layout.consumeWindowInsets
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.ime
import androidx.compose.foundation.layout.imePadding
import androidx.compose.foundation.layout.navigationBars
import androidx.compose.runtime.Composable
@@ -137,8 +138,6 @@ private fun MainNavigation() {
LaunchedEffect(Unit) { if (nowPlayingOpen) nowPlayingProgress = 1f }
val playerVisible = playback.item != null
var librarySearching by rememberSaveable { mutableStateOf(false) }
val showMiniPlayer = playerVisible && !librarySearching
LaunchedEffect(playerVisible) {
if (!playerVisible) {
settleJob?.cancel()
@@ -148,6 +147,8 @@ private fun MainNavigation() {
}
val density = LocalDensity.current
val navBarInset = with(density) { WindowInsets.navigationBars.getBottom(this).toDp() }
val imeVisible = WindowInsets.ime.getBottom(density) > 0
val showMiniPlayer = playerVisible && !imeVisible
Box(Modifier.fillMaxSize()) {
Column(Modifier.fillMaxSize().imePadding()) {
@@ -187,7 +188,6 @@ private fun MainNavigation() {
onArtistClick = { artist -> navController.navigate(Routes.artist(artist.id, artist.coverArt)) },
onPlaylistClick = { playlist -> navController.navigate(Routes.playlist(playlist.id)) },
onOpenSettings = { navController.navigate(Routes.SETTINGS) },
onSearchActiveChange = { librarySearching = it },
bottomInset = if (showMiniPlayer) 0.dp else navBarInset,
)
}
@@ -57,7 +57,6 @@ import androidx.compose.material3.TextField
import androidx.compose.material3.TextFieldDefaults
import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.runtime.Composable
import androidx.compose.runtime.DisposableEffect
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.SideEffect
import androidx.compose.runtime.getValue
@@ -166,7 +165,6 @@ fun LibraryRoute(
onArtistClick: (Artist) -> Unit,
onPlaylistClick: (Playlist) -> Unit,
onOpenSettings: () -> Unit,
onSearchActiveChange: (Boolean) -> Unit,
bottomInset: Dp,
viewModel: LibraryViewModel = koinViewModel(),
) {
@@ -198,7 +196,6 @@ fun LibraryRoute(
onSongClick = viewModel::playSong,
onSync = viewModel::sync,
onOpenSettings = onOpenSettings,
onSearchActiveChange = onSearchActiveChange,
playingSongId = playingSongId,
listQuery = listQuery,
resetKeys = resetKeys,
@@ -253,7 +250,6 @@ fun LibraryScreen(
onClearFilters: () -> Unit = {},
search: String = "",
onSearchChange: (String) -> Unit = {},
onSearchActiveChange: (Boolean) -> Unit = {},
modifier: Modifier = Modifier,
) {
val pagerState =
@@ -265,11 +261,6 @@ fun LibraryScreen(
var searchActive by rememberSaveable { mutableStateOf(false) }
val searchFocus = remember { FocusRequester() }
DisposableEffect(searchActive) {
onSearchActiveChange(searchActive)
onDispose { onSearchActiveChange(false) }
}
LaunchedEffect(pagerState) {
snapshotFlow { pagerState.currentPage }.collect { page ->
onTabSelected(LibraryTab.entries[page])