Suspended setZimReaderSource and switched to IO when creating ZimFileReader

This commit is contained in:
MohitMaliFtechiz 2025-01-18 15:58:15 +05:30
parent 948b8cce20
commit 9d4db58ce4

View File

@ -18,7 +18,9 @@
package org.kiwix.kiwixmobile.core.reader
import android.webkit.WebResourceResponse
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.runBlocking
import kotlinx.coroutines.withContext
import org.kiwix.kiwixmobile.core.reader.ZimFileReader.Factory
import java.net.HttpURLConnection
import javax.inject.Inject
@ -32,11 +34,11 @@ class ZimReaderContainer @Inject constructor(private val zimFileReaderFactory: F
field = value
}
fun setZimReaderSource(zimReaderSource: ZimReaderSource?) {
suspend fun setZimReaderSource(zimReaderSource: ZimReaderSource?) {
if (zimReaderSource == zimFileReader?.zimReaderSource) {
return
}
zimFileReader = runBlocking {
zimFileReader = withContext(Dispatchers.IO) {
if (zimReaderSource?.exists() == true && zimReaderSource.canOpenInLibkiwix())
zimFileReaderFactory.create(zimReaderSource)
else null