forked from upstream-mirrors/OpenTracks
Code cleanup: save a save_all option to SaveActivity.
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user