Fix RTL layout on Android TV details screen and top toolbar - #1249
Merged
RadicalMuffinMan merged 2 commits intoAug 23, 2026
Merged
Conversation
Reverses the earlier product decision to keep the top navbar pinned to a fixed LTR order across all locales. The icon row (Home...Settings), the avatar, and the clock now all mirror under RTL like the rest of the app: - Removed the outer Directionality(ltr) wrapper around the toolbar so the icon row's Row and the start/end Aligns follow ambient Directionality. - Switched the avatar/back-arrow slot and the clock slot from physical Alignment.centerLeft/centerRight to AlignmentDirectional.centerStart/ centerEnd, so the avatar now sits on the physical-right and the clock on the physical-left under RTL. - Removed the avatar's hardcoded arrowRight-jumps-to-Home special case; the existing geometry-based _moveWithinToolbar already handles this correctly regardless of which side the row mirrors to. - Made the Settings button's edge-swallow and its jump to the inline libraries trigger button RTL-aware, since Settings is no longer always the toolbar's rightmost item. - Pinned TopMusicBar's own Directionality to ltr explicitly, since it was previously shielded by the removed wrapper and hasn't been audited for RTL - keeps its behavior unchanged. - Guarded the clock's HH:MM text with an explicit LTR textDirection so the Unicode bidi algorithm can't reorder the digit groups, same fix already applied to the Quick Connect code display.
The movie/show details screen's action button row (Play/Subtitles/ Trailer/etc.) had its D-pad Left/Right hardcoded to a fixed index step, so a physical Right press moved focus left under RTL. The step direction now flips under RTL, matching the fix already applied elsewhere (LockedFocusRow, focusable_action_bar.dart). The action row and the Cast/Crew/Studios/Details/Similar tab bar also hugged the physical-left edge regardless of locale; both now use AlignmentDirectional so they sit on the correct (reading-start) side under RTL. Split out of Moonfin-Client#1239 at reviewer request.
15 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Split out of #1239 at reviewer request — this PR contains only the RTL fixes, with the remote-control feature left in #1239.
LockedFocusRow/focusable_action_bar.dart.AlignmentDirectionalso they sit on the correct (reading-start) side.HH:MMtext is pinned to LTR text direction so Unicode bidi can't reorder the digit groups (same fix already applied to the Quick Connect code).Related
Platform