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
83d2252e12
commit
1b09f823ee
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
|
// vc=19 / 0.1.0-AE — rust pipeline cutover. Extraction via
|
||||||
// strawcore-core (Sulkta-OSS/strawcore) via the UniFFI wrapper; no
|
// strawcore-core (Sulkta-OSS/strawcore) via the UniFFI wrapper; no
|
||||||
// NewPipeExtractor in the runtime path.
|
// NewPipeExtractor in the runtime path.
|
||||||
const val STRAW_VERSION_CODE = 49
|
const val STRAW_VERSION_CODE = 50
|
||||||
const val STRAW_VERSION_NAME = "0.1.0-BI"
|
const val STRAW_VERSION_NAME = "0.1.0-BJ"
|
||||||
const val STRAW_APPLICATION_ID = "com.sulkta.straw"
|
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.fillMaxWidth
|
||||||
import androidx.compose.foundation.layout.height
|
import androidx.compose.foundation.layout.height
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
|
import androidx.compose.foundation.layout.navigationBarsPadding
|
||||||
import androidx.compose.foundation.layout.statusBarsPadding
|
import androidx.compose.foundation.layout.statusBarsPadding
|
||||||
|
import com.sulkta.straw.feature.player.NowPlaying
|
||||||
import androidx.compose.foundation.rememberScrollState
|
import androidx.compose.foundation.rememberScrollState
|
||||||
import androidx.compose.foundation.verticalScroll
|
import androidx.compose.foundation.verticalScroll
|
||||||
import androidx.compose.material3.AlertDialog
|
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(
|
Column(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.fillMaxSize()
|
.fillMaxSize()
|
||||||
.statusBarsPadding()
|
.statusBarsPadding()
|
||||||
|
.navigationBarsPadding()
|
||||||
.verticalScroll(rememberScrollState())
|
.verticalScroll(rememberScrollState())
|
||||||
.padding(horizontal = 20.dp, vertical = 16.dp),
|
.padding(horizontal = 20.dp, vertical = 16.dp),
|
||||||
) {
|
) {
|
||||||
|
|
@ -415,6 +425,11 @@ fun SettingsScreen() {
|
||||||
Text("Pick export file…")
|
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 ->
|
importResult?.let { res ->
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue