Skip to content

feat(player): tilt for fullscreen with rotation locked (#1219) - #1462

Merged
A-EDev merged 3 commits into
mainfrom
feat/tilt-fullscreen-rotation-locked
Oct 27, 2026
Merged

A-EDev merged 3 commits into
mainfrom
feat/tilt-fullscreen-rotation-locked

Conversation

@A-EDev

@A-EDev A-EDev commented Oct 27, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • New "Tilt for fullscreen" switch in Settings › Playback, under "Open videos in fullscreen", off by default and hidden on TV. With it on, turning the phone sideways enters landscape fullscreen even with the system rotation lock on, and turning it upright leaves.
  • The existing tilt listener now skips its auto-rotate check when the switch is on. Fullscreen already asks for SENSOR_LANDSCAPE, which rotates under the lock, so no new listener or permission. Large windows keep their current behaviour.
  • Fix: leaving fullscreen now answers only the phone turning upright, not the sheet expanding, so "Open videos in fullscreen" no longer drops out 150 ms after the sheet settles while tilt is being tracked.
  • Playback gesture entries moved from PlaybackIndex.kt into PlaybackGesturesIndex.kt to keep the file under the size ceiling (same keys, same order).

Related issue

Closes #1219

Change type

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

Validation

  • ./gradlew :app:assembleGithubDebug
  • ./gradlew :app:testGithubDebugUnitTest
  • I ran any additional flavor-specific build or test tasks affected by this change. (ktlintCheck, :app:compileGithubDebugKotlin, :app:compileFossDebugKotlin, new FollowsTiltTest)
  • I manually tested the affected behavior on an Android device or emulator.

Test device and Android version: Xiaomi 2311DRK48G, HyperOS 3.0 / Android 16, rotation lock on. Tilt in and out on both landscape sides, exit button while sideways, upside down, "Open videos in fullscreen" while held upright (stays fullscreen), and switch off (no change).

Screenshots or recordings

Risk and compatibility

New DataStore key tilt_fullscreen_rotation_locked, default false, so nothing changes until the switch is turned on. No new sensor work: the orientation listener was already registered while the player is resumed.

  • 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 October 27, 2026 09:40

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.

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 ui Compose UI, theming, or Material 3 surfaces labels Oct 27, 2026
@A-EDev
A-EDev merged commit e66d564 into main Oct 27, 2026
9 checks passed
@A-EDev
A-EDev deleted the feat/tilt-fullscreen-rotation-locked branch October 29, 2026 21:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation ui Compose UI, theming, or Material 3 surfaces

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature]: Auto-enter landscape fullscreen on device tilt when rotation is locked

2 participants