Skip to content

Launcher: stock_home_redirect_delay_ms, to keep a launcherx screen opened over its home (#2779) - #2954

Open
TeaTax16 wants to merge 1 commit into
Gathin23:mainfrom
TeaTax16:stock-home-redirect-delay
Open

TeaTax16 wants to merge 1 commit into
Gathin23:mainfrom
TeaTax16:stock-home-redirect-delay

Conversation

@TeaTax16

@TeaTax16 TeaTax16 commented Nov 1, 2026 •

Copy link
Copy Markdown
Contributor

Adds stock_home_redirect_delay_ms (0 to 2000, off by default): stock_home_redirect waits that long before sending the stock home back, and any other window of the stock launcher that comes up meanwhile cancels it, so Google TV's profile chooser stays on screen. This is the first part of #2779; the key_filter half is already the note in themes/README.md.

It costs 232 B: 588,361 B with this change on today's main (588,129 B without it), against the 589,824 B gate. Rebased onto main after #3121; the MoGo 3 Pro list keeps one sentence saying this projector doesn't need the delay.

Tested on: XGIMI MoGo 3 Pro (G0035), Google TV 14, build UKNV.260707.001.15802496

How it was tried: the MoGo's own profile button goes through XGIMI's xrmservice, which opens the chooser directly, with no launcherx home first, so it never hits this bug. I reproduced the BenQ GV32 sequence from the issue with am start of .home.HomeActivity and then .profile.chooser.ProfileChooserActivity 70 ms later, with launcherx enabled:

  • The chooser's window event reached the service 167 to 321 ms after the home's, because its window takes that long to show.
  • Delay 0 (as before): the chooser was covered every time.
  • 200 ms: covered in 6 of 8 runs.
  • 400 ms and 500 ms: the chooser stayed in 12 of 12 runs. A plain launcherx home was still sent back here, about 560 ms after it showed.

So the docs suggest 400. @snoopyh42, could you try 400 on the GV32, where the profile button starts the home itself?

stock_home_redirect_delay_ms keeping Google TV's profile chooser on screen on a MoGo 3 Pro

If this touches the launcher

  • Verified on a real TV, screenshot attached
  • D-pad checked from every edge (Up, Down, Left, Right): not applicable, no focus or navigation change
  • No network, no background service, no new permission
  • New strings in values/strings.xml and the other values-* folders: not applicable, no new strings
  • 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

Checks: testReleaseUnitTest lintRelease assembleRelease with zero lint errors; the Python suite passes (2,894 tests). Six JVM tests in HomeKeyServiceTest cover the redirect decision.

Part of #2779.

🤖 Generated with Claude Code

@TeaTax16
TeaTax16 marked this pull request as ready for review November 1, 2026 13:06
@github-actions

github-actions Bot commented Nov 1, 2026 •

Copy link
Copy Markdown

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

Thank you for the careful timing measurements on a real TV and the clear NOW/LATER/CANCEL tests. This looks ready to merge as an off-by-default, config-only extension of stock_home_redirect. A run on the BenQ GV32 itself would still be good to report back on #2779.

Why it goes to a maintainer: changes the Home/launch path (HomeKeyService.java), which usually needs a run on a real TV (confidence 0.65 < 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 2, 2026

Copy link
Copy Markdown
Owner

@TeaTax16 thank you, the delay is off by default, costs about 280 bytes, and the cancel-on-another-launcherx-window rule is neatly pinned by the HomeKeyServiceTest cases. Because it changes how stock_home_redirect sends Home back, and the MoGo never hits the bug itself, we'd like one run on a set that does before it goes in: @snoopyh42's GV32 at 400 ms, as you asked, is ideal. Nothing else is needed from you, and we'll look again in 7 days.

…ened over its home (Gathin23#2779)

stock_home_redirect can wait before sending the stock home back, and any other window of the stock
launcher that comes up meanwhile cancels it, so Google TV's profile chooser stays on screen. Off (0) by
default. Tried on an XGIMI MoGo 3 Pro by starting launcherx's home and then its chooser 70 ms later, as
the BenQ GV32's profile button does: the chooser took 167-321 ms to show, and 400 kept it every time.

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

Gathin23 commented Nov 5, 2026

Copy link
Copy Markdown
Owner

@TeaTax16 thank you for the rebase and for keeping it to 232 B. The timing runs over launcherx are exactly what we needed. We are still waiting on one run on a set that really hits the bug. @snoopyh42, could you try stock_home_redirect_delay_ms at 400 on the GV32 and say whether the profile chooser stays up? We'll decide on 9 Nov.

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 google-tv launcherx / setupwraith Home takeover, Android 11+ visibility, wireless-debugging pairing 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