diff options
author | 2011-08-29 18:09:00 +0900 | |
---|---|---|
committer | 2011-08-29 18:33:20 +0900 | |
commit | f019d505d7da97c03c321eef02c4879c4e0448f6 (patch) | |
tree | 708dbaef2602718bef056fca8d4307bafd6d4b54 /java/src/com/android/inputmethod/latin/ExpandableDictionary.java | |
parent | 940514989af9611ea8bac483e340799f8990319f (diff) | |
download | latinime-f019d505d7da97c03c321eef02c4879c4e0448f6.tar.gz latinime-f019d505d7da97c03c321eef02c4879c4e0448f6.tar.xz latinime-f019d505d7da97c03c321eef02c4879c4e0448f6.zip |
Fix a bug with synchronicity of spell checking/user dict
This fixes a race condition that would end up with the spell
checker not finding some words in the user dictionary when it
just booted.
Bug: 5194627
Change-Id: I1ba911cc53e6ae3b111d54a6f91d1d5feef3f5de
Diffstat (limited to 'java/src/com/android/inputmethod/latin/ExpandableDictionary.java')
-rw-r--r-- | java/src/com/android/inputmethod/latin/ExpandableDictionary.java | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/java/src/com/android/inputmethod/latin/ExpandableDictionary.java b/java/src/com/android/inputmethod/latin/ExpandableDictionary.java index 9f4777f5a..2b78b9065 100644 --- a/java/src/com/android/inputmethod/latin/ExpandableDictionary.java +++ b/java/src/com/android/inputmethod/latin/ExpandableDictionary.java @@ -202,7 +202,11 @@ public class ExpandableDictionary extends Dictionary { // Currently updating contacts, don't return any results. if (mUpdatingDictionary) return; } + getWordsInner(codes, callback, proximityInfo); + } + protected final void getWordsInner(final WordComposer codes, final WordCallback callback, + final ProximityInfo proximityInfo) { mInputLength = codes.size(); if (mCodes.length < mInputLength) mCodes = new int[mInputLength][]; // Cache the codes so that we don't have to lookup an array list @@ -223,8 +227,7 @@ public class ExpandableDictionary extends Dictionary { if (mRequiresReload) startDictionaryLoadingTaskLocked(); if (mUpdatingDictionary) return false; } - final int freq = getWordFrequency(word); - return freq > -1; + return getWordFrequency(word) > -1; } /** @@ -464,7 +467,7 @@ public class ExpandableDictionary extends Dictionary { } /** - * Used only for testing purposes + * Used for testing purposes and in the spell checker * This function will wait for loading from database to be done */ void waitForDictionaryLoading() { @@ -477,6 +480,11 @@ public class ExpandableDictionary extends Dictionary { } } + protected final void blockingReloadDictionaryIfRequired() { + reloadDictionaryIfRequired(); + waitForDictionaryLoading(); + } + // Local to reverseLookUp, but do not allocate each time. private final char[] mLookedUpString = new char[MAX_WORD_LENGTH]; |