diff --git a/java/src/com/android/inputmethod/latin/Suggest.java b/java/src/com/android/inputmethod/latin/Suggest.java index cf78e7d77..975664dca 100644 --- a/java/src/com/android/inputmethod/latin/Suggest.java +++ b/java/src/com/android/inputmethod/latin/Suggest.java @@ -57,6 +57,8 @@ public final class Suggest { private ContactsBinaryDictionary mContactsDict; private final ConcurrentHashMap mDictionaries = CollectionUtils.newConcurrentHashMap(); + @UsedForTesting + private boolean mIsCurrentlyWaitingForMainDictionary = false; public static final int MAX_SUGGESTIONS = 18; @@ -98,6 +100,7 @@ public final class Suggest { public void resetMainDict(final Context context, final Locale locale, final SuggestInitializationListener listener) { + mIsCurrentlyWaitingForMainDictionary = true; mMainDictionary = null; if (listener != null) { listener.onUpdateMainDictionaryAvailability(hasMainDictionary()); @@ -112,6 +115,7 @@ public final class Suggest { if (listener != null) { listener.onUpdateMainDictionaryAvailability(hasMainDictionary()); } + mIsCurrentlyWaitingForMainDictionary = false; } }.start(); } @@ -122,6 +126,11 @@ public final class Suggest { return null != mMainDictionary && mMainDictionary.isInitialized(); } + @UsedForTesting + public boolean isCurrentlyWaitingForMainDictionary() { + return mIsCurrentlyWaitingForMainDictionary; + } + public Dictionary getMainDictionary() { return mMainDictionary; } diff --git a/tests/src/com/android/inputmethod/latin/InputTestsBase.java b/tests/src/com/android/inputmethod/latin/InputTestsBase.java index a01fef2e2..10d415ba8 100644 --- a/tests/src/com/android/inputmethod/latin/InputTestsBase.java +++ b/tests/src/com/android/inputmethod/latin/InputTestsBase.java @@ -231,8 +231,8 @@ public class InputTestsBase extends ServiceTestCase { } protected void waitForDictionaryToBeLoaded() { - int remainingAttempts = 10; - while (remainingAttempts > 0 && !mLatinIME.mSuggest.hasMainDictionary()) { + int remainingAttempts = 300; + while (remainingAttempts > 0 && mLatinIME.mSuggest.isCurrentlyWaitingForMainDictionary()) { try { Thread.sleep(200); } catch (InterruptedException e) {