summaryrefslogtreecommitdiffstats
path: root/src/com/android/providers/downloads/DownloadProvider.java
diff options
context:
space:
mode:
authorJeff Sharkey <jsharkey@android.com>2017-07-15 12:23:05 -0600
committerJeff Sharkey <jsharkey@android.com>2017-07-15 15:04:30 -0600
commitd635ac295850ba23d528c02b1e5c6eb44b64b22b (patch)
tree4c371e93cf162adffcb891752bdeb3f902252d18 /src/com/android/providers/downloads/DownloadProvider.java
parentc442fbd95ad5b3de9e58a11e431f419edb4fe978 (diff)
downloadandroid_packages_providers_DownloadProvider-d635ac295850ba23d528c02b1e5c6eb44b64b22b.tar.gz
android_packages_providers_DownloadProvider-d635ac295850ba23d528c02b1e5c6eb44b64b22b.tar.bz2
android_packages_providers_DownloadProvider-d635ac295850ba23d528c02b1e5c6eb44b64b22b.zip
Allocate space using new StorageManager API.
Instead of reaching directly into PackageManager, use the new StorageManager API to allocate disk space for downloads. This wraps both clearing cached files and fallocate() into a single method. Remove support for storing downloads on the /cache partition, which doesn't exist on many devices. Bug: 63057877 Test: bit DownloadProviderTests:* Exempt-From-Owner-Approval: Bug 63673347 Change-Id: I5749f7a2f7ded9157fea763dc652bf4da88d86ff
Diffstat (limited to 'src/com/android/providers/downloads/DownloadProvider.java')
-rw-r--r--src/com/android/providers/downloads/DownloadProvider.java11
1 files changed, 3 insertions, 8 deletions
diff --git a/src/com/android/providers/downloads/DownloadProvider.java b/src/com/android/providers/downloads/DownloadProvider.java
index d50b394c..d47010dd 100644
--- a/src/com/android/providers/downloads/DownloadProvider.java
+++ b/src/com/android/providers/downloads/DownloadProvider.java
@@ -580,8 +580,7 @@ public final class DownloadProvider extends ContentProvider {
if (getContext().checkCallingOrSelfPermission(Downloads.Impl.PERMISSION_ACCESS_ADVANCED)
!= PackageManager.PERMISSION_GRANTED
&& (dest == Downloads.Impl.DESTINATION_CACHE_PARTITION
- || dest == Downloads.Impl.DESTINATION_CACHE_PARTITION_NOROAMING
- || dest == Downloads.Impl.DESTINATION_SYSTEMCACHE_PARTITION)) {
+ || dest == Downloads.Impl.DESTINATION_CACHE_PARTITION_NOROAMING)) {
throw new SecurityException("setting destination to : " + dest +
" not allowed, unless PERMISSION_ACCESS_ADVANCED is granted");
}
@@ -608,12 +607,6 @@ public final class DownloadProvider extends ContentProvider {
getCallingPackage()) != AppOpsManager.MODE_ALLOWED) {
throw new SecurityException("No permission to write");
}
-
- } else if (dest == Downloads.Impl.DESTINATION_SYSTEMCACHE_PARTITION) {
- getContext().enforcePermission(
- android.Manifest.permission.ACCESS_CACHE_FILESYSTEM,
- Binder.getCallingPid(), Binder.getCallingUid(),
- "need ACCESS_CACHE_FILESYSTEM permission to use system cache");
}
filteredValues.put(Downloads.Impl.COLUMN_DESTINATION, dest);
}
@@ -1306,6 +1299,8 @@ public final class DownloadProvider extends ContentProvider {
try {
getContext().getContentResolver().delete(Uri.parse(mediaUri), null,
null);
+ } catch (Exception e) {
+ Log.w(Constants.TAG, "Failed to delete media entry: " + e);
} finally {
Binder.restoreCallingIdentity(token);
}