diff --git a/app/src/main/java/org/thoughtcrime/securesms/MainActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/MainActivity.kt index b314247bd3..90690e90b8 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/MainActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/MainActivity.kt @@ -37,6 +37,7 @@ import androidx.compose.foundation.layout.systemBarsPadding import androidx.compose.material3.MaterialTheme import androidx.compose.material3.SnackbarDuration import androidx.compose.material3.adaptive.ExperimentalMaterial3AdaptiveApi +import androidx.compose.material3.adaptive.layout.PaneExpansionAnchor import androidx.compose.material3.adaptive.layout.rememberPaneExpansionState import androidx.compose.material3.adaptive.navigation.ThreePaneScaffoldNavigator import androidx.compose.runtime.Composable @@ -50,6 +51,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.res.painterResource import androidx.compose.ui.unit.Dp +import androidx.compose.ui.unit.dp import androidx.fragment.app.DialogFragment import androidx.fragment.compose.AndroidFragment import androidx.fragment.compose.rememberFragmentState @@ -329,7 +331,15 @@ class MainActivity : PassphraseRequiredActivity(), VoiceNoteMediaControllerOwner MainContainer { val wrappedNavigator = rememberNavigator(windowSizeClass, contentLayoutData, maxWidth) - val paneExpansionState = rememberPaneExpansionState() + val listPaneWidth = contentLayoutData.rememberDefaultPanePreferredWidth(maxWidth) + val halfPartitionWidth = contentLayoutData.partitionWidth / 2 + val paneExpansionState = rememberPaneExpansionState( + anchors = listOf( + PaneExpansionAnchor.Offset.fromStart(72.dp + contentLayoutData.listPaddingStart + halfPartitionWidth), + PaneExpansionAnchor.Offset.fromStart(listPaneWidth + halfPartitionWidth), + PaneExpansionAnchor.Offset.fromEnd(contentLayoutData.detailPaddingEnd - halfPartitionWidth) + ) + ) val mutableInteractionSource = remember { MutableInteractionSource() } AppScaffold( diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/RemoteConfig.kt b/app/src/main/java/org/thoughtcrime/securesms/util/RemoteConfig.kt index 21541ba1fe..aa17207449 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/RemoteConfig.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/util/RemoteConfig.kt @@ -535,7 +535,7 @@ object RemoteConfig { key = "android.internalUser", hotSwappable = true ) { value -> - value.asBoolean(false) || Environment.IS_NIGHTLY || Environment.IS_STAGING + value.asBoolean(false) || Environment.IS_NIGHTLY || Environment.IS_STAGING } /** The raw client expiration JSON string. */ 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 4c11b8267b..26ffbf6f9b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/window/AppScaffold.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/window/AppScaffold.kt @@ -219,7 +219,7 @@ fun AppScaffold( return } - val minPaneWidth = 300.dp + val minPaneWidth = navigator.scaffoldDirective.defaultPanePreferredWidth NavigableListDetailPaneScaffold( navigator = navigator,