From c09eadb95194dfa7c6c8c8f549fe5277a3375d38 Mon Sep 17 00:00:00 2001 From: Christopher Eby Date: Tue, 11 Oct 2011 02:11:16 -0500 Subject: [PATCH] Fix shuffle state cycling Prevent the addition from overflowing --- src/org/kreed/vanilla/PlaybackService.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/org/kreed/vanilla/PlaybackService.java b/src/org/kreed/vanilla/PlaybackService.java index c50fbc8f..a2bc6762 100644 --- a/src/org/kreed/vanilla/PlaybackService.java +++ b/src/org/kreed/vanilla/PlaybackService.java @@ -681,8 +681,10 @@ public final class PlaybackService extends Service implements Handler.Callback, public int cycleShuffle() { synchronized (mStateLock) { - int step = (mState & MASK_SHUFFLE) == 0x200 ? 0x200 : 0x100; - return updateState(mState + step); + int state = mState; + int step = (state & MASK_SHUFFLE) == 0x200 ? 0x200 : 0x100; + state = (state & ~MASK_SHUFFLE) | ((state + step) & MASK_SHUFFLE); + return updateState(state); } }