Skip to content

fix(calendar): consistent Library tabs, stable TV navigation and faster releases - #797

Merged
ProdigyV21 merged 5 commits into
mainfrom
codex/calendar-tv-navigation
Oct 8, 2026
Merged

ProdigyV21 merged 5 commits into
mainfrom
codex/calendar-tv-navigation

Conversation

@ProdigyV21

@ProdigyV21 ProdigyV21 commented Oct 8, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • Use the same Library tabs, spacing and focus styling on Calendar as on other Library sections.
  • Tighten the TV tab inset from 98dp to 74dp across all four Library sections, without changing topbar bounds or touch layouts. TV tests check all four sections and a maximum 12dp gap below visible navigation controls.
  • Keep native remote day navigation inside the displayed month. Change months only through explicit toolbar controls; make toolbar/grid/rail focus transitions deterministic.
  • Keep the month toolbar visible on ordinary TV viewports rather than scrolling it off screen on date focus.
  • Batch up to 20 missing TMDB seasons while preserving every relevant season, specials and normal persistent cache keys. Retry malformed or missing blocks independently.
  • Prioritize current shows without dropping older titles or increasing the five-request network limit. Coalesce season reads and briefly cache confirmed 404s; explicit Retry clears that cache.
  • Persist per-title month results with metadata-bounded expiry. Refresh new/stale titles only, reconcile current source memberships and removals, and never cache failures as successful empty schedules.
  • Reuse historical metadata for 24 hours, refresh active/unknown schedules at 30 minutes, and keep original write timestamps across process recreation. Bound disk storage to 4,096 files / 48 MiB.
  • Warm Calendar after six idle seconds on Home, yielding to input/navigation/backgrounding. Promote the same load on Library entry and prefetch adjacent months from cached metadata only, without extra HTTP requests.
  • Run mapping off Main and coalesce UI progress while preserving the first release and final complete result.

Verification

  • 58 Calendar unit tests passed.
  • Ten UI scenarios passed on a physical Android 14 TV, including native repeated keys, month boundaries, shared tab bounds, filtering and opening releases. Two phone-only scenarios were skipped on the landscape TV.
  • Real-account benchmark: 459 titles, 45 releases. Cold first release 3.276s; last new release 21.673s; complete cold scan 26.291s. Cached first release 0.199s; complete cached scan 2.130s, with identical release IDs. These measure repository delivery, not full image rendering.
  • One provider warning and 28 metadata warnings remain; two sampled movie records were confirmed HTTP 404s. The remaining warnings were not individually diagnosed. Retry/partial results remain visible.
  • Latest incremental-cache benchmark retained all 45 releases from the same 459 titles: cached first 90ms, cached complete 1.040s. Full cold scan 31.969s, first 4.156s, last new release 23.554s. The cold scan remains network-dependent, not instant.
  • Both additional ViewModel device tests passed for lazy loading, cancellation, foreground promotion and resuming incomplete loads. Their initial callback fixture selected the coroutine continuation; the corrected tests were rerun successfully.
  • Built the optimized sideload release and installed as an update with the existing signing certificate, preserving profiles/settings. Checked actual account Calendar artwork, 35 repeated presses in each direction, and opening a release in the release app. No playback was started during Calendar checks.

Scope / Limitations

The full first-ever cold scan is not instant. Existing month previews and metadata caches make repeat opens fast, while fresh metadata arrives progressively. This PR changes Android; it does not change or claim new verification of the web Calendar.

No credentials, APKs or account screenshots are included in this PR.

@github-actions github-actions Bot added documentation Improvements or additions to documentation area: android Changes to the Android app or Gradle build labels Oct 8, 2026
@ProdigyV21
ProdigyV21 merged commit b9db883 into main Oct 8, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: android Changes to the Android app or Gradle build documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant