From 2e9a9943a0cfaf2df0df960cba57dc1667ef2e27 Mon Sep 17 00:00:00 2001 From: "C. Liam Brown" Date: Wed, 12 Nov 2025 18:01:50 -0500 Subject: [PATCH 1/3] Add option to enable/disable video looping --- .../redreader/common/FeatureFlagHandler.java | 12 +++++++++++- .../quantumbadger/redreader/common/PrefsUtility.java | 6 ++++++ .../redreader/views/video/ExoPlayerWrapperView.java | 6 +++++- src/main/res/values/strings.xml | 5 +++++ src/main/res/xml/prefs_images_video.xml | 4 ++++ 5 files changed, 31 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/quantumbadger/redreader/common/FeatureFlagHandler.java b/src/main/java/org/quantumbadger/redreader/common/FeatureFlagHandler.java index cd5495d59..1c86de64c 100644 --- a/src/main/java/org/quantumbadger/redreader/common/FeatureFlagHandler.java +++ b/src/main/java/org/quantumbadger/redreader/common/FeatureFlagHandler.java @@ -59,7 +59,8 @@ private enum FeatureFlag { DEFAULT_PREF_VIDEO_PLAYBACK_CONTROLS("defaultPrefVideoPlaybackControls"), DEFAULT_PREF_CUSTOM_TABS("defaultPrefCustomTabs"), CROSSPOST_ORIGIN_MENU_ITEM("crosspostOriginMenuItem"), - MAIN_MENU_RANDOM_REMOVED("mainMenuRandomRemoved"); + MAIN_MENU_RANDOM_REMOVED("mainMenuRandomRemoved"), + DEFAULT_PREF_VIDEO_LOOP("defaultPrefVideoLoop"); @NonNull private final String id; @@ -349,6 +350,15 @@ public static void handleUpgrade(@NonNull final Context context) { context.getString(R.string.pref_menus_mainmenu_shortcutitems_key), existingShortcutPreferences).apply(); } + + if(getAndSetFeatureFlag(prefs, FeatureFlag.DEFAULT_PREF_VIDEO_LOOP) + == FeatureFlagStatus.UPGRADE_NEEDED) { + + prefs.edit().putBoolean( + context.getString(R.string.pref_behaviour_video_loop_key), + true) + .apply(); + } }); } diff --git a/src/main/java/org/quantumbadger/redreader/common/PrefsUtility.java b/src/main/java/org/quantumbadger/redreader/common/PrefsUtility.java index c47ce987d..0f5e72cf8 100644 --- a/src/main/java/org/quantumbadger/redreader/common/PrefsUtility.java +++ b/src/main/java/org/quantumbadger/redreader/common/PrefsUtility.java @@ -813,6 +813,12 @@ public static boolean pref_behaviour_video_mute_default() { true); } + public static boolean pref_behaviour_video_loop() { + return getBoolean( + R.string.pref_behaviour_video_loop_key, + true); + } + public static boolean pref_behaviour_video_zoom_default() { return getBoolean(R.string.pref_behaviour_video_zoom_default_key, false); diff --git a/src/main/java/org/quantumbadger/redreader/views/video/ExoPlayerWrapperView.java b/src/main/java/org/quantumbadger/redreader/views/video/ExoPlayerWrapperView.java index d745bd21f..6b6163ddf 100644 --- a/src/main/java/org/quantumbadger/redreader/views/video/ExoPlayerWrapperView.java +++ b/src/main/java/org/quantumbadger/redreader/views/video/ExoPlayerWrapperView.java @@ -107,7 +107,11 @@ public ExoPlayerWrapperView( mVideoPlayer.setMediaSource(mediaSource); mVideoPlayer.prepare(); - mVideoPlayer.setRepeatMode(Player.REPEAT_MODE_ONE); + if(PrefsUtility.pref_behaviour_video_mute_default()) { + mVideoPlayer.setRepeatMode(Player.REPEAT_MODE_OFF); + } else { + mVideoPlayer.setRepeatMode(Player.REPEAT_MODE_ONE); + } mVideoPlayer.setPlayWhenReady(true); diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index 41afeea77..92144ab6f 100644 --- a/src/main/res/values/strings.xml +++ b/src/main/res/values/strings.xml @@ -1921,4 +1921,9 @@ Reddit login issue There was a problem logging into Reddit. Try again in an different browser? + + + pref_behaviour_video_loop + Loop videos + diff --git a/src/main/res/xml/prefs_images_video.xml b/src/main/res/xml/prefs_images_video.xml index 248931758..696ff3261 100644 --- a/src/main/res/xml/prefs_images_video.xml +++ b/src/main/res/xml/prefs_images_video.xml @@ -51,6 +51,10 @@ android:key="@string/pref_behaviour_video_mute_default_key" android:defaultValue="true"/> + + From 659e83deb4d7af07c9770b9820afdda6b686651d Mon Sep 17 00:00:00 2001 From: "C. Liam Brown" Date: Wed, 12 Nov 2025 18:13:48 -0500 Subject: [PATCH 2/3] Add option to enable/disable video looping --- .../redreader/views/video/ExoPlayerWrapperView.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/quantumbadger/redreader/views/video/ExoPlayerWrapperView.java b/src/main/java/org/quantumbadger/redreader/views/video/ExoPlayerWrapperView.java index 6b6163ddf..30144645d 100644 --- a/src/main/java/org/quantumbadger/redreader/views/video/ExoPlayerWrapperView.java +++ b/src/main/java/org/quantumbadger/redreader/views/video/ExoPlayerWrapperView.java @@ -107,7 +107,7 @@ public ExoPlayerWrapperView( mVideoPlayer.setMediaSource(mediaSource); mVideoPlayer.prepare(); - if(PrefsUtility.pref_behaviour_video_mute_default()) { + if(PrefsUtility.pref_behaviour_video_loop()) { mVideoPlayer.setRepeatMode(Player.REPEAT_MODE_OFF); } else { mVideoPlayer.setRepeatMode(Player.REPEAT_MODE_ONE); From dae1ad9936af70d3d633440c64beb53ec765d664 Mon Sep 17 00:00:00 2001 From: "C. Liam Brown" Date: Fri, 14 Nov 2025 11:03:56 -0500 Subject: [PATCH 3/3] - Apply proper looping option to ExoPlayer --- .../redreader/views/video/ExoPlayerWrapperView.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/quantumbadger/redreader/views/video/ExoPlayerWrapperView.java b/src/main/java/org/quantumbadger/redreader/views/video/ExoPlayerWrapperView.java index 30144645d..d341721eb 100644 --- a/src/main/java/org/quantumbadger/redreader/views/video/ExoPlayerWrapperView.java +++ b/src/main/java/org/quantumbadger/redreader/views/video/ExoPlayerWrapperView.java @@ -108,9 +108,9 @@ public ExoPlayerWrapperView( mVideoPlayer.prepare(); if(PrefsUtility.pref_behaviour_video_loop()) { - mVideoPlayer.setRepeatMode(Player.REPEAT_MODE_OFF); - } else { mVideoPlayer.setRepeatMode(Player.REPEAT_MODE_ONE); + } else { + mVideoPlayer.setRepeatMode(Player.REPEAT_MODE_OFF); } mVideoPlayer.setPlayWhenReady(true);