From c4f5b3f978571df60b360f5bd37390c151bb58ca Mon Sep 17 00:00:00 2001 From: MohitMali Date: Fri, 17 Nov 2023 21:01:50 +0530 Subject: [PATCH] Fixed, the search is not working in dwds app. * We now utilize `AssetFileDescriptor` to open the ZIM file for custom apps. For the search functionality, we are creating a reader with a file object, but we need to create a reader with the `AssetFileDescriptor` instead of a file for custom apps. --- .../java/org/kiwix/kiwixmobile/core/reader/ZimFileReader.kt | 1 - .../org/kiwix/kiwixmobile/core/reader/ZimReaderContainer.kt | 3 +++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/reader/ZimFileReader.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/reader/ZimFileReader.kt index 2d2b2fc4f..7deb5cb7b 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/reader/ZimFileReader.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/reader/ZimFileReader.kt @@ -320,7 +320,6 @@ class ZimFileReader constructor( fun dispose() { jniKiwixReader.dispose() searcher.dispose() - assetFileDescriptor?.parcelFileDescriptor?.detachFd() } @Suppress("TooGenericExceptionCaught") diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/reader/ZimReaderContainer.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/reader/ZimReaderContainer.kt index ad9cc266d..d896c1a9b 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/reader/ZimReaderContainer.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/reader/ZimReaderContainer.kt @@ -84,9 +84,12 @@ class ZimReaderContainer @Inject constructor(private val zimFileReaderFactory: F } fun copyReader(): ZimFileReader? = zimFile?.let(zimFileReaderFactory::create) + ?: assetFileDescriptor?.let(zimFileReaderFactory::create) val zimFile get() = zimFileReader?.zimFile + val assetFileDescriptor get() = zimFileReader?.assetFileDescriptor + /** * Return the zimFile path if opened from file else return the filePath of assetFileDescriptor */