JNIEXPORT jstring JNICALL Java_org_kiwix_kiwixmobile_JNIKiwix_getId(JNIEnv *env, jobject obj) { jstring id; pthread_mutex_lock(&readerLock); if (reader != NULL) { try { std::string cId = reader->getId(); id = c2jni(cId, env); } catch (exception &e) { std::cerr << e.what() << std::endl; } } pthread_mutex_unlock(&readerLock); return id; }
/* Kiwix library functions */ JNIEXPORT jstring JNICALL Java_org_kiwix_kiwixmobile_JNIKiwix_getMainPage(JNIEnv *env, jobject obj) { jstring url; pthread_mutex_lock(&readerLock); if (reader != NULL) { try { std::string cUrl = reader->getMainPageUrl(); url = c2jni(cUrl, env); } catch (exception &e) { std::cerr << e.what() << std::endl; } } pthread_mutex_unlock(&readerLock); return url; }
JNIEXPORT jstring JNICALL Java_org_kiwix_kiwixmobile_JNIKiwix_getLanguage(JNIEnv *env, jobject obj) { jstring language; pthread_mutex_lock(&readerLock); if (reader != NULL) { try { std::string cLanguage = reader->getLanguage(); language = c2jni(cLanguage, env); } catch (exception &e) { std::cerr << e.what() << std::endl; } } pthread_mutex_unlock(&readerLock); return language; }
JNIEXPORT jstring JNICALL Java_org_kiwix_kiwixmobile_JNIKiwix_getMimeType(JNIEnv *env, jobject obj, jstring url) { jstring mimeType; pthread_mutex_lock(&readerLock); if (reader != NULL) { std::string cUrl = jni2c(url, env); try { std::string cMimeType; reader->getMimeTypeByUrl(cUrl, cMimeType); mimeType = c2jni(cMimeType, env); } catch (exception &e) { std::cerr << e.what() << std::endl; } } pthread_mutex_unlock(&readerLock); return mimeType; }
void setBoolObjValue(const bool value, const jobject obj, JNIEnv *env) { jclass objClass = env->GetObjectClass(obj); jfieldID objFid = env->GetFieldID(objClass, "value", "Z"); env->SetIntField(obj, objFid, c2jni(value)); }
/* Method to deal with variable passed by reference */ void setStringObjValue(const std::string &value, const jobject obj, JNIEnv *env) { jclass objClass = env->GetObjectClass(obj); jfieldID objFid = env->GetFieldID(objClass, "value", "Ljava/lang/String;"); env->SetObjectField(obj, objFid, c2jni(value, env)); }