Organized code in handleStartCommand into smaller methods to better see the code

paths and for eaier maintainability.
This commit is contained in:
Josh Kasten
2011-09-28 19:22:49 -05:00
parent 2deded2d88
commit 05e6018bd1
@@ -283,31 +283,47 @@ public class TrackRecordingService extends Service {
Log.d(TAG, Log.d(TAG,
"TrackRecordingService.handleStartCommand: " + startId); "TrackRecordingService.handleStartCommand: " + startId);
// Check if called on phone reboot with resume intent. if (intent == null)
if (intent != null) { return;
if (intent.getBooleanExtra(RESUME_TRACK_EXTRA_NAME, false)) {
resumeTrack(startId);
} else {
// Process actions for controlling the service.
String action = intent.getAction(); // Check if called on phone reboot with resume intent.
try { if (intent.getBooleanExtra(RESUME_TRACK_EXTRA_NAME, false)) {
if (getString(R.string.start_new_track_action).equals(action)) { resumeTrack(startId);
startNewTrack(); } else {
if (intent.getBooleanExtra(getString(R.string.select_new_track_extra), false)) { try {
prefManager.setSelectedTrack(recordingTrackId); // Process actions for controlling the service.
} processStartStopIntent(intent);
} else if (getString(R.string.end_current_track_action).equals(action)) { } catch (IllegalStateException e) {
endCurrentTrack(); /* Eat the exception if our sender says to ignore it, e.g., the Widget. */
} if (!intent.getBooleanExtra(getString(R.string.ignore_illegal_state), false))
} catch (IllegalStateException e) { throw e;
if (!intent.getBooleanExtra(getString(R.string.ignore_illegal_state), false))
throw e;
}
} }
} }
} }
private void processStartStopIntent(Intent intent) {
String action = intent.getAction();
if (isNewTrackAction(action)) {
boolean selectNewTrack = intent.getBooleanExtra(getString(R.string.select_new_track_extra), false);
startNewTrack();
if (selectNewTrack) {
prefManager.setSelectedTrack(recordingTrackId);
}
} else if (isEndTrackAction(action)) {
endCurrentTrack();
}
}
private boolean isNewTrackAction(String action) {
return getString(R.string.start_new_track_action).equals(action);
}
private boolean isEndTrackAction(String action) {
return getString(R.string.end_current_track_action).equals(action);
}
private void resumeTrack(int startId) { private void resumeTrack(int startId) {
Log.d(TAG, "TrackRecordingService: requested resume"); Log.d(TAG, "TrackRecordingService: requested resume");