Remove DictionaryFacilitatorForSuggest.getMainDictionary().

Bug: 8187060
Change-Id: Ide087f1e39b24695b610bd2b3c464b7e3cb9cd29
diff --git a/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java b/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java
index b464891..3f6756e 100644
--- a/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java
+++ b/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java
@@ -125,10 +125,6 @@
         return mIsCurrentlyWaitingForMainDictionary;
     }
 
-    public Dictionary getMainDictionary() {
-        return mMainDictionary;
-    }
-
     private void setMainDictionary(final Dictionary mainDictionary) {
         mMainDictionary = mainDictionary;
         addOrReplaceDictionary(Dictionary.TYPE_MAIN, mainDictionary);
@@ -319,6 +315,13 @@
         }
     }
 
+    public boolean isValidMainDictWord(final String word) {
+        if (TextUtils.isEmpty(word) || !hasMainDictionary()) {
+            return false;
+        }
+        return mMainDictionary.isValidWord(word);
+    }
+
     public boolean isValidWord(final String word, final boolean ignoreCase) {
         if (TextUtils.isEmpty(word)) {
             return false;
diff --git a/java/src/com/android/inputmethod/research/MainLogBuffer.java b/java/src/com/android/inputmethod/research/MainLogBuffer.java
index a75663f..9b1d8c5 100644
--- a/java/src/com/android/inputmethod/research/MainLogBuffer.java
+++ b/java/src/com/android/inputmethod/research/MainLogBuffer.java
@@ -99,14 +99,14 @@
         mDictionaryForTesting = dictionary;
     }
 
-    private Dictionary getDictionary() {
+    private boolean isValidDictWord(final String word) {
         if (mDictionaryForTesting != null) {
-            return mDictionaryForTesting;
+            return mDictionaryForTesting.isValidWord(word);
         }
-        if (mDictionaryFacilitator == null || !mDictionaryFacilitator.hasMainDictionary()) {
-            return null;
+        if (mDictionaryFacilitator != null) {
+            return mDictionaryFacilitator.isValidMainDictWord(word);
         }
-        return mDictionaryFacilitator.getMainDictionary();
+        return false;
     }
 
     public void setIsStopping() {
@@ -155,8 +155,8 @@
         }
         // Reload the dictionary in case it has changed (e.g., because the user has changed
         // languages).
-        final Dictionary dictionary = getDictionary();
-        if (dictionary == null) {
+        if ((mDictionaryFacilitator == null || !mDictionaryFacilitator.hasMainDictionary())
+                && mDictionaryForTesting == null) {
             // Main dictionary is unavailable.  Since we cannot check it, we cannot tell if a
             // word is out-of-vocabulary or not.  Therefore, we must judge the entire buffer
             // contents to potentially pose a privacy risk.
@@ -166,7 +166,6 @@
         // Check each word in the buffer.  If any word poses a privacy threat, we cannot upload
         // the complete buffer contents in detail.
         int numWordsInLogUnitList = 0;
-        final int length = logUnits.size();
         for (final LogUnit logUnit : logUnits) {
             if (!logUnit.hasOneOrMoreWords()) {
                 // Digits outside words are a privacy threat.
@@ -178,11 +177,11 @@
                 final String[] words = logUnit.getWordsAsStringArray();
                 for (final String word : words) {
                     // Words not in the dictionary are a privacy threat.
-                    if (ResearchLogger.hasLetters(word) && !(dictionary.isValidWord(word))) {
+                    if (ResearchLogger.hasLetters(word) && !isValidDictWord(word)) {
                         if (DEBUG) {
                             Log.d(TAG, "\"" + word + "\" NOT SAFE!: hasLetters: "
                                     + ResearchLogger.hasLetters(word)
-                                    + ", isValid: " + (dictionary.isValidWord(word)));
+                                    + ", isValid: " + isValidDictWord(word));
                         }
                         return PUBLISHABILITY_UNPUBLISHABLE_NOT_IN_DICTIONARY;
                     }
diff --git a/java/src/com/android/inputmethod/research/ResearchLogger.java b/java/src/com/android/inputmethod/research/ResearchLogger.java
index 4447b1b..e7f49a6 100644
--- a/java/src/com/android/inputmethod/research/ResearchLogger.java
+++ b/java/src/com/android/inputmethod/research/ResearchLogger.java
@@ -52,7 +52,6 @@
 import com.android.inputmethod.keyboard.KeyboardView;
 import com.android.inputmethod.keyboard.MainKeyboardView;
 import com.android.inputmethod.latin.Constants;
-import com.android.inputmethod.latin.Dictionary;
 import com.android.inputmethod.latin.DictionaryFacilitatorForSuggest;
 import com.android.inputmethod.latin.LatinIME;
 import com.android.inputmethod.latin.R;
@@ -254,10 +253,10 @@
                                 + ", cipd: " + canIncludePrivateData);
                     }
                     for (final String word : logUnit.getWordsAsStringArray()) {
-                        final Dictionary dictionary = getDictionary();
+                        final boolean isDictionaryWord = mDictionaryFacilitator != null
+                                && mDictionaryFacilitator.isValidMainDictWord(word);
                         mStatistics.recordWordEntered(
-                                dictionary != null && dictionary.isValidWord(word),
-                                logUnit.containsUserDeletions());
+                                isDictionaryWord, logUnit.containsUserDeletions());
                     }
                 }
                 publishLogUnits(logUnits, mMainResearchLog, canIncludePrivateData);
@@ -664,13 +663,6 @@
         }
     }
 
-    private Dictionary getDictionary() {
-        if (mDictionaryFacilitator == null) {
-            return null;
-        }
-        return mDictionaryFacilitator.getMainDictionary();
-    }
-
     private void setIsPasswordView(boolean isPasswordView) {
         mIsPasswordView = isPasswordView;
     }
@@ -964,11 +956,7 @@
     }
 
     private String scrubWord(String word) {
-        final Dictionary dictionary = getDictionary();
-        if (dictionary == null) {
-            return WORD_REPLACEMENT_STRING;
-        }
-        if (dictionary.isValidWord(word)) {
+        if (mDictionaryFacilitator != null && mDictionaryFacilitator.isValidMainDictWord(word)) {
             return word;
         }
         return WORD_REPLACEMENT_STRING;