Repository navigation
perf(handheld): UI review quick wins (less rebuilding, caches, off-thread picker, a11y) - #101
Open
xservzeroman wants to merge 1 commit into
Open
xservzeroman wants to merge 1 commit into
xservzeroman wants to merge 1 commit into
Conversation
…read picker, breath pause, a11y labels (test253) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
First round of the UI review (handheld): faster and lighter, no change in look. From a code review of
HandheldHomeActivity,Sw,QuickMenu,StatusCorner,DeviceApps,CustomArt.Changelog
groupRender).render()→renderPage():allGames()is memoised for the duration of one render (it ran 3 times: Home row, wash, selected game).DeviceApps: in-memory pinned list,info()cache,installed()cache, icon LRU (64);refresh()on resume drops them for installs/updates meanwhile. Caches used from the picker's worker thread are synchronized maps.CustomArt: the set of keys with a picture is read from disk once (no per-tile SHA-1 +exists()per render); LRU sized in bytes (24 MB); colour per picture memoised.showPicker()).FocusGlide.pauseBreath()/resumeBreath(): the infinite breathing animator pauses inonPause.treeHooked), not again on everybuildShell()(rotation, fold).StatusCornerand the TVQuickMenutick set text only when it changed.devtab; focus-ring radii forchip:andapp:.contentDescriptionon tiles, round buttons and Back.Not in this PR (need a look first)
Bigger items from the review, listed in the PR thread: 48 dp touch targets and font scaling on phones, one shared row builder, one QuickMenu palette for both apps, a recycled All games grid, keeping scroll position across background redraws.
To test
🤖 Generated with Claude Code