diff options
author | Steve Howard <showard@google.com> | 2010-09-12 19:17:02 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2010-09-12 19:17:02 -0700 |
commit | 81bbddb5086163ebc9d388a6cca852ed4a16d203 (patch) | |
tree | bc4e6de55614534c76eda6cf0dd50584285ec534 /src | |
parent | 78d5596eba728ef3405ac24841f955000a17a37f (diff) | |
parent | 7fa71b17d1bcaceb4688cb4b0e6982d1db4a0538 (diff) | |
download | android_packages_providers_DownloadProvider-81bbddb5086163ebc9d388a6cca852ed4a16d203.tar.gz android_packages_providers_DownloadProvider-81bbddb5086163ebc9d388a6cca852ed4a16d203.tar.bz2 android_packages_providers_DownloadProvider-81bbddb5086163ebc9d388a6cca852ed4a16d203.zip |
am 7fa71b17: am 71e7fda9: Further work on the new downloads UI.
Merge commit '7fa71b17d1bcaceb4688cb4b0e6982d1db4a0538'
* commit '7fa71b17d1bcaceb4688cb4b0e6982d1db4a0538':
Further work on the new downloads UI.
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/providers/downloads/DownloadProvider.java | 36 | ||||
-rw-r--r-- | src/com/android/providers/downloads/Helpers.java | 2 |
2 files changed, 35 insertions, 3 deletions
diff --git a/src/com/android/providers/downloads/DownloadProvider.java b/src/com/android/providers/downloads/DownloadProvider.java index 900797f8..525de70a 100644 --- a/src/com/android/providers/downloads/DownloadProvider.java +++ b/src/com/android/providers/downloads/DownloadProvider.java @@ -58,7 +58,7 @@ public final class DownloadProvider extends ContentProvider { /** Database filename */ private static final String DB_NAME = "downloads.db"; /** Current database version */ - private static final int DB_VERSION = 102; + private static final int DB_VERSION = 103; /** Name of table in the database */ private static final String DB_TABLE = "downloads"; @@ -99,6 +99,7 @@ public final class DownloadProvider extends ContentProvider { Downloads.Impl.COLUMN_TITLE, Downloads.Impl.COLUMN_DESCRIPTION, Downloads.Impl.COLUMN_URI, + Downloads.Impl.COLUMN_IS_VISIBLE_IN_DOWNLOADS_UI, }; private static HashSet<String> sAppReadableColumnsSet; @@ -194,12 +195,29 @@ public final class DownloadProvider extends ContentProvider { "INTEGER NOT NULL DEFAULT 0"); break; + case 103: + addColumn(db, DB_TABLE, Downloads.Impl.COLUMN_IS_VISIBLE_IN_DOWNLOADS_UI, + "INTEGER NOT NULL DEFAULT 1"); + makeCacheDownloadsInvisible(db); + break; + default: throw new IllegalStateException("Don't know how to upgrade to " + version); } } /** + * Set all existing downloads to the cache partition to be invisible in the downloads UI. + */ + private void makeCacheDownloadsInvisible(SQLiteDatabase db) { + ContentValues values = new ContentValues(); + values.put(Downloads.Impl.COLUMN_IS_VISIBLE_IN_DOWNLOADS_UI, false); + String cacheSelection = Downloads.Impl.COLUMN_DESTINATION + + " != " + Downloads.Impl.DESTINATION_EXTERNAL; + db.update(DB_TABLE, values, cacheSelection, null); + } + + /** * Add a column to a table using ALTER TABLE. * @param dbTable name of the table * @param columnName name of the column to add @@ -419,6 +437,14 @@ public final class DownloadProvider extends ContentProvider { copyStringWithDefault(Downloads.Impl.COLUMN_DESCRIPTION, values, filteredValues, ""); filteredValues.put(Downloads.Impl.COLUMN_TOTAL_BYTES, -1); + if (values.containsKey(Downloads.Impl.COLUMN_IS_VISIBLE_IN_DOWNLOADS_UI)) { + copyBoolean(Downloads.Impl.COLUMN_IS_VISIBLE_IN_DOWNLOADS_UI, values, filteredValues); + } else { + // by default, make external downloads visible in the UI + boolean isExternal = (dest == null || dest == Downloads.Impl.DESTINATION_EXTERNAL); + filteredValues.put(Downloads.Impl.COLUMN_IS_VISIBLE_IN_DOWNLOADS_UI, isExternal); + } + if (isPublicApi) { copyInteger(Downloads.Impl.COLUMN_ALLOWED_NETWORK_TYPES, values, filteredValues); copyBoolean(Downloads.Impl.COLUMN_ALLOW_ROAMING, values, filteredValues); @@ -519,6 +545,7 @@ public final class DownloadProvider extends ContentProvider { values.remove(Downloads.Impl.COLUMN_NOTIFICATION_PACKAGE); // checked later in insert() values.remove(Downloads.Impl.COLUMN_ALLOWED_NETWORK_TYPES); values.remove(Downloads.Impl.COLUMN_ALLOW_ROAMING); + values.remove(Downloads.Impl.COLUMN_IS_VISIBLE_IN_DOWNLOADS_UI); Iterator<Map.Entry<String, Object>> iterator = values.valueSet().iterator(); while (iterator.hasNext()) { String key = iterator.next().getKey(); @@ -765,7 +792,6 @@ public final class DownloadProvider extends ContentProvider { SQLiteDatabase db = mOpenHelper.getWritableDatabase(); int count; - long rowId = 0; boolean startService = false; ContentValues filteredValues; @@ -793,6 +819,12 @@ public final class DownloadProvider extends ContentProvider { } c.close(); } + + Integer status = values.getAsInteger(Downloads.Impl.COLUMN_STATUS); + boolean isRestart = status != null && status == Downloads.Impl.STATUS_PENDING; + if (isRestart) { + startService = true; + } } int match = sURIMatcher.match(uri); switch (match) { diff --git a/src/com/android/providers/downloads/Helpers.java b/src/com/android/providers/downloads/Helpers.java index 794bb062..e2dc9e86 100644 --- a/src/com/android/providers/downloads/Helpers.java +++ b/src/com/android/providers/downloads/Helpers.java @@ -530,7 +530,7 @@ public class Helpers { */ public static void validateSelection(String selection, Set<String> allowedColumns) { try { - if (selection == null) { + if (selection == null || selection.isEmpty()) { return; } Lexer lexer = new Lexer(selection, allowedColumns); |