forked from upstream-mirrors/OpenTracks
- Fix flag in My Tracks notification to update the previous notification.
- move chart settings above settings - remove My Tracks Importer, thus just using My Tracks - rename to Save all to SD card... - rename to Import from SD card
This commit is contained in:
+13
-13
@@ -28,17 +28,17 @@ import android.os.Bundle;
|
||||
import android.widget.Toast;
|
||||
|
||||
/**
|
||||
* An activity to export all the tracks to the SD card.
|
||||
* An activity to save all the tracks to the SD card.
|
||||
*
|
||||
* @author Sandor Dornbush
|
||||
*/
|
||||
public class ExportActivity extends Activity {
|
||||
public class SaveAllActivity extends Activity {
|
||||
|
||||
public static final String EXTRA_TRACK_FILE_FORMAT = "track_file_format";
|
||||
|
||||
private static final int DIALOG_PROGRESS_ID = 0;
|
||||
|
||||
private ExportAsyncTask exportAsyncTask;
|
||||
private SaveAllAsyncTask saveAllAsyncTask;
|
||||
private ProgressDialog progressDialog;
|
||||
|
||||
@Override
|
||||
@@ -46,22 +46,22 @@ public class ExportActivity extends Activity {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
Object retained = getLastNonConfigurationInstance();
|
||||
if (retained instanceof ExportAsyncTask) {
|
||||
exportAsyncTask = (ExportAsyncTask) retained;
|
||||
exportAsyncTask.setActivity(this);
|
||||
if (retained instanceof SaveAllAsyncTask) {
|
||||
saveAllAsyncTask = (SaveAllAsyncTask) retained;
|
||||
saveAllAsyncTask.setActivity(this);
|
||||
} else {
|
||||
Intent intent = getIntent();
|
||||
TrackFileFormat trackFileFormat = intent.getParcelableExtra(EXTRA_TRACK_FILE_FORMAT);
|
||||
|
||||
exportAsyncTask = new ExportAsyncTask(this, trackFileFormat);
|
||||
exportAsyncTask.execute();
|
||||
saveAllAsyncTask = new SaveAllAsyncTask(this, trackFileFormat);
|
||||
saveAllAsyncTask.execute();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object onRetainNonConfigurationInstance() {
|
||||
exportAsyncTask.setActivity(null);
|
||||
return exportAsyncTask;
|
||||
saveAllAsyncTask.setActivity(null);
|
||||
return saveAllAsyncTask;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -70,10 +70,10 @@ public class ExportActivity extends Activity {
|
||||
return null;
|
||||
}
|
||||
progressDialog = DialogUtils.createHorizontalProgressDialog(
|
||||
this, R.string.export_progress_message, new DialogInterface.OnCancelListener() {
|
||||
this, R.string.save_all_progress_message, new DialogInterface.OnCancelListener() {
|
||||
@Override
|
||||
public void onCancel(DialogInterface dialog) {
|
||||
exportAsyncTask.cancel(true);
|
||||
saveAllAsyncTask.cancel(true);
|
||||
finish();
|
||||
}
|
||||
});
|
||||
@@ -102,7 +102,7 @@ public class ExportActivity extends Activity {
|
||||
/**
|
||||
* Sets the progress dialog value.
|
||||
*
|
||||
* @param number the number of tracks exported
|
||||
* @param number the number of tracks saved
|
||||
* @param max the maximum number of tracks
|
||||
*/
|
||||
public void setProgressDialogValue(int number, int max) {
|
||||
+25
-25
@@ -31,13 +31,13 @@ import android.os.AsyncTask;
|
||||
import android.os.PowerManager.WakeLock;
|
||||
|
||||
/**
|
||||
* AsyncTask to export all the tracks to the SD card.
|
||||
* AsyncTask to save all the tracks to the SD card.
|
||||
*
|
||||
* @author Jimmy Shih
|
||||
*/
|
||||
public class ExportAsyncTask extends AsyncTask<Void, Integer, Boolean> {
|
||||
public class SaveAllAsyncTask extends AsyncTask<Void, Integer, Boolean> {
|
||||
|
||||
private ExportActivity exportActivity;
|
||||
private SaveAllActivity saveAllActivity;
|
||||
private final TrackFileFormat trackFileFormat;
|
||||
private final Context context;
|
||||
private final MyTracksProviderUtils myTracksProviderUtils;
|
||||
@@ -56,40 +56,40 @@ public class ExportAsyncTask extends AsyncTask<Void, Integer, Boolean> {
|
||||
/**
|
||||
* Creates an AsyncTask.
|
||||
*
|
||||
* @param exportActivity the activity currently associated with this AsyncTask
|
||||
* @param saveAllActivity the activity currently associated with this AsyncTask
|
||||
* @param trackFileFormat the track file format
|
||||
*/
|
||||
public ExportAsyncTask(ExportActivity exportActivity, TrackFileFormat trackFileFormat) {
|
||||
this.exportActivity = exportActivity;
|
||||
public SaveAllAsyncTask(SaveAllActivity saveAllActivity, TrackFileFormat trackFileFormat) {
|
||||
this.saveAllActivity = saveAllActivity;
|
||||
this.trackFileFormat = trackFileFormat;
|
||||
context = exportActivity.getApplicationContext();
|
||||
myTracksProviderUtils = MyTracksProviderUtils.Factory.get(exportActivity);
|
||||
context = saveAllActivity.getApplicationContext();
|
||||
myTracksProviderUtils = MyTracksProviderUtils.Factory.get(saveAllActivity);
|
||||
|
||||
// Get the wake lock if not recording
|
||||
if (PreferencesUtils.getRecordingTrackId(exportActivity) == -1L) {
|
||||
wakeLock = SystemUtils.acquireWakeLock(exportActivity, wakeLock);
|
||||
if (PreferencesUtils.getRecordingTrackId(saveAllActivity) == -1L) {
|
||||
wakeLock = SystemUtils.acquireWakeLock(saveAllActivity, wakeLock);
|
||||
}
|
||||
success = false;
|
||||
completed = false;
|
||||
messageId = R.string.export_error;
|
||||
messageId = R.string.save_all_error;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the current {@link ExportActivity} associated with this AyncTask.
|
||||
* Sets the current {@link SaveAllActivity} associated with this AyncTask.
|
||||
*
|
||||
* @param exportActivity the current {@link ExportActivity}, can be null
|
||||
* @param saveAllActivity the current {@link SaveAllActivity}, can be null
|
||||
*/
|
||||
public void setActivity(ExportActivity exportActivity) {
|
||||
this.exportActivity = exportActivity;
|
||||
if (completed && exportActivity != null) {
|
||||
exportActivity.onAsyncTaskCompleted(success, messageId);
|
||||
public void setActivity(SaveAllActivity saveAllActivity) {
|
||||
this.saveAllActivity = saveAllActivity;
|
||||
if (completed && saveAllActivity != null) {
|
||||
saveAllActivity.onAsyncTaskCompleted(success, messageId);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPreExecute() {
|
||||
if (exportActivity != null) {
|
||||
exportActivity.showProgressDialog();
|
||||
if (saveAllActivity != null) {
|
||||
saveAllActivity.showProgressDialog();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -99,7 +99,7 @@ public class ExportAsyncTask extends AsyncTask<Void, Integer, Boolean> {
|
||||
try {
|
||||
cursor = myTracksProviderUtils.getTracksCursor(null, null, TracksColumns._ID);
|
||||
if (cursor == null) {
|
||||
messageId = R.string.export_success;
|
||||
messageId = R.string.save_all_success;
|
||||
return true;
|
||||
}
|
||||
int count = cursor.getCount();
|
||||
@@ -123,7 +123,7 @@ public class ExportAsyncTask extends AsyncTask<Void, Integer, Boolean> {
|
||||
}
|
||||
publishProgress(i + 1, count);
|
||||
}
|
||||
messageId = R.string.export_success;
|
||||
messageId = R.string.save_all_success;
|
||||
return true;
|
||||
} finally {
|
||||
if (cursor != null) {
|
||||
@@ -138,8 +138,8 @@ public class ExportAsyncTask extends AsyncTask<Void, Integer, Boolean> {
|
||||
|
||||
@Override
|
||||
protected void onProgressUpdate(Integer... values) {
|
||||
if (exportActivity != null) {
|
||||
exportActivity.setProgressDialogValue(values[0], values[1]);
|
||||
if (saveAllActivity != null) {
|
||||
saveAllActivity.setProgressDialogValue(values[0], values[1]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -147,8 +147,8 @@ public class ExportAsyncTask extends AsyncTask<Void, Integer, Boolean> {
|
||||
protected void onPostExecute(Boolean result) {
|
||||
success = result;
|
||||
completed = true;
|
||||
if (exportActivity != null) {
|
||||
exportActivity.onAsyncTaskCompleted(success, messageId);
|
||||
if (saveAllActivity != null) {
|
||||
saveAllActivity.onAsyncTaskCompleted(success, messageId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -159,8 +159,8 @@ public class TrackListActivity extends FragmentActivity {
|
||||
private MenuItem recordTrackMenuItem;
|
||||
private MenuItem stopRecordingMenuItem;
|
||||
private MenuItem searchMenuItem;
|
||||
private MenuItem importAllMenuItem;
|
||||
private MenuItem exportAllMenuItem;
|
||||
private MenuItem importMenuItem;
|
||||
private MenuItem saveAllMenuItem;
|
||||
private MenuItem deleteAllMenuItem;
|
||||
|
||||
@Override
|
||||
@@ -319,20 +319,20 @@ public class TrackListActivity extends FragmentActivity {
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
getMenuInflater().inflate(R.menu.track_list, menu);
|
||||
String fileTypes[] = getResources().getStringArray(R.array.file_types);
|
||||
menu.findItem(R.id.track_list_export_gpx)
|
||||
.setTitle(getString(R.string.menu_export_all_format, fileTypes[0]));
|
||||
menu.findItem(R.id.track_list_export_kml)
|
||||
.setTitle(getString(R.string.menu_export_all_format, fileTypes[1]));
|
||||
menu.findItem(R.id.track_list_export_csv)
|
||||
.setTitle(getString(R.string.menu_export_all_format, fileTypes[2]));
|
||||
menu.findItem(R.id.track_list_export_tcx)
|
||||
.setTitle(getString(R.string.menu_export_all_format, fileTypes[3]));
|
||||
menu.findItem(R.id.track_list_save_all_gpx)
|
||||
.setTitle(getString(R.string.menu_save_format, fileTypes[0]));
|
||||
menu.findItem(R.id.track_list_save_all_kml)
|
||||
.setTitle(getString(R.string.menu_save_format, fileTypes[1]));
|
||||
menu.findItem(R.id.track_list_save_all_csv)
|
||||
.setTitle(getString(R.string.menu_save_format, fileTypes[2]));
|
||||
menu.findItem(R.id.track_list_save_all_tcx)
|
||||
.setTitle(getString(R.string.menu_save_format, fileTypes[3]));
|
||||
|
||||
recordTrackMenuItem = menu.findItem(R.id.track_list_record_track);
|
||||
stopRecordingMenuItem = menu.findItem(R.id.track_list_stop_recording);
|
||||
searchMenuItem = menu.findItem(R.id.track_list_search);
|
||||
importAllMenuItem = menu.findItem(R.id.track_list_import_all);
|
||||
exportAllMenuItem = menu.findItem(R.id.track_list_export_all);
|
||||
importMenuItem = menu.findItem(R.id.track_list_import);
|
||||
saveAllMenuItem = menu.findItem(R.id.track_list_save_all);
|
||||
deleteAllMenuItem = menu.findItem(R.id.track_list_delete_all);
|
||||
|
||||
ApiAdapterFactory.getApiAdapter().configureSearchWidget(this, searchMenuItem);
|
||||
@@ -360,11 +360,11 @@ public class TrackListActivity extends FragmentActivity {
|
||||
if (stopRecordingMenuItem != null) {
|
||||
stopRecordingMenuItem.setVisible(isRecording);
|
||||
}
|
||||
if (importAllMenuItem != null) {
|
||||
importAllMenuItem.setVisible(!isRecording);
|
||||
if (importMenuItem != null) {
|
||||
importMenuItem.setVisible(!isRecording);
|
||||
}
|
||||
if (exportAllMenuItem != null) {
|
||||
exportAllMenuItem.setVisible(!isRecording);
|
||||
if (saveAllMenuItem != null) {
|
||||
saveAllMenuItem.setVisible(!isRecording);
|
||||
}
|
||||
if (deleteAllMenuItem != null) {
|
||||
deleteAllMenuItem.setVisible(!isRecording);
|
||||
@@ -385,29 +385,29 @@ public class TrackListActivity extends FragmentActivity {
|
||||
return true;
|
||||
case R.id.track_list_search:
|
||||
return ApiAdapterFactory.getApiAdapter().handleSearchMenuSelection(this);
|
||||
case R.id.track_list_import_all:
|
||||
case R.id.track_list_import:
|
||||
intent = IntentUtils.newIntent(this, ImportActivity.class)
|
||||
.putExtra(ImportActivity.EXTRA_IMPORT_ALL, true);
|
||||
startActivity(intent);
|
||||
return true;
|
||||
case R.id.track_list_export_gpx:
|
||||
intent = IntentUtils.newIntent(this, ExportActivity.class)
|
||||
.putExtra(ExportActivity.EXTRA_TRACK_FILE_FORMAT, (Parcelable) TrackFileFormat.GPX);
|
||||
case R.id.track_list_save_all_gpx:
|
||||
intent = IntentUtils.newIntent(this, SaveAllActivity.class)
|
||||
.putExtra(SaveAllActivity.EXTRA_TRACK_FILE_FORMAT, (Parcelable) TrackFileFormat.GPX);
|
||||
startActivity(intent);
|
||||
return true;
|
||||
case R.id.track_list_export_kml:
|
||||
intent = IntentUtils.newIntent(this, ExportActivity.class)
|
||||
.putExtra(ExportActivity.EXTRA_TRACK_FILE_FORMAT, (Parcelable) TrackFileFormat.KML);
|
||||
case R.id.track_list_save_all_kml:
|
||||
intent = IntentUtils.newIntent(this, SaveAllActivity.class)
|
||||
.putExtra(SaveAllActivity.EXTRA_TRACK_FILE_FORMAT, (Parcelable) TrackFileFormat.KML);
|
||||
startActivity(intent);
|
||||
return true;
|
||||
case R.id.track_list_export_csv:
|
||||
intent = IntentUtils.newIntent(this, ExportActivity.class)
|
||||
.putExtra(ExportActivity.EXTRA_TRACK_FILE_FORMAT, (Parcelable) TrackFileFormat.CSV);
|
||||
case R.id.track_list_save_all_csv:
|
||||
intent = IntentUtils.newIntent(this, SaveAllActivity.class)
|
||||
.putExtra(SaveAllActivity.EXTRA_TRACK_FILE_FORMAT, (Parcelable) TrackFileFormat.CSV);
|
||||
startActivity(intent);
|
||||
return true;
|
||||
case R.id.track_list_export_tcx:
|
||||
intent = IntentUtils.newIntent(this, ExportActivity.class)
|
||||
.putExtra(ExportActivity.EXTRA_TRACK_FILE_FORMAT, (Parcelable) TrackFileFormat.TCX);
|
||||
case R.id.track_list_save_all_tcx:
|
||||
intent = IntentUtils.newIntent(this, SaveAllActivity.class)
|
||||
.putExtra(SaveAllActivity.EXTRA_TRACK_FILE_FORMAT, (Parcelable) TrackFileFormat.TCX);
|
||||
startActivity(intent);
|
||||
return true;
|
||||
case R.id.track_list_delete_all:
|
||||
|
||||
@@ -486,11 +486,11 @@ public class TrackRecordingService extends Service {
|
||||
private void showNotification() {
|
||||
if (isRecording) {
|
||||
Notification notification = new Notification(
|
||||
R.drawable.my_tracks_notification_icon, null /* tickerText */,
|
||||
System.currentTimeMillis());
|
||||
R.drawable.my_tracks_notification_icon, null, System.currentTimeMillis());
|
||||
Intent intent = IntentUtils.newIntent(this, TrackDetailActivity.class)
|
||||
.putExtra(TrackDetailActivity.EXTRA_TRACK_ID, recordingTrackId);
|
||||
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent, 0);
|
||||
PendingIntent contentIntent = PendingIntent.getActivity(
|
||||
this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
|
||||
notification.setLatestEventInfo(this, getString(R.string.my_tracks_app_name),
|
||||
getString(R.string.track_record_notification), contentIntent);
|
||||
notification.flags += Notification.FLAG_NO_CLEAR;
|
||||
|
||||
Reference in New Issue
Block a user