Skip to content

feat(player): add higher playback speeds and configurable long-press speed - #3297

Open
vksp2k7 wants to merge 1 commit into
recloudstream:masterfrom
vksp2k7:feat/player-speed-options
Open

vksp2k7 wants to merge 1 commit into
recloudstream:masterfrom
vksp2k7:feat/player-speed-options

Conversation

@vksp2k7

@vksp2k7 vksp2k7 commented Oct 30, 2026

Copy link
Copy Markdown

Summary

Adds higher playback speeds and configurable long-press speed.

  • The speed dialog now goes up to 4x (was 2x), with presets 0.25x–2x plus 3x and 4x.
  • New "LongPress speed" setting: 1.5x–5x, default 2x.
  • Holding while already at or above that speed doubles it (eg 2x → 4x, capped at 8x) and the indicator shows the current speed. Releasing restores exact speed from before the hold.

Long-press was fixed at 2x, so it did nothing for anyone already watching at 2x.

Changes

  • PlaybackSpeeds.kt: New, Limits and escalation logic shared by the dialog and gesture helper.
  • PlayerGestureHelper.kt, FullScreenPlayer.kt: for the hold gesture and dialog bounds.
  • SettingsPlayerScreen.kt, DevicePreferenceStore.kt, settings_player.xml, array.xml, strings: new speedup_speed_key pref (percent, 200 = 2x).
  • speed_dialog.xml: two rows of presets, D-pad focus chain updated. The speed-up indicator in the phone, TV and trailer layouts is now wrap_content so the text fits.

The speed button and long-press speed-up now default to on (previously off). Explicit user choices are unaffected. Happy to revert this if you'd rather keep the old defaults.

Testing

  • Built assemblePrereleaseDebug and tested on multiple Android phones.
  • ./gradlew lint check passes.

Note: This implementation was written with AI assistance (Claude). I tested the change on a device and can explain and fix all of it if needed.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant