From 6735fbe9877b5b8170392c874d0bc2f2851ae1aa Mon Sep 17 00:00:00 2001 From: Sean Mac Gillicuddy Date: Thu, 26 Sep 2019 11:00:43 +0100 Subject: [PATCH] #1517 Make JniSearcher Nullable --- .../java/org/kiwix/kiwixmobile/di/modules/JNIModule.java | 8 +++++++- .../kiwix/kiwixmobile/zim_manager/ZimReaderContainer.kt | 8 ++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/kiwix/kiwixmobile/di/modules/JNIModule.java b/app/src/main/java/org/kiwix/kiwixmobile/di/modules/JNIModule.java index a2978b290..1f9bfad5f 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/di/modules/JNIModule.java +++ b/app/src/main/java/org/kiwix/kiwixmobile/di/modules/JNIModule.java @@ -19,6 +19,7 @@ package org.kiwix.kiwixmobile.di.modules; import android.content.Context; import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import dagger.Module; import dagger.Provides; import javax.inject.Singleton; @@ -38,7 +39,12 @@ import org.kiwix.kiwixlib.JNIKiwixSearcher; @Provides @Singleton + @Nullable public JNIKiwixSearcher providesJNIKiwixSearcher() { - return new JNIKiwixSearcher(); + try { + return new JNIKiwixSearcher(); + } catch (UnsatisfiedLinkError ignore) { + return null; + } } } diff --git a/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/ZimReaderContainer.kt b/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/ZimReaderContainer.kt index 0c33ab63c..af4220c28 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/ZimReaderContainer.kt +++ b/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/ZimReaderContainer.kt @@ -26,7 +26,7 @@ import javax.inject.Singleton @Singleton class ZimReaderContainer @Inject constructor( private val zimFileReaderFactory: ZimFileReader.Factory, - private val jniKiwixSearcher: JNIKiwixSearcher + private val jniKiwixSearcher: JNIKiwixSearcher? ) { private val listOfAddedReaderIds = mutableListOf() var zimFileReader: ZimFileReader? = null @@ -34,7 +34,7 @@ class ZimReaderContainer @Inject constructor( field = value if (value != null && !listOfAddedReaderIds.contains(value.id)) { listOfAddedReaderIds.add(value.id) - jniKiwixSearcher.addKiwixReader(value.jniKiwixReader) + jniKiwixSearcher?.addKiwixReader(value.jniKiwixReader) } } @@ -60,10 +60,10 @@ class ZimReaderContainer @Inject constructor( fun getRandomArticleUrl() = zimFileReader?.getRandomArticleUrl() fun search(query: String, count: Int) { - jniKiwixSearcher.search(query, count) + jniKiwixSearcher?.search(query, count) } - fun getNextResult() = jniKiwixSearcher.nextResult + fun getNextResult() = jniKiwixSearcher?.nextResult fun isRedirect(url: String): Boolean = zimFileReader?.isRedirect(url) == true fun getRedirect(url: String): String = zimFileReader?.getRedirect(url) ?: ""