Add better handling for pane dragging during search.

This commit is contained in:
Alex Hart
2025-10-29 16:46:29 -03:00
parent be933648b2
commit eb72b88a16
2 changed files with 14 additions and 6 deletions

View File

@@ -340,7 +340,7 @@ class MainActivity : PassphraseRequiredActivity(), VoiceNoteMediaControllerOwner
}
val windowSizeClass = WindowSizeClass.rememberWindowSizeClass()
val contentLayoutData = MainContentLayoutData.rememberContentLayoutData()
val contentLayoutData = MainContentLayoutData.rememberContentLayoutData(mainToolbarState.mode)
MainContainer {
val wrappedNavigator = rememberNavigator(windowSizeClass, contentLayoutData, maxWidth)
@@ -349,7 +349,7 @@ class MainActivity : PassphraseRequiredActivity(), VoiceNoteMediaControllerOwner
val anchors = remember(contentLayoutData, mainToolbarState) {
val halfPartitionWidth = contentLayoutData.partitionWidth / 2
val detailOffset = if (mainToolbarState.mode == MainToolbarMode.SEARCH || mainToolbarState.mode == MainToolbarMode.ACTION_MODE) 0.dp else 80.dp
val detailOffset = if (mainToolbarState.mode == MainToolbarMode.SEARCH) 0.dp else 80.dp
val detailOnlyAnchor = PaneExpansionAnchor.Offset.fromStart(detailOffset + contentLayoutData.listPaddingStart + halfPartitionWidth)
val detailAndListAnchor = PaneExpansionAnchor.Offset.fromStart(listPaneWidth + halfPartitionWidth)
val listOnlyAnchor = PaneExpansionAnchor.Offset.fromEnd(contentLayoutData.detailPaddingEnd - halfPartitionWidth)

View File

@@ -63,13 +63,13 @@ data class MainContentLayoutData(
companion object {
/**
* Uses the WindowSizeClass to build out a MainContentLayoutData.
* Uses the [WindowSizeClass] and [MainToolbarMode] to build out a MainContentLayoutData.
*/
@Composable
fun rememberContentLayoutData(): MainContentLayoutData {
fun rememberContentLayoutData(mode: MainToolbarMode): MainContentLayoutData {
val windowSizeClass = WindowSizeClass.rememberWindowSizeClass()
return remember(windowSizeClass) {
return remember(windowSizeClass, mode) {
MainContentLayoutData(
shape = when {
!windowSizeClass.isSplitPane() -> RectangleShape
@@ -86,7 +86,15 @@ data class MainContentLayoutData(
windowSizeClass.isExtended() -> 24.dp
else -> 13.dp
},
listPaddingStart = 0.dp,
listPaddingStart = when {
!windowSizeClass.isSplitPane() -> 0.dp
else -> {
when (mode) {
MainToolbarMode.SEARCH -> 24.dp
else -> 0.dp
}
}
},
detailPaddingEnd = when {
!windowSizeClass.isSplitPane() -> 0.dp
windowSizeClass.isExtended() -> 24.dp