Files
android-tv/docs/superpowers/specs/2026-05-27-player-enhancements-design.md

1.3 KiB

Player Enhancements Design

1. Pause Shows Controls

  • Add Player.Listener to ExoPlayer, monitor onPlayWhenReadyChanged
  • When playWhenReady becomes false: show control panel, cancel auto-hide timer
  • When playWhenReady becomes true: restart auto-hide timer
  • WebView playback: not supported (can't detect pause)

2. Brightness/Volume Gestures

  • Replace click listener with OnTouchListener on playerView/playerWebView
  • ACTION_DOWN: record startY, determine left/right half of screen
    • Left half: brightness mode
    • Right half: volume mode
  • ACTION_MOVE: calculate deltaY, adjust brightness/volume proportionally
  • ACTION_UP: if delta < threshold, treat as click (toggle controls); reset state
  • Brightness: window.attributes.screenBrightness (activity-scoped, no permission)
  • Volume: AudioManager.setStreamVolume(STREAM_MUSIC, ...)
  • Show floating indicator (TextView overlay) during adjustment

3. Playback Position Resume

  • Add playbackPosition: Long? to PlayHistory entity
  • Add updatePosition(id, position) to PlayHistoryDao
  • Save position every 5 seconds via handler, and on pause/destroy
  • On player entry: read position from history, seek to it after prepare
  • Pass resume_position via Intent from SearchFragment
  • ExoPlayer only (WebView excluded)