Commit e82d29f4 by olly Committed by Oliver Woodman

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
parent 15dda179
...@@ -79,7 +79,7 @@ public abstract class BasePlayer implements Player { ...@@ -79,7 +79,7 @@ public abstract class BasePlayer implements Player {
return timeline.isEmpty() return timeline.isEmpty()
? C.INDEX_UNSET ? C.INDEX_UNSET
: timeline.getNextWindowIndex( : timeline.getNextWindowIndex(
getCurrentWindowIndex(), getRepeatMode(), getShuffleModeEnabled()); getCurrentWindowIndex(), getRepeatModeForNavigation(), getShuffleModeEnabled());
} }
@Override @Override
...@@ -88,7 +88,7 @@ public abstract class BasePlayer implements Player { ...@@ -88,7 +88,7 @@ public abstract class BasePlayer implements Player {
return timeline.isEmpty() return timeline.isEmpty()
? C.INDEX_UNSET ? C.INDEX_UNSET
: timeline.getPreviousWindowIndex( : timeline.getPreviousWindowIndex(
getCurrentWindowIndex(), getRepeatMode(), getShuffleModeEnabled()); getCurrentWindowIndex(), getRepeatModeForNavigation(), getShuffleModeEnabled());
} }
@Override @Override
...@@ -129,4 +129,10 @@ public abstract class BasePlayer implements Player { ...@@ -129,4 +129,10 @@ public abstract class BasePlayer implements Player {
? C.TIME_UNSET ? C.TIME_UNSET
: timeline.getWindow(getCurrentWindowIndex(), window).getDurationMs(); : timeline.getWindow(getCurrentWindowIndex(), window).getDurationMs();
} }
@RepeatMode
private int getRepeatModeForNavigation() {
@RepeatMode int repeatMode = getRepeatMode();
return repeatMode == REPEAT_MODE_ONE ? REPEAT_MODE_OFF : repeatMode;
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment