diff --git a/app/src/main/java/org/thoughtcrime/securesms/MainActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/MainActivity.kt index 632b6c12ff..fd446f541b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/MainActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/MainActivity.kt @@ -31,11 +31,17 @@ import androidx.compose.foundation.layout.BoxWithConstraintsScope import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.WindowInsets +import androidx.compose.foundation.layout.WindowInsetsSides +import androidx.compose.foundation.layout.add +import androidx.compose.foundation.layout.displayCutout import androidx.compose.foundation.layout.displayCutoutPadding import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.navigationBars import androidx.compose.foundation.layout.navigationBarsPadding +import androidx.compose.foundation.layout.only import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.systemBarsPadding +import androidx.compose.foundation.layout.windowInsetsPadding import androidx.compose.material3.MaterialTheme import androidx.compose.material3.SnackbarDuration import androidx.compose.material3.adaptive.ExperimentalMaterial3AdaptiveApi @@ -719,12 +725,19 @@ class MainActivity : PassphraseRequiredActivity(), VoiceNoteMediaControllerOwner SignalTheme.colors.colorSurface1 } - val modifier = if (windowSizeClass.isSplitPane()) { - Modifier - .systemBarsPadding() - .displayCutoutPadding() - } else { - Modifier + val modifier = when { + windowSizeClass.isSplitPane() -> { + Modifier + .systemBarsPadding() + .displayCutoutPadding() + } + + else -> + Modifier + .windowInsetsPadding( + WindowInsets.navigationBars.only(WindowInsetsSides.Horizontal) + .add(WindowInsets.displayCutout.only(WindowInsetsSides.Horizontal)) + ) } BoxWithConstraints( diff --git a/app/src/main/java/org/thoughtcrime/securesms/window/AppScaffold.kt b/app/src/main/java/org/thoughtcrime/securesms/window/AppScaffold.kt index cef968f215..dc3eded448 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/window/AppScaffold.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/window/AppScaffold.kt @@ -13,14 +13,13 @@ import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.WindowInsets -import androidx.compose.foundation.layout.consumeWindowInsets import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.systemBars import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material3.LocalMinimumInteractiveComponentSize import androidx.compose.material3.Scaffold -import androidx.compose.material3.ScaffoldDefaults import androidx.compose.material3.Text import androidx.compose.material3.adaptive.ExperimentalMaterial3AdaptiveApi import androidx.compose.material3.adaptive.currentWindowAdaptiveInfo @@ -102,11 +101,10 @@ fun AppScaffold( paneExpansionState: PaneExpansionState = rememberPaneExpansionState(), paneExpansionDragHandle: (@Composable ThreePaneScaffoldScope.(PaneExpansionState) -> Unit)? = null, snackbarHost: @Composable () -> Unit = {}, - contentWindowInsets: WindowInsets = ScaffoldDefaults.contentWindowInsets, + contentWindowInsets: WindowInsets = WindowInsets.systemBars, animatorFactory: AppScaffoldAnimationStateFactory = AppScaffoldAnimationStateFactory.Default ) { val isForcedCompact = !LocalInspectionMode.current && !isLargeScreenSupportEnabled() - val windowSizeClass = currentWindowAdaptiveInfo().windowSizeClass if (isForcedCompact) { ListAndNavigation( @@ -229,9 +227,7 @@ fun AppScaffold( }, paneExpansionDragHandle = paneExpansionDragHandle, paneExpansionState = paneExpansionState, - modifier = Modifier - .padding(paddingValues) - .consumeWindowInsets(contentWindowInsets) + modifier = Modifier.padding(paddingValues) ) } }