Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3f15c41d authored by Jean Chalard's avatar Jean Chalard Committed by Android (Google) Code Review
Browse files

Merge "[AC1] Add a memory of where to cut the first word."

parents 33f5f0df ef1e3630
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -179,7 +179,8 @@ public final class BinaryDictionary extends Dictionary {
                // TODO: check that all users of the `kind' parameter are ready to accept
                // flags too and pass mOutputTypes[j] instead of kind
                suggestions.add(new SuggestedWordInfo(new String(mOutputCodePoints, start, len),
                        score, kind, mDictType));
                        score, kind, mDictType,
                        mSpaceIndices[0] /* indexOfTouchPointOfSecondWord */));
            }
        }
        return suggestions;
+6 −3
Original line number Diff line number Diff line
@@ -403,7 +403,8 @@ public class ExpandableDictionary extends Dictionary {
            // the respective size of the typed word and the suggestion if it matters sometime
            // in the future.
            suggestions.add(new SuggestedWordInfo(new String(word, 0, depth + 1), finalFreq,
                    SuggestedWordInfo.KIND_CORRECTION, mDictType));
                    SuggestedWordInfo.KIND_CORRECTION, mDictType,
                    SuggestedWordInfo.NOT_AN_INDEX /* indexOfTouchPointOfSecondWord */));
            if (suggestions.size() >= Suggest.MAX_SUGGESTIONS) return false;
        }
        if (null != node.mShortcutTargets) {
@@ -411,7 +412,8 @@ public class ExpandableDictionary extends Dictionary {
            for (int shortcutIndex = 0; shortcutIndex < length; ++shortcutIndex) {
                final char[] shortcut = node.mShortcutTargets.get(shortcutIndex);
                suggestions.add(new SuggestedWordInfo(new String(shortcut, 0, shortcut.length),
                        finalFreq, SuggestedWordInfo.KIND_SHORTCUT, mDictType));
                        finalFreq, SuggestedWordInfo.KIND_SHORTCUT, mDictType,
                        SuggestedWordInfo.NOT_AN_INDEX /* indexOfTouchPointOfSecondWord */));
                if (suggestions.size() > Suggest.MAX_SUGGESTIONS) return false;
            }
        }
@@ -657,7 +659,8 @@ public class ExpandableDictionary extends Dictionary {
            if (freq >= 0 && node == null) {
                suggestions.add(new SuggestedWordInfo(new String(mLookedUpString, index,
                        Constants.DICTIONARY_MAX_WORD_LENGTH - index),
                        freq, SuggestedWordInfo.KIND_CORRECTION, mDictType));
                        freq, SuggestedWordInfo.KIND_CORRECTION, mDictType,
                        SuggestedWordInfo.NOT_AN_INDEX));
            }
        }
    }
+2 −1
Original line number Diff line number Diff line
@@ -2614,7 +2614,8 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
                if (!TextUtils.equals(s, typedWord)) {
                    suggestions.add(new SuggestedWordInfo(s,
                            SuggestionStripView.MAX_SUGGESTIONS - i,
                            SuggestedWordInfo.KIND_RESUMED, Dictionary.TYPE_RESUMED));
                            SuggestedWordInfo.KIND_RESUMED, Dictionary.TYPE_RESUMED,
                            SuggestedWordInfo.NOT_AN_INDEX /* indexOfTouchPointOfSecondWord */));
                }
            }
        }
+3 −2
Original line number Diff line number Diff line
@@ -309,7 +309,8 @@ public final class Suggest {
        if (!TextUtils.isEmpty(typedWord)) {
            suggestionsContainer.add(0, new SuggestedWordInfo(typedWord,
                    SuggestedWordInfo.MAX_SCORE, SuggestedWordInfo.KIND_TYPED,
                    Dictionary.TYPE_USER_TYPED));
                    Dictionary.TYPE_USER_TYPED,
                    SuggestedWordInfo.NOT_AN_INDEX /* indexOfTouchPointOfSecondWord */));
        }
        SuggestedWordInfo.removeDups(suggestionsContainer);

@@ -453,7 +454,7 @@ public final class Suggest {
            sb.appendCodePoint(Constants.CODE_SINGLE_QUOTE);
        }
        return new SuggestedWordInfo(sb.toString(), wordInfo.mScore, wordInfo.mKind,
                wordInfo.mSourceDict);
                wordInfo.mSourceDict, wordInfo.mIndexOfTouchPointOfSecondWord);
    }

    public void close() {
+11 −3
Original line number Diff line number Diff line
@@ -113,7 +113,8 @@ public final class SuggestedWords {
            if (null == text) continue;
            final SuggestedWordInfo suggestedWordInfo = new SuggestedWordInfo(text.toString(),
                    SuggestedWordInfo.MAX_SCORE, SuggestedWordInfo.KIND_APP_DEFINED,
                    Dictionary.TYPE_APPLICATION_DEFINED);
                    Dictionary.TYPE_APPLICATION_DEFINED,
                    SuggestedWordInfo.NOT_AN_INDEX /* indexOfTouchPointOfSecondWord */);
            result.add(suggestedWordInfo);
        }
        return result;
@@ -126,7 +127,8 @@ public final class SuggestedWords {
        final ArrayList<SuggestedWordInfo> suggestionsList = CollectionUtils.newArrayList();
        final HashSet<String> alreadySeen = CollectionUtils.newHashSet();
        suggestionsList.add(new SuggestedWordInfo(typedWord, SuggestedWordInfo.MAX_SCORE,
                SuggestedWordInfo.KIND_TYPED, Dictionary.TYPE_USER_TYPED));
                SuggestedWordInfo.KIND_TYPED, Dictionary.TYPE_USER_TYPED,
                SuggestedWordInfo.NOT_AN_INDEX /* indexOfTouchPointOfSecondWord */));
        alreadySeen.add(typedWord.toString());
        final int previousSize = previousSuggestions.size();
        for (int index = 1; index < previousSize; index++) {
@@ -142,6 +144,7 @@ public final class SuggestedWords {
    }

    public static final class SuggestedWordInfo {
        public static final int NOT_AN_INDEX = -1;
        public static final int MAX_SCORE = Integer.MAX_VALUE;
        public static final int KIND_MASK_KIND = 0xFF; // Mask to get only the kind
        public static final int KIND_TYPED = 0; // What user typed
@@ -167,15 +170,20 @@ public final class SuggestedWords {
        public final int mKind; // one of the KIND_* constants above
        public final int mCodePointCount;
        public final String mSourceDict;
        // For auto-commit. This keeps track of the index inside the touch coordinates array
        // passed to native code to get suggestions for a gesture that corresponds to the first
        // letter of the second word.
        public final int mIndexOfTouchPointOfSecondWord;
        private String mDebugString = "";

        public SuggestedWordInfo(final String word, final int score, final int kind,
                final String sourceDict) {
                final String sourceDict, final int indexOfTouchPointOfSecondWord) {
            mWord = word;
            mScore = score;
            mKind = kind;
            mSourceDict = sourceDict;
            mCodePointCount = StringUtils.codePointCount(mWord);
            mIndexOfTouchPointOfSecondWord = indexOfTouchPointOfSecondWord;
        }


Loading