summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSudheer Shanka <sudheersai@google.com>2019-05-13 11:58:40 -0700
committerSudheer Shanka <sudheersai@google.com>2019-05-13 12:13:10 -0700
commitd79866aadd52570901ad49a2d73097e7878fef31 (patch)
treef834f36525d00e67876b0d987c98418da96cef00
parent8d7668ae0d7f382700a1090d4079576e3a782ba7 (diff)
downloadandroid_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
-rw-r--r--src/com/android/providers/downloads/DownloadStorageProvider.java11
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;
}