diff options
| -rw-r--r-- | AndroidManifest.xml | 4 | ||||
| -rw-r--r-- | src/com/android/gallery3d/app/PhotoPage.java | 18 | ||||
| -rw-r--r-- | src/com/android/gallery3d/ui/ActionModeHandler.java | 2 |
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); |
