Add MainActivity scaffold anchoring.

This commit is contained in:
Alex Hart
2025-09-08 14:29:30 -03:00
committed by Greyson Parrelli
parent a5922c31b1
commit 909ea6b925
3 changed files with 13 additions and 3 deletions

View File

@@ -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(

View File

@@ -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. */

View File

@@ -219,7 +219,7 @@ fun AppScaffold(
return
}
val minPaneWidth = 300.dp
val minPaneWidth = navigator.scaffoldDirective.defaultPanePreferredWidth
NavigableListDetailPaneScaffold(
navigator = navigator,