mirror of
https://github.com/signalapp/Signal-Android.git
synced 2025-12-21 03:28:47 +00:00
Expand the detail anchor if we select a conversation while the list is maximized.
This commit is contained in:
committed by
Greyson Parrelli
parent
63800306a0
commit
897461b594
@@ -333,15 +333,23 @@ class MainActivity : PassphraseRequiredActivity(), VoiceNoteMediaControllerOwner
|
|||||||
val wrappedNavigator = rememberNavigator(windowSizeClass, contentLayoutData, maxWidth)
|
val wrappedNavigator = rememberNavigator(windowSizeClass, contentLayoutData, maxWidth)
|
||||||
val listPaneWidth = contentLayoutData.rememberDefaultPanePreferredWidth(maxWidth)
|
val listPaneWidth = contentLayoutData.rememberDefaultPanePreferredWidth(maxWidth)
|
||||||
val halfPartitionWidth = contentLayoutData.partitionWidth / 2
|
val halfPartitionWidth = contentLayoutData.partitionWidth / 2
|
||||||
|
|
||||||
|
val detailOnlyAnchor = PaneExpansionAnchor.Offset.fromStart(72.dp + contentLayoutData.listPaddingStart + halfPartitionWidth)
|
||||||
|
val detailAndListAnchor = PaneExpansionAnchor.Offset.fromStart(listPaneWidth + halfPartitionWidth)
|
||||||
|
val listOnlyAnchor = PaneExpansionAnchor.Offset.fromEnd(contentLayoutData.detailPaddingEnd - halfPartitionWidth)
|
||||||
|
|
||||||
val paneExpansionState = rememberPaneExpansionState(
|
val paneExpansionState = rememberPaneExpansionState(
|
||||||
anchors = listOf(
|
anchors = listOf(detailOnlyAnchor, detailAndListAnchor, listOnlyAnchor)
|
||||||
PaneExpansionAnchor.Offset.fromStart(72.dp + contentLayoutData.listPaddingStart + halfPartitionWidth),
|
|
||||||
PaneExpansionAnchor.Offset.fromStart(listPaneWidth + halfPartitionWidth),
|
|
||||||
PaneExpansionAnchor.Offset.fromEnd(contentLayoutData.detailPaddingEnd - halfPartitionWidth)
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
|
|
||||||
val mutableInteractionSource = remember { MutableInteractionSource() }
|
val mutableInteractionSource = remember { MutableInteractionSource() }
|
||||||
|
|
||||||
|
LaunchedEffect(mainNavigationDetailLocation) {
|
||||||
|
if (paneExpansionState.currentAnchor == listOnlyAnchor) {
|
||||||
|
paneExpansionState.animateTo(detailOnlyAnchor)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
AppScaffold(
|
AppScaffold(
|
||||||
navigator = wrappedNavigator,
|
navigator = wrappedNavigator,
|
||||||
paneExpansionState = paneExpansionState,
|
paneExpansionState = paneExpansionState,
|
||||||
|
|||||||
Reference in New Issue
Block a user