diff options
author | Sudheer Shanka <sudheersai@google.com> | 2019-05-13 11:58:40 -0700 |
---|---|---|
committer | Sudheer Shanka <sudheersai@google.com> | 2019-05-13 12:13:10 -0700 |
commit | d79866aadd52570901ad49a2d73097e7878fef31 (patch) | |
tree | f834f36525d00e67876b0d987c98418da96cef00 /src/com/android | |
parent | 8d7668ae0d7f382700a1090d4079576e3a782ba7 (diff) | |
download | android_packages_providers_DownloadProvider-d79866aadd52570901ad49a2d73097e7878fef31.tar.gz android_packages_providers_DownloadProvider-d79866aadd52570901ad49a2d73097e7878fef31.tar.bz2 android_packages_providers_DownloadProvider-d79866aadd52570901ad49a2d73097e7878fef31.zip |
Allow files to be created under download dirs from MediaStore.
Also, allow files to be renamed if they are not in pending state and
trigger a media scan when a new file is created.
Bug: 127844893
Bug: 127802924
Test: manual
Change-Id: Iec14c5d349930c5fae54ac3346ee5cf11fcda387
Diffstat (limited to 'src/com/android')
-rw-r--r-- | src/com/android/providers/downloads/DownloadStorageProvider.java | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/com/android/providers/downloads/DownloadStorageProvider.java b/src/com/android/providers/downloads/DownloadStorageProvider.java index df073cdc..171bdd3d 100644 --- a/src/com/android/providers/downloads/DownloadStorageProvider.java +++ b/src/com/android/providers/downloads/DownloadStorageProvider.java @@ -198,7 +198,8 @@ public class DownloadStorageProvider extends FileSystemProvider { try { String newDocumentId = super.createDocument(parentDocId, mimeType, displayName); if (!Document.MIME_TYPE_DIR.equals(mimeType) - && !RawDocumentsHelper.isRawDocId(parentDocId)) { + && !RawDocumentsHelper.isRawDocId(parentDocId) + && !isMediaStoreDownload(parentDocId)) { File newFile = getFileForDocId(newDocumentId); newDocumentId = Long.toString(mDm.addCompletedDownload( newFile.getName(), newFile.getName(), true, mimeType, @@ -243,7 +244,8 @@ public class DownloadStorageProvider extends FileSystemProvider { final long token = Binder.clearCallingIdentity(); try { - if (RawDocumentsHelper.isRawDocId(docId)) { + if (RawDocumentsHelper.isRawDocId(docId) + || isMediaStoreDownloadDir(docId)) { return super.renameDocument(docId, displayName); } @@ -925,7 +927,10 @@ public class DownloadStorageProvider extends FileSystemProvider { mediaCursor.getColumnIndex(DownloadColumns.IS_PENDING)) == 1; int extraFlags = isPending ? Document.FLAG_PARTIAL : 0; - if (!Document.MIME_TYPE_DIR.equals(mimeType)) { + if (Document.MIME_TYPE_DIR.equals(mimeType)) { + extraFlags |= Document.FLAG_DIR_SUPPORTS_CREATE; + } + if (!isPending) { extraFlags |= Document.FLAG_SUPPORTS_RENAME; } |