From 42015d5cb0089e9f15b989843492a0dbe1b17a3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Se=C3=A1n=20Mac=20Gillicuddy?= Date: Thu, 8 Oct 2020 09:43:18 +0100 Subject: [PATCH] Revert "Feature/macgills/2347 range headers" --- .../core/ServiceWorkerInitialiser.kt | 2 +- .../core/main/CoreWebViewClient.java | 13 ++++----- .../kiwixmobile/core/main/KiwixWebView.kt | 2 +- .../core/reader/ZimReaderContainer.kt | 29 +++++-------------- 4 files changed, 16 insertions(+), 30 deletions(-) diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/ServiceWorkerInitialiser.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/ServiceWorkerInitialiser.kt index e2f801ca5..707dd32d6 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/ServiceWorkerInitialiser.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/ServiceWorkerInitialiser.kt @@ -32,7 +32,7 @@ class ServiceWorkerInitialiser @Inject constructor(zimReaderContainer: ZimReader ServiceWorkerControllerCompat.getInstance() .setServiceWorkerClient(object : ServiceWorkerClientCompat() { override fun shouldInterceptRequest(request: WebResourceRequest): WebResourceResponse? = - zimReaderContainer.load(request.url.toString(), request.requestHeaders) + zimReaderContainer.load(request.url.toString()) }) } } diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreWebViewClient.java b/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreWebViewClient.java index 9e6df5302..9e294ff54 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreWebViewClient.java +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreWebViewClient.java @@ -22,7 +22,6 @@ import android.content.Intent; import android.net.Uri; import android.util.Log; import android.webkit.MimeTypeMap; -import android.webkit.WebResourceRequest; import android.webkit.WebResourceResponse; import android.webkit.WebView; import android.webkit.WebViewClient; @@ -142,14 +141,14 @@ public class CoreWebViewClient extends WebViewClient { } } - - @Nullable @Override - public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) { - final String url = convertLegacyUrl(request.getUrl().toString()); + @Nullable + @Override + public WebResourceResponse shouldInterceptRequest(WebView view, String url) { + url = convertLegacyUrl(url); if (url.startsWith(CONTENT_PREFIX)) { - return zimReaderContainer.load(url, request.getRequestHeaders()); + return zimReaderContainer.load(url); } else { - return super.shouldInterceptRequest(view, request); + return super.shouldInterceptRequest(view, url); } } } diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/main/KiwixWebView.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/main/KiwixWebView.kt index b33030658..00385eadf 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/main/KiwixWebView.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/main/KiwixWebView.kt @@ -172,7 +172,7 @@ open class KiwixWebView @SuppressLint("SetJavaScriptEnabled") constructor( }.first { !it.exists() } val source = Uri.parse(src) try { - zimReaderContainer.load("$source", emptyMap()).data.use { inputStream -> + zimReaderContainer.load("$source").data.use { inputStream -> fileToSave.outputStream().use { inputStream.copyTo(it) } } instance.toast(instance.getString(R.string.save_media_saved, fileToSave.name)) 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 709bebcee..5b47c52a6 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 @@ -20,7 +20,6 @@ package org.kiwix.kiwixmobile.core.reader import android.webkit.WebResourceResponse import org.kiwix.kiwixmobile.core.reader.ZimFileReader.Factory import java.io.File -import java.net.HttpURLConnection import javax.inject.Inject import javax.inject.Singleton @@ -48,26 +47,12 @@ class ZimReaderContainer @Inject constructor( fun getRandomArticleUrl() = zimFileReader?.getRandomArticleUrl() fun isRedirect(url: String): Boolean = zimFileReader?.isRedirect(url) == true fun getRedirect(url: String): String = zimFileReader?.getRedirect(url) ?: "" - fun load(url: String, requestHeaders: Map): WebResourceResponse { - val data = zimFileReader?.load(url) - return WebResourceResponse(zimFileReader?.readMimeType(url), Charsets.UTF_8.name(), data) - .apply { - val headers = mutableMapOf("Accept-Ranges" to "bytes") - if ("Range" in requestHeaders.keys) { - setStatusCodeAndReasonPhrase(HttpURLConnection.HTTP_PARTIAL, "Partial Content") - val fullSize = data?.available()?.toLong() ?: 0L - val lastByte = fullSize - 1 - val byteRanges = requestHeaders.getValue("Range").substringAfter("=").split("-") - headers["Content-Range"] = "bytes ${byteRanges[0]}-$lastByte/$fullSize" - if (byteRanges.size == 1) { - headers["Connection"] = "close" - } - } else { - setStatusCodeAndReasonPhrase(HttpURLConnection.HTTP_OK, "OK") - } - responseHeaders = headers - } - } + fun load(url: String) = + WebResourceResponse( + zimFileReader?.readMimeType(url), + Charsets.UTF_8.name(), + zimFileReader?.load(url) + ) fun copyReader(): ZimFileReader? = zimFile?.let(zimFileReaderFactory::create) @@ -86,3 +71,5 @@ class ZimReaderContainer @Inject constructor( val favicon get() = zimFileReader?.favicon val language get() = zimFileReader?.language } + +data class SearchResult(val title: String?)