diff options
author | Steve Howard <showard@google.com> | 2010-07-22 11:33:50 -0700 |
---|---|---|
committer | Steve Howard <showard@google.com> | 2010-07-22 18:38:51 -0700 |
commit | b06b739b078ce4b00600487cfec31659647bf31f (patch) | |
tree | 9cfe924b01710eb1c7a6ad7b553fdabb05106843 /src/com/android/providers/downloads/Helpers.java | |
parent | 0d8d89105c00edbad95a268aaae65f2ff94ed5a1 (diff) | |
download | android_packages_providers_DownloadProvider-b06b739b078ce4b00600487cfec31659647bf31f.tar.gz android_packages_providers_DownloadProvider-b06b739b078ce4b00600487cfec31659647bf31f.tar.bz2 android_packages_providers_DownloadProvider-b06b739b078ce4b00600487cfec31659647bf31f.zip |
Make DownloadProvider accessible for public API usage.
This change removes the requirement that apps have the
ACCESS_DOWNLOAD_MANAGER permission in order to access
DownloadProvider. This enables the public API to work. Instead,
DownloadProvider enforces the new permissions model for the public
API:
* insert() requires INTERNET permission
* insert() checks that input fits within the restricted input allowed
for the public API
* insert() also strictly checks the file URI provided with
DESTINATION_FILE_URI (and still requires WRITE_EXTERNAL_STORAGE
permission if that is supplied)
Note that if an app has the ACCESS_DOWNLOAD_MANAGER permission, legacy
behavior is retained.
I've added a test to cover this new access, and updated the existing
permissions tests.
I also fixed a bug in WHERE clause construction in update() and
delete(), and refactored the code to eliminate duplication.
Change-Id: I53a08df137b35c2788c36350276c9dff24858af1
Diffstat (limited to 'src/com/android/providers/downloads/Helpers.java')
-rw-r--r-- | src/com/android/providers/downloads/Helpers.java | 8 |
1 files changed, 1 insertions, 7 deletions
diff --git a/src/com/android/providers/downloads/Helpers.java b/src/com/android/providers/downloads/Helpers.java index dac4b55e..58ab578a 100644 --- a/src/com/android/providers/downloads/Helpers.java +++ b/src/com/android/providers/downloads/Helpers.java @@ -117,13 +117,7 @@ public class Helpers { } private static String getPathForFileUri(String hint) throws GenerateSaveFileError { - Uri uri = Uri.parse(hint); - if (!uri.getScheme().equals("file")) { - Log.d(Constants.TAG, "Not a file URI: " + hint); - throw new GenerateSaveFileError(Downloads.Impl.STATUS_FILE_ERROR); - } - - String path = uri.getSchemeSpecificPart(); + String path = Uri.parse(hint).getSchemeSpecificPart(); if (new File(path).exists()) { Log.d(Constants.TAG, "File already exists: " + path); throw new GenerateSaveFileError(Downloads.Impl.STATUS_FILE_ERROR); |