mirror of
https://github.com/signalapp/Signal-Android.git
synced 2025-12-20 11:08:31 +00:00
Fix two pane layout positioning and sizing.
This commit is contained in:
committed by
jeffrey-signal
parent
1862dded65
commit
043b7b0a3d
@@ -363,7 +363,7 @@ class MainActivity : PassphraseRequiredActivity(), VoiceNoteMediaControllerOwner
|
||||
val detailOffset = if (mainToolbarState.mode == MainToolbarMode.SEARCH || mainToolbarState.mode == MainToolbarMode.ACTION_MODE) 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)
|
||||
val listOnlyAnchor = PaneExpansionAnchor.Offset.fromEnd(contentLayoutData.detailPaddingEnd - halfPartitionWidth)
|
||||
|
||||
val paneExpansionState = rememberPaneExpansionState(
|
||||
anchors = listOf(detailOnlyAnchor, detailAndListAnchor, listOnlyAnchor),
|
||||
|
||||
@@ -86,10 +86,7 @@ data class MainContentLayoutData(
|
||||
windowSizeClass.isExtended() -> 24.dp
|
||||
else -> 13.dp
|
||||
},
|
||||
listPaddingStart = when {
|
||||
windowSizeClass.isExtended() -> 16.dp
|
||||
else -> 0.dp
|
||||
},
|
||||
listPaddingStart = 0.dp,
|
||||
detailPaddingEnd = when {
|
||||
!windowSizeClass.isSplitPane() -> 0.dp
|
||||
windowSizeClass.isExtended() -> 24.dp
|
||||
|
||||
@@ -176,6 +176,10 @@ enum class WindowSizeClass(
|
||||
}
|
||||
|
||||
private fun getSizeClassForOrientationAndSystemSizeClass(orientation: Int, windowSizeClass: androidx.window.core.layout.WindowSizeClass): WindowSizeClass {
|
||||
if (windowSizeClass.windowWidthSizeClass == WindowWidthSizeClass.COMPACT || windowSizeClass.windowHeightSizeClass == WindowHeightSizeClass.COMPACT) {
|
||||
return getCompactSizeClassForOrientation(orientation)
|
||||
}
|
||||
|
||||
return when (orientation) {
|
||||
Configuration.ORIENTATION_PORTRAIT, Configuration.ORIENTATION_UNDEFINED, Configuration.ORIENTATION_SQUARE -> {
|
||||
when (windowSizeClass.windowWidthSizeClass) {
|
||||
@@ -189,13 +193,7 @@ enum class WindowSizeClass(
|
||||
Configuration.ORIENTATION_LANDSCAPE -> {
|
||||
when (windowSizeClass.windowWidthSizeClass) {
|
||||
WindowWidthSizeClass.COMPACT -> COMPACT_LANDSCAPE
|
||||
WindowWidthSizeClass.MEDIUM -> {
|
||||
if (windowSizeClass.windowHeightSizeClass == WindowHeightSizeClass.COMPACT) {
|
||||
COMPACT_LANDSCAPE
|
||||
} else {
|
||||
MEDIUM_LANDSCAPE
|
||||
}
|
||||
}
|
||||
WindowWidthSizeClass.MEDIUM -> MEDIUM_LANDSCAPE
|
||||
WindowWidthSizeClass.EXPANDED -> EXTENDED_LANDSCAPE
|
||||
else -> error("Unsupported.")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user