Fix two pane layout positioning and sizing.

This commit is contained in:
Alex Hart
2025-10-27 14:59:58 -03:00
committed by jeffrey-signal
parent 1862dded65
commit 043b7b0a3d
3 changed files with 7 additions and 12 deletions

View File

@@ -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),

View File

@@ -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

View File

@@ -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.")
}