From ce8813afb256269e9e223f72ebced92560201bbb Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Queru Date: Fri, 6 Feb 2009 11:09:27 -0800 Subject: 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). --- .../providers/downloads/DownloadProvider.java | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) (limited to 'src') 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()); -- cgit v1.2.3