From e7c16875656597f3129097a57841aa004324eaf1 Mon Sep 17 00:00:00 2001 From: Jimmy Shih Date: Mon, 24 Jun 2013 17:18:58 -0700 Subject: [PATCH] Code cleanup: save a save_all option to SaveActivity. --- .../android/apps/mytracks/TrackListActivity.java | 2 +- .../apps/mytracks/io/file/SaveActivity.java | 6 ++++-- .../apps/mytracks/io/file/SaveAsyncTask.java | 16 +++++++++++----- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/MyTracks/src/com/google/android/apps/mytracks/TrackListActivity.java b/MyTracks/src/com/google/android/apps/mytracks/TrackListActivity.java index e65db3318..9aa89f371 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/TrackListActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/TrackListActivity.java @@ -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; diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/file/SaveActivity.java b/MyTracks/src/com/google/android/apps/mytracks/io/file/SaveActivity.java index 1816a32aa..0bf75a626 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/io/file/SaveActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/io/file/SaveActivity.java @@ -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() { diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/file/SaveAsyncTask.java b/MyTracks/src/com/google/android/apps/mytracks/io/file/SaveAsyncTask.java index cff3c0ecd..167999474 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/io/file/SaveAsyncTask.java +++ b/MyTracks/src/com/google/android/apps/mytracks/io/file/SaveAsyncTask.java @@ -46,6 +46,7 @@ public class SaveAsyncTask extends AsyncTask { 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 { * 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 { 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 { * 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); } }