Code cleanup: save a save_all option to SaveActivity.

This commit is contained in:
Jimmy Shih
2013-06-24 17:18:58 -07:00
parent 60ce1916f6
commit e7c1687565
3 changed files with 16 additions and 8 deletions
@@ -634,7 +634,7 @@ public class TrackListActivity extends AbstractSendToGoogleActivity
AnalyticsUtils.sendPageViews(
this, "/action/save_all_" + trackFileFormat.name().toLowerCase(Locale.US));
intent = IntentUtils.newIntent(this, SaveActivity.class)
.putExtra(SaveActivity.EXTRA_TRACK_IDS, new long[] { -1L })
.putExtra(SaveActivity.EXTRA_SAVE_ALL, true)
.putExtra(SaveActivity.EXTRA_TRACK_FILE_FORMAT, (Parcelable) trackFileFormat);
startActivity(intent);
break;
@@ -42,6 +42,7 @@ import java.io.File;
public class SaveActivity extends Activity {
public static final String EXTRA_TRACK_FILE_FORMAT = "track_file_format";
public static final String EXTRA_SAVE_ALL = "save_all";
public static final String EXTRA_TRACK_IDS = "track_ids";
public static final String EXTRA_PLAY_TRACK = "play_track";
@@ -71,6 +72,7 @@ public class SaveActivity extends Activity {
Intent intent = getIntent();
trackFileFormat = intent.getParcelableExtra(EXTRA_TRACK_FILE_FORMAT);
boolean saveAll = intent.getBooleanExtra(EXTRA_SAVE_ALL, false);
trackIds = intent.getLongArrayExtra(EXTRA_TRACK_IDS);
playTrack = intent.getBooleanExtra(EXTRA_PLAY_TRACK, false);
@@ -99,7 +101,7 @@ public class SaveActivity extends Activity {
saveAsyncTask = (SaveAsyncTask) retained;
saveAsyncTask.setActivity(this);
} else {
saveAsyncTask = new SaveAsyncTask(this, trackFileFormat, trackIds, directory);
saveAsyncTask = new SaveAsyncTask(this, trackFileFormat, saveAll, trackIds, directory);
saveAsyncTask.execute();
}
}
@@ -162,7 +164,7 @@ public class SaveActivity extends Activity {
finish();
}
}).setTitle(titleId);
if (!playTrack && trackIds.length == 1 && trackIds[0] != -1L && successCount == totalCount
if (!playTrack && trackIds != null && trackIds.length == 1 && successCount == totalCount
&& savedPath != null) {
builder.setNegativeButton(
R.string.share_track_share_file, new DialogInterface.OnClickListener() {
@@ -46,6 +46,7 @@ public class SaveAsyncTask extends AsyncTask<Void, Integer, Boolean> {
private SaveActivity saveActivity;
private final TrackFileFormat trackFileFormat;
private final boolean saveAll;
private final long[] trackIds;
private final File directory;
private final Context context;
@@ -70,14 +71,16 @@ public class SaveAsyncTask extends AsyncTask<Void, Integer, Boolean> {
* Creates an AsyncTask.
*
* @param saveActivity the activity currently associated with this task
* @track id the track id to save, -1L to save all tracks
* @param trackFileFormat the track file format
* @param saveAll true to save all the tracks
* @param trackIds the track ids to save. null if saveAll if true
* @param directory the directory to save to
*/
public SaveAsyncTask(
SaveActivity saveActivity, TrackFileFormat trackFileFormat, long[] trackIds, File directory) {
public SaveAsyncTask(SaveActivity saveActivity, TrackFileFormat trackFileFormat, boolean saveAll,
long[] trackIds, File directory) {
this.saveActivity = saveActivity;
this.trackFileFormat = trackFileFormat;
this.saveAll = saveAll;
this.trackIds = trackIds;
this.directory = directory;
context = saveActivity.getApplicationContext();
@@ -119,10 +122,13 @@ public class SaveAsyncTask extends AsyncTask<Void, Integer, Boolean> {
if (!isRecording || isPaused) {
wakeLock = SystemUtils.acquireWakeLock(saveActivity, wakeLock);
}
if (trackIds.length == 1 && trackIds[0] == -1L) {
if (saveAll) {
return saveAllTracks();
} else {
totalCount = 1;
if (trackIds == null) {
return false;
}
Track[] tracks = new Track[trackIds.length];
for (int i = 0; i < trackIds.length; i++) {
tracks[i] = myTracksProviderUtils.getTrack(trackIds[i]);
@@ -193,7 +199,7 @@ public class SaveAsyncTask extends AsyncTask<Void, Integer, Boolean> {
* If only saving one track, update the progress dialog once every
* 500 points
*/
if (trackIds.length == 1 && trackIds[0] != -1L && number % 500 == 0) {
if (trackIds != null && trackIds.length == 1 && number % 500 == 0) {
publishProgress(number, max);
}
}