summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJean-Baptiste Queru <jbq@google.com>2009-02-06 11:09:27 -0800
committerJean-Baptiste Queru <jbq@google.com>2009-02-06 11:09:27 -0800
commitce8813afb256269e9e223f72ebced92560201bbb (patch)
tree96b58973e24bb4acebadc41658f29b5a7aa9d424 /src
parentb7f50f86e1f424ab05dc8154c3fabbfb3ecd4c47 (diff)
downloadandroid_packages_providers_DownloadProvider-ce8813afb256269e9e223f72ebced92560201bbb.tar.gz
android_packages_providers_DownloadProvider-ce8813afb256269e9e223f72ebced92560201bbb.tar.bz2
android_packages_providers_DownloadProvider-ce8813afb256269e9e223f72ebced92560201bbb.zip
Refine interaction between destination and default visibility.
The previous code was hard to read, and relied on the fact that one of the constants was 0 (which is also the default value when reading back uninitialized columns).
Diffstat (limited to 'src')
-rw-r--r--src/com/android/providers/downloads/DownloadProvider.java22
1 files changed, 14 insertions, 8 deletions
diff --git a/src/com/android/providers/downloads/DownloadProvider.java b/src/com/android/providers/downloads/DownloadProvider.java
index 25d25e36..6b3124a1 100644
--- a/src/com/android/providers/downloads/DownloadProvider.java
+++ b/src/com/android/providers/downloads/DownloadProvider.java
@@ -267,21 +267,27 @@ public final class DownloadProvider extends ContentProvider {
copyBoolean(Downloads.COLUMN_NO_INTEGRITY, values, filteredValues);
copyString(Downloads.COLUMN_FILE_NAME_HINT, values, filteredValues);
copyString(Downloads.COLUMN_MIME_TYPE, values, filteredValues);
- Integer i = values.getAsInteger(Downloads.COLUMN_DESTINATION);
- if (i != null) {
+ Integer dest = values.getAsInteger(Downloads.COLUMN_DESTINATION);
+ if (dest != null) {
if (getContext().checkCallingPermission(Downloads.PERMISSION_ACCESS_ADVANCED)
!= PackageManager.PERMISSION_GRANTED
- && i != Downloads.DESTINATION_EXTERNAL
- && i != Downloads.DESTINATION_CACHE_PARTITION_PURGEABLE) {
+ && dest != Downloads.DESTINATION_EXTERNAL
+ && dest != Downloads.DESTINATION_CACHE_PARTITION_PURGEABLE) {
throw new SecurityException("unauthorized destination code");
}
- filteredValues.put(Downloads.COLUMN_DESTINATION, i);
- if (i != Downloads.DESTINATION_EXTERNAL &&
- values.getAsInteger(Downloads.COLUMN_VISIBILITY) == null) {
+ filteredValues.put(Downloads.COLUMN_DESTINATION, dest);
+ }
+ Integer vis = values.getAsInteger(Downloads.COLUMN_VISIBILITY);
+ if (vis == null) {
+ if (dest == Downloads.DESTINATION_EXTERNAL) {
+ filteredValues.put(Downloads.COLUMN_VISIBILITY,
+ Downloads.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
+ } else {
filteredValues.put(Downloads.COLUMN_VISIBILITY, Downloads.VISIBILITY_HIDDEN);
}
+ } else {
+ filteredValues.put(Downloads.COLUMN_VISIBILITY, vis);
}
- copyInteger(Downloads.COLUMN_VISIBILITY, values, filteredValues);
copyInteger(Downloads.COLUMN_CONTROL, values, filteredValues);
filteredValues.put(Downloads.COLUMN_STATUS, Downloads.STATUS_PENDING);
filteredValues.put(Downloads.COLUMN_LAST_MODIFICATION, System.currentTimeMillis());