# 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)