Fix: Reporting wrong main dictionary availability.

Bug: 13965806
Change-Id: Ida2234ab8cb7785ec5efd433a58949bf21c44351
diff --git a/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java b/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java
index 0b6258a..331384f 100644
--- a/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java
+++ b/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java
@@ -217,9 +217,6 @@
         // Replace Dictionaries.
         final Dictionaries newDictionaries = new Dictionaries(newLocale, newMainDict,
                 newContactsDict,  newUserDictionary, newUserHistoryDict, newPersonalizationDict);
-        if (listener != null) {
-            listener.onUpdateMainDictionaryAvailability(newDictionaries.hasMainDict());
-        }
         final Dictionaries oldDictionaries;
         synchronized (mLock) {
             oldDictionaries = mDictionaries;
@@ -228,6 +225,9 @@
                 asyncReloadMainDictionary(context, newLocale, listener);
             }
         }
+        if (listener != null) {
+            listener.onUpdateMainDictionaryAvailability(hasInitializedMainDictionary());
+        }
 
         // Clean up old dictionaries.
         oldDictionaries.mDictMap.clear();
@@ -266,7 +266,7 @@
                     }
                 }
                 if (listener != null) {
-                    listener.onUpdateMainDictionaryAvailability(mDictionaries.hasMainDict());
+                    listener.onUpdateMainDictionaryAvailability(hasInitializedMainDictionary());
                 }
                 latchForWaitingLoadingMainDictionary.countDown();
             }