mirror of
https://github.com/signalapp/Signal-Android.git
synced 2025-12-24 13:08:46 +00:00
Add better handling for pane dragging during search.
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user