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 d2924650d..f36cf5f7c 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 @@ -132,7 +132,7 @@ public class SaveActivity extends Activity { }) .setTitle(success ? R.string.generic_success_title : R.string.generic_error_title); - if (success && trackId != -1L && !playTrack) { + if (success && trackId != -1L && !playTrack && savedPath != null) { builder.setNegativeButton( R.string.share_track_share_file, new DialogInterface.OnClickListener() { @Override @@ -191,7 +191,7 @@ public class SaveActivity extends Activity { * To be invoked after showing the result dialog. */ private void onPostResultDialog() { - if (success && playTrack) { + if (success && playTrack && savedPath != null) { Intent intent = new Intent() .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK) .putExtra(GOOGLE_EARTH_TOUR_FEATURE_ID, KmlTrackWriter.TOUR_FEATURE_ID) diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/file/TrackWriterImpl.java b/MyTracks/src/com/google/android/apps/mytracks/io/file/TrackWriterImpl.java index 7f5cf1693..04dfbee8e 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/io/file/TrackWriterImpl.java +++ b/MyTracks/src/com/google/android/apps/mytracks/io/file/TrackWriterImpl.java @@ -79,7 +79,7 @@ class TrackWriterImpl implements TrackWriter { @Override public String getAbsolutePath() { - return file.getAbsolutePath(); + return file == null ? null : file.getAbsolutePath(); } private void writeTrackAsync() { @@ -112,10 +112,8 @@ class TrackWriterImpl implements TrackWriter { writeDocument(); } catch (InterruptedException e) { Log.i(Constants.TAG, "The track write was interrupted"); - if (file != null) { - if (!file.delete()) { - Log.w(TAG, "Failed to delete file " + file.getAbsolutePath()); - } + if (file != null && !file.delete()) { + Log.w(TAG, "Failed to delete file " + file.getAbsolutePath()); } success = false; errorMessage = R.string.external_storage_canceled;