vc=50: Settings respects nav-bar inset + minibar overlay
Last rows of Settings were rendering under the 3-button nav and
under the floating minibar. Now:
* Column gets .navigationBarsPadding() so it clears the system
nav bar / gesture bar at the bottom.
* Reactive minibarReserve (72dp when NowPlaying.current != null,
else 0dp) added as a tail Spacer to clear the 64dp BottomCenter
minibar chip. Only consumed when something's actually playing —
no wasted space otherwise.
This commit is contained in:
parent
714a2f8a92
commit
208cdf6326
2 changed files with 17 additions and 2 deletions
|
|
@ -55,6 +55,6 @@ const val NEWPIPE_APPLICATION_ID_NEW = "net.newpipe.app"
|
|||
// vc=19 / 0.1.0-AE — rust pipeline cutover. Extraction via
|
||||
// strawcore-core (Sulkta-Coop/strawcore) via the UniFFI wrapper; no
|
||||
// NewPipeExtractor in the runtime path.
|
||||
const val STRAW_VERSION_CODE = 49
|
||||
const val STRAW_VERSION_NAME = "0.1.0-BI"
|
||||
const val STRAW_VERSION_CODE = 50
|
||||
const val STRAW_VERSION_NAME = "0.1.0-BJ"
|
||||
const val STRAW_APPLICATION_ID = "com.sulkta.straw"
|
||||
|
|
|
|||
|
|
@ -16,7 +16,9 @@ import androidx.compose.foundation.layout.fillMaxSize
|
|||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
import androidx.compose.foundation.layout.height
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.layout.navigationBarsPadding
|
||||
import androidx.compose.foundation.layout.statusBarsPadding
|
||||
import com.sulkta.straw.feature.player.NowPlaying
|
||||
import androidx.compose.foundation.rememberScrollState
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
import androidx.compose.material3.AlertDialog
|
||||
|
|
@ -77,10 +79,18 @@ fun SettingsScreen() {
|
|||
}
|
||||
}
|
||||
|
||||
// Clear the gesture-bar / 3-button nav bar at the bottom and add
|
||||
// extra room for the minibar overlay when something's playing —
|
||||
// otherwise the bottom rows of Settings render UNDER both. The
|
||||
// minibar is a process-wide BottomCenter overlay (StrawActivity
|
||||
// ScreenContent) so each scrolling screen has to leave its own gap.
|
||||
val showingMinibar by NowPlaying.current.collectAsState()
|
||||
val minibarReserve = if (showingMinibar != null) 72.dp else 0.dp
|
||||
Column(
|
||||
modifier = Modifier
|
||||
.fillMaxSize()
|
||||
.statusBarsPadding()
|
||||
.navigationBarsPadding()
|
||||
.verticalScroll(rememberScrollState())
|
||||
.padding(horizontal = 20.dp, vertical = 16.dp),
|
||||
) {
|
||||
|
|
@ -415,6 +425,11 @@ fun SettingsScreen() {
|
|||
Text("Pick export file…")
|
||||
}
|
||||
}
|
||||
|
||||
// Tail spacer to clear the minibar overlay when something's
|
||||
// playing. Without this the last Settings row gets eaten by
|
||||
// the 64dp BottomCenter chip.
|
||||
Spacer(modifier = Modifier.height(minibarReserve))
|
||||
}
|
||||
|
||||
importResult?.let { res ->
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue