From 22d54516592d80104002aedb6e670edcf78ea739 Mon Sep 17 00:00:00 2001 From: Docile-Alligator <25734209+Docile-Alligator@users.noreply.github.com> Date: Fri, 3 Jul 2026 17:29:00 -0400 Subject: [PATCH] Allow screen timeout when video is paused in ViewRedditGalleryVideoFragment and ViewImgurVideoFragment. --- .../fragments/ViewImgurVideoFragment.java | 19 +++++++++++++++++-- .../ViewRedditGalleryVideoFragment.java | 19 +++++++++++++++++-- .../res/layout/activity_view_imgur_media.xml | 1 - .../layout/activity_view_reddit_gallery.xml | 1 - 4 files changed, 34 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/ViewImgurVideoFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/ViewImgurVideoFragment.java index e0df99d5..27eb66cc 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/ViewImgurVideoFragment.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/ViewImgurVideoFragment.java @@ -16,6 +16,7 @@ import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; +import android.view.WindowManager; import android.widget.Toast; import androidx.annotation.NonNull; @@ -78,6 +79,7 @@ public class ViewImgurVideoFragment extends Fragment { private boolean isMute = false; private boolean isDownloading = false; private int playbackSpeed = 100; + private Player.Listener playerListener; @Inject @Named("media3") OkHttpClient mOkHttpClient; @@ -312,7 +314,7 @@ public class ViewImgurVideoFragment extends Fragment { Util.handlePlayPauseButtonAction(player); }); - player.addListener(new Player.Listener() { + playerListener = new Player.Listener() { @Override public void onEvents(@NonNull Player player, @NonNull Player.Events events) { if (events.containsAny( @@ -349,7 +351,17 @@ public class ViewImgurVideoFragment extends Fragment { binding.getMuteButton().setVisibility(View.GONE); } } - }); + + @Override + public void onIsPlayingChanged(boolean isPlaying) { + if (isPlaying) { + activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); + } else { + activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); + } + } + }; + player.addListener(playerListener); } @Override @@ -378,6 +390,9 @@ public class ViewImgurVideoFragment extends Fragment { @Override public void onDestroy() { super.onDestroy(); + if (playerListener != null) { + player.removeListener(playerListener); + } player.seekToDefaultPosition(); player.stop(); player.release(); diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/ViewRedditGalleryVideoFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/ViewRedditGalleryVideoFragment.java index a8bf4557..d7078ffd 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/ViewRedditGalleryVideoFragment.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/ViewRedditGalleryVideoFragment.java @@ -17,6 +17,7 @@ import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; +import android.view.WindowManager; import android.widget.Toast; import androidx.annotation.NonNull; @@ -82,6 +83,7 @@ public class ViewRedditGalleryVideoFragment extends Fragment { private boolean isMute = false; private boolean isDownloading = false; private int playbackSpeed = 100; + private Player.Listener playerListener; @Inject @Named("media3") OkHttpClient mOkHttpClient; @@ -322,7 +324,7 @@ public class ViewRedditGalleryVideoFragment extends Fragment { Util.handlePlayPauseButtonAction(player); }); - player.addListener(new Player.Listener() { + playerListener = new Player.Listener() { @Override public void onEvents(@NonNull Player player, @NonNull Player.Events events) { if (events.containsAny( @@ -359,7 +361,17 @@ public class ViewRedditGalleryVideoFragment extends Fragment { binding.getMuteButton().setVisibility(View.GONE); } } - }); + + @Override + public void onIsPlayingChanged(boolean isPlaying) { + if (isPlaying) { + activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); + } else { + activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); + } + } + }; + player.addListener(playerListener); } @Override @@ -388,6 +400,9 @@ public class ViewRedditGalleryVideoFragment extends Fragment { @Override public void onDestroy() { super.onDestroy(); + if (playerListener != null) { + player.removeListener(playerListener); + } player.seekToDefaultPosition(); player.stop(); player.release(); diff --git a/app/src/main/res/layout/activity_view_imgur_media.xml b/app/src/main/res/layout/activity_view_imgur_media.xml index ee26e30f..08b6667f 100644 --- a/app/src/main/res/layout/activity_view_imgur_media.xml +++ b/app/src/main/res/layout/activity_view_imgur_media.xml @@ -5,7 +5,6 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:background="#000000" - android:keepScreenOn="true" tools:application=".activities.ViewImgurMediaActivity">