diff --git a/app/src/main/java/org/thoughtcrime/securesms/MainActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/MainActivity.kt index 68d02981bb..9a66eded59 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/MainActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/MainActivity.kt @@ -333,15 +333,23 @@ class MainActivity : PassphraseRequiredActivity(), VoiceNoteMediaControllerOwner val wrappedNavigator = rememberNavigator(windowSizeClass, contentLayoutData, maxWidth) val listPaneWidth = contentLayoutData.rememberDefaultPanePreferredWidth(maxWidth) 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( - anchors = listOf( - PaneExpansionAnchor.Offset.fromStart(72.dp + contentLayoutData.listPaddingStart + halfPartitionWidth), - PaneExpansionAnchor.Offset.fromStart(listPaneWidth + halfPartitionWidth), - PaneExpansionAnchor.Offset.fromEnd(contentLayoutData.detailPaddingEnd - halfPartitionWidth) - ) + anchors = listOf(detailOnlyAnchor, detailAndListAnchor, listOnlyAnchor) ) + val mutableInteractionSource = remember { MutableInteractionSource() } + LaunchedEffect(mainNavigationDetailLocation) { + if (paneExpansionState.currentAnchor == listOnlyAnchor) { + paneExpansionState.animateTo(detailOnlyAnchor) + } + } + AppScaffold( navigator = wrappedNavigator, paneExpansionState = paneExpansionState,