diff --git a/kiwix.c b/kiwix.c index 47eadbc37..8a7a268bf 100644 --- a/kiwix.c +++ b/kiwix.c @@ -109,6 +109,23 @@ JNIEXPORT jstring JNICALL Java_org_kiwix_kiwixmobile_JNIKiwix_getId(JNIEnv *env, return id; } +JNIEXPORT jint JNICALL Java_org_kiwix_kiwixmobile_JNIKiwix_getFileSize(JNIEnv *env, jobject obj) { + jint size; + + pthread_mutex_lock(&readerLock); + if (reader != NULL) { + try { + int cSize = reader->getFileSize(); + size = c2jni(cSize); + } catch (exception &e) { + std::cerr << e.what() << std::endl; + } + } + pthread_mutex_unlock(&readerLock); + + return size; +} + JNIEXPORT jstring JNICALL Java_org_kiwix_kiwixmobile_JNIKiwix_getCreator(JNIEnv *env, jobject obj) { jstring creator; @@ -149,8 +166,8 @@ JNIEXPORT jstring JNICALL Java_org_kiwix_kiwixmobile_JNIKiwix_getFavicon(JNIEnv pthread_mutex_lock(&readerLock); if (reader != NULL) { try { - std::string cContent; - std::string cMime; + std::string cContent; + std::string cMime; reader->getFavicon(cContent, cMime); favicon = c2jni(base64_encode(reinterpret_cast(cContent.c_str()), cContent.length()), env); } catch (exception &e) { @@ -248,10 +265,10 @@ JNIEXPORT jbyteArray JNICALL Java_org_kiwix_kiwixmobile_JNIKiwix_getContent(JNIE pthread_mutex_lock(&readerLock); try { if (reader->getContentByUrl(cUrl, cData, cSize, cMimeType)) { - data = env->NewByteArray(cSize); - env->SetByteArrayRegion(data, 0, cSize, reinterpret_cast(cData.c_str())); - setStringObjValue(cMimeType, mimeTypeObj, env); - setIntObjValue(cSize, sizeObj, env); + data = env->NewByteArray(cSize); + env->SetByteArrayRegion(data, 0, cSize, reinterpret_cast(cData.c_str())); + setStringObjValue(cMimeType, mimeTypeObj, env); + setIntObjValue(cSize, sizeObj, env); } } catch (exception &e) { LOGI(e.what()); @@ -273,7 +290,7 @@ JNIEXPORT jboolean JNICALL Java_org_kiwix_kiwixmobile_JNIKiwix_searchSuggestions try { if (reader != NULL) { if (reader->searchSuggestionsSmart(cPrefix, cCount)) { - retVal = JNI_TRUE; + retVal = JNI_TRUE; } } } catch (exception &e) { @@ -293,8 +310,8 @@ JNIEXPORT jboolean JNICALL Java_org_kiwix_kiwixmobile_JNIKiwix_getNextSuggestion try { if (reader != NULL) { if (reader->getNextSuggestion(cTitle)) { - setStringObjValue(cTitle, titleObj, env); - retVal = JNI_TRUE; + setStringObjValue(cTitle, titleObj, env); + retVal = JNI_TRUE; } } } catch (exception &e) { @@ -315,8 +332,8 @@ JNIEXPORT jboolean JNICALL Java_org_kiwix_kiwixmobile_JNIKiwix_getPageUrlFromTit try { if (reader != NULL) { if (reader->getPageUrlFromTitle(cTitle, cUrl)) { - setStringObjValue(cUrl, urlObj, env); - retVal = JNI_TRUE; + setStringObjValue(cUrl, urlObj, env); + retVal = JNI_TRUE; } } } catch (exception &e) { diff --git a/libs/arm64-v8a/libkiwix.so b/libs/arm64-v8a/libkiwix.so index 7e6bdda31..0e74bbf65 100755 Binary files a/libs/arm64-v8a/libkiwix.so and b/libs/arm64-v8a/libkiwix.so differ diff --git a/libs/armeabi/libkiwix.so b/libs/armeabi/libkiwix.so index 9737589fd..d602b15bd 100755 Binary files a/libs/armeabi/libkiwix.so and b/libs/armeabi/libkiwix.so differ diff --git a/libs/mips/libkiwix.so b/libs/mips/libkiwix.so index 643ab6b1c..9b69a3dfa 100755 Binary files a/libs/mips/libkiwix.so and b/libs/mips/libkiwix.so differ diff --git a/libs/x86/libkiwix.so b/libs/x86/libkiwix.so index 1f0efcaae..7d625a37e 100755 Binary files a/libs/x86/libkiwix.so and b/libs/x86/libkiwix.so differ diff --git a/src/org/kiwix/kiwixmobile/JNIKiwix.java b/src/org/kiwix/kiwixmobile/JNIKiwix.java index d657774bc..8bfb96246 100644 --- a/src/org/kiwix/kiwixmobile/JNIKiwix.java +++ b/src/org/kiwix/kiwixmobile/JNIKiwix.java @@ -55,7 +55,7 @@ public class JNIKiwix { public native String getPublisher(); - public native boolean getFileSize(JNIKiwixInt size); + public native int getFileSize(); public native int getArticleCount(); diff --git a/src/org/kiwix/kiwixmobile/ZimContentProvider.java b/src/org/kiwix/kiwixmobile/ZimContentProvider.java index 128a8000d..637480572 100644 --- a/src/org/kiwix/kiwixmobile/ZimContentProvider.java +++ b/src/org/kiwix/kiwixmobile/ZimContentProvider.java @@ -102,6 +102,14 @@ public class ZimContentProvider extends ContentProvider { } } + public static int getFileSize() { + if (jniKiwix == null || zimFileName == null) { + return 0; + } else { + return jniKiwix.getFileSize(); + } + } + public static int getArticleCount() { if (jniKiwix == null || zimFileName == null) { return 0; diff --git a/src/org/kiwix/kiwixmobile/utils/files/FileSearch.java b/src/org/kiwix/kiwixmobile/utils/files/FileSearch.java index 01491e25d..61dc46faa 100644 --- a/src/org/kiwix/kiwixmobile/utils/files/FileSearch.java +++ b/src/org/kiwix/kiwixmobile/utils/files/FileSearch.java @@ -148,7 +148,7 @@ public class FileSearch { b.title = ZimContentProvider.getZimFileTitle(); b.id = ZimContentProvider.getId(); b.file = new File(file); - b.size = String.valueOf(b.file.length() / 1024); + b.size = String.valueOf(ZimContentProvider.getFileSize()); b.favicon = ZimContentProvider.getFavicon(); b.creator = ZimContentProvider.getCreator(); b.publisher = ZimContentProvider.getPublisher();