diff options
author | Steve Howard <showard@google.com> | 2010-07-28 17:51:02 -0700 |
---|---|---|
committer | Steve Howard <showard@google.com> | 2010-07-28 18:39:35 -0700 |
commit | 9da9df3d6e84a3c4b04dd22d277e0e6d8f7f1ccb (patch) | |
tree | 49499d63a55ae22d33d7a63b62aced57fef39b1a /src | |
parent | 0d4f9f105c3a31475a36e9a1edfa868c66ff455f (diff) | |
download | android_packages_providers_DownloadProvider-9da9df3d6e84a3c4b04dd22d277e0e6d8f7f1ccb.tar.gz android_packages_providers_DownloadProvider-9da9df3d6e84a3c4b04dd22d277e0e6d8f7f1ccb.tar.bz2 android_packages_providers_DownloadProvider-9da9df3d6e84a3c4b04dd22d277e0e6d8f7f1ccb.zip |
Make all public API downloads visible.
This change makes all downloads through the public API visible by
default. It removes the API that had allowed applications to control
notifications while the download runs. This has been replaced with a
hidden API, since such behavior is needed by SystemUpdater and Market
(for self-updates). Additionally, the behavior is now protected by a
new permission.
I'm making this permission signatureOrSystem, and changing the
non-purgeable permission to the same (it should've been that, I just
didn't know). I'm also adding string descriptions to appease the
translation folks.
Change-Id: I192e8b19ff9b0e425257cef0db081c3d75996ea5
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/providers/downloads/DownloadProvider.java | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/com/android/providers/downloads/DownloadProvider.java b/src/com/android/providers/downloads/DownloadProvider.java index a116f87d..41b732f1 100644 --- a/src/com/android/providers/downloads/DownloadProvider.java +++ b/src/com/android/providers/downloads/DownloadProvider.java @@ -499,8 +499,15 @@ public final class DownloadProvider extends ContentProvider { enforceAllowedValues(values, Downloads.Impl.COLUMN_DESTINATION, Downloads.Impl.DESTINATION_CACHE_PARTITION_PURGEABLE, Downloads.Impl.DESTINATION_FILE_URI); - enforceAllowedValues(values, Downloads.Impl.COLUMN_VISIBILITY, - null, Downloads.Impl.VISIBILITY_VISIBLE); + + if (getContext().checkCallingOrSelfPermission(Downloads.Impl.PERMISSION_NO_NOTIFICATION) + == PackageManager.PERMISSION_GRANTED) { + enforceAllowedValues(values, Downloads.Impl.COLUMN_VISIBILITY, + Downloads.Impl.VISIBILITY_HIDDEN, Downloads.Impl.VISIBILITY_VISIBLE); + } else { + enforceAllowedValues(values, Downloads.Impl.COLUMN_VISIBILITY, + Downloads.Impl.VISIBILITY_VISIBLE); + } // remove the rest of the columns that are allowed (with any value) values.remove(Downloads.Impl.COLUMN_URI); |