aboutsummaryrefslogtreecommitdiff
path: root/app/src
diff options
context:
space:
mode:
authorAlex Ning <chineseperson5@gmail.com>2021-10-09 14:08:48 +0000
committerAlex Ning <chineseperson5@gmail.com>2021-10-09 14:08:48 +0000
commit4de457cd0207dc1fcac1487d046565df06c3d165 (patch)
tree9df8170a54fea71ab43572d8150e1b6a78fee208 /app/src
parentf12dea156fbe08b3b8ad64d153c8aedc75bf024e (diff)
downloadinfinity-for-reddit-4de457cd0207dc1fcac1487d046565df06c3d165.tar
infinity-for-reddit-4de457cd0207dc1fcac1487d046565df06c3d165.tar.gz
infinity-for-reddit-4de457cd0207dc1fcac1487d046565df06c3d165.tar.bz2
infinity-for-reddit-4de457cd0207dc1fcac1487d046565df06c3d165.tar.lz
infinity-for-reddit-4de457cd0207dc1fcac1487d046565df06c3d165.tar.xz
infinity-for-reddit-4de457cd0207dc1fcac1487d046565df06c3d165.tar.zst
infinity-for-reddit-4de457cd0207dc1fcac1487d046565df06c3d165.zip
Loop video option is available for autoplaying videos.
Diffstat (limited to '')
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/AppModule.java7
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/customviews/LoopAvailableExoCreator.java35
-rw-r--r--app/src/main/res/values/strings.xml1
-rw-r--r--app/src/main/res/xml/video_preferences.xml3
4 files changed, 42 insertions, 4 deletions
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/AppModule.java b/app/src/main/java/ml/docilealligator/infinityforreddit/AppModule.java
index 604aa32f..2b8351bb 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/AppModule.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/AppModule.java
@@ -25,6 +25,7 @@ import im.ene.toro.exoplayer.ExoCreator;
import im.ene.toro.exoplayer.MediaSourceBuilder;
import im.ene.toro.exoplayer.ToroExo;
import ml.docilealligator.infinityforreddit.customtheme.CustomThemeWrapper;
+import ml.docilealligator.infinityforreddit.customviews.LoopAvailableExoCreator;
import ml.docilealligator.infinityforreddit.utils.APIUtils;
import ml.docilealligator.infinityforreddit.utils.CustomThemeSharedPreferencesUtils;
import ml.docilealligator.infinityforreddit.utils.SharedPreferencesUtils;
@@ -309,10 +310,10 @@ class AppModule {
@Provides
@Singleton
- ExoCreator provideExoCreator(SimpleCache simpleCache) {
- Config config = new Config.Builder(mApplication).setMediaSourceBuilder(MediaSourceBuilder.LOOPING).setCache(simpleCache)
+ ExoCreator provideExoCreator(SimpleCache simpleCache, @Named("default") SharedPreferences sharedPreferences) {
+ Config config = new Config.Builder(mApplication).setMediaSourceBuilder(MediaSourceBuilder.DEFAULT).setCache(simpleCache)
.build();
- return ToroExo.with(mApplication).getCreator(config);
+ return new LoopAvailableExoCreator(ToroExo.with(mApplication), config, sharedPreferences);
}
@Provides
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/customviews/LoopAvailableExoCreator.java b/app/src/main/java/ml/docilealligator/infinityforreddit/customviews/LoopAvailableExoCreator.java
new file mode 100644
index 00000000..5ccda4be
--- /dev/null
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/customviews/LoopAvailableExoCreator.java
@@ -0,0 +1,35 @@
+package ml.docilealligator.infinityforreddit.customviews;
+
+import android.content.SharedPreferences;
+
+import androidx.annotation.NonNull;
+
+import com.google.android.exoplayer2.Player;
+import com.google.android.exoplayer2.SimpleExoPlayer;
+
+import im.ene.toro.exoplayer.Config;
+import im.ene.toro.exoplayer.DefaultExoCreator;
+import im.ene.toro.exoplayer.ToroExo;
+import ml.docilealligator.infinityforreddit.utils.SharedPreferencesUtils;
+
+public class LoopAvailableExoCreator extends DefaultExoCreator {
+ private final SharedPreferences sharedPreferences;
+
+ public LoopAvailableExoCreator(@NonNull ToroExo toro, @NonNull Config config, SharedPreferences sharedPreferences) {
+ super(toro, config);
+ this.sharedPreferences = sharedPreferences;
+ }
+
+ @NonNull
+ @Override
+ public SimpleExoPlayer createPlayer() {
+ SimpleExoPlayer player = super.createPlayer();
+ if (sharedPreferences.getBoolean(SharedPreferencesUtils.LOOP_VIDEO, true)) {
+ player.setRepeatMode(Player.REPEAT_MODE_ALL);
+ } else {
+ player.setRepeatMode(Player.REPEAT_MODE_OFF);
+ }
+
+ return player;
+ }
+}
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 93686697..fd09419b 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -595,6 +595,7 @@
<string name="settings_show_only_one_comment_level_indicator">Show Only One Comment Level Indicator</string>
<string name="settings_video_player_automatic_landscape_orientation">Switch to Landscape Orientation in Video Player Automatically</string>
<string name="settings_loop_video_title">Loop Video</string>
+ <string name="settings_loop_video_summary">Restart the app to apply this setting to autoplaying videos</string>
<string name="settings_remember_muting_option_in_post_feed">Remember Muting Option in Post Feed</string>
<string name="settings_post_details_title">Post Details</string>
<string name="settings_separate_post_and_comments_in_portrait_mode_title">Separate Post And Comments in Portrait Mode</string>
diff --git a/app/src/main/res/xml/video_preferences.xml b/app/src/main/res/xml/video_preferences.xml
index 7b2ebbdb..ef8d944e 100644
--- a/app/src/main/res/xml/video_preferences.xml
+++ b/app/src/main/res/xml/video_preferences.xml
@@ -33,7 +33,8 @@
<SwitchPreference
app:defaultValue="true"
app:key="loop_video"
- app:title="@string/settings_loop_video_title" />
+ app:title="@string/settings_loop_video_title"
+ app:summary="@string/settings_loop_video_summary" />
<PreferenceCategory
app:title="@string/settings_video_autoplay_title" />