summaryrefslogtreecommitdiffstats
path: root/core/java/android/app
diff options
context:
space:
mode:
authorVasu Nori <vnori@google.com>2010-12-13 16:28:31 -0800
committerVasu Nori <vnori@google.com>2010-12-14 15:10:32 -0800
commitf83e6e4b7a7fcbfcc8e3b6078f4655fa3e64bce3 (patch)
tree7dbdd35757583568f7350fc29f87308cf1fea616 /core/java/android/app
parent29f94b781e1834d8280aba741b6e86b164d1223c (diff)
downloadframeworks_base-f83e6e4b7a7fcbfcc8e3b6078f4655fa3e64bce3.zip
frameworks_base-f83e6e4b7a7fcbfcc8e3b6078f4655fa3e64bce3.tar.gz
frameworks_base-f83e6e4b7a7fcbfcc8e3b6078f4655fa3e64bce3.tar.bz2
bug:3264401 changes to support usage of new downloads dir in /data
Change-Id: I209a624523f727d47a4a8f758c13df5d4eac614f
Diffstat (limited to 'core/java/android/app')
-rw-r--r--core/java/android/app/DownloadManager.java25
1 files changed, 24 insertions, 1 deletions
diff --git a/core/java/android/app/DownloadManager.java b/core/java/android/app/DownloadManager.java
index ed4aed2..a24375e 100644
--- a/core/java/android/app/DownloadManager.java
+++ b/core/java/android/app/DownloadManager.java
@@ -24,6 +24,7 @@ import android.database.Cursor;
import android.database.CursorWrapper;
import android.net.ConnectivityManager;
import android.net.Uri;
+import android.os.Binder;
import android.os.Environment;
import android.os.ParcelFileDescriptor;
import android.provider.Downloads;
@@ -335,6 +336,7 @@ public class DownloadManager {
private int mAllowedNetworkTypes = ~0; // default to all network types allowed
private boolean mIsVisibleInDownloadsUi = true;
private boolean mScannable = false;
+ private boolean mUseSystemCache = false;
/** if a file is designated as a MediaScanner scannable file, the following value is
* stored in the database column {@link Downloads.Impl#COLUMN_MEDIA_SCANNED}.
*/
@@ -402,6 +404,24 @@ public class DownloadManager {
}
/**
+ * Set the local destination for the downloaded file to the system cache dir (/cache).
+ * This is only available to System apps with the permission
+ * {@link android.Manifest.permission#ACCESS_CACHE_FILESYSTEM}.
+ * <p>
+ * The downloaded file is not scanned by MediaScanner.
+ * But it can be made scannable by calling {@link #allowScanningByMediaScanner()}.
+ * <p>
+ * Files downloaded to /cache may be deleted by the system at any time to reclaim space.
+ *
+ * @return this object
+ * @hide
+ */
+ public Request setDestinationToSystemCache() {
+ mUseSystemCache = true;
+ return this;
+ }
+
+ /**
* Set the local destination for the downloaded file to a path within the application's
* external files directory (as returned by {@link Context#getExternalFilesDir(String)}.
* <p>
@@ -596,7 +616,9 @@ public class DownloadManager {
values.put(Downloads.Impl.COLUMN_FILE_NAME_HINT, mDestinationUri.toString());
} else {
values.put(Downloads.Impl.COLUMN_DESTINATION,
- Downloads.Impl.DESTINATION_CACHE_PARTITION_PURGEABLE);
+ (this.mUseSystemCache) ?
+ Downloads.Impl.DESTINATION_SYSTEMCACHE_PARTITION :
+ Downloads.Impl.DESTINATION_CACHE_PARTITION_PURGEABLE);
}
// is the file supposed to be media-scannable?
values.put(Downloads.Impl.COLUMN_MEDIA_SCANNED, (mScannable) ? SCANNABLE_VALUE_YES :
@@ -918,6 +940,7 @@ public class DownloadManager {
// non-external storage for a downloaded file, then the following code
// should also check for that destination.
if (destination == Downloads.Impl.DESTINATION_CACHE_PARTITION ||
+ destination == Downloads.Impl.DESTINATION_SYSTEMCACHE_PARTITION ||
destination == Downloads.Impl.DESTINATION_CACHE_PARTITION_NOROAMING ||
destination == Downloads.Impl.DESTINATION_CACHE_PARTITION_PURGEABLE) {
// return private uri