diff --git a/src/android/gen_kiwix.sh b/src/android/gen_kiwix.sh index 9966b7b27..9140ae010 100755 --- a/src/android/gen_kiwix.sh +++ b/src/android/gen_kiwix.sh @@ -5,10 +5,12 @@ set -e BUILD_PATH=$(pwd) echo "javac -d $BUILD_PATH/src/android $@" -javac -d $BUILD_PATH/src/android "$@" +javac -d $BUILD_PATH/src/android/ "$@" cd $BUILD_PATH/src/android -echo "javah -jni org.kiwix.kiwixlib.JNIKiwix" +echo "javah -jni org.kiwix.kiwixlib" javah -jni org.kiwix.kiwixlib.JNIKiwix +javah -jni org.kiwix.kiwixlib.JNIKiwixReader +javah -jni org.kiwix.kiwixlib.JNIKiwixSearcher cd $BUILD_PATH diff --git a/src/android/kiwixreader.cpp b/src/android/kiwixreader.cpp index 5f15d3b2e..e50e100ca 100644 --- a/src/android/kiwixreader.cpp +++ b/src/android/kiwixreader.cpp @@ -21,14 +21,14 @@ #include #include -#include "org_kiwix_kiwixlib_JNIKiwix.h" +#include "org_kiwix_kiwixlib_JNIKiwixReader.h" #include "common/base64.h" #include "reader.h" #include "utils.h" /* Kiwix Reader JNI functions */ -JNIEXPORT jlong JNICALL Java_org_kiwix_kiwixlib_JNIKiwixReader_get_nativeReader( +JNIEXPORT jlong JNICALL Java_org_kiwix_kiwixlib_JNIKiwixReader_getNativeReader( JNIEnv* env, jobject obj, jstring filename) { std::string cPath = jni2c(filename, env); @@ -301,21 +301,18 @@ Java_org_kiwix_kiwixlib_JNIKiwixReader_getPageUrlFromTitle(JNIEnv* env, return retVal; } -JNIEXPORT jboolean JNICALL Java_org_kiwix_kiwixlib_JNIKiwixReader_getTitle( - JNIEnv* env, jobject obj, jobject titleObj) +JNIEXPORT jstring JNICALL Java_org_kiwix_kiwixlib_JNIKiwixReader_getTitle( + JNIEnv* env, jobject obj) { - jboolean retVal = JNI_FALSE; - std::string cTitle; + jstring title; try { std::string cTitle = READER->getTitle(); - setStringObjValue(cTitle, titleObj, env); - retVal = JNI_TRUE; + title = c2jni(cTitle, env); } catch (...) { std::cerr << "Unable to get ZIM title" << std::endl; } - - return retVal; + return title; } JNIEXPORT jstring JNICALL diff --git a/src/android/kiwixsearcher.cpp b/src/android/kiwixsearcher.cpp index 64d2bafcd..410b54bb6 100644 --- a/src/android/kiwixsearcher.cpp +++ b/src/android/kiwixsearcher.cpp @@ -20,6 +20,7 @@ #include +#include "org_kiwix_kiwixlib_JNIKiwixSearcher.h" #include "reader.h" #include "searcher.h" diff --git a/src/android/meson.build b/src/android/meson.build index aa2a4d37d..2ee81d957 100644 --- a/src/android/meson.build +++ b/src/android/meson.build @@ -8,7 +8,9 @@ kiwix_jni = custom_target('jni', 'org/kiwix/kiwixlib/JNIKiwixInt.java', 'org/kiwix/kiwixlib/JNIKiwixString.java', 'org/kiwix/kiwixlib/JNIKiwixBool.java'], - output: ['org_kiwix_kiwixlib_JNIKiwix.h'], + output: ['org_kiwix_kiwixlib_JNIKiwix.h', + 'org_kiwix_kiwixlib_JNIKiwixReader.h', + 'org_kiwix_kiwixlib_JNIKiwixSearcher.h'], command:[jni_generator, '@INPUT@'] ) diff --git a/src/android/org/kiwix/kiwixlib/JNIKiwixReader.java b/src/android/org/kiwix/kiwixlib/JNIKiwixReader.java index e805317f0..ee4dfa68e 100644 --- a/src/android/org/kiwix/kiwixlib/JNIKiwixReader.java +++ b/src/android/org/kiwix/kiwixlib/JNIKiwixReader.java @@ -77,11 +77,13 @@ public class JNIKiwixReader public JNIKiwixReader(String filename) { - nativeHandle = get_nativeReader(filename); + nativeHandle = getNativeReader(filename); } + public JNIKiwixReader() { + } public native void dispose(); - private native long get_nativeReader(String filename); + private native long getNativeReader(String filename); private long nativeHandle; } diff --git a/src/android/org/kiwix/kiwixlib/JNIKiwixSearcher.java b/src/android/org/kiwix/kiwixlib/JNIKiwixSearcher.java index 035ff0542..72508391e 100644 --- a/src/android/org/kiwix/kiwixlib/JNIKiwixSearcher.java +++ b/src/android/org/kiwix/kiwixlib/JNIKiwixSearcher.java @@ -59,7 +59,7 @@ public class JNIKiwixSearcher usedReaders.addElement(reader); }; - public native Result search(String query, int count); + public native void search(String query, int count); public native Result get_next_result(); public native boolean has_more_result();