From 6bff12b75f60daee4b3afb5eb97e582dd5e854d0 Mon Sep 17 00:00:00 2001 From: "C. Liam Brown" Date: Sat, 15 Nov 2025 09:15:28 -0500 Subject: [PATCH 1/2] - Add preference to disable video autoplay --- .../redreader/common/FeatureFlagHandler.java | 12 +++++++++++- .../quantumbadger/redreader/common/PrefsUtility.java | 6 ++++++ .../redreader/views/video/ExoPlayerWrapperView.java | 10 +++++++++- src/main/res/values/strings.xml | 5 +++++ src/main/res/xml/prefs_images_video.xml | 5 +++++ 5 files changed, 36 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..e3f827b3f 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_AUTOPLAY("defaultPrefVideoAutoplay"); @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_AUTOPLAY) + == FeatureFlagStatus.UPGRADE_NEEDED) { + + prefs.edit().putBoolean( + context.getString(R.string.pref_behaviour_video_autoplay_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..6d9d47da3 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_autoplay() { + return getBoolean( + R.string.pref_behaviour_video_autoplay_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..6d4c8a332 100644 --- a/src/main/java/org/quantumbadger/redreader/views/video/ExoPlayerWrapperView.java +++ b/src/main/java/org/quantumbadger/redreader/views/video/ExoPlayerWrapperView.java @@ -109,7 +109,15 @@ public ExoPlayerWrapperView( mVideoPlayer.setRepeatMode(Player.REPEAT_MODE_ONE); - mVideoPlayer.setPlayWhenReady(true); + // Autoplay cannot be disabled if video controls are disabled + if( + PrefsUtility.pref_behaviour_video_playback_controls() + && !PrefsUtility.pref_behaviour_video_autoplay() + ) { + mVideoPlayer.setPlayWhenReady(false); + } else { + mVideoPlayer.setPlayWhenReady(true); + } if(PrefsUtility.pref_behaviour_video_zoom_default()) { videoPlayerView.setResizeMode(AspectRatioFrameLayout.RESIZE_MODE_ZOOM); diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index 41afeea77..4aee57271 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_autoplay + Autoplay videos + If video playback controls are not enabled, this preference is ignored and videos will always autoplay diff --git a/src/main/res/xml/prefs_images_video.xml b/src/main/res/xml/prefs_images_video.xml index 248931758..9fac4a639 100644 --- a/src/main/res/xml/prefs_images_video.xml +++ b/src/main/res/xml/prefs_images_video.xml @@ -51,6 +51,11 @@ android:key="@string/pref_behaviour_video_mute_default_key" android:defaultValue="true"/> + + From c280a09cc4fbf467d8ef789f20fc46df5e0a9df1 Mon Sep 17 00:00:00 2001 From: "C. Liam Brown" Date: Sat, 15 Nov 2025 09:38:37 -0500 Subject: [PATCH 2/2] - Disable autoplay checkbox if video playback controls are disabled --- src/main/res/xml/prefs_images_video.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/res/xml/prefs_images_video.xml b/src/main/res/xml/prefs_images_video.xml index 9fac4a639..c37e84b95 100644 --- a/src/main/res/xml/prefs_images_video.xml +++ b/src/main/res/xml/prefs_images_video.xml @@ -52,6 +52,7 @@ android:defaultValue="true"/>