summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2017-02-19 23:21:45 -0700
committerLinux Build Service Account <lnxbuild@localhost>2017-02-19 23:21:45 -0700
commite64d26f3e3708b492835f514ba17110e0a0f5b0c (patch)
treed13dfc71c62f37076f41fd61cd580da78ce1f562
parent6cf372c7c4ddb03833300eec846e5e75abf6ba1e (diff)
parent88d617210005ffdbbd72e1cf0a779fb686a7e8c8 (diff)
downloadandroid_packages_apps_Gallery2-e64d26f3e3708b492835f514ba17110e0a0f5b0c.tar.gz
android_packages_apps_Gallery2-e64d26f3e3708b492835f514ba17110e0a0f5b0c.tar.bz2
android_packages_apps_Gallery2-e64d26f3e3708b492835f514ba17110e0a0f5b0c.zip
Promotion of android_ui.lnx.2.1.c1-00044.
CRs Change ID Subject -------------------------------------------------------------------------------------------------------------- 2003220 I32bfb4a9c8230500d2f2e4750232fc1ac2f1ad61 SnapdragonGallery: Fix crash of viewing download uri Change-Id: Icaf0929005b82d4a40a1b62b0b208cdcedd7d733 CRs-Fixed: 2003220
-rwxr-xr-xsrc/com/android/gallery3d/app/GalleryActivity.java23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/com/android/gallery3d/app/GalleryActivity.java b/src/com/android/gallery3d/app/GalleryActivity.java
index bdcc0c6b4..9f4b8eeb3 100755
--- a/src/com/android/gallery3d/app/GalleryActivity.java
+++ b/src/com/android/gallery3d/app/GalleryActivity.java
@@ -27,6 +27,7 @@ import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnCancelListener;
import android.content.Intent;
+import android.content.UriMatcher;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.graphics.Bitmap;
@@ -91,6 +92,17 @@ public final class GalleryActivity extends AbstractGalleryActivity implements On
public static final String KEY_FROM_SNAPCAM = "from-snapcam";
public static final String KEY_TOTAL_NUMBER = "total-number";
+ private static final int ALL_DOWNLOADS = 1;
+ private static final int ALL_DOWNLOADS_ID = 2;
+ private static final UriMatcher sURIMatcher =
+ new UriMatcher(UriMatcher.NO_MATCH);
+ public static final String PERMISSION_ACCESS_ALL =
+ "android.permission.ACCESS_ALL_DOWNLOADS";
+ static {
+ sURIMatcher.addURI("downloads", "all_downloads", ALL_DOWNLOADS);
+ sURIMatcher.addURI("downloads", "all_downloads/#", ALL_DOWNLOADS_ID);
+ }
+
private static final String TAG = "GalleryActivity";
private Dialog mVersionCheckDialog;
private ListView mDrawerListView;
@@ -366,6 +378,17 @@ public final class GalleryActivity extends AbstractGalleryActivity implements On
} else if (Intent.ACTION_VIEW.equalsIgnoreCase(action)
|| ACTION_REVIEW.equalsIgnoreCase(action)){
mDrawerLayoutSupported = false;
+ Uri uri = intent.getData();
+ int flag = intent.getFlags();
+ int match = sURIMatcher.match(uri);
+ if ((match == ALL_DOWNLOADS || match == ALL_DOWNLOADS_ID) &&
+ (flag & Intent.FLAG_GRANT_READ_URI_PERMISSION) == 0) {
+ if (checkCallingOrSelfPermission(
+ PERMISSION_ACCESS_ALL) != PackageManager.PERMISSION_GRANTED) {
+ Log.w(TAG, "no permission to view: " + uri);
+ return;
+ }
+ }
startViewAction(intent);
} else {
mDrawerLayoutSupported = true;