mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-09-21 19:41:38 -04:00
Fixed the WebView using from more than one process at once with the same data directory is not supported.
This commit is contained in:
parent
2a0b392b13
commit
39930b844e
@ -18,35 +18,27 @@
|
||||
|
||||
package org.kiwix.kiwixmobile.core
|
||||
|
||||
import android.app.Application.getProcessName
|
||||
import android.content.Context
|
||||
import android.os.Build
|
||||
import android.util.Log
|
||||
import android.webkit.WebResourceRequest
|
||||
import android.webkit.WebResourceResponse
|
||||
import android.webkit.WebView
|
||||
import androidx.webkit.ServiceWorkerClientCompat
|
||||
import androidx.webkit.ServiceWorkerControllerCompat
|
||||
import androidx.webkit.WebViewFeature
|
||||
import org.kiwix.kiwixmobile.core.reader.ZimReaderContainer
|
||||
import javax.inject.Inject
|
||||
|
||||
class ServiceWorkerInitialiser @Inject constructor(
|
||||
zimReaderContainer: ZimReaderContainer,
|
||||
context: Context
|
||||
) {
|
||||
class ServiceWorkerInitialiser @Inject constructor(zimReaderContainer: ZimReaderContainer) {
|
||||
init {
|
||||
if (WebViewFeature.isFeatureSupported(WebViewFeature.SERVICE_WORKER_BASIC_USAGE)) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
|
||||
val process = getProcessName()
|
||||
if (context.packageName != process) {
|
||||
WebView.setDataDirectorySuffix(process)
|
||||
}
|
||||
try {
|
||||
ServiceWorkerControllerCompat.getInstance()
|
||||
.setServiceWorkerClient(object : ServiceWorkerClientCompat() {
|
||||
override fun shouldInterceptRequest(request: WebResourceRequest): WebResourceResponse? =
|
||||
zimReaderContainer.load(request.url.toString(), request.requestHeaders)
|
||||
})
|
||||
} catch (ignore: Exception) {
|
||||
Log.e("ServiceWorkerInitialiser", "Error setting up ServiceWorkerClient", ignore)
|
||||
}
|
||||
ServiceWorkerControllerCompat.getInstance()
|
||||
.setServiceWorkerClient(object : ServiceWorkerClientCompat() {
|
||||
override fun shouldInterceptRequest(request: WebResourceRequest): WebResourceResponse? =
|
||||
zimReaderContainer.load(request.url.toString(), request.requestHeaders)
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user