Skip to content

Launcher: pick a theme on the TV, with device.json for keys kept across themes - #3516

Closed
thatRailsGuy wants to merge 1 commit into
Gathin23:mainfrom
thatRailsGuy:feat-theme-picker
Closed

thatRailsGuy wants to merge 1 commit into
Gathin23:mainfrom
thatRailsGuy:feat-theme-picker

Conversation

@thatRailsGuy

@thatRailsGuy thatRailsGuy commented Nov 7, 2026 •

Copy link
Copy Markdown

tools/theme-catalog.sh (and theme-catalog.ps1) puts theme folders on the TV under themes/<name>/ without making any of them active. Launcher settings then shows a Theme row that copies the picked one over the active theme, as theme.sh would, and writes theme_revision as pick:<name> so the existing sync clears the on-TV choices and the row can show the current name. A device.json is laid over every theme (pushed or picked), so a TV's app_keys and live_tv_package survive a switch. Without a catalog the row stays hidden and nothing new runs. Docs: themes/README.md#switching-themes-on-the-tv, docs/launcher.md, and a Tools row in the README.

Prior art: the on-device picker in abhishek00235's fork (SHOWCASE.md), redone on current main, with folders found on the TV instead of a fixed list and the device layer added.

APK: 587,073 → 588,965 B (+1,892, 859 B under the gate).

Tested on: TCL 65QM6K (Google TV), Android 14, build UTT2.250416.001. All 28 themes pushed with the catalog script, switched between several on the TV, and the remote's app_keys buttons checked with the real remote after switching.

If this touches the launcher

  • Verified on a real TV, screenshot attached (screenshots to follow in a comment)
  • D-pad checked from every edge (Up, Down, Left, Right): the new row sits in the settings column and was navigated with the remote; not checked edge by edge
  • No network, no background service, no new permission
  • New strings in values/strings.xml and the other values-* folders: English and Hebrew only (test_hebrew_resources requires it). Adding the 20 fuller locales cost ~940 B and left the APK 3 B under the gate, so I left them for the translation workflow
  • Anything TV-specific is in config.xml or a theme, not in code

Checks: ./gradlew testReleaseUnitTest lintRelease assembleRelease clean (new ThemeCatalogTest), python -m unittest discover -s tests: 3097 tests OK.

…ss themes

tools/theme-catalog.sh (and its PowerShell twin) puts theme folders on the TV under themes/<name>/; Launcher
settings then shows a Theme row that copies the picked one over the active theme, as theme.sh would, and
clears the on-TV choices through theme_revision. A device.json is laid over every theme, so a TV's app_keys
and live_tv_package survive a switch. Without a catalog the row is hidden and nothing new runs. Tried on a
TCL 65QM6K (Google TV, Android 14) with all 28 themes.

Prior art: the on-device theme picker in abhishek00235's fork (SHOWCASE.md).
@github-actions

github-actions Bot commented Nov 7, 2026 •

Copy link
Copy Markdown

maintainer-bot review · this one needs a maintainer decision · Leans: close (60%)

Thank you for the careful device.json layer that keeps a TV's app_keys across theme switches, and for testing it with all 28 themes on a real QM6K. An on-TV theme picker is a bigger launcher feature than the small core takes, so we suggest it lives in your fork with a row in SHOWCASE.md, as the earlier on-TV theme reader did.

Why it goes to a maintainer: confidence 0.60 is below 0.65.
The bot's own suggestion would be: your own fork, with a row in SHOWCASE.md.

Checks

This is a suggestion; a maintainer makes the final call. A maintainer can comment /bot review to run it again.

Reviewed by maintainer-bot · runs on 0G Private Computer

@github-actions github-actions Bot added bot-leans:close Held for the maintainer; the review leans close launcher Changes under launcher/: the Android TV home screen app needs-maintainer labels Nov 7, 2026
@thatRailsGuy

Copy link
Copy Markdown
Author
pr-theme-list

@Gathin23

Gathin23 commented Nov 8, 2026

Copy link
Copy Markdown
Owner

@thatRailsGuy thank you for the device.json layer that keeps a TV's app_keys across switches, and for checking all 28 themes with the real remote on your QM6K. At +1.9 KB the picker is bigger than the room the core launcher has left, so it fits best in your fork. A one-line SHOWCASE.md row with your screenshot is very welcome, next to the earlier on-TV picker.

@Gathin23 Gathin23 closed this Nov 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bot-leans:close Held for the maintainer; the review leans close launcher Changes under launcher/: the Android TV home screen app needs-maintainer

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants