Cleanup old methods (A90)

Change-Id: I5435cef8ac6be523934ffa394952cb120c8e89d6
diff --git a/java/src/com/android/inputmethod/latin/BinaryDictionary.java b/java/src/com/android/inputmethod/latin/BinaryDictionary.java
index 03e2862..5c91a10 100644
--- a/java/src/com/android/inputmethod/latin/BinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/BinaryDictionary.java
@@ -109,15 +109,14 @@
     public ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer composer,
             final CharSequence prevWord, final ProximityInfo proximityInfo) {
         if (composer.size() <= 1) {
-            return TextUtils.isEmpty(prevWord) ? null : getBigrams(composer, prevWord);
+            return TextUtils.isEmpty(prevWord) ? null : getBigramsInternal(composer, prevWord);
         } else {
-            return getWords(composer, prevWord, proximityInfo);
+            return getWordsInternal(composer, prevWord, proximityInfo);
         }
     }
 
-    // TODO: rename this to getBigramsInternal, then move to native code
-    @Override
-    protected ArrayList<SuggestedWordInfo> getBigrams(final WordComposer codes,
+    // TODO: move to native code
+    private ArrayList<SuggestedWordInfo> getBigramsInternal(final WordComposer codes,
             final CharSequence previousWord) {
         if (mNativeDict == 0) return null;
 
@@ -154,10 +153,9 @@
         return suggestions;
     }
 
-    // TODO: rename this to getWordsInternal, then move to native code
+    // TODO: move to native code
     // proximityInfo and/or prevWordForBigrams may not be null.
-    @Override
-    protected ArrayList<SuggestedWordInfo> getWords(final WordComposer codes,
+    private ArrayList<SuggestedWordInfo> getWordsInternal(final WordComposer codes,
             final CharSequence prevWordForBigrams, final ProximityInfo proximityInfo) {
         final int count = getSuggestions(codes, prevWordForBigrams, proximityInfo, mOutputChars,
                 mScores, mSpaceIndices);
diff --git a/java/src/com/android/inputmethod/latin/Dictionary.java b/java/src/com/android/inputmethod/latin/Dictionary.java
index 38ef00d..fd40aa6 100644
--- a/java/src/com/android/inputmethod/latin/Dictionary.java
+++ b/java/src/com/android/inputmethod/latin/Dictionary.java
@@ -65,28 +65,6 @@
             final CharSequence prevWord, final ProximityInfo proximityInfo);
 
     /**
-     * Searches for words in the dictionary that match the characters in the composer. Matched
-     * words are returned as an ArrayList.
-     * @param composer the key sequence to match with coordinate info, as a WordComposer
-     * @param prevWordForBigrams the previous word, or null if none
-     * @param proximityInfo the object for key proximity. May be ignored by some implementations.
-     * @return the list of suggestions
-     */
-    // TODO: remove this
-    abstract protected ArrayList<SuggestedWordInfo> getWords(final WordComposer composer,
-            final CharSequence prevWordForBigrams, final ProximityInfo proximityInfo);
-
-    /**
-     * Searches for pairs in the bigram dictionary that matches the previous word.
-     * @param composer the key sequence to match
-     * @param previousWord the word before
-     * @return the list of suggestions
-     */
-    // TODO: remove this
-    abstract protected ArrayList<SuggestedWordInfo> getBigrams(final WordComposer composer,
-            final CharSequence previousWord);
-
-    /**
      * Checks if the given word occurs in the dictionary
      * @param word the word to search for. The search should be case-insensitive.
      * @return true if the word exists, false otherwise
diff --git a/java/src/com/android/inputmethod/latin/DictionaryCollection.java b/java/src/com/android/inputmethod/latin/DictionaryCollection.java
index 7c589ef..88ac07d 100644
--- a/java/src/com/android/inputmethod/latin/DictionaryCollection.java
+++ b/java/src/com/android/inputmethod/latin/DictionaryCollection.java
@@ -73,46 +73,6 @@
         return suggestions;
     }
 
-    // TODO: remove this
-    @Override
-    protected ArrayList<SuggestedWordInfo> getWords(final WordComposer composer,
-            final CharSequence prevWordForBigrams, final ProximityInfo proximityInfo) {
-        final CopyOnWriteArrayList<Dictionary> dictionaries = mDictionaries;
-        if (dictionaries.isEmpty()) return null;
-        // To avoid creating unnecessary objects, we get the list out of the first
-        // dictionary and add the rest to it if not null, hence the get(0)
-        ArrayList<SuggestedWordInfo> suggestions = dictionaries.get(0).getWords(composer,
-                prevWordForBigrams, proximityInfo);
-        if (null == suggestions) suggestions = new ArrayList<SuggestedWordInfo>();
-        final int length = dictionaries.size();
-        for (int i = 0; i < length; ++ i) {
-            final ArrayList<SuggestedWordInfo> sugg = dictionaries.get(i).getWords(composer,
-                    prevWordForBigrams, proximityInfo);
-            if (null != sugg) suggestions.addAll(sugg);
-        }
-        return suggestions;
-    }
-
-    // TODO: remove this
-    @Override
-    protected ArrayList<SuggestedWordInfo> getBigrams(final WordComposer composer,
-            final CharSequence previousWord) {
-        final CopyOnWriteArrayList<Dictionary> dictionaries = mDictionaries;
-        if (dictionaries.isEmpty()) return null;
-        // To avoid creating unnecessary objects, we get the list out of the first
-        // dictionary and add the rest to it if not null, hence the get(0)
-        ArrayList<SuggestedWordInfo> suggestions = dictionaries.get(0).getBigrams(composer,
-                previousWord);
-        if (null == suggestions) suggestions = new ArrayList<SuggestedWordInfo>();
-        final int length = dictionaries.size();
-        for (int i = 0; i < length; ++ i) {
-            final ArrayList<SuggestedWordInfo> sugg =
-                   dictionaries.get(i).getBigrams(composer, previousWord);
-            if (null != sugg) suggestions.addAll(sugg);
-        }
-        return suggestions;
-    }
-
     @Override
     public boolean isValidWord(CharSequence word) {
         for (int i = mDictionaries.size() - 1; i >= 0; --i)
diff --git a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
index dd949f1..016530a 100644
--- a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
@@ -16,7 +16,6 @@
 
 import android.content.Context;
 import android.os.SystemClock;
-import android.text.TextUtils;
 import android.util.Log;
 
 import com.android.inputmethod.keyboard.ProximityInfo;
@@ -208,52 +207,6 @@
         return null;
     }
 
-    // TODO: remove this
-    @Override
-    protected ArrayList<SuggestedWordInfo> getWords(final WordComposer codes,
-            final CharSequence prevWordForBigrams, final ProximityInfo proximityInfo) {
-        asyncReloadDictionaryIfRequired();
-        return getWordsInner(codes, prevWordForBigrams, proximityInfo);
-    }
-
-    protected final ArrayList<SuggestedWordInfo> getWordsInner(final WordComposer codes,
-            final CharSequence prevWordForBigrams, final ProximityInfo proximityInfo) {
-        // Ensure that there are no concurrent calls to getWords. If there are, do nothing and
-        // return.
-        if (mLocalDictionaryController.tryLock()) {
-            try {
-                if (mBinaryDictionary != null) {
-                    return mBinaryDictionary.getWords(codes, prevWordForBigrams, proximityInfo);
-                }
-            } finally {
-                mLocalDictionaryController.unlock();
-            }
-        }
-        return null;
-    }
-
-    // TODO: remove this
-    @Override
-    protected ArrayList<SuggestedWordInfo> getBigrams(final WordComposer codes,
-            final CharSequence previousWord) {
-        asyncReloadDictionaryIfRequired();
-        return getBigramsInner(codes, previousWord);
-    }
-
-    protected ArrayList<SuggestedWordInfo> getBigramsInner(final WordComposer codes,
-            final CharSequence previousWord) {
-        if (mLocalDictionaryController.tryLock()) {
-            try {
-                if (mBinaryDictionary != null) {
-                    return mBinaryDictionary.getBigrams(codes, previousWord);
-                }
-            } finally {
-                mLocalDictionaryController.unlock();
-            }
-        }
-        return null;
-    }
-
     @Override
     public boolean isValidWord(final CharSequence word) {
         asyncReloadDictionaryIfRequired();
diff --git a/java/src/com/android/inputmethod/latin/ExpandableDictionary.java b/java/src/com/android/inputmethod/latin/ExpandableDictionary.java
index 6cd4f65..5d7995d 100644
--- a/java/src/com/android/inputmethod/latin/ExpandableDictionary.java
+++ b/java/src/com/android/inputmethod/latin/ExpandableDictionary.java
@@ -266,19 +266,6 @@
         }
     }
 
-    // TODO: remove this
-    @Override
-    protected ArrayList<SuggestedWordInfo> getWords(final WordComposer codes,
-            final CharSequence prevWordForBigrams, final ProximityInfo proximityInfo) {
-        if (reloadDictionaryIfRequired()) return null;
-        if (codes.size() >= BinaryDictionary.MAX_WORD_LENGTH) {
-            return null;
-        }
-        final ArrayList<SuggestedWordInfo> suggestions =
-                getWordsInner(codes, prevWordForBigrams, proximityInfo);
-        return suggestions;
-    }
-
     // This reloads the dictionary if required, and returns whether it's currently updating its
     // contents or not.
     // @VisibleForTesting
@@ -290,17 +277,7 @@
         }
     }
 
-    // TODO: remove this
-    @Override
-    protected ArrayList<SuggestedWordInfo> getBigrams(final WordComposer codes,
-            final CharSequence previousWord) {
-        if (reloadDictionaryIfRequired()) return null;
-        final ArrayList<SuggestedWordInfo> suggestions = new ArrayList<SuggestedWordInfo>();
-        runBigramReverseLookUp(previousWord, suggestions);
-        return suggestions;
-    }
-
-    protected final ArrayList<SuggestedWordInfo> getWordsInner(final WordComposer codes,
+    protected ArrayList<SuggestedWordInfo> getWordsInner(final WordComposer codes,
             final CharSequence prevWordForBigrams, final ProximityInfo proximityInfo) {
         final ArrayList<SuggestedWordInfo> suggestions = new ArrayList<SuggestedWordInfo>();
         mInputLength = codes.size();
diff --git a/java/src/com/android/inputmethod/latin/SynchronouslyLoadedContactsBinaryDictionary.java b/java/src/com/android/inputmethod/latin/SynchronouslyLoadedContactsBinaryDictionary.java
index 59bd249..bdd988d 100644
--- a/java/src/com/android/inputmethod/latin/SynchronouslyLoadedContactsBinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/SynchronouslyLoadedContactsBinaryDictionary.java
@@ -32,10 +32,10 @@
     }
 
     @Override
-    protected synchronized ArrayList<SuggestedWordInfo> getWords(final WordComposer codes,
+    public synchronized ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer codes,
             final CharSequence prevWordForBigrams, final ProximityInfo proximityInfo) {
         syncReloadDictionaryIfRequired();
-        return getWordsInner(codes, prevWordForBigrams, proximityInfo);
+        return super.getSuggestions(codes, prevWordForBigrams, proximityInfo);
     }
 
     @Override
diff --git a/java/src/com/android/inputmethod/latin/SynchronouslyLoadedUserBinaryDictionary.java b/java/src/com/android/inputmethod/latin/SynchronouslyLoadedUserBinaryDictionary.java
index 7abc251..b8cfddd 100644
--- a/java/src/com/android/inputmethod/latin/SynchronouslyLoadedUserBinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/SynchronouslyLoadedUserBinaryDictionary.java
@@ -35,10 +35,10 @@
     }
 
     @Override
-    protected synchronized ArrayList<SuggestedWordInfo> getWords(final WordComposer codes,
+    public synchronized ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer codes,
             final CharSequence prevWordForBigrams, final ProximityInfo proximityInfo) {
         syncReloadDictionaryIfRequired();
-        return getWordsInner(codes, prevWordForBigrams, proximityInfo);
+        return super.getSuggestions(codes, prevWordForBigrams, proximityInfo);
     }
 
     @Override
diff --git a/java/src/com/android/inputmethod/latin/UserHistoryDictionary.java b/java/src/com/android/inputmethod/latin/UserHistoryDictionary.java
index e263491..3bb670c 100644
--- a/java/src/com/android/inputmethod/latin/UserHistoryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/UserHistoryDictionary.java
@@ -161,10 +161,10 @@
     }
 
     @Override
-    protected ArrayList<SuggestedWordInfo> getWords(final WordComposer composer,
+    protected ArrayList<SuggestedWordInfo> getWordsInner(final WordComposer composer,
             final CharSequence prevWord, final ProximityInfo proximityInfo) {
-        // User history unigrams are not used at this moment. Implement this method to make them
-        // useful.
+        // Inhibit suggestions (not predictions) for user history for now. Removing this method
+        // is enough to use it through the standard ExpandableDictionary way.
         return null;
     }
 
diff --git a/java/src/com/android/inputmethod/latin/WhitelistDictionary.java b/java/src/com/android/inputmethod/latin/WhitelistDictionary.java
index be2c80e..14476dc 100644
--- a/java/src/com/android/inputmethod/latin/WhitelistDictionary.java
+++ b/java/src/com/android/inputmethod/latin/WhitelistDictionary.java
@@ -92,10 +92,9 @@
     }
 
     @Override
-    protected ArrayList<SuggestedWordInfo> getWords(final WordComposer composer,
+    public ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer composer,
             final CharSequence prevWord, final ProximityInfo proximityInfo) {
-        // Whitelist does not supply suggestions (actually it should not even implement the
-        // Dictionary interface, as it responds to none of it, but it does for legacy reasons)
+        // Whitelist does not supply any suggestions or predictions.
         return null;
     }