diff options
author | 2013-06-28 13:06:59 +0900 | |
---|---|---|
committer | 2013-07-01 14:47:30 +0900 | |
commit | 3f0858eb2bcb9414dd94e01991b02c785af7b871 (patch) | |
tree | 12d7f458cc550e8163e1e33ea0c52e21cd57b6bd /java/src/com/android/inputmethod/dictionarypack/UpdateHandler.java | |
parent | 8142a7b637326e8fe8736de94246b1fffb4f2886 (diff) | |
download | latinime-3f0858eb2bcb9414dd94e01991b02c785af7b871.tar.gz latinime-3f0858eb2bcb9414dd94e01991b02c785af7b871.tar.xz latinime-3f0858eb2bcb9414dd94e01991b02c785af7b871.zip |
Fix a bug where no URL means refresh never ends
This patch does two things:
- If there is no URL to download new data from, then the
Refresh button is not shown.
- Even if for some reason refresh starts for a client for
which there is no URL, loading correctly finishes.
Bug: 9388602
Change-Id: I3fd9214da50faa4b59d0bd3e775293dd34f07547
Diffstat (limited to 'java/src/com/android/inputmethod/dictionarypack/UpdateHandler.java')
-rw-r--r-- | java/src/com/android/inputmethod/dictionarypack/UpdateHandler.java | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/java/src/com/android/inputmethod/dictionarypack/UpdateHandler.java b/java/src/com/android/inputmethod/dictionarypack/UpdateHandler.java index 719f24e59..8a23acdef 100644 --- a/java/src/com/android/inputmethod/dictionarypack/UpdateHandler.java +++ b/java/src/com/android/inputmethod/dictionarypack/UpdateHandler.java @@ -173,14 +173,15 @@ public final class UpdateHandler { * Download latest metadata from the server through DownloadManager for all known clients * @param context The context for retrieving resources * @param updateNow Whether we should update NOW, or respect bandwidth policies + * @return true if an update successfully started, false otherwise. */ - public static void update(final Context context, final boolean updateNow) { + public static boolean tryUpdate(final Context context, final boolean updateNow) { // TODO: loop through all clients instead of only doing the default one. final TreeSet<String> uris = new TreeSet<String>(); final Cursor cursor = MetadataDbHelper.queryClientIds(context); - if (null == cursor) return; + if (null == cursor) return false; try { - if (!cursor.moveToFirst()) return; + if (!cursor.moveToFirst()) return false; do { final String clientId = cursor.getString(0); final String metadataUri = @@ -192,6 +193,7 @@ public final class UpdateHandler { } finally { cursor.close(); } + boolean started = false; for (final String metadataUri : uris) { if (!TextUtils.isEmpty(metadataUri)) { // If the metadata URI is empty, that means we should never update it at all. @@ -200,8 +202,10 @@ public final class UpdateHandler { // is a bug and it happens anyway, doing nothing is the right thing to do. // For more information, {@see DictionaryProvider#insert(Uri, ContentValues)}. updateClientsWithMetadataUri(context, updateNow, metadataUri); + started = true; } } + return started; } /** |