diff options
author | Jeff Sharkey <jsharkey@android.com> | 2017-07-15 12:23:05 -0600 |
---|---|---|
committer | Jeff Sharkey <jsharkey@android.com> | 2017-07-15 15:04:30 -0600 |
commit | d635ac295850ba23d528c02b1e5c6eb44b64b22b (patch) | |
tree | 4c371e93cf162adffcb891752bdeb3f902252d18 /src/com/android/providers/downloads/DownloadProvider.java | |
parent | c442fbd95ad5b3de9e58a11e431f419edb4fe978 (diff) | |
download | android_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.java | 11 |
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); } |