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 {
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;
}
}
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