From 27f69927db16054a2b2344bbd9765b146f6b059f Mon Sep 17 00:00:00 2001 From: Christopher Eby Date: Sat, 27 Feb 2010 22:39:11 -0600 Subject: [PATCH] Make PlaybackService's Handler non-anonymous --- src/org/kreed/vanilla/PlaybackService.java | 164 +++++++++++---------- 1 file changed, 83 insertions(+), 81 deletions(-) diff --git a/src/org/kreed/vanilla/PlaybackService.java b/src/org/kreed/vanilla/PlaybackService.java index 0431d71d..d3c3dd65 100644 --- a/src/org/kreed/vanilla/PlaybackService.java +++ b/src/org/kreed/vanilla/PlaybackService.java @@ -327,87 +327,7 @@ public class PlaybackService extends Service implements Runnable, MediaPlayer.On mMediaPlayer = new MediaPlayer(); mSongTimeline = new ArrayList(); mRandom = new Random(); - - mHandler = new Handler() { - public void handleMessage(Message message) - { - switch (message.what) { - case SET_SONG: - setCurrentSong(message.arg1); - break; - case PLAY_PAUSE: - setPlaying(!mMediaPlayer.isPlaying()); - break; - case HEADSET_PLUGGED: - if (mHeadsetPause) { - boolean plugged = message.arg1 == 1; - if (!plugged && mMediaPlayer.isPlaying()) - pause(); - } - break; - case PREF_CHANGED: - loadPreference((String)message.obj); - break; - case QUEUE_ITEM: - if (message.arg1 == -1) { - mQueuePos = 0; - } else { - Song song = new Song(message.arg1); - String text = getResources().getString(R.string.enqueued, song.title); - Toast.makeText(ContextApplication.getContext(), text, Toast.LENGTH_SHORT).show(); - - int i = mCurrentSong + 1 + mQueuePos++; - if (i < mSongTimeline.size()) - mSongTimeline.set(i, song); - else - mSongTimeline.add(song); - } - break; - case TRACK_CHANGED: - setCurrentSong(+1); - break; - case RELEASE_WAKE_LOCK: - if (mWakeLock.isHeld()) - mWakeLock.release(); - break; - case HANDLE_PLAY: - setState(STATE_PLAYING); - startForegroundCompat(NOTIFICATION_ID, mNotification); - break; - case HANDLE_PAUSE: - setState(STATE_NORMAL); - stopForegroundCompat(false); - break; - case RETRIEVE_SONGS: - retrieveSongs(); - break; - case CALL: - boolean inCall = message.arg1 == 1; - if (inCall) { - if (mState == STATE_PLAYING) { - mPlayingBeforeCall = true; - pause(); - } - } else { - if (mPlayingBeforeCall) { - play(); - mPlayingBeforeCall = false; - } - } - break; - case DO: - if (message.arg1 == DO) { - Log.w("VanillaMusic", "handleMessage.DO should not be called with arg1 = DO"); - return; - } - - message.what = message.arg1; - message.arg1 = message.arg2; - handleMessage(message); - break; - } - } - }; + mHandler = new MusicHandler(); IntentFilter filter = new IntentFilter(); filter.addAction(Intent.ACTION_HEADSET_PLUG); @@ -679,4 +599,86 @@ public class PlaybackService extends Service implements Runnable, MediaPlayer.On { OneCellWidget.reset(this); } + + private class MusicHandler extends Handler { + @Override + public void handleMessage(Message message) + { + switch (message.what) { + case SET_SONG: + setCurrentSong(message.arg1); + break; + case PLAY_PAUSE: + setPlaying(!mMediaPlayer.isPlaying()); + break; + case HEADSET_PLUGGED: + if (mHeadsetPause) { + boolean plugged = message.arg1 == 1; + if (!plugged && mMediaPlayer.isPlaying()) + pause(); + } + break; + case PREF_CHANGED: + loadPreference((String)message.obj); + break; + case QUEUE_ITEM: + if (message.arg1 == -1) { + mQueuePos = 0; + } else { + Song song = new Song(message.arg1); + String text = getResources().getString(R.string.enqueued, song.title); + Toast.makeText(ContextApplication.getContext(), text, Toast.LENGTH_SHORT).show(); + + int i = mCurrentSong + 1 + mQueuePos++; + if (i < mSongTimeline.size()) + mSongTimeline.set(i, song); + else + mSongTimeline.add(song); + } + break; + case TRACK_CHANGED: + setCurrentSong(+1); + break; + case RELEASE_WAKE_LOCK: + if (mWakeLock.isHeld()) + mWakeLock.release(); + break; + case HANDLE_PLAY: + setState(STATE_PLAYING); + startForegroundCompat(NOTIFICATION_ID, mNotification); + break; + case HANDLE_PAUSE: + setState(STATE_NORMAL); + stopForegroundCompat(false); + break; + case RETRIEVE_SONGS: + retrieveSongs(); + break; + case CALL: + boolean inCall = message.arg1 == 1; + if (inCall) { + if (mState == STATE_PLAYING) { + mPlayingBeforeCall = true; + pause(); + } + } else { + if (mPlayingBeforeCall) { + play(); + mPlayingBeforeCall = false; + } + } + break; + case DO: + if (message.arg1 == DO) { + Log.w("VanillaMusic", "handleMessage.DO should not be called with arg1 = DO"); + return; + } + + message.what = message.arg1; + message.arg1 = message.arg2; + handleMessage(message); + break; + } + } + } } \ No newline at end of file