Cleanup in preparation of distracter change.

Bug 19296201.

Change-Id: If016da2b7f4b3ecb9afd6d7aed9d19fbd4938758
diff --git a/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java b/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java
index d174b40..3e4cda4 100644
--- a/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java
+++ b/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java
@@ -113,24 +113,22 @@
 
     boolean isConfidentAboutCurrentLanguageBeing(final Locale mLocale);
 
-    void resetDictionaries(final Context context, final Locale[] newLocales,
-            final boolean useContactsDict, final boolean usePersonalizedDicts,
-            final boolean forceReloadMainDictionary,
-            @Nullable final String account,
-            final DictionaryInitializationListener listener);
-
-    void resetDictionariesWithDictNamePrefix(final Context context,
+    void resetDictionaries(
+            final Context context,
             final Locale[] newLocales,
             final boolean useContactsDict,
             final boolean usePersonalizedDicts,
             final boolean forceReloadMainDictionary,
-            @Nullable final DictionaryInitializationListener listener,
+            @Nullable final String account,
             final String dictNamePrefix,
-            @Nullable final String account);
+            @Nullable final DictionaryInitializationListener listener);
 
     @UsedForTesting
-    void resetDictionariesForTesting(final Context context, final Locale[] locales,
-            final ArrayList<String> dictionaryTypes, final HashMap<String, File> dictionaryFiles,
+    void resetDictionariesForTesting(
+            final Context context,
+            final Locale[] locales,
+            final ArrayList<String> dictionaryTypes,
+            final HashMap<String, File> dictionaryFiles,
             final Map<String, Map<String, String>> additionalDictAttributes,
             @Nullable final String account);
 
diff --git a/java/src/com/android/inputmethod/latin/DictionaryFacilitatorImpl.java b/java/src/com/android/inputmethod/latin/DictionaryFacilitatorImpl.java
index 96603ef..dd34fae 100644
--- a/java/src/com/android/inputmethod/latin/DictionaryFacilitatorImpl.java
+++ b/java/src/com/android/inputmethod/latin/DictionaryFacilitatorImpl.java
@@ -342,16 +342,6 @@
         }
     }
 
-    public void resetDictionaries(final Context context, final Locale[] newLocales,
-            final boolean useContactsDict, final boolean usePersonalizedDicts,
-            final boolean forceReloadMainDictionary,
-            @Nullable final String account,
-            final DictionaryInitializationListener listener) {
-        resetDictionariesWithDictNamePrefix(context, newLocales, useContactsDict,
-                usePersonalizedDicts, forceReloadMainDictionary, listener, "" /* dictNamePrefix */,
-                account);
-    }
-
     @Nullable
     static DictionaryGroup findDictionaryGroupWithLocale(final DictionaryGroup[] dictionaryGroups,
             final Locale locale) {
@@ -363,14 +353,15 @@
         return null;
     }
 
-    public void resetDictionariesWithDictNamePrefix(final Context context,
+    public void resetDictionaries(
+            final Context context,
             final Locale[] newLocales,
             final boolean useContactsDict,
             final boolean usePersonalizedDicts,
             final boolean forceReloadMainDictionary,
-            @Nullable final DictionaryInitializationListener listener,
+            @Nullable final String account,
             final String dictNamePrefix,
-            @Nullable final String account) {
+            @Nullable final DictionaryInitializationListener listener) {
         final HashMap<Locale, ArrayList<String>> existingDictionariesToCleanup = new HashMap<>();
         // TODO: Make subDictTypesToUse configurable by resource or a static final list.
         final HashSet<String> subDictTypesToUse = new HashSet<>();
diff --git a/java/src/com/android/inputmethod/latin/DictionaryFacilitatorLruCache.java b/java/src/com/android/inputmethod/latin/DictionaryFacilitatorLruCache.java
index 666813d..85ecf93 100644
--- a/java/src/com/android/inputmethod/latin/DictionaryFacilitatorLruCache.java
+++ b/java/src/com/android/inputmethod/latin/DictionaryFacilitatorLruCache.java
@@ -28,10 +28,11 @@
 
 /**
  * Cache for dictionary facilitators of multiple locales.
- * This class automatically creates and releases facilitator instances using LRU policy.
+ * This class automatically creates and releases up to 3 facilitator instances using LRU policy.
  */
 public class DictionaryFacilitatorLruCache {
-    static final String TAG = DictionaryFacilitatorLruCache.class.getSimpleName();
+    private static final String TAG = "DictionaryFacilitatorLruCache";
+    private static final int MAX_DICTIONARY_FACILITATOR_COUNT = 3;
     private static final int WAIT_FOR_LOADING_MAIN_DICT_IN_MILLISECONDS = 1000;
     private static final int MAX_RETRY_COUNT_FOR_WAITING_FOR_LOADING_DICT = 5;
 
@@ -74,10 +75,10 @@
     private final Object mLock = new Object();
     private boolean mUseContactsDictionary = false;
 
-    public DictionaryFacilitatorLruCache(final Context context, final int maxSize,
-            final String dictionaryNamePrefix) {
+    public DictionaryFacilitatorLruCache(final Context context, final String dictionaryNamePrefix) {
         mContext = context;
-        mLruCache = new DictionaryFacilitatorLruCacheInner(mCachedLocales, maxSize);
+        mLruCache = new DictionaryFacilitatorLruCacheInner(
+                mCachedLocales, MAX_DICTIONARY_FACILITATOR_COUNT);
         mDictionaryNamePrefix = dictionaryNamePrefix;
     }
 
@@ -103,11 +104,10 @@
     private void resetDictionariesForLocaleLocked(final DictionaryFacilitator dictionaryFacilitator,
             final Locale locale) {
         // Note: Given that personalized dictionaries are not used here; we can pass null account.
-        dictionaryFacilitator.resetDictionariesWithDictNamePrefix(mContext, new Locale[] { locale },
+        dictionaryFacilitator.resetDictionaries(mContext, new Locale[]{locale},
                 mUseContactsDictionary, false /* usePersonalizedDicts */,
-                false /* forceReloadMainDictionary */, null /* listener */,
-                mDictionaryNamePrefix,
-                null /* account */);
+                false /* forceReloadMainDictionary */, null /* account */,
+                mDictionaryNamePrefix, null /* listener */);
     }
 
     public void setUseContactsDictionary(final boolean useContectsDictionary) {
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 9a1df49..74ef648 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -128,7 +128,7 @@
 
     final Settings mSettings;
     private final DictionaryFacilitator mDictionaryFacilitator =
-      DictionaryFacilitatorProvider.newDictionaryFacilitator(this /* context */);
+            DictionaryFacilitatorProvider.newDictionaryFacilitator(this /* context */);
     final InputLogic mInputLogic = new InputLogic(this /* LatinIME */,
             this /* SuggestionStripViewAccessor */, mDictionaryFacilitator);
     // We expect to have only one decoder in almost all cases, hence the default capacity of 1.
@@ -679,7 +679,7 @@
         mDictionaryFacilitator.resetDictionaries(this /* context */, locales,
                 settingsValues.mUseContactsDict, settingsValues.mUsePersonalizedDicts,
                 false /* forceReloadMainDictionary */,
-                settingsValues.mAccount,
+                settingsValues.mAccount, "" /* dictNamePrefix */,
                 this /* DictionaryInitializationListener */);
         if (settingsValues.mAutoCorrectionEnabledPerUserSettings) {
             mInputLogic.mSuggest.setAutoCorrectionThreshold(
@@ -697,7 +697,7 @@
                 mDictionaryFacilitator.getLocales(), settingsValues.mUseContactsDict,
                 settingsValues.mUsePersonalizedDicts,
                 true /* forceReloadMainDictionary */,
-                settingsValues.mAccount,
+                settingsValues.mAccount, "" /* dictNamePrefix */,
                 this /* DictionaryInitializationListener */);
     }
 
@@ -1810,7 +1810,7 @@
         mDictionaryFacilitator.resetDictionaries(this, new Locale[] { locale },
             settingsValues.mUseContactsDict, settingsValues.mUsePersonalizedDicts,
             false /* forceReloadMainDictionary */,
-            settingsValues.mAccount,
+            settingsValues.mAccount, "", /* dictionaryNamePrefix */
             this /* DictionaryInitializationListener */);
     }
 
diff --git a/java/src/com/android/inputmethod/latin/personalization/UserHistoryDictionary.java b/java/src/com/android/inputmethod/latin/personalization/UserHistoryDictionary.java
index 2e41027..b294ebb 100644
--- a/java/src/com/android/inputmethod/latin/personalization/UserHistoryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/personalization/UserHistoryDictionary.java
@@ -17,8 +17,6 @@
 package com.android.inputmethod.latin.personalization;
 
 import android.content.Context;
-import android.content.SharedPreferences;
-import android.preference.PreferenceManager;
 
 import com.android.inputmethod.annotations.ExternallyReferenced;
 import com.android.inputmethod.annotations.UsedForTesting;
@@ -27,7 +25,6 @@
 import com.android.inputmethod.latin.NgramContext;
 import com.android.inputmethod.latin.common.Constants;
 import com.android.inputmethod.latin.define.ProductionFlags;
-import com.android.inputmethod.latin.settings.LocalSettingsConstants;
 import com.android.inputmethod.latin.utils.DistracterFilter;
 
 import java.io.File;
diff --git a/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java b/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java
index 477e570..0215152 100644
--- a/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java
+++ b/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java
@@ -67,10 +67,8 @@
     // TODO: Make each spell checker session has its own session id.
     private final ConcurrentLinkedQueue<Integer> mSessionIdPool = new ConcurrentLinkedQueue<>();
 
-    private static final int MAX_DICTIONARY_FACILITATOR_COUNT = 3;
     private final DictionaryFacilitatorLruCache mDictionaryFacilitatorCache =
-            new DictionaryFacilitatorLruCache(this /* context */, MAX_DICTIONARY_FACILITATOR_COUNT,
-                    DICTIONARY_NAME_PREFIX);
+            new DictionaryFacilitatorLruCache(this /* context */, DICTIONARY_NAME_PREFIX);
     private final ConcurrentHashMap<Locale, Keyboard> mKeyboardCache = new ConcurrentHashMap<>();
 
     // The threshold for a suggestion to be considered "recommended".
diff --git a/java/src/com/android/inputmethod/latin/utils/DistracterFilterCheckingExactMatchesAndSuggestions.java b/java/src/com/android/inputmethod/latin/utils/DistracterFilterCheckingExactMatchesAndSuggestions.java
index 09bb03f..becf13f 100644
--- a/java/src/com/android/inputmethod/latin/utils/DistracterFilterCheckingExactMatchesAndSuggestions.java
+++ b/java/src/com/android/inputmethod/latin/utils/DistracterFilterCheckingExactMatchesAndSuggestions.java
@@ -53,7 +53,6 @@
             DistracterFilterCheckingExactMatchesAndSuggestions.class.getSimpleName();
     private static final boolean DEBUG = false;
 
-    private static final int MAX_DICTIONARY_FACILITATOR_CACHE_SIZE = 3;
     private static final int MAX_DISTRACTERS_CACHE_SIZE = 1024;
 
     private final Context mContext;
@@ -81,8 +80,8 @@
         mContext = context;
         mLocaleToSubtypeCache = new ConcurrentHashMap<>();
         mLocaleToKeyboardCache = new ConcurrentHashMap<>();
-        mDictionaryFacilitatorLruCache = new DictionaryFacilitatorLruCache(context,
-                MAX_DICTIONARY_FACILITATOR_CACHE_SIZE, "" /* dictionaryNamePrefix */);
+        mDictionaryFacilitatorLruCache = new DictionaryFacilitatorLruCache(
+                context, "" /* dictionaryNamePrefix */);
         mDistractersCache = new LruCache<>(MAX_DISTRACTERS_CACHE_SIZE);
     }
 
diff --git a/tests/src/com/android/inputmethod/latin/DictionaryFacilitatorLruCacheTests.java b/tests/src/com/android/inputmethod/latin/DictionaryFacilitatorLruCacheTests.java
index 3ad659a..5340b6f 100644
--- a/tests/src/com/android/inputmethod/latin/DictionaryFacilitatorLruCacheTests.java
+++ b/tests/src/com/android/inputmethod/latin/DictionaryFacilitatorLruCacheTests.java
@@ -23,12 +23,9 @@
 
 @LargeTest
 public class DictionaryFacilitatorLruCacheTests extends AndroidTestCase {
-    static final int MAX_CACHE_SIZE = 2;
-    static final int MAX_CACHE_SIZE_LARGE = 5;
-
     public void testCacheSize() {
         final DictionaryFacilitatorLruCache cache =
-                new DictionaryFacilitatorLruCache(getContext(), MAX_CACHE_SIZE, "");
+                new DictionaryFacilitatorLruCache(getContext(), "");
 
         assertEquals(0, cache.getCachedLocalesForTesting().size());
         assertNotNull(cache.get(Locale.US));
@@ -42,12 +39,9 @@
     }
 
     public void testGetFacilitator() {
-        testGetFacilitator(new DictionaryFacilitatorLruCache(getContext(), MAX_CACHE_SIZE, ""));
-        testGetFacilitator(new DictionaryFacilitatorLruCache(
-                getContext(), MAX_CACHE_SIZE_LARGE, ""));
-    }
+        final DictionaryFacilitatorLruCache cache =
+                new DictionaryFacilitatorLruCache(getContext(), "");
 
-    private static void testGetFacilitator(final DictionaryFacilitatorLruCache cache) {
         final DictionaryFacilitator dictionaryFacilitatorEnUs = cache.get(Locale.US);
         assertNotNull(dictionaryFacilitatorEnUs);
         assertTrue(dictionaryFacilitatorEnUs.isForLocales(new Locale[] { Locale.US }));
@@ -62,13 +56,9 @@
     }
 
     public void testSetUseContactsDictionary() {
-        testSetUseContactsDictionary(new DictionaryFacilitatorLruCache(
-                getContext(), MAX_CACHE_SIZE, ""));
-        testSetUseContactsDictionary(new DictionaryFacilitatorLruCache(
-                getContext(), MAX_CACHE_SIZE_LARGE, ""));
-    }
+        final DictionaryFacilitatorLruCache cache =
+                new DictionaryFacilitatorLruCache(getContext(), "");
 
-    private static void testSetUseContactsDictionary(final DictionaryFacilitatorLruCache cache) {
         assertNull(cache.get(Locale.US).getSubDictForTesting(Dictionary.TYPE_CONTACTS));
         cache.setUseContactsDictionary(true /* useContactsDictionary */);
         assertNotNull(cache.get(Locale.US).getSubDictForTesting(Dictionary.TYPE_CONTACTS));