diff --git a/MyTracks/src/com/google/android/apps/mytracks/content/MyTracksProvider.java b/MyTracks/src/com/google/android/apps/mytracks/content/MyTracksProvider.java index 7af423b01..467b3bdc8 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/content/MyTracksProvider.java +++ b/MyTracks/src/com/google/android/apps/mytracks/content/MyTracksProvider.java @@ -25,6 +25,7 @@ import android.content.ContentProvider; import android.content.ContentUris; import android.content.ContentValues; import android.content.Context; +import android.content.Intent; import android.content.UriMatcher; import android.database.Cursor; import android.database.SQLException; @@ -423,6 +424,7 @@ public class MyTracksProvider extends ContentProvider { for (File file : dir.listFiles()) { file.delete(); } + getContext().revokeUriPermission(uri, Intent.FLAG_GRANT_READ_URI_PERMISSION); } } diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/file/exporter/SaveActivity.java b/MyTracks/src/com/google/android/apps/mytracks/io/file/exporter/SaveActivity.java index a592b8a86..0afad700a 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/io/file/exporter/SaveActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/io/file/exporter/SaveActivity.java @@ -207,7 +207,7 @@ public class SaveActivity extends Activity { savedPath = aSavedPath; removeDialog(DIALOG_PROGRESS_ID); if (playTrack && successCount == 1 && totalCount == 1 && savedPath != null) { - startActivity(GoogleEarthUtils.getPlayInEarthIntent(savedPath)); + startActivity(GoogleEarthUtils.getPlayInEarthIntent(this, savedPath)); finish(); } else { showDialog(DIALOG_RESULT_ID); diff --git a/MyTracks/src/com/google/android/apps/mytracks/util/GoogleEarthUtils.java b/MyTracks/src/com/google/android/apps/mytracks/util/GoogleEarthUtils.java index 56ca26bfe..19ac1844b 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/util/GoogleEarthUtils.java +++ b/MyTracks/src/com/google/android/apps/mytracks/util/GoogleEarthUtils.java @@ -82,9 +82,10 @@ public class GoogleEarthUtils { * * @param kmlFilePath the kml file path */ - public static Intent getPlayInEarthIntent(String kmlFilePath) { + public static Intent getPlayInEarthIntent(Context context, String kmlFilePath) { Uri uri = new Uri.Builder().scheme(ContentResolver.SCHEME_CONTENT) .authority(MyTracksProviderUtils.AUTHORITY).path(kmlFilePath).build(); + context.grantUriPermission(GOOGLE_EARTH_PACKAGE, uri, Intent.FLAG_GRANT_READ_URI_PERMISSION); return new Intent().addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_GRANT_READ_URI_PERMISSION) .putExtra(GOOGLE_EARTH_TOUR_FEATURE_ID, TOUR_FEATURE_ID_VALUE)