From 01a4ebcd88f8a7001aac2f7f45293ceab717a30d Mon Sep 17 00:00:00 2001 From: Jean Chalard Date: Thu, 31 Jan 2013 08:14:02 +0900 Subject: [PATCH] Add a way to know externally if we're installing a new dict That helps tests know when to wait and when to declare the dictionary actually not usable. Bug: 7925814 Change-Id: Ic963c1206c43e3cde39ac4214a0d601f4fc6c03b --- java/src/com/android/inputmethod/latin/Suggest.java | 9 +++++++++ .../com/android/inputmethod/latin/InputTestsBase.java | 4 ++-- 2 files changed, 11 insertions(+), 2 deletions(-) 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) {