diff --git a/android/app/src/main/java/com/fabledsword/minstrel/shared/widgets/ShellScaffold.kt b/android/app/src/main/java/com/fabledsword/minstrel/shared/widgets/ShellScaffold.kt index 112b103a..423a5e9d 100644 --- a/android/app/src/main/java/com/fabledsword/minstrel/shared/widgets/ShellScaffold.kt +++ b/android/app/src/main/java/com/fabledsword/minstrel/shared/widgets/ShellScaffold.kt @@ -4,6 +4,7 @@ import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.statusBarsPadding import androidx.compose.material3.SnackbarHost import androidx.compose.material3.SnackbarHostState import androidx.compose.runtime.Composable @@ -61,7 +62,12 @@ fun ShellScaffold( snackbarHostState.showSnackbar(msg) } } - Column(modifier = modifier.fillMaxSize()) { + // Consume the status-bar inset once here so the banner stack sits + // below the status bar (mirrors Flutter's SafeArea(bottom:false)). + // statusBarsPadding consumes the inset for descendants, so the in- + // shell screens' app bars no longer re-pad for the status bar — + // avoiding a double inset while fixing banners drawing under it. + Column(modifier = modifier.fillMaxSize().statusBarsPadding()) { // Banner slot. VersionTooOldBanner appears when the server's // min_client_version exceeds our build; UpdateBanner softly // nudges an available (newer-than-installed) APK; and