summaryrefslogtreecommitdiff
path: root/packages/ExternalStorageProvider/src
diff options
context:
space:
mode:
authorIvan Chiang <chiangi@google.com>2020-08-10 16:43:33 +0800
committerIvan Chiang <chiangi@google.com>2020-08-26 06:29:00 +0000
commit5afa7645579a01b77005b8a60f3713ca3e653fba (patch)
treeb31bc10bf9be74f530525cb9a413b5f6e5671887 /packages/ExternalStorageProvider/src
parentf1677fcee5cfd316ae7043992bfbaf434ba13b3a (diff)
Revoke the uri permission when the file is deleted
When the file is deleted, renamed or moved, revoke all uri permissions with the file Bug: 157474195 Test: manual test with DocumentsUI Test: atest DocumentsTest#testAfterMoveDocumentInStorage_revokeUriPermission Change-Id: I4ffb183630aadb2d87b0965e8cecf88af15f4534 Merged-In: I4ffb183630aadb2d87b0965e8cecf88af15f4534 (cherry picked from commit 9efd606f43abe36f9fcf7f0d1ab0d059c51be514)
Diffstat (limited to 'packages/ExternalStorageProvider/src')
-rw-r--r--packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java7
1 files changed, 7 insertions, 0 deletions
diff --git a/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java b/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
index f42bf1982b36..11d1b0a9ef2a 100644
--- a/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
+++ b/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
@@ -483,6 +483,13 @@ public class ExternalStorageProvider extends FileSystemProvider {
}
@Override
+ protected void onDocIdDeleted(String docId) {
+ Uri uri = DocumentsContract.buildDocumentUri(AUTHORITY, docId);
+ getContext().revokeUriPermission(uri, ~0);
+ }
+
+
+ @Override
public Cursor queryRoots(String[] projection) throws FileNotFoundException {
final MatrixCursor result = new MatrixCursor(resolveRootProjection(projection));
synchronized (mRootsLock) {