From cb368a6dac1d3148785da4fd8572bb79847c2ad1 Mon Sep 17 00:00:00 2001
From: Keisuke Kuroyanagi <ksk@google.com>
Date: Mon, 16 Jun 2014 18:20:33 +0900
Subject: [PATCH] Fix: Probability used for one word contextual phrase.

Bug: 14161647
Change-Id: Ia5f985ea467145fb381e3ad2c1f67f3b013f19e8
---
 .../latin/DictionaryFacilitator.java          | 29 +++++++++----------
 1 file changed, 14 insertions(+), 15 deletions(-)

diff --git a/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java b/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java
index f5ad79222b..4a28a242a7 100644
--- a/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java
+++ b/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java
@@ -622,28 +622,27 @@ public class DictionaryFacilitator {
         }
         PrevWordsInfo prevWordsInfo = PrevWordsInfo.BEGINNING_OF_SENTENCE;
         for (int i = 0; i < phrase.length; i++) {
+            final String[] subPhrase = Arrays.copyOfRange(phrase, i /* start */, phrase.length);
+            final String subPhraseStr = TextUtils.join(Constants.WORD_SEPARATOR, subPhrase);
+            contextualDict.addUnigramEntryWithCheckingDistracter(
+                    subPhraseStr, probability, null /* shortcutTarget */,
+                    Dictionary.NOT_A_PROBABILITY /* shortcutFreq */,
+                    false /* isNotAWord */, false /* isBlacklisted */,
+                    BinaryDictionary.NOT_A_VALID_TIMESTAMP,
+                    DistracterFilter.EMPTY_DISTRACTER_FILTER);
+            contextualDict.addNgramEntry(prevWordsInfo, subPhraseStr,
+                    bigramProbabilityForPhrases, BinaryDictionary.NOT_A_VALID_TIMESTAMP);
+
             if (i < phrase.length - 1) {
-                final String[] subPhrase =
-                        Arrays.copyOfRange(phrase, i /* start */, phrase.length);
-                final String subPhraseStr = TextUtils.join(Constants.WORD_SEPARATOR, subPhrase);
                 contextualDict.addUnigramEntryWithCheckingDistracter(
-                        subPhraseStr, probability, null /* shortcutTarget */,
+                        phrase[i], probability, null /* shortcutTarget */,
                         Dictionary.NOT_A_PROBABILITY /* shortcutFreq */,
                         false /* isNotAWord */, false /* isBlacklisted */,
                         BinaryDictionary.NOT_A_VALID_TIMESTAMP,
                         DistracterFilter.EMPTY_DISTRACTER_FILTER);
-                contextualDict.addNgramEntry(prevWordsInfo, subPhraseStr,
-                        bigramProbabilityForPhrases, BinaryDictionary.NOT_A_VALID_TIMESTAMP);
-
+                contextualDict.addNgramEntry(prevWordsInfo, phrase[i],
+                        bigramProbabilityForWords, BinaryDictionary.NOT_A_VALID_TIMESTAMP);
             }
-            contextualDict.addUnigramEntryWithCheckingDistracter(
-                    phrase[i], probability, null /* shortcutTarget */,
-                    Dictionary.NOT_A_PROBABILITY /* shortcutFreq */,
-                    false /* isNotAWord */, false /* isBlacklisted */,
-                    BinaryDictionary.NOT_A_VALID_TIMESTAMP,
-                    DistracterFilter.EMPTY_DISTRACTER_FILTER);
-            contextualDict.addNgramEntry(prevWordsInfo, phrase[i],
-                    bigramProbabilityForWords, BinaryDictionary.NOT_A_VALID_TIMESTAMP);
             prevWordsInfo = new PrevWordsInfo(phrase[i]);
         }
     }
-- 
GitLab