summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--AndroidManifest.xml4
-rw-r--r--src/com/android/gallery3d/app/PhotoPage.java18
-rw-r--r--src/com/android/gallery3d/ui/ActionModeHandler.java2
3 files changed, 14 insertions, 10 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 30c079709..b62fe470f 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -9,6 +9,9 @@
<uses-sdk android:minSdkVersion="10" android:targetSdkVersion="16" />
+ <permission android:name="com.android.gallery3d.permission.GALLERY_PROVIDER"
+ android:protectionLevel="signature" />
+
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
@@ -276,6 +279,7 @@
android:syncable="false"
android:grantUriPermissions="true"
android:exported="true"
+ android:permission="com.android.gallery3d.permission.GALLERY_PROVIDER"
android:authorities="com.android.gallery3d.provider" />
<activity android:name="com.android.gallery3d.gadget.WidgetClickHandler" />
<activity android:name="com.android.gallery3d.app.DialogPicker"
diff --git a/src/com/android/gallery3d/app/PhotoPage.java b/src/com/android/gallery3d/app/PhotoPage.java
index ba9bf8c42..413167fbb 100644
--- a/src/com/android/gallery3d/app/PhotoPage.java
+++ b/src/com/android/gallery3d/app/PhotoPage.java
@@ -592,11 +592,10 @@ public class PhotoPage extends ActivityState implements
private Intent createShareIntent(Path path) {
DataManager manager = mActivity.getDataManager();
int type = manager.getMediaType(path);
- Intent intent = new Intent(Intent.ACTION_SEND);
- intent.setType(MenuExecutor.getMimeType(type));
- Uri uri = manager.getContentUri(path);
- intent.putExtra(Intent.EXTRA_STREAM, uri);
- return intent;
+ return new Intent(Intent.ACTION_SEND)
+ .setType(MenuExecutor.getMimeType(type))
+ .putExtra(Intent.EXTRA_STREAM, manager.getContentUri(path))
+ .addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
}
private Intent createSharePanoramaIntent(Path path) {
@@ -605,11 +604,10 @@ public class PhotoPage extends ActivityState implements
if ((supported & MediaObject.SUPPORT_PANORAMA360) == 0) {
return null;
}
- Intent intent = new Intent(Intent.ACTION_SEND);
- intent.setType(GalleryUtils.MIME_TYPE_PANORAMA360);
- Uri uri = manager.getContentUri(path);
- intent.putExtra(Intent.EXTRA_STREAM, uri);
- return intent;
+ return new Intent(Intent.ACTION_SEND)
+ .setType(GalleryUtils.MIME_TYPE_PANORAMA360)
+ .putExtra(Intent.EXTRA_STREAM, manager.getContentUri(path))
+ .addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
}
private void launchPhotoEditor() {
diff --git a/src/com/android/gallery3d/ui/ActionModeHandler.java b/src/com/android/gallery3d/ui/ActionModeHandler.java
index 8cebdddad..3384b88e3 100644
--- a/src/com/android/gallery3d/ui/ActionModeHandler.java
+++ b/src/com/android/gallery3d/ui/ActionModeHandler.java
@@ -280,6 +280,7 @@ public class ActionModeHandler implements Callback, PopupList.OnPopupItemClickLi
intent.setType(GalleryUtils.MIME_TYPE_PANORAMA360);
intent.putExtra(Intent.EXTRA_STREAM, uris.get(0));
}
+ intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
}
return intent;
@@ -315,6 +316,7 @@ public class ActionModeHandler implements Callback, PopupList.OnPopupItemClickLi
intent.setAction(Intent.ACTION_SEND).setType(mimeType);
intent.putExtra(Intent.EXTRA_STREAM, uris.get(0));
}
+ intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
setNfcBeamPushUris(uris.toArray(new Uri[uris.size()]));
} else {
setNfcBeamPushUris(null);