diff --git a/MyTracks/res/values/keys.xml b/MyTracks/res/values/keys.xml
index 5f80fc37e..bada8ef81 100644
--- a/MyTracks/res/values/keys.xml
+++ b/MyTracks/res/values/keys.xml
@@ -35,7 +35,6 @@ limitations under the License.
defaultActivity
defaultMapPublic
defaultTablePublic
- driveSync
googleAccount
mapType
maxRecordingDistance
@@ -69,6 +68,7 @@ limitations under the License.
autoResumeTrackCurrentRetry
driveDeletedList
driveLargestChangeId
+ driveSync
recordingTrackId
recordingTrackPaused
selectedTrackId
diff --git a/MyTracks/src/com/google/android/apps/mytracks/TrackDetailActivity.java b/MyTracks/src/com/google/android/apps/mytracks/TrackDetailActivity.java
index 38695ae55..8d3ed9d79 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/TrackDetailActivity.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/TrackDetailActivity.java
@@ -92,6 +92,7 @@ public class TrackDetailActivity extends AbstractSendToGoogleActivity
// From intent
private long trackId;
private long markerId;
+ private Track track;
// Preferences
private long recordingTrackId = PreferencesUtils.RECORDING_TRACK_ID_DEFAULT;
@@ -298,7 +299,6 @@ public class TrackDetailActivity extends AbstractSendToGoogleActivity
menu.findItem(R.id.track_detail_save_tcx)
.setTitle(getString(R.string.menu_save_format, fileTypes[3]));
- Track track = myTracksProviderUtils.getTrack(trackId);
menu.findItem(R.id.track_detail_edit).setVisible(!track.isSharedWithMe());
shareDriveMenuItem = menu.findItem(R.id.track_detail_share_drive);
shareDriveMenuItem.setEnabled(!track.isSharedWithMe());
@@ -377,7 +377,6 @@ public class TrackDetailActivity extends AbstractSendToGoogleActivity
return true;
case R.id.track_detail_send_google:
AnalyticsUtils.sendPageViews(this, "/action/send_google");
- Track track = myTracksProviderUtils.getTrack(trackId);
ChooseUploadServiceDialogFragment.newInstance(track.isSharedWithMe()).show(
getSupportFragmentManager(),
ChooseUploadServiceDialogFragment.CHOOSE_UPLOAD_SERVICE_DIALOG_TAG);
@@ -530,6 +529,11 @@ public class TrackDetailActivity extends AbstractSendToGoogleActivity
finish();
return;
}
+ track = myTracksProviderUtils.getTrack(trackId);
+ if (track == null) {
+ finish();
+ return;
+ }
}
/**
@@ -583,8 +587,7 @@ public class TrackDetailActivity extends AbstractSendToGoogleActivity
if (isRecording) {
title = getString(isPaused ? R.string.generic_paused : R.string.generic_recording);
} else {
- Track track = myTracksProviderUtils.getTrack(trackId);
- title = track != null ? track.getName() : getString(R.string.my_tracks_app_name);
+ title = track.getName();
}
setTitle(title);
}
diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/backup/PreferenceBackupHelper.java b/MyTracks/src/com/google/android/apps/mytracks/io/backup/PreferenceBackupHelper.java
index f5d8be071..8be9c86ff 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/io/backup/PreferenceBackupHelper.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/io/backup/PreferenceBackupHelper.java
@@ -47,6 +47,7 @@ public class PreferenceBackupHelper {
doNotBackup.add(context.getString(R.string.auto_resume_track_current_retry_key));
doNotBackup.add(context.getString(R.string.drive_deleted_list_key));
doNotBackup.add(context.getString(R.string.drive_largest_change_id_key));
+ doNotBackup.add(context.getString(R.string.drive_sync_key));
doNotBackup.add(context.getString(R.string.recording_track_id_key));
doNotBackup.add(context.getString(R.string.recording_track_paused_key));
doNotBackup.add(context.getString(R.string.selected_track_id_key));
diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/backup/RestoreAsyncTask.java b/MyTracks/src/com/google/android/apps/mytracks/io/backup/RestoreAsyncTask.java
index 4464667bf..586937e37 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/io/backup/RestoreAsyncTask.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/io/backup/RestoreAsyncTask.java
@@ -16,6 +16,8 @@
package com.google.android.apps.mytracks.io.backup;
+import com.google.android.apps.mytracks.io.sync.SyncUtils;
+import com.google.android.apps.mytracks.util.PreferencesUtils;
import com.google.android.maps.mytracks.R;
import android.os.AsyncTask;
@@ -84,7 +86,11 @@ public class RestoreAsyncTask extends AsyncTask {
@Override
protected Boolean doInBackground(Void... params) {
try {
+ PreferencesUtils.setBoolean(
+ restoreActivity, R.string.drive_sync_key, PreferencesUtils.DRIVE_SYNC_DEFAULT);
+ SyncUtils.disableSync(restoreActivity);
externalFileBackup.restoreFromDate(date);
+ SyncUtils.clearSyncState(restoreActivity);
messageId = R.string.settings_backup_restore_success;
return true;
} catch (IOException e) {