From b08497440f5cbb2bf1ad65d9acb35352ca0f30b3 Mon Sep 17 00:00:00 2001 From: Damontecres Date: Sat, 16 May 2026 13:05:01 -0400 Subject: [PATCH] Show playback dialogs on the right side for RTL --- .../wholphin/ui/playback/PlaybackDialog.kt | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/playback/PlaybackDialog.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/playback/PlaybackDialog.kt index 5b0bd5d8..c3bff78c 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/ui/playback/PlaybackDialog.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/ui/playback/PlaybackDialog.kt @@ -21,8 +21,10 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.focus.FocusRequester import androidx.compose.ui.focus.focusRequester import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.platform.LocalLayoutDirection import androidx.compose.ui.platform.LocalView import androidx.compose.ui.res.stringResource +import androidx.compose.ui.unit.LayoutDirection import androidx.compose.ui.unit.dp import androidx.compose.ui.window.Dialog import androidx.compose.ui.window.DialogProperties @@ -85,6 +87,10 @@ fun PlaybackDialog( onPlaybackActionClick: (PlaybackAction) -> Unit, onChangeSubtitleDelay: (Duration) -> Unit, ) { + val isLtr = LocalLayoutDirection.current == LayoutDirection.Ltr + // TODO, shouldn't this work out of the box? + val leftGravity = remember(isLtr) { if (isLtr) Gravity.START else Gravity.END } + val rightGravity = remember(isLtr) { if (isLtr) Gravity.END else Gravity.START } when (type) { PlaybackDialogType.DEBUG -> { throw IllegalStateException("Should not open a dialog with " + PlaybackDialogType.DEBUG) @@ -113,7 +119,7 @@ fun PlaybackDialog( onDismissRequest.invoke() onPlaybackActionClick.invoke(PlaybackAction.SearchCaptions) }, - gravity = Gravity.END, + gravity = rightGravity, ) } @@ -167,7 +173,7 @@ fun PlaybackDialog( onClickPlaybackDialogType(choice.data) } }, - gravity = Gravity.START, + gravity = leftGravity, ) } @@ -182,7 +188,7 @@ fun PlaybackDialog( onSelectChoice = { _, choice -> onPlaybackActionClick.invoke(PlaybackAction.ToggleAudio(choice.index)) }, - gravity = Gravity.END, + gravity = rightGravity, ) } @@ -205,7 +211,7 @@ fun PlaybackDialog( onSelectChoice = { _, value -> onPlaybackActionClick.invoke(PlaybackAction.PlaybackSpeed(value.data)) }, - gravity = Gravity.START, + gravity = leftGravity, ) } @@ -228,7 +234,7 @@ fun PlaybackDialog( onSelectChoice = { _, choice -> onPlaybackActionClick.invoke(PlaybackAction.Scale(choice.data)) }, - gravity = Gravity.START, + gravity = leftGravity, ) }