aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/latin/DictionaryCollection.java
diff options
context:
space:
mode:
authorJean Chalard <jchalard@google.com>2012-06-13 06:57:40 +0900
committerJean Chalard <jchalard@google.com>2012-06-26 16:44:26 +0900
commitd82898c5a91f8aa69d5dc594b7a9290b8be1247a (patch)
treefa21bce13a047391b2a43534e4452fec881e2c4e /java/src/com/android/inputmethod/latin/DictionaryCollection.java
parentbda7eaa63aace64f3d40eae3affaf281591ffa66 (diff)
downloadlatinime-d82898c5a91f8aa69d5dc594b7a9290b8be1247a.tar.gz
latinime-d82898c5a91f8aa69d5dc594b7a9290b8be1247a.tar.xz
latinime-d82898c5a91f8aa69d5dc594b7a9290b8be1247a.zip
Change the return type of getWords and getBigrams (A8)
This only returns stuff, but it doesn't change yet how the data is really passed. It merely adds a way of getting the same data. Later, the old way will be removed. Change-Id: If3a064de362175fc5a6781b7a97b65d8730aaf3c
Diffstat (limited to 'java/src/com/android/inputmethod/latin/DictionaryCollection.java')
-rw-r--r--java/src/com/android/inputmethod/latin/DictionaryCollection.java43
1 files changed, 35 insertions, 8 deletions
diff --git a/java/src/com/android/inputmethod/latin/DictionaryCollection.java b/java/src/com/android/inputmethod/latin/DictionaryCollection.java
index 26c2e637e..6b424f88f 100644
--- a/java/src/com/android/inputmethod/latin/DictionaryCollection.java
+++ b/java/src/com/android/inputmethod/latin/DictionaryCollection.java
@@ -17,9 +17,11 @@
package com.android.inputmethod.latin;
import com.android.inputmethod.keyboard.ProximityInfo;
+import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
import android.util.Log;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.concurrent.CopyOnWriteArrayList;
@@ -50,17 +52,42 @@ public class DictionaryCollection extends Dictionary {
}
@Override
- public void getWords(final WordComposer composer, final CharSequence prevWordForBigrams,
- final WordCallback callback, final ProximityInfo proximityInfo) {
- for (final Dictionary dict : mDictionaries)
- dict.getWords(composer, prevWordForBigrams, callback, proximityInfo);
+ public ArrayList<SuggestedWordInfo> getWords(final WordComposer composer,
+ final CharSequence prevWordForBigrams, final WordCallback callback,
+ 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, callback, 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, callback, proximityInfo);
+ if (null != sugg) suggestions.addAll(sugg);
+ }
+ return suggestions;
}
@Override
- public void getBigrams(final WordComposer composer, final CharSequence previousWord,
- final WordCallback callback) {
- for (final Dictionary dict : mDictionaries)
- dict.getBigrams(composer, previousWord, callback);
+ public ArrayList<SuggestedWordInfo> getBigrams(final WordComposer composer,
+ final CharSequence previousWord, final WordCallback callback) {
+ 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, callback);
+ 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, callback);
+ if (null != sugg) suggestions.addAll(sugg);
+ }
+ return suggestions;
}
@Override