Repository navigation
Make the app usable with a d-pad on Android TV - #486
Merged
LivingWithHippos merged 1 commit intoAug 19, 2026
Merged
LivingWithHippos merged 1 commit into
LivingWithHippos merged 1 commit into
Conversation
Every interactive control now draws a colored ring while focused, covering buttons, FABs, checkboxes, the toolbar's back and overflow icons, and list item cards. The ring is a foreground overlay invisible unless focused, so nothing changes for touch users. A number of controls were not actually reachable by d-pad in the first place. FloatingActionButtons across the app were clickable but never focusable. NestedScrollView also claims focus for itself in its own constructor, hiding the real content underneath it, so scrolling screens now use a small NonFocusableNestedScrollView instead. The color picker's quick select swatches are plain Views built in code and are not focusable by default either, so they got the same treatment. Two navigation bugs are fixed too. Pressing back while focus is inside a long list now moves focus to the bottom nav instead of doing nothing, since there was otherwise no way to reach the nav bar again from deep in an endless list. The toolbar's overflow button, being first in the layout, was silently grabbing default focus on every new screen, so focus now lands on the bottom nav there as well. The landscape torrents list also had its nextFocusDown pointed at a view id that does not exist in that layout, and the portrait list had no focus wiring at all. Bundled in is one small unrelated fix: a refresh button was missing from the portrait downloads and torrents lists, already present in landscape. Related to LivingWithHippos#376 Related to LivingWithHippos#452
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.
Every interactive control now draws a colored ring while focused, since there was often no visible feedback for where the remote's selection currently was. Covers buttons, FABs, checkboxes, list item cards and the toolbar's back and overflow icons.
A number of controls were not actually reachable with the d-pad in the first place. FloatingActionButtons across the app were clickable but never focusable. NestedScrollView also claims focus for itself in its own constructor, which hid the real content underneath it, so scrolling screens now use a small NonFocusableNestedScrollView instead.
This also fixes the two remote issues described in #376: pressing back while focus is inside a long list now moves focus to the bottom navigation bar instead of doing nothing, and the landscape torrents list's refresh button can now be reached with the d-pad (its nextFocusDown pointed at a view id that does not exist in that layout).
Bundled in is one small unrelated fix: a refresh button was missing from the portrait downloads and torrents lists, already present in landscape.
Validated on a real Google TV Streamer, but this touches a lot of screens so more testing and review is welcome.
Related to #376
Related to #452