Skip to content

Launcher: home_hold_panel, a held Home opens the quick panel where no dashboard answers it - #3241

Closed
Belseck wants to merge 1 commit into
Gathin23:mainfrom
Belseck:launcher-home-hold-panel
Closed

Belseck wants to merge 1 commit into
Gathin23:mainfrom
Belseck:launcher-home-hold-panel

Conversation

@Belseck

@Belseck Belseck commented Nov 4, 2026 •

Copy link
Copy Markdown
Contributor

On Google TV, Android sends a held Home to android.app.action.TOGGLE_NOTIFICATION_HANDLER_PANEL, and only the stock launcher's dashboard (launcherx/.dashboard.DashboardHandler on a Chromecast with Google TV 4K) answers it. Once debloat.txt disables launcherx, a held Home does nothing. home_hold_panel (off by default, config.xml or a theme) makes HomeKeyService open the existing QuickSettingsActivity on a held Home, only where nothing answers that action, so a TV that still has its dashboard keeps it.

The hold is timed in the service (getLongPressTimeout() + 50 ms) because the accessibility filter only sees the first DOWN and the UP: Android makes the repeats after it, so getRepeatCount() never reaches 1 there. The press is not consumed: a short one still opens Home through Android, and Android consumes the long one. With the switch off nothing new runs; the manifest gains a <queries> entry for the action, no permission.

Tested on: Chromecast with Google TV 4K (sabrina), Google TV 14, UTTC.250917.004, launcherx disabled, HOME_KEY_SERVICE=1, a build with the switch on. Home held on the real remote opened the panel:

home_hold_panel on the Chromecast: the quick panel open under the Settings pill

APK 588,429 B against 588,129 B without the change (+300 B), under the 589,824 B gate; still 574 KB, so STATS and the README sizes stay. Launcher unit tests (with HomeHoldPanelTest), lint (0 errors), test_switches, test_helper_table and test_home_long_press_home pass; the suites that need a POSIX shell are skipped or fail on Windows the same way without this change.

If this touches the launcher

  • Verified on a real TV, screenshot attached
  • D-pad checked from every edge (Up, Down, Left, Right) — the panel is the existing one, unchanged
  • No network, no background service, no new permission
  • New strings in values/strings.xml and the other values-* folders — none added
  • Anything TV-specific is in config.xml or a theme, not in code

If this adds a theme key (a switch)

  • A screenshot of the key on a real TV and its row in docs/switches.md

Related

One of five pull requests that came out of a Chromecast with Google TV 4K and the ideas discussion #3246:

#3284 (the panel as a full-height sheet) is closed, so this one no longer needs a rebase over it.

🤖 Generated with Claude Code

… dashboard answers it

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Nov 4, 2026 •

Copy link
Copy Markdown

maintainer-bot review · this one needs a maintainer decision · Leans: merge (72%)

Thank you for the careful work on why the hold has to be timed inside the service, and for testing it on a real sabrina. This looks ready to merge as an off-by-default switch, much like home_long_press_home.

Why it goes to a maintainer: changes the Home/launch path (HomeKeyService.java), which usually needs a run on a real TV (confidence 0.72 < 0.85).
The bot's own suggestion would be: merge.

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

@Gathin23

Gathin23 commented Nov 5, 2026

Copy link
Copy Markdown
Owner

@Belseck thank you, this is careful work: timing the hold inside HomeKeyService because the filter never sees the repeats is a neat find, and the sabrina test is clear. With about 1.7 KB of launcher room left and nothing freeing more, the core only takes fixes most owners need, so this one fits best in your fork. A one-line SHOWCASE.md row pointing at it is very welcome.

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

Labels

bot-leans:merge Held for the maintainer; the review leans merge 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