Skip to content

fix: TV right-to-left rail and keyboard, whole post images, Home repeats, lyrics translation, picture-in-picture and every artist - #1659

Merged
A-EDev merged 15 commits into
mainfrom
fix/tv-rtl-post-images-feed-repeats-pip
Nov 2, 2026
Merged

A-EDev merged 15 commits into
mainfrom
fix/tv-rtl-post-images-feed-repeats-pip

Conversation

@A-EDev

@A-EDev A-EDev commented Nov 2, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • TV: the navigation rail follows the layout direction, so the remote opens and leaves it in Arabic and other right-to-left languages. Pressing OK on a search field now opens the system keyboard.
  • Post images load without YouTube's square feed crop. The full-size viewer keeps each image's own shape and adds pinch and double-tap zoom, swiping between a post's images, and a close button.
  • Home counts a card as seen once at least half of it stays on screen for a second, even mid-scroll. A repeat sighting counts again after 30 minutes, so videos seen twice stay out of every lane, the subscriptions backlog included.
  • Lyrics: the Translation switch is disabled and says so when a song's lyrics have no translation.
  • Picture-in-picture: on Android 12 and later the system animates into the window from the video's own bounds, and on Android 15 the controls hide as the transition starts. The window gets a Listen in background button.
  • Music: when a song from history, liked songs or a playlist names more artists than it has ids for, tapping its artists fetches the song's full credits once (cached, 6 s timeout). The player and the song menu then offer every artist, and the result is saved back into the queue.
  • R8 keep rules point at the Gson music models in data.music.model.

Related issue

Closes #1602
Closes #1585
Closes #1565
Closes #1524
Closes #1523

Change type

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

Validation

  • ./gradlew :app:assembleGithubDebug: passed
  • ./gradlew :app:testGithubDebugUnitTest: 4,875 tests, 45 skipped, 0 failures
  • I ran any additional flavor-specific build or test tasks affected by this change.
    • ./gradlew ktlintCheck: passed
    • ./gradlew :app:compileFossDebugKotlin: passed
    • ./gradlew :app:minifyGithubReleaseWithR8: passed; seeds.txt keeps MusicTrack, MusicArtist and MusicItemType with their fields
    • NeuroBenchmarkTest: seenRepeat 0.079 to 0.064, nDCG 0.968 to 0.980; Music and Home replay benchmarks unchanged
    • python3 .github/scripts/nightly_notes.py --check: passed
  • I manually tested the affected behavior on an Android device or emulator.

Test device and Android version: Xiaomi phone, HyperOS (Android 16); Android TV emulator (API 36); resizable emulator (API 37)

Screenshots or recordings

Risk and compatibility

  • No Room schema change.

  • Network: one extra queue request per multi-artist song, made only on an artist tap and cached for the session.

  • Picture-in-picture params are pushed again once the video has been laid out, never while the window is entering or open.

  • Home shows fewer repeats, so pools can run shorter between refreshes.

  • 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.

Copilot AI balanced review requested due to automatic review settings November 2, 2026 21:32

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 insufficient remaining quota. Try requesting a review at a lower effort level.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.

@github-actions github-actions Bot added documentation Improvements or additions to documentation player Video and audio playback algorithm Recommendation engine and math ui Compose UI, theming, or Material 3 surfaces build Gradle, dependencies, packaging, or R8 labels Nov 2, 2026
@A-EDev
A-EDev merged commit 6da72a5 into main Nov 2, 2026
9 checks passed
@A-EDev
A-EDev deleted the fix/tv-rtl-post-images-feed-repeats-pip branch November 2, 2026 21:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

algorithm Recommendation engine and math build Gradle, dependencies, packaging, or R8 documentation Improvements or additions to documentation player Video and audio playback ui Compose UI, theming, or Material 3 surfaces

Projects

None yet

2 participants