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

Commit 847c8dfe authored by satok's avatar satok
Browse files

Fix JNI

Change-Id: If134baf52e78fbe18b78611a23870f5d10c80955
parent 063c3e21
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -44,6 +44,10 @@
  <init>(...);
}

-keepclasseswithmembernames class * {
    native <methods>;
}

-keep class com.android.inputmethod.research.ResearchLogger {
  void flush();
  void publishCurrentLogUnit(...);
+1 −0
Original line number Diff line number Diff line
@@ -79,6 +79,7 @@ public class BinaryDictionary extends Dictionary {
        mUseFullEditDistance = useFullEditDistance;
        loadDictionary(filename, offset, length);
        mDicTraverseSession = new DicTraverseSession(locale);
        mDicTraverseSession.initSession(mNativeDict);
    }

    static {
+4 −4
Original line number Diff line number Diff line
@@ -23,8 +23,8 @@ public class DicTraverseSession {
        JniUtils.loadNativeLibrary();
    }
    private native long setDicTraverseSessionNative(String locale);
    //private native void initDicTraverseSessionNative(long nativeDicTraverseSession,
    //long dictionary, int[] previousWord, int previousWordLength);
    private native void initDicTraverseSessionNative(long nativeDicTraverseSession,
            long dictionary, int[] previousWord, int previousWordLength);
    private native void releaseDicTraverseSessionNative(long nativeDicTraverseSession);

    private long mNativeDicTraverseSession;
@@ -43,8 +43,8 @@ public class DicTraverseSession {
    }

    public void initSession(long dictionary, int[] previousWord, int previousWordLength) {
        //initDicTraverseSessionNative(
        //mNativeDicTraverseSession, dictionary, previousWord, previousWordLength);
        initDicTraverseSessionNative(
                mNativeDicTraverseSession, dictionary, previousWord, previousWordLength);
    }

    private final long createNativeDicTraverseSession(String locale) {
+7 −5
Original line number Diff line number Diff line
@@ -28,18 +28,20 @@ static jlong latinime_setDicTraverseSession(JNIEnv *env, jobject object, jstring
    return reinterpret_cast<jlong>(traverseSession);
}

#if 0
static void latinime_initDicTraverseSession(JNIEnv *env, jobject object, jlong traverseSession,
        jlong dictionary, jintArray previousWord, jint previousWordLength) {
    void *ts = reinterpret_cast<void*>(traverseSession);
    Dictionary *dict = reinterpret_cast<Dictionary*>(dictionary);
    if (!previousWord) {
        DicTraverseWrapper::initDicTraverseSession(ts, dict, 0, 0);
        return;
    }
    int prevWord[previousWordLength];
    env->GetIntArrayRegion(previousWord, 0, previousWordLength, prevWord);
    DicTraverseWrapper::initDicTraverseSession(ts, dict, prevWord, previousWordLength);
}
#endif

static void latinime_DicTraverseSession_release(
static void latinime_releaseDicTraverseSession(
        JNIEnv *env, jobject object, jlong traverseSession) {
    void *ts = reinterpret_cast<void*>(traverseSession);
    DicTraverseWrapper::releaseDicTraverseSession(ts);
@@ -47,8 +49,8 @@ static void latinime_DicTraverseSession_release(

static JNINativeMethod sMethods[] = {
    {"setDicTraverseSessionNative", "(Ljava/lang/String;)J", (void*)latinime_setDicTraverseSession},
    //{"initDicTraverseSessionNative", "(JJ[II)V", (void*)latinime_initDicTraverseSession},
    {"releaseDicTraverseSessionNative", "(J)V", (void*)latinime_DicTraverseSession_release}
    {"initDicTraverseSessionNative", "(JJ[II)V", (void*)latinime_initDicTraverseSession},
    {"releaseDicTraverseSessionNative", "(J)V", (void*)latinime_releaseDicTraverseSession}
};

int register_DicTraverseSession(JNIEnv *env) {