diff --git a/app/src/main/java/com/github/damontecres/wholphin/preferences/AppPreference.kt b/app/src/main/java/com/github/damontecres/wholphin/preferences/AppPreference.kt index 308ed909b..43615ca36 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/preferences/AppPreference.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/preferences/AppPreference.kt @@ -664,7 +664,7 @@ sealed interface AppPreference { val DpadSeekModePref = AppChoicePreference( title = R.string.d_pad_seek_mode_title, - defaultValue = DpadSeekMode.SKIP_TIME, + defaultValue = DpadSeekMode.SEEKBAR_MINIMAL, getter = { it.playbackPreferences.dpadSeekMode }, setter = { prefs, value -> prefs.updatePlaybackPreferences { dpadSeekMode = value } @@ -672,6 +672,7 @@ sealed interface AppPreference { displayValues = R.array.dpad_seek_mode_options, indexToValue = { DpadSeekMode.forNumber(it) }, valueToIndex = { if (it != DpadSeekMode.UNRECOGNIZED) it.number else 0 }, + subtitles = R.array.dpad_seek_mode_summaries, ) val GlobalContentScale = diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/playback/PlaybackKeyHandler.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/playback/PlaybackKeyHandler.kt index f885826cd..71ea05e2b 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/ui/playback/PlaybackKeyHandler.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/ui/playback/PlaybackKeyHandler.kt @@ -193,7 +193,7 @@ class PlaybackKeyHandler( private fun seekBy(duration: Duration) { val durationMs = duration.inWholeMilliseconds - if (dpadSeekMode == DpadSeekMode.TRICKPLAY) { + if (dpadSeekMode == DpadSeekMode.SEEKBAR_TRICKPLAY) { onDpadSeek.invoke(durationMs) } else { if (duration < Duration.ZERO) { diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/playback/PlaybackPage.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/playback/PlaybackPage.kt index 46c7753da..e428546fd 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/ui/playback/PlaybackPage.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/ui/playback/PlaybackPage.kt @@ -265,7 +265,7 @@ fun PlaybackPageContent( }, onPlaybackDialogTypeClick = { playbackDialog = it }, isDpadSeekVisible = { - prefs.dpadSeekMode == DpadSeekMode.TRICKPLAY && skipIndicatorDuration != 0L + prefs.dpadSeekMode == DpadSeekMode.SEEKBAR_TRICKPLAY && skipIndicatorDuration != 0L }, onDpadSeek = onDpadSeek, dpadSeekMode = prefs.dpadSeekMode, @@ -382,7 +382,7 @@ fun PlaybackPageContent( visible = !controllerViewState.controlsVisible && skipIndicatorDuration != 0L && - prefs.dpadSeekMode == DpadSeekMode.TRICKPLAY, + prefs.dpadSeekMode == DpadSeekMode.SEEKBAR_TRICKPLAY, enter = fadeIn() + slideInVertically { it / 2 }, exit = fadeOut() + slideOutVertically { it }, modifier = @@ -408,7 +408,9 @@ fun PlaybackPageContent( } // If D-pad skipping, show the amount skipped in an animation - if (!controllerViewState.controlsVisible && skipIndicatorDuration != 0L && prefs.dpadSeekMode != DpadSeekMode.TRICKPLAY) { + if (!controllerViewState.controlsVisible && skipIndicatorDuration != 0L && + prefs.dpadSeekMode != DpadSeekMode.SEEKBAR_TRICKPLAY + ) { // Skip time mode: show seek distance indicator SkipIndicator( durationMs = skipIndicatorDuration, @@ -421,8 +423,7 @@ fun PlaybackPageContent( .padding(bottom = 70.dp), ) // Show a small progress bar along the bottom of the screen - val showSkipProgress = true // TODO get from preferences - if (showSkipProgress) { + if (prefs.dpadSeekMode == DpadSeekMode.SEEKBAR_MINIMAL) { val percent = skipPosition.toFloat() / player.duration.toFloat() Box( modifier = diff --git a/app/src/main/proto/WholphinDataStore.proto b/app/src/main/proto/WholphinDataStore.proto index 021db0519..2a9a41704 100644 --- a/app/src/main/proto/WholphinDataStore.proto +++ b/app/src/main/proto/WholphinDataStore.proto @@ -91,8 +91,9 @@ message PlaybackPreferences { } enum DpadSeekMode { - SKIP_TIME = 0; - TRICKPLAY = 1; + SEEKBAR_MINIMAL = 0; + SEEKBAR_TRICKPLAY = 1; + SEEKBAR_NONE = 2; } message HomePagePreferences{ diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 5f5a54dea..9db3f4965 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -180,9 +180,6 @@ Add to playlist Pause with one click Press D-Pad center to pause/play - D-Pad seek mode - Skip time - Trickplay previews Italicize font Font Background @@ -850,9 +847,22 @@ Enable experimental settings? Experimental settings may be unstable!\n\n These may removed or changed in any release. Video tunneling + + D-Pad seek bar mode + Minimal + Trickplay - @string/dpad_seek_mode_skip_time + @string/dpad_seek_mode_minimal @string/dpad_seek_mode_trickplay + @string/none + + Small seek bar along the bottom of the screen (default) + Seek bar with trickplay preview images + No seek bar + + @string/dpad_seek_mode_minimal_summary + @string/dpad_seek_mode_trickplay_summary + @string/dpad_seek_mode_none_summary Blocklisted