diff options
author | Jeff Sharkey <jsharkey@android.com> | 2013-09-26 14:30:47 -0700 |
---|---|---|
committer | Jeff Sharkey <jsharkey@android.com> | 2013-09-26 14:36:35 -0700 |
commit | afaf53bd2b1322167b6f31eda941e38335c4a952 (patch) | |
tree | 1365d79e163582cde8e18471b90c393a6df5825a /src/com/android/providers/downloads/DownloadStorageProvider.java | |
parent | 776e4f7991c4f5637f9a945ed9190a26ff295446 (diff) | |
download | android_packages_providers_DownloadProvider-afaf53bd2b1322167b6f31eda941e38335c4a952.tar.gz android_packages_providers_DownloadProvider-afaf53bd2b1322167b6f31eda941e38335c4a952.tar.bz2 android_packages_providers_DownloadProvider-afaf53bd2b1322167b6f31eda941e38335c4a952.zip |
Revoke grants when downloads are deleted.
When deleting downloads, revoke any Uri permission grants, which
removes from getPersistedUriPermissions().
Bug: 10928851
Change-Id: I3e90c4071385832dcb3e0cf9ca3fdccafbe30037
Diffstat (limited to 'src/com/android/providers/downloads/DownloadStorageProvider.java')
-rw-r--r-- | src/com/android/providers/downloads/DownloadStorageProvider.java | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/com/android/providers/downloads/DownloadStorageProvider.java b/src/com/android/providers/downloads/DownloadStorageProvider.java index d982f2a1..1b7b6916 100644 --- a/src/com/android/providers/downloads/DownloadStorageProvider.java +++ b/src/com/android/providers/downloads/DownloadStorageProvider.java @@ -25,6 +25,7 @@ import android.database.Cursor; import android.database.MatrixCursor; import android.database.MatrixCursor.RowBuilder; import android.graphics.Point; +import android.net.Uri; import android.os.Binder; import android.os.CancellationSignal; import android.os.Environment; @@ -47,6 +48,7 @@ import java.io.IOException; * contents. */ public class DownloadStorageProvider extends DocumentsProvider { + private static final String AUTHORITY = Constants.STORAGE_AUTHORITY; private static final String DOC_ID_ROOT = Constants.STORAGE_ROOT_ID; private static final String[] DEFAULT_ROOT_PROJECTION = new String[] { @@ -82,6 +84,11 @@ public class DownloadStorageProvider extends DocumentsProvider { result.setNotificationUri(getContext().getContentResolver(), cursor.getNotificationUri()); } + static void onDownloadProviderDelete(Context context, long id) { + final Uri uri = DocumentsContract.buildDocumentUri(AUTHORITY, Long.toString(id)); + context.revokeUriPermission(uri, ~0); + } + @Override public Cursor queryRoots(String[] projection) throws FileNotFoundException { final MatrixCursor result = new MatrixCursor(resolveRootProjection(projection)); |