diff --git a/ultrasonic/src/main/java/org/moire/ultrasonic/fragment/PlayerFragment.java b/ultrasonic/src/main/java/org/moire/ultrasonic/fragment/PlayerFragment.java index 66518b05..4f009edc 100644 --- a/ultrasonic/src/main/java/org/moire/ultrasonic/fragment/PlayerFragment.java +++ b/ultrasonic/src/main/java/org/moire/ultrasonic/fragment/PlayerFragment.java @@ -304,15 +304,8 @@ public class PlayerFragment extends Fragment implements GestureDetector.OnGestur @Override protected Boolean doInBackground() { - if (mediaPlayerControllerLazy.getValue().getCurrentPlayingNumberOnPlaylist() < mediaPlayerControllerLazy.getValue().getPlaylistSize() - 1) - { - mediaPlayerControllerLazy.getValue().next(); - return true; - } - else - { - return false; - } + mediaPlayerControllerLazy.getValue().next(); + return true; } @Override @@ -1508,12 +1501,9 @@ public class PlayerFragment extends Fragment implements GestureDetector.OnGestur if (e1X - e2X > swipeDistance && absX > swipeVelocity) { networkAndStorageChecker.getValue().warnIfNetworkOrStorageUnavailable(); - if (mediaPlayerController.getCurrentPlayingNumberOnPlaylist() < mediaPlayerController.getPlaylistSize() - 1) - { - mediaPlayerController.next(); - onCurrentChanged(); - onSliderProgressChanged(); - } + mediaPlayerController.next(); + onCurrentChanged(); + onSliderProgressChanged(); return true; } diff --git a/ultrasonic/src/main/java/org/moire/ultrasonic/service/MediaPlayerControllerImpl.java b/ultrasonic/src/main/java/org/moire/ultrasonic/service/MediaPlayerControllerImpl.java index 0c173960..d5bffc02 100644 --- a/ultrasonic/src/main/java/org/moire/ultrasonic/service/MediaPlayerControllerImpl.java +++ b/ultrasonic/src/main/java/org/moire/ultrasonic/service/MediaPlayerControllerImpl.java @@ -458,7 +458,20 @@ public class MediaPlayerControllerImpl implements MediaPlayerController int index = downloader.getCurrentPlayingIndex(); if (index != -1) { - play(index + 1); + switch (getRepeatMode()) + { + case SINGLE: + case OFF: + if (index + 1 >= 0 && index + 1 < downloader.downloadList.size()) { + play(index + 1); + } + break; + case ALL: + play((index + 1) % downloader.downloadList.size()); + break; + default: + break; + } } } diff --git a/ultrasonic/src/main/java/org/moire/ultrasonic/service/MediaPlayerLifecycleSupport.java b/ultrasonic/src/main/java/org/moire/ultrasonic/service/MediaPlayerLifecycleSupport.java index aea69afa..2e4d6984 100644 --- a/ultrasonic/src/main/java/org/moire/ultrasonic/service/MediaPlayerLifecycleSupport.java +++ b/ultrasonic/src/main/java/org/moire/ultrasonic/service/MediaPlayerLifecycleSupport.java @@ -221,10 +221,7 @@ public class MediaPlayerLifecycleSupport mediaPlayerController.previous(); break; case KeyEvent.KEYCODE_MEDIA_NEXT: - if (downloader.getCurrentPlayingIndex() < downloader.downloadList.size() - 1) - { - mediaPlayerController.next(); - } + mediaPlayerController.next(); break; case KeyEvent.KEYCODE_MEDIA_STOP: mediaPlayerController.stop();