mirror of
https://github.com/signalapp/Signal-Android.git
synced 2025-12-21 03:28:47 +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 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 detailOnlyAnchor = PaneExpansionAnchor.Offset.fromStart(detailOffset + contentLayoutData.listPaddingStart + halfPartitionWidth)
|
||||||
val detailAndListAnchor = PaneExpansionAnchor.Offset.fromStart(listPaneWidth + 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(
|
val paneExpansionState = rememberPaneExpansionState(
|
||||||
anchors = listOf(detailOnlyAnchor, detailAndListAnchor, listOnlyAnchor),
|
anchors = listOf(detailOnlyAnchor, detailAndListAnchor, listOnlyAnchor),
|
||||||
|
|||||||
@@ -86,10 +86,7 @@ data class MainContentLayoutData(
|
|||||||
windowSizeClass.isExtended() -> 24.dp
|
windowSizeClass.isExtended() -> 24.dp
|
||||||
else -> 13.dp
|
else -> 13.dp
|
||||||
},
|
},
|
||||||
listPaddingStart = when {
|
listPaddingStart = 0.dp,
|
||||||
windowSizeClass.isExtended() -> 16.dp
|
|
||||||
else -> 0.dp
|
|
||||||
},
|
|
||||||
detailPaddingEnd = when {
|
detailPaddingEnd = when {
|
||||||
!windowSizeClass.isSplitPane() -> 0.dp
|
!windowSizeClass.isSplitPane() -> 0.dp
|
||||||
windowSizeClass.isExtended() -> 24.dp
|
windowSizeClass.isExtended() -> 24.dp
|
||||||
|
|||||||
@@ -176,6 +176,10 @@ enum class WindowSizeClass(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun getSizeClassForOrientationAndSystemSizeClass(orientation: Int, windowSizeClass: androidx.window.core.layout.WindowSizeClass): 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) {
|
return when (orientation) {
|
||||||
Configuration.ORIENTATION_PORTRAIT, Configuration.ORIENTATION_UNDEFINED, Configuration.ORIENTATION_SQUARE -> {
|
Configuration.ORIENTATION_PORTRAIT, Configuration.ORIENTATION_UNDEFINED, Configuration.ORIENTATION_SQUARE -> {
|
||||||
when (windowSizeClass.windowWidthSizeClass) {
|
when (windowSizeClass.windowWidthSizeClass) {
|
||||||
@@ -189,13 +193,7 @@ enum class WindowSizeClass(
|
|||||||
Configuration.ORIENTATION_LANDSCAPE -> {
|
Configuration.ORIENTATION_LANDSCAPE -> {
|
||||||
when (windowSizeClass.windowWidthSizeClass) {
|
when (windowSizeClass.windowWidthSizeClass) {
|
||||||
WindowWidthSizeClass.COMPACT -> COMPACT_LANDSCAPE
|
WindowWidthSizeClass.COMPACT -> COMPACT_LANDSCAPE
|
||||||
WindowWidthSizeClass.MEDIUM -> {
|
WindowWidthSizeClass.MEDIUM -> MEDIUM_LANDSCAPE
|
||||||
if (windowSizeClass.windowHeightSizeClass == WindowHeightSizeClass.COMPACT) {
|
|
||||||
COMPACT_LANDSCAPE
|
|
||||||
} else {
|
|
||||||
MEDIUM_LANDSCAPE
|
|
||||||
}
|
|
||||||
}
|
|
||||||
WindowWidthSizeClass.EXPANDED -> EXTENDED_LANDSCAPE
|
WindowWidthSizeClass.EXPANDED -> EXTENDED_LANDSCAPE
|
||||||
else -> error("Unsupported.")
|
else -> error("Unsupported.")
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user