From 6bc04082224daae7440e555ecc357abc9aecc99f Mon Sep 17 00:00:00 2001 From: olly Date: Wed, 7 Nov 2018 08:49:10 -0800 Subject: [PATCH] Make BasePlayer.get[Next/Previous]WindowIndex more useful When in REPEAT_MODE_ONE, it's unlikely apps want next/previous methods on the player to keep them in the same window. Music apps in particular tend to implement next/previous functionality as though repeat mode were off when in this mode (i.e. current song loops forever during playback, but next/previous navigation still navigates to next/previous items). ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=220469655 --- .../java/com/google/android/exoplayer2/BasePlayer.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/library/core/src/main/java/com/google/android/exoplayer2/BasePlayer.java b/library/core/src/main/java/com/google/android/exoplayer2/BasePlayer.java index 6ff0853d9b..f1b54153a1 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/BasePlayer.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/BasePlayer.java @@ -79,7 +79,7 @@ public abstract class BasePlayer implements Player { return timeline.isEmpty() ? C.INDEX_UNSET : timeline.getNextWindowIndex( - getCurrentWindowIndex(), getRepeatMode(), getShuffleModeEnabled()); + getCurrentWindowIndex(), getRepeatModeForNavigation(), getShuffleModeEnabled()); } @Override @@ -88,7 +88,7 @@ public abstract class BasePlayer implements Player { return timeline.isEmpty() ? C.INDEX_UNSET : timeline.getPreviousWindowIndex( - getCurrentWindowIndex(), getRepeatMode(), getShuffleModeEnabled()); + getCurrentWindowIndex(), getRepeatModeForNavigation(), getShuffleModeEnabled()); } @Override @@ -129,4 +129,10 @@ public abstract class BasePlayer implements Player { ? C.TIME_UNSET : timeline.getWindow(getCurrentWindowIndex(), window).getDurationMs(); } + + @RepeatMode + private int getRepeatModeForNavigation() { + @RepeatMode int repeatMode = getRepeatMode(); + return repeatMode == REPEAT_MODE_ONE ? REPEAT_MODE_OFF : repeatMode; + } }