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

Commit 5db594ab authored by Ken Wakasa's avatar Ken Wakasa
Browse files

Remove MAX_WORD_LENGTH_INTERNAL

Change-Id: Ie11ff000675601acff5fbb00e9e9f48eb32c5071
parent 019bcc62
Loading
Loading
Loading
Loading
+12 −14
Original line number Diff line number Diff line
@@ -80,17 +80,17 @@ public final class ProximityInfo {
        mNativeProximityInfo = createNativeProximityInfo(touchPositionCorrection);
    }

    public static ProximityInfo createDummyProximityInfo() {
    private static ProximityInfo createDummyProximityInfo() {
        return new ProximityInfo("", 1, 1, 1, 1, 1, 1, EMPTY_KEY_ARRAY, null);
    }

    public static ProximityInfo createSpellCheckerProximityInfo(final int[] proximity,
    public static ProximityInfo createSpellCheckerProximityInfo(final int[] proximityCharsArray,
            final int rowSize, final int gridWidth, final int gridHeight) {
        final ProximityInfo spellCheckerProximityInfo = createDummyProximityInfo();
        spellCheckerProximityInfo.mNativeProximityInfo =
                spellCheckerProximityInfo.setProximityInfoNative("",
                        rowSize, gridWidth, gridHeight, gridWidth, gridHeight,
                        1, proximity, 0, null, null, null, null, null, null, null, null);
                        1, proximityCharsArray, 0, null, null, null, null, null, null, null, null);
        return spellCheckerProximityInfo;
    }

@@ -100,15 +100,13 @@ public final class ProximityInfo {
    }

    // TODO: Stop passing proximityCharsArray
    private native long setProximityInfoNative(
            String locale, int maxProximityCharsSize, int displayWidth,
            int displayHeight, int gridWidth, int gridHeight,
            int mostCommonKeyWidth, int[] proximityCharsArray,
            int keyCount, int[] keyXCoordinates, int[] keyYCoordinates,
            int[] keyWidths, int[] keyHeights, int[] keyCharCodes,
    private static native long setProximityInfoNative(String locale, int maxProximityCharsSize,
            int displayWidth, int displayHeight, int gridWidth, int gridHeight,
            int mostCommonKeyWidth, int[] proximityCharsArray, int keyCount, int[] keyXCoordinates,
            int[] keyYCoordinates, int[] keyWidths, int[] keyHeights, int[] keyCharCodes,
            float[] sweetSpotCenterX, float[] sweetSpotCenterY, float[] sweetSpotRadii);

    private native void releaseProximityInfoNative(long nativeProximityInfo);
    private static native void releaseProximityInfoNative(long nativeProximityInfo);

    private static boolean needsProximityInfo(final Key key) {
        // Don't include special keys into ProximityInfo.
@@ -232,10 +230,10 @@ public final class ProximityInfo {
        }

        // TODO: Stop passing proximityCharsArray
        return setProximityInfoNative(mLocaleStr, MAX_PROXIMITY_CHARS_SIZE,
                mKeyboardMinWidth, mKeyboardHeight, mGridWidth, mGridHeight, mMostCommonKeyWidth,
                proximityCharsArray, keyCount, keyXCoordinates, keyYCoordinates, keyWidths,
                keyHeights, keyCharCodes, sweetSpotCenterXs, sweetSpotCenterYs, sweetSpotRadii);
        return setProximityInfoNative(mLocaleStr, MAX_PROXIMITY_CHARS_SIZE, mKeyboardMinWidth,
                mKeyboardHeight, mGridWidth, mGridHeight, mMostCommonKeyWidth, proximityCharsArray,
                keyCount, keyXCoordinates, keyYCoordinates, keyWidths, keyHeights, keyCharCodes,
                sweetSpotCenterXs, sweetSpotCenterYs, sweetSpotRadii);
    }

    public long getNativeProximityInfo() {
+15 −20
Original line number Diff line number Diff line
@@ -35,14 +35,10 @@ public final class BinaryDictionary extends Dictionary {
    public static final String DICTIONARY_PACK_AUTHORITY =
            "com.android.inputmethod.latin.dictionarypack";

    /**
     * There is a difference between what java and native code can handle.
     * This value should only be used in BinaryDictionary.java
     * It is necessary to keep it at this value because some languages e.g. German have
     * really long words.
     */
    // Must be identical to MAX_WORD_LENGTH in native/jni/src/defines.h
    private static final int MAX_WORD_LENGTH = Constants.Dictionary.MAX_WORD_LENGTH;
    private static final int MAX_RESULTS = 18; /* Must be identical to MAX_RESULTS in defines.h */
    // Must be identical to MAX_RESULTS in native/jni/src/defines.h
    private static final int MAX_RESULTS = 18;

    private long mNativeDict;
    private final Locale mLocale;
@@ -94,23 +90,22 @@ public final class BinaryDictionary extends Dictionary {
        JniUtils.loadNativeLibrary();
    }

    private native long openNative(String sourceDir, long dictOffset, long dictSize,
            int maxWordLength);
    private native void closeNative(long dict);
    private native int getFrequencyNative(long dict, int[] word);
    private native boolean isValidBigramNative(long dict, int[] word1, int[] word2);
    private native int getSuggestionsNative(long dict, long proximityInfo, long traverseSession,
            int[] xCoordinates, int[] yCoordinates, int[] times, int[] pointerIds,
            int[] inputCodePoints, int codesSize, int commitPoint, boolean isGesture,
            int[] prevWordCodePointArray, boolean useFullEditDistance, int[] outputCodePoints,
            int[] outputScores, int[] outputIndices, int[] outputTypes);
    private static native long openNative(String sourceDir, long dictOffset, long dictSize);
    private static native void closeNative(long dict);
    private static native int getFrequencyNative(long dict, int[] word);
    private static native boolean isValidBigramNative(long dict, int[] word1, int[] word2);
    private static native int getSuggestionsNative(long dict, long proximityInfo,
            long traverseSession, int[] xCoordinates, int[] yCoordinates, int[] times,
            int[] pointerIds, int[] inputCodePoints, int inputSize, int commitPoint,
            boolean isGesture, int[] prevWordCodePointArray, boolean useFullEditDistance,
            int[] outputCodePoints, int[] outputScores, int[] outputIndices, int[] outputTypes);
    private static native float calcNormalizedScoreNative(int[] before, int[] after, int score);
    private static native int editDistanceNative(int[] before, int[] after);

    // TODO: Move native dict into session
    private final void loadDictionary(final String path, final long startOffset,
            final long length) {
        mNativeDict = openNative(path, startOffset, length, MAX_WORD_LENGTH);
        mNativeDict = openNative(path, startOffset, length);
    }

    @Override
@@ -139,12 +134,12 @@ public final class BinaryDictionary extends Dictionary {
        }

        final InputPointers ips = composer.getInputPointers();
        final int codesSize = isGesture ? ips.getPointerSize() : composerSize;
        final int inputSize = isGesture ? ips.getPointerSize() : composerSize;
        // proximityInfo and/or prevWordForBigrams may not be null.
        final int count = getSuggestionsNative(mNativeDict, proximityInfo.getNativeProximityInfo(),
                getTraverseSession(sessionId).getSession(), ips.getXCoordinates(),
                ips.getYCoordinates(), ips.getTimes(), ips.getPointerIds(), mInputCodePoints,
                codesSize, 0 /* commitPoint */, isGesture, prevWordCodePointArray,
                inputSize, 0 /* commitPoint */, isGesture, prevWordCodePointArray,
                mUseFullEditDistance, mOutputCodePoints, mOutputScores, mSpaceIndices,
                mOutputTypes);
        final ArrayList<SuggestedWordInfo> suggestions = CollectionUtils.newArrayList();
+1 −0
Original line number Diff line number Diff line
@@ -127,6 +127,7 @@ public final class Constants {
    }

    public static final class Dictionary {
        // Must be identical to MAX_WORD_LENGTH in native/jni/src/defines.h
        public static final int MAX_WORD_LENGTH = 48;

        private Dictionary() {
+3 −3
Original line number Diff line number Diff line
@@ -23,10 +23,10 @@ public final class DicTraverseSession {
        JniUtils.loadNativeLibrary();
    }

    private native long setDicTraverseSessionNative(String locale);
    private native void initDicTraverseSessionNative(long nativeDicTraverseSession,
    private static native long setDicTraverseSessionNative(String locale);
    private static native void initDicTraverseSessionNative(long nativeDicTraverseSession,
            long dictionary, int[] previousWord, int previousWordLength);
    private native void releaseDicTraverseSessionNative(long nativeDicTraverseSession);
    private static native void releaseDicTraverseSessionNative(long nativeDicTraverseSession);

    private long mNativeDicTraverseSession;

+7 −7
Original line number Diff line number Diff line
@@ -24,12 +24,12 @@

namespace latinime {

static jlong latinime_Keyboard_setProximityInfo(JNIEnv *env, jobject object,
        jstring localeJStr, jint maxProximityCharsSize, jint displayWidth, jint displayHeight,
        jint gridWidth, jint gridHeight, jint mostCommonkeyWidth, jintArray proximityChars,
        jint keyCount, jintArray keyXCoordinates, jintArray keyYCoordinates,
        jintArray keyWidths, jintArray keyHeights, jintArray keyCharCodes,
        jfloatArray sweetSpotCenterXs, jfloatArray sweetSpotCenterYs, jfloatArray sweetSpotRadii) {
static jlong latinime_Keyboard_setProximityInfo(JNIEnv *env, jclass clazz, jstring localeJStr,
        jint maxProximityCharsSize, jint displayWidth, jint displayHeight, jint gridWidth,
        jint gridHeight, jint mostCommonkeyWidth, jintArray proximityChars, jint keyCount,
        jintArray keyXCoordinates, jintArray keyYCoordinates, jintArray keyWidths,
        jintArray keyHeights, jintArray keyCharCodes, jfloatArray sweetSpotCenterXs,
        jfloatArray sweetSpotCenterYs, jfloatArray sweetSpotRadii) {
    ProximityInfo *proximityInfo = new ProximityInfo(env, localeJStr, maxProximityCharsSize,
            displayWidth, displayHeight, gridWidth, gridHeight, mostCommonkeyWidth, proximityChars,
            keyCount, keyXCoordinates, keyYCoordinates, keyWidths, keyHeights, keyCharCodes,
@@ -37,7 +37,7 @@ static jlong latinime_Keyboard_setProximityInfo(JNIEnv *env, jobject object,
    return reinterpret_cast<jlong>(proximityInfo);
}

static void latinime_Keyboard_release(JNIEnv *env, jobject object, jlong proximityInfo) {
static void latinime_Keyboard_release(JNIEnv *env, jclass clazz, jlong proximityInfo) {
    ProximityInfo *pi = reinterpret_cast<ProximityInfo *>(proximityInfo);
    delete pi;
}
Loading