mirror of
https://github.com/austinried/subtracks.git
synced 2026-11-10 15:11:58 +01:00
hide the mini player only while the keyboard is up
This commit is contained in:
@@ -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])
|
||||
|
||||
Reference in New Issue
Block a user