Skip to content

Native InnerTube player extraction, scrub preview and fullscreen gesture pass - #1077

Merged
A-EDev merged 35 commits into
mainfrom
refactor/player-innertube
Sep 18, 2026
Merged

A-EDev merged 35 commits into
mainfrom
refactor/player-innertube

Conversation

@A-EDev

@A-EDev A-EDev commented Sep 18, 2026

Copy link
Copy Markdown
Owner

Summary

  • The video player resolves every load through the native InnerTube client — player screen, service-layer queue advance and watch metadata — replacing the second extraction stack on this path.
  • New scrub preview on the seek bar: a sliding filmstrip or a single frame, selected in Player Appearance, with the time, chapter and SponsorBlock segment labelled while scrubbing.
  • Most-replayed heatmap drawn above the seek bar with its peak badged, and chapters read from the watch response.
  • Frame-by-frame stepping while paused, behind a settings toggle that defaults off.
  • Fullscreen gesture pass: the system back-gesture edges no longer trigger seek, volume or brightness; the read-outs are centred; the transport row scales its spacing to the player width; the top read-outs clear the display cutout in portrait fullscreen.
  • The volume and brightness overlay style is picked from a sheet that previews each option.
  • Captions translate into the preferred language on every load path.

Related issue

Closes #1068
Closes #1057
Follows up on #1029

Change type

  • Bug fix
  • Feature
  • Refactor or maintenance
  • Build, packaging, or CI
  • Documentation

Validation

  • ./gradlew :app:assembleGithubDebug
  • ./gradlew :app:testGithubDebugUnitTest — 2003 tests, 0 failures
  • I ran any additional flavor-specific build or test tasks affected by this change. — :app:compileFossDebugKotlin, spotlessCheck
  • I manually tested the affected behavior on an Android device or emulator.

Test device and Android version: Poco X6 Pro, Android 16, HyperOS 3.0.9.0

Screenshots or recordings

To attach: scrub filmstrip and preview box, the rewatch heatmap, and the portrait-fullscreen top read-outs.

Risk and compatibility

  • The change does not introduce secrets, private data, or unexpected telemetry.
  • New user-facing text uses Android string resources.
  • Dependency and lockfile changes are intentional and limited to this PR.
  • Room schema changes include the required version bump and migration, or this PR does not change the Room schema.
  • Breaking changes and upgrade steps are clearly documented.

… caption-pairing fields the player response already returns
Copilot AI lite review requested due to automatic review settings September 18, 2026 07:45

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@github-actions github-actions Bot added player Video and audio playback ui Compose UI, theming, or Material 3 surfaces extraction InnerTube / NewPipe extraction and networking labels Sep 18, 2026
@A-EDev
A-EDev merged commit f16897f into main Sep 18, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

extraction InnerTube / NewPipe extraction and networking player Video and audio playback ui Compose UI, theming, or Material 3 surfaces

Projects

None yet

2 participants