From cb1221e00ca59c71d19660d021b519adb078da33 Mon Sep 17 00:00:00 2001 From: Christopher Eby Date: Sun, 11 Sep 2011 15:14:33 -0500 Subject: [PATCH] Disable repeat option when there are no songs --- src/org/kreed/vanilla/PlaybackActivity.java | 2 ++ src/org/kreed/vanilla/PlaybackService.java | 3 --- src/org/kreed/vanilla/SongTimeline.java | 5 ++++- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/org/kreed/vanilla/PlaybackActivity.java b/src/org/kreed/vanilla/PlaybackActivity.java index 62a5477c..c2a060e9 100644 --- a/src/org/kreed/vanilla/PlaybackActivity.java +++ b/src/org/kreed/vanilla/PlaybackActivity.java @@ -310,6 +310,8 @@ public class PlaybackActivity extends Activity implements Handler.Callback, View menu.findItem(MENU_SHUFFLE).setTitle(isShuffling ? R.string.shuffle_disable : R.string.shuffle_enable); boolean isRepeating = (mState & PlaybackService.FLAG_REPEAT) != 0; menu.findItem(MENU_REPEAT).setTitle(isRepeating ? R.string.repeat_disable : R.string.repeat_enable); + if ((mState & PlaybackService.FLAG_NO_MEDIA) != 0) + menu.findItem(MENU_REPEAT).setEnabled(false); return true; } diff --git a/src/org/kreed/vanilla/PlaybackService.java b/src/org/kreed/vanilla/PlaybackService.java index ffa526e1..6de42ca4 100644 --- a/src/org/kreed/vanilla/PlaybackService.java +++ b/src/org/kreed/vanilla/PlaybackService.java @@ -431,9 +431,6 @@ public final class PlaybackService extends Service implements Handler.Callback, Toast.makeText(this, text, Toast.LENGTH_LONG).show(); } - if (mCurrentSong == null) - state &= ~FLAG_REPEAT; - int oldState = mState; mState = state; diff --git a/src/org/kreed/vanilla/SongTimeline.java b/src/org/kreed/vanilla/SongTimeline.java index 8b3c422b..ed2be734 100644 --- a/src/org/kreed/vanilla/SongTimeline.java +++ b/src/org/kreed/vanilla/SongTimeline.java @@ -238,10 +238,13 @@ public final class SongTimeline { synchronized (this) { if (repeat) { + Song song = getSong(0); + if (song == null) + return; mRepeatStart = mCurrentPos; // Ensure that we will at least repeat one song (the current song), // even if all of our songs were selected randomly. - getSong(0).flags &= ~Song.FLAG_RANDOM; + song.flags &= ~Song.FLAG_RANDOM; } else { mRepeatStart = -1; mRepeatedSongs = null;