mirror of
https://github.com/androidx/media.git
synced 2025-05-10 00:59:51 +08:00
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
This commit is contained in:
parent
fd98d70a11
commit
6bc0408222
@ -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;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user