mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-09-14 01:48:47 -04:00
Revert "Feature/macgills/2347 range headers"
This commit is contained in:
parent
53ab3ed0e1
commit
42015d5cb0
@ -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())
|
||||
})
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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))
|
||||
|
@ -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<String, String>): 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?)
|
||||
|
Loading…
x
Reference in New Issue
Block a user