OSDN Git Service

Add permission to GalleryProvider.
authorOwen Lin <owenlin@google.com>
Tue, 16 Oct 2012 02:22:54 +0000 (10:22 +0800)
committerHung-ying Tyan <tyanh@google.com>
Wed, 17 Oct 2012 04:17:59 +0000 (12:17 +0800)
bug: 7202384
Change-Id: I1a13ed7e480163c898cf376219953b321290d4d4

AndroidManifest.xml
src/com/android/gallery3d/app/PhotoPage.java
src/com/android/gallery3d/ui/ActionModeHandler.java

index 30c0797..b62fe47 100644 (file)
@@ -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" />
                 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"
index ba9bf8c..413167f 100644 (file)
@@ -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() {
index 8cebddd..3384b88 100644 (file)
@@ -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);