From 18d54b62259e6f6b50f985b32cf22df1ab1b70b1 Mon Sep 17 00:00:00 2001 From: George Laios Date: Sat, 16 May 2026 05:46:36 +0300 Subject: [PATCH] Fix repeat mode UI out-of-sync when switching videos --- .../newpipe/player/ui/VideoPlayerUi.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/app/src/main/java/org/schabi/newpipe/player/ui/VideoPlayerUi.java b/app/src/main/java/org/schabi/newpipe/player/ui/VideoPlayerUi.java index f020852cf..1fea488bd 100644 --- a/app/src/main/java/org/schabi/newpipe/player/ui/VideoPlayerUi.java +++ b/app/src/main/java/org/schabi/newpipe/player/ui/VideoPlayerUi.java @@ -399,6 +399,10 @@ public abstract class VideoPlayerUi extends PlayerUi implements SeekBar.OnSeekBa // #6825 - Ensure that the shuffle-button is in the correct state on the UI setShuffleButton(player.getExoPlayer().getShuffleModeEnabled()); + + // Set repeat button to the correct UI state + setRepeatButton(player.getExoPlayer().getRepeatMode()); + } public abstract void removeViewFromParent(); @@ -982,6 +986,20 @@ public abstract class VideoPlayerUi extends PlayerUi implements SeekBar.OnSeekBa private void setShuffleButton(final boolean shuffled) { binding.shuffleButton.setImageAlpha(shuffled ? 255 : 77); } + + private void setRepeatButton(final int repeatMode) { + if (repeatMode == REPEAT_MODE_ALL) { + binding.repeatButton.setImageResource( + com.google.android.exoplayer2.ui.R.drawable.exo_controls_repeat_all); + } else if (repeatMode == REPEAT_MODE_ONE) { + binding.repeatButton.setImageResource( + com.google.android.exoplayer2.ui.R.drawable.exo_controls_repeat_one); + } else /* repeatMode == REPEAT_MODE_OFF */ { + binding.repeatButton.setImageResource( + com.google.android.exoplayer2.ui.R.drawable.exo_controls_repeat_off); + } + } + //endregion