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

Commit ad290d65 authored by Jean Chalard's avatar Jean Chalard
Browse files

Activate bigram predictions from the binary dictionary

Change-Id: If1cc50539d7677b854b1cd3bea3423c8c0865de5
parent 05f09b6d
Loading
Loading
Loading
Loading
+6 −9
Original line number Diff line number Diff line
@@ -139,22 +139,19 @@ public class BinaryDictionary extends Dictionary {
        Arrays.fill(mBigramScores, 0);

        int codesSize = codes.size();
        if (codesSize <= 0) {
            // Do not return bigrams from BinaryDictionary when nothing was typed.
            // Only use user-history bigrams (or whatever other bigram dictionaries decide).
            return;
        }
        Arrays.fill(mInputCodes, -1);
        if (codesSize > 0) {
            int[] alternatives = codes.getCodesAt(0);
            System.arraycopy(alternatives, 0, mInputCodes, 0,
                    Math.min(alternatives.length, MAX_PROXIMITY_CHARS_SIZE));
        }

        int count = getBigramsNative(mNativeDict, chars, chars.length, mInputCodes, codesSize,
                mOutputChars_bigrams, mBigramScores, MAX_WORD_LENGTH, MAX_BIGRAMS,
                MAX_PROXIMITY_CHARS_SIZE);

        for (int j = 0; j < count; ++j) {
            if (mBigramScores[j] < 1) break;
            if (codesSize > 0 && mBigramScores[j] < 1) break;
            final int start = j * MAX_WORD_LENGTH;
            int len = 0;
            while (len <  MAX_WORD_LENGTH && mOutputChars_bigrams[start + len] != 0) {
+2 −1
Original line number Diff line number Diff line
@@ -134,7 +134,8 @@ int BigramDictionary::getBigrams(unsigned short *prevWord, int prevWordLength, i
        const int length = BinaryFormat::getWordAtAddress(root, bigramPos, MAX_WORD_LENGTH,
                bigramBuffer);

        if (checkFirstCharacter(bigramBuffer)) {
        // codesSize == 0 means we are trying to find bigram predictions.
        if (codesSize < 1 || checkFirstCharacter(bigramBuffer)) {
            const int frequency = UnigramDictionary::MASK_ATTRIBUTE_FREQUENCY & bigramFlags;
            addWordBigram(bigramBuffer, length, frequency);
        }