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"/> + +