Merge "Make the dictionary iterator shortcut-aware (B4)"
diff --git a/tools/makedict/src/com/android/inputmethod/latin/BinaryDictInputOutput.java b/tools/makedict/src/com/android/inputmethod/latin/BinaryDictInputOutput.java
index b1d9cc0..cd77b0a 100644
--- a/tools/makedict/src/com/android/inputmethod/latin/BinaryDictInputOutput.java
+++ b/tools/makedict/src/com/android/inputmethod/latin/BinaryDictInputOutput.java
@@ -1003,8 +1003,7 @@
                 new FusionDictionary.DictionaryOptions());
         if (null != dict) {
             for (Word w : dict) {
-                // TODO: pass the shortcut targets
-                newDict.add(w.mWord, w.mFrequency, null, w.mBigrams);
+                newDict.add(w.mWord, w.mFrequency, w.mShortcutTargets, w.mBigrams);
             }
         }
 
diff --git a/tools/makedict/src/com/android/inputmethod/latin/FusionDictionary.java b/tools/makedict/src/com/android/inputmethod/latin/FusionDictionary.java
index 2f6b2c3..50def5e 100644
--- a/tools/makedict/src/com/android/inputmethod/latin/FusionDictionary.java
+++ b/tools/makedict/src/com/android/inputmethod/latin/FusionDictionary.java
@@ -592,8 +592,7 @@
                     }
                     if (currentGroup.mFrequency >= 0)
                         return new Word(mCurrentString.toString(), currentGroup.mFrequency,
-                                // TODO: pass the shortcut targets here
-                                currentGroup.mBigrams);
+                                currentGroup.mShortcutTargets, currentGroup.mBigrams);
                 } else {
                     mPositions.removeLast();
                     currentPos = mPositions.getLast();
diff --git a/tools/makedict/src/com/android/inputmethod/latin/Word.java b/tools/makedict/src/com/android/inputmethod/latin/Word.java
index 916165a..561b21b 100644
--- a/tools/makedict/src/com/android/inputmethod/latin/Word.java
+++ b/tools/makedict/src/com/android/inputmethod/latin/Word.java
@@ -28,11 +28,15 @@
 public class Word implements Comparable<Word> {
     final String mWord;
     final int mFrequency;
+    final ArrayList<WeightedString> mShortcutTargets;
     final ArrayList<WeightedString> mBigrams;
 
-    public Word(String word, int frequency, ArrayList<WeightedString> bigrams) {
+    public Word(final String word, final int frequency,
+            final ArrayList<WeightedString> shortcutTargets,
+            final ArrayList<WeightedString> bigrams) {
         mWord = word;
         mFrequency = frequency;
+        mShortcutTargets = shortcutTargets;
         mBigrams = bigrams;
     }
 
@@ -60,6 +64,7 @@
         if (!(o instanceof Word)) return false;
         Word w = (Word)o;
         return mFrequency == w.mFrequency && mWord.equals(w.mWord)
+                && mShortcutTargets.equals(w.mShortcutTargets)
                 && mBigrams.equals(w.mBigrams);
     }
 }