Skip to content

v1.0.10 — fix nav back-press + restore in-player scroll blocking#14

Merged
undisputedP merged 1 commit into
mainfrom
claude/v1.0.10-sticky-and-pruned
May 9, 2026
Merged

v1.0.10 — fix nav back-press + restore in-player scroll blocking#14
undisputedP merged 1 commit into
mainfrom
claude/v1.0.10-sticky-and-pruned

Conversation

@undisputedP
Copy link
Copy Markdown
Owner

Summary

Fixes both v1.0.9 regressions reported on device.

1. Bottom-nav tabs were still being back-pressed away

v1.0.9 only narrowed the strict-class rule. The strong view-id rule was still firing on the Shorts shelf inside Subscriptions / You feeds (reel_recycler, shorts_container, shorts_container_layout) and on the outer YouTube playback layout (watch_while_layout, present on every regular video). Pruned STRONG_VIEW_ID_SUFFIXES to the six entries that contain player/pager and so only appear inside the full-screen Shorts player.

Also dropped the weak 3+ shorts text + scroller trigger — the "Your Shorts" section of the You tab has 3+ Shorts thumbnails inside a recycler and was false-positiving. Counters still computed and shown in the debug card.

2. Scrolling to the next Short inside the player was unblocked

v1.0.9 unsubscribed from typeWindowContentChanged to fix the v1.0.8 frame-rate drop. But moving from one Short to the next inside the player is a content change, not a window-state change — so we only ever dismissed the first one and the user could keep binging.

Re-subscribed, plus added a 5-second sticky window after each dismissal. Outside sticky, content events are dropped immediately (no tree walk → frame rate during normal browsing stays where v1.0.9 put it). Inside sticky, the existing 250ms throttle applies and we keep walking, which catches the in-player scroll.

Bumps versionCode 10 → 11, versionName 1.0.9 → 1.0.10.

Test plan

  • Install v1.0.10 APK
  • Tap each of the 5 bottom-nav buttons — all should open and stay open
  • Open Subscriptions, scroll past a Shorts shelf — tab stays put, scroll feels smooth
  • Open a regular video — plays normally, no back-press
  • Cold-open YouTube while it autoplays a Short → dismissed
  • Tap the Shorts tab → dismissed; tap again → dismissed again
  • If somehow you reach the Shorts player, swipe up to next Short → dismissed within ~250ms
  • Sit on Home / Subs for a minute, scroll the feed — frame rate stays smooth (sticky should have expired and content events are no-ops)

🤖 Generated with Claude Code

Two regressions from v1.0.9:

1. Bottom-nav buttons (Subscriptions, You, sometimes Home) were still
   getting back-pressed away. v1.0.9 only narrowed the strict-class
   rule; the strong-id rule still fired on view ids that show up on
   the Shorts shelf inside those feeds (`reel_recycler`,
   `shorts_container`, `shorts_container_layout`) and on the outer
   YouTube playback layout (`watch_while_layout`, present on every
   regular video). Pruned STRONG_VIEW_ID_SUFFIXES to the six entries
   that contain `player`/`pager` and so only appear inside the
   full-screen Shorts player.

2. Manual scroll between Shorts wasn't blocked. v1.0.9 unsubscribed
   from typeWindowContentChanged to fix the frame-rate drop, but
   scrolling to the next Short inside the player is a content change,
   not a window-state change — so we never got a chance to dismiss
   anything past the first Short.

   Re-subscribed to typeWindowContentChanged and added a 5s sticky
   window after each dismissal. Outside sticky, content events are
   dropped immediately (no tree walk → no frame-rate hit during
   normal browsing). Inside sticky, content events run the existing
   250ms-throttled tree walk, which catches the in-player scroll.

Also dropped the weak "3+ shorts text + scroller" rule from the
trigger — the "Your Shorts" section of the You tab has 3+ Shorts
thumbnails inside a recycler, so the rule false-positived. The
counters are still computed and surfaced in the debug card.

Bumps versionCode 10 -> 11, versionName 1.0.9 -> 1.0.10.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@undisputedP undisputedP merged commit 8261db6 into main May 9, 2026
2 checks passed
@undisputedP undisputedP deleted the claude/v1.0.10-sticky-and-pruned branch May 9, 2026 12:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant