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..c37e84b95 100644
--- a/src/main/res/xml/prefs_images_video.xml
+++ b/src/main/res/xml/prefs_images_video.xml
@@ -51,6 +51,12 @@
android:key="@string/pref_behaviour_video_mute_default_key"
android:defaultValue="true"/>
+
+