summaryrefslogtreecommitdiffstats
path: root/src/com/android/providers
diff options
context:
space:
mode:
authorBen Lin <linben@google.com>2016-04-27 11:45:01 -0700
committerBen Lin <linben@google.com>2016-04-29 15:44:43 -0700
commitb0e0dec8456b677251e6f97c3e1bec3622f4dec7 (patch)
treed2e7fd6e25e37745f281faa2c9f6c74340d4184c /src/com/android/providers
parent3a5f5eafb34eaa4963c801882148e8f61514a61b (diff)
downloadandroid_packages_providers_DownloadProvider-b0e0dec8456b677251e6f97c3e1bec3622f4dec7.tar.gz
android_packages_providers_DownloadProvider-b0e0dec8456b677251e6f97c3e1bec3622f4dec7.tar.bz2
android_packages_providers_DownloadProvider-b0e0dec8456b677251e6f97c3e1bec3622f4dec7.zip
Add ability to rename a downloaded file.
Bug: 28359663 Change-Id: Id74ab041717f553bbd81ab2f69b1b8fa0d4d230d
Diffstat (limited to 'src/com/android/providers')
-rw-r--r--src/com/android/providers/downloads/DownloadStorageProvider.java21
1 files changed, 20 insertions, 1 deletions
diff --git a/src/com/android/providers/downloads/DownloadStorageProvider.java b/src/com/android/providers/downloads/DownloadStorageProvider.java
index bb782155..e0bb7cd1 100644
--- a/src/com/android/providers/downloads/DownloadStorageProvider.java
+++ b/src/com/android/providers/downloads/DownloadStorageProvider.java
@@ -155,6 +155,25 @@ public class DownloadStorageProvider extends DocumentsProvider {
}
@Override
+ public String renameDocument(String documentId, String displayName)
+ throws FileNotFoundException {
+ displayName = FileUtils.buildValidFatFilename(displayName);
+
+ final long token = Binder.clearCallingIdentity();
+ try {
+ final long id = Long.parseLong(documentId);
+
+ if (!mDm.rename(getContext(), id, displayName)) {
+ throw new IllegalStateException(
+ "Failed to rename to " + displayName + " in downloadsManager");
+ }
+ } finally {
+ Binder.restoreCallingIdentity(token);
+ }
+ return null;
+ }
+
+ @Override
public Cursor queryDocument(String docId, String[] projection) throws FileNotFoundException {
if (mArchiveHelper.isArchivedDocument(docId)) {
return mArchiveHelper.queryDocument(docId, projection);
@@ -331,7 +350,7 @@ public class DownloadStorageProvider extends DocumentsProvider {
cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_STATUS));
switch (status) {
case DownloadManager.STATUS_SUCCESSFUL:
- extraFlags = 0; // only successful is non-partial
+ extraFlags = Document.FLAG_SUPPORTS_RENAME; // only successful is non-partial
break;
case DownloadManager.STATUS_PAUSED:
summary = getContext().getString(R.string.download_queued);