Loading common/src/com/android/inputmethod/latin/common/Constants.java +6 −0 Original line number Diff line number Diff line Loading @@ -175,10 +175,12 @@ public final class Constants { public static final int MAX_CHARACTERS_FOR_RECAPITALIZATION = 1024 * 100; // Must be equal to MAX_WORD_LENGTH in native/jni/src/defines.h // TODO: create a overlay and update the value appropriately for the new decoder. public static final int DICTIONARY_MAX_WORD_LENGTH = 48; // (MAX_PREV_WORD_COUNT_FOR_N_GRAM + 1)-gram is supported in Java side. Needs to modify // MAX_PREV_WORD_COUNT_FOR_N_GRAM in native/jni/src/defines.h for suggestions. // TODO: create a overlay and update the value appropriately for the new decoder. public static final int MAX_PREV_WORD_COUNT_FOR_N_GRAM = 3; // Key events coming any faster than this are long-presses. Loading Loading @@ -330,6 +332,10 @@ public final class Constants { */ public static final int DEFAULT_GESTURE_POINTS_CAPACITY = 128; public static final int MAX_IME_DECODER_RESULTS = 20; public static final int DECODER_SCORE_SCALAR = 1000000; public static final int DECODER_MAX_SCORE = 1000000000; private Constants() { // This utility class is not publicly instantiable. } Loading java/src/com/android/inputmethod/latin/DictionaryFacilitator.java +3 −1 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import android.util.Pair; import android.view.inputmethod.InputMethodSubtype; import com.android.inputmethod.annotations.UsedForTesting; import com.android.inputmethod.keyboard.KeyboardLayout; import com.android.inputmethod.latin.settings.SettingsValuesForSuggestion; import com.android.inputmethod.latin.utils.SuggestionResults; Loading Loading @@ -131,7 +132,8 @@ public interface DictionaryFacilitator { // TODO: Revise the way to fusion suggestion results. SuggestionResults getSuggestionResults(final WordComposer composer, final NgramContext ngramContext, final long proximityInfoHandle, final SettingsValuesForSuggestion settingsValuesForSuggestion, final int sessionId); final SettingsValuesForSuggestion settingsValuesForSuggestion, final int sessionId, final int inputStyle, final KeyboardLayout keyboardLayout); boolean isValidWord(final String word, final boolean ignoreCase); Loading java/src/com/android/inputmethod/latin/DictionaryFacilitatorImpl.java +6 −3 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.util.Pair; import android.view.inputmethod.InputMethodSubtype; import com.android.inputmethod.annotations.UsedForTesting; import com.android.inputmethod.keyboard.KeyboardLayout; import com.android.inputmethod.latin.NgramContext.WordInfo; import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo; import com.android.inputmethod.latin.common.Constants; Loading Loading @@ -699,9 +700,11 @@ public class DictionaryFacilitatorImpl implements DictionaryFacilitator { } // TODO: Revise the way to fusion suggestion results. public SuggestionResults getSuggestionResults(final WordComposer composer, final NgramContext ngramContext, final long proximityInfoHandle, final SettingsValuesForSuggestion settingsValuesForSuggestion, final int sessionId) { @Override public SuggestionResults getSuggestionResults(WordComposer composer, NgramContext ngramContext, long proximityInfoHandle, SettingsValuesForSuggestion settingsValuesForSuggestion, int sessionId, int inputStyle, KeyboardLayout keyboardLayout) { final DictionaryGroup[] dictionaryGroups = mDictionaryGroups; final SuggestionResults suggestionResults = new SuggestionResults( SuggestedWords.MAX_SUGGESTIONS, ngramContext.isBeginningOfSentenceContext()); Loading java/src/com/android/inputmethod/latin/LatinIME.java +2 −1 Original line number Diff line number Diff line Loading @@ -1520,7 +1520,8 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen return; } mInputLogic.getSuggestedWords(mSettings.getCurrent(), keyboard.getProximityInfo(), mKeyboardSwitcher.getKeyboardShiftMode(), inputStyle, sequenceNumber, callback); mKeyboardSwitcher.getKeyboardShiftMode(), inputStyle, sequenceNumber, callback, keyboard.getKeyboardLayout()); } @Override Loading java/src/com/android/inputmethod/latin/NgramContext.java +30 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import com.android.inputmethod.annotations.UsedForTesting; import com.android.inputmethod.latin.common.Constants; import com.android.inputmethod.latin.common.StringUtils; import java.util.ArrayList; import java.util.Arrays; import javax.annotation.Nonnull; Loading @@ -38,6 +39,10 @@ public class NgramContext { public static final NgramContext BEGINNING_OF_SENTENCE = new NgramContext(WordInfo.BEGINNING_OF_SENTENCE_WORD_INFO); public static final String BEGINNING_OF_SENTENCE_TAG = "<S>"; public static final String CONTEXT_SEPARATOR = " "; /** * Word information used to represent previous words information. */ Loading Loading @@ -114,6 +119,31 @@ public class NgramContext { return new NgramContext(prevWordsInfo); } /** * Extracts the previous words context. * * @return a String with the previous words separated by white space. */ public String extractPrevWordsContext() { final ArrayList<String> terms = new ArrayList<>(); for (int i = mPrevWordsInfo.length - 1; i >= 0; --i) { if (mPrevWordsInfo[i] != null && mPrevWordsInfo[i].isValid()) { final NgramContext.WordInfo wordInfo = mPrevWordsInfo[i]; if (wordInfo.mIsBeginningOfSentence) { terms.add(BEGINNING_OF_SENTENCE_TAG); } else { final String term = wordInfo.mWord.toString(); if (!term.isEmpty()) { terms.add(term); } } } } return terms.size() == 0 ? BEGINNING_OF_SENTENCE_TAG : TextUtils.join(CONTEXT_SEPARATOR, terms); } public boolean isValid() { return mPrevWordsCount > 0 && mPrevWordsInfo[0].isValid(); } Loading Loading
common/src/com/android/inputmethod/latin/common/Constants.java +6 −0 Original line number Diff line number Diff line Loading @@ -175,10 +175,12 @@ public final class Constants { public static final int MAX_CHARACTERS_FOR_RECAPITALIZATION = 1024 * 100; // Must be equal to MAX_WORD_LENGTH in native/jni/src/defines.h // TODO: create a overlay and update the value appropriately for the new decoder. public static final int DICTIONARY_MAX_WORD_LENGTH = 48; // (MAX_PREV_WORD_COUNT_FOR_N_GRAM + 1)-gram is supported in Java side. Needs to modify // MAX_PREV_WORD_COUNT_FOR_N_GRAM in native/jni/src/defines.h for suggestions. // TODO: create a overlay and update the value appropriately for the new decoder. public static final int MAX_PREV_WORD_COUNT_FOR_N_GRAM = 3; // Key events coming any faster than this are long-presses. Loading Loading @@ -330,6 +332,10 @@ public final class Constants { */ public static final int DEFAULT_GESTURE_POINTS_CAPACITY = 128; public static final int MAX_IME_DECODER_RESULTS = 20; public static final int DECODER_SCORE_SCALAR = 1000000; public static final int DECODER_MAX_SCORE = 1000000000; private Constants() { // This utility class is not publicly instantiable. } Loading
java/src/com/android/inputmethod/latin/DictionaryFacilitator.java +3 −1 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import android.util.Pair; import android.view.inputmethod.InputMethodSubtype; import com.android.inputmethod.annotations.UsedForTesting; import com.android.inputmethod.keyboard.KeyboardLayout; import com.android.inputmethod.latin.settings.SettingsValuesForSuggestion; import com.android.inputmethod.latin.utils.SuggestionResults; Loading Loading @@ -131,7 +132,8 @@ public interface DictionaryFacilitator { // TODO: Revise the way to fusion suggestion results. SuggestionResults getSuggestionResults(final WordComposer composer, final NgramContext ngramContext, final long proximityInfoHandle, final SettingsValuesForSuggestion settingsValuesForSuggestion, final int sessionId); final SettingsValuesForSuggestion settingsValuesForSuggestion, final int sessionId, final int inputStyle, final KeyboardLayout keyboardLayout); boolean isValidWord(final String word, final boolean ignoreCase); Loading
java/src/com/android/inputmethod/latin/DictionaryFacilitatorImpl.java +6 −3 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.util.Pair; import android.view.inputmethod.InputMethodSubtype; import com.android.inputmethod.annotations.UsedForTesting; import com.android.inputmethod.keyboard.KeyboardLayout; import com.android.inputmethod.latin.NgramContext.WordInfo; import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo; import com.android.inputmethod.latin.common.Constants; Loading Loading @@ -699,9 +700,11 @@ public class DictionaryFacilitatorImpl implements DictionaryFacilitator { } // TODO: Revise the way to fusion suggestion results. public SuggestionResults getSuggestionResults(final WordComposer composer, final NgramContext ngramContext, final long proximityInfoHandle, final SettingsValuesForSuggestion settingsValuesForSuggestion, final int sessionId) { @Override public SuggestionResults getSuggestionResults(WordComposer composer, NgramContext ngramContext, long proximityInfoHandle, SettingsValuesForSuggestion settingsValuesForSuggestion, int sessionId, int inputStyle, KeyboardLayout keyboardLayout) { final DictionaryGroup[] dictionaryGroups = mDictionaryGroups; final SuggestionResults suggestionResults = new SuggestionResults( SuggestedWords.MAX_SUGGESTIONS, ngramContext.isBeginningOfSentenceContext()); Loading
java/src/com/android/inputmethod/latin/LatinIME.java +2 −1 Original line number Diff line number Diff line Loading @@ -1520,7 +1520,8 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen return; } mInputLogic.getSuggestedWords(mSettings.getCurrent(), keyboard.getProximityInfo(), mKeyboardSwitcher.getKeyboardShiftMode(), inputStyle, sequenceNumber, callback); mKeyboardSwitcher.getKeyboardShiftMode(), inputStyle, sequenceNumber, callback, keyboard.getKeyboardLayout()); } @Override Loading
java/src/com/android/inputmethod/latin/NgramContext.java +30 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import com.android.inputmethod.annotations.UsedForTesting; import com.android.inputmethod.latin.common.Constants; import com.android.inputmethod.latin.common.StringUtils; import java.util.ArrayList; import java.util.Arrays; import javax.annotation.Nonnull; Loading @@ -38,6 +39,10 @@ public class NgramContext { public static final NgramContext BEGINNING_OF_SENTENCE = new NgramContext(WordInfo.BEGINNING_OF_SENTENCE_WORD_INFO); public static final String BEGINNING_OF_SENTENCE_TAG = "<S>"; public static final String CONTEXT_SEPARATOR = " "; /** * Word information used to represent previous words information. */ Loading Loading @@ -114,6 +119,31 @@ public class NgramContext { return new NgramContext(prevWordsInfo); } /** * Extracts the previous words context. * * @return a String with the previous words separated by white space. */ public String extractPrevWordsContext() { final ArrayList<String> terms = new ArrayList<>(); for (int i = mPrevWordsInfo.length - 1; i >= 0; --i) { if (mPrevWordsInfo[i] != null && mPrevWordsInfo[i].isValid()) { final NgramContext.WordInfo wordInfo = mPrevWordsInfo[i]; if (wordInfo.mIsBeginningOfSentence) { terms.add(BEGINNING_OF_SENTENCE_TAG); } else { final String term = wordInfo.mWord.toString(); if (!term.isEmpty()) { terms.add(term); } } } } return terms.size() == 0 ? BEGINNING_OF_SENTENCE_TAG : TextUtils.join(CONTEXT_SEPARATOR, terms); } public boolean isValid() { return mPrevWordsCount > 0 && mPrevWordsInfo[0].isValid(); } Loading