From 41ba3383b2e60a7c85c5e829b7bf2712e16bcd5c Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Thu, 30 Oct 2025 15:15:11 -0300 Subject: [PATCH] Make navigation rail adaptive for small medium screens. --- .../securesms/main/MainNavigation.kt | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/main/MainNavigation.kt b/app/src/main/java/org/thoughtcrime/securesms/main/MainNavigation.kt index f4cf4c0b47..e30ed65a27 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/main/MainNavigation.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/main/MainNavigation.kt @@ -12,6 +12,7 @@ import androidx.compose.animation.core.tween import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.BoxScope +import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.WindowInsets import androidx.compose.foundation.layout.defaultMinSize import androidx.compose.foundation.layout.height @@ -42,6 +43,7 @@ import androidx.compose.ui.res.colorResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.drawText import androidx.compose.ui.text.rememberTextMeasurer +import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.IntSize import androidx.compose.ui.unit.dp import androidx.core.graphics.BlendModeColorFilterCompat @@ -213,15 +215,18 @@ fun MainNavigationRail( onDestinationSelected: (MainNavigationListLocation) -> Unit ) { NavigationRail( - containerColor = SignalTheme.colors.colorSurface1, - header = { - MainFloatingActionButtons( - destination = state.currentListLocation, - callback = mainFloatingActionButtonsCallback, - modifier = Modifier.padding(vertical = 40.dp) - ) - } + containerColor = SignalTheme.colors.colorSurface1 ) { + Spacer(modifier = Modifier.height(40.dp).weight(1f, fill = false)) + + MainFloatingActionButtons( + destination = state.currentListLocation, + callback = mainFloatingActionButtonsCallback, + modifier = Modifier.padding(vertical = 8.dp) + ) + + Spacer(modifier = Modifier.height(40.dp).weight(1f, fill = false)) + val entries = remember(state.isStoriesFeatureEnabled) { if (state.isStoriesFeatureEnabled) { MainNavigationListLocation.entries.filterNot { it == MainNavigationListLocation.ARCHIVE } @@ -342,6 +347,7 @@ private fun formatCount(count: Int): String { } @DayNightPreviews +@Preview(device = "spec:parent=pixel_7,orientation=landscape") @Composable private fun MainNavigationRailPreview() { Previews.Preview {