mirror of
https://github.com/mihonapp/mihon.git
synced 2025-06-30 04:57:50 +02:00
Fix duplicate requests in WebView due to empty reasonPhrase (#2003)
This commit is contained in:
@ -38,6 +38,7 @@ The format is a modified version of [Keep a Changelog](https://keepachangelog.co
|
|||||||
- Fix app bar action tooltips blocking clicks ([@Bartuzen](https://github.com/Bartuzen)) ([#1928](https://github.com/mihonapp/mihon/pull/1928))
|
- Fix app bar action tooltips blocking clicks ([@Bartuzen](https://github.com/Bartuzen)) ([#1928](https://github.com/mihonapp/mihon/pull/1928))
|
||||||
- Fix unintended app permissions due to Firebase misconfiguration ([@AntsyLich](https://github.com/AntsyLich)) ([#1960](https://github.com/mihonapp/mihon/pull/1960))
|
- Fix unintended app permissions due to Firebase misconfiguration ([@AntsyLich](https://github.com/AntsyLich)) ([#1960](https://github.com/mihonapp/mihon/pull/1960))
|
||||||
- Fix navigation issue after migrating a duplicated entry from History tab ([@cuong-tran](https://github.com/cuong-tran)) ([#1980](https://github.com/mihonapp/mihon/pull/1980))
|
- Fix navigation issue after migrating a duplicated entry from History tab ([@cuong-tran](https://github.com/cuong-tran)) ([#1980](https://github.com/mihonapp/mihon/pull/1980))
|
||||||
|
- Fix duplicate requests in WebView due to empty reasonPhrase ([@AwkwardPeak7](https://github.com/AwkwardPeak7)) ([#2003](https://github.com/mihonapp/mihon/pull/2003))
|
||||||
|
|
||||||
## [v0.18.0] - 2025-03-20
|
## [v0.18.0] - 2025-03-20
|
||||||
### Added
|
### Added
|
||||||
|
@ -45,7 +45,9 @@ import eu.kanade.tachiyomi.util.system.getHtml
|
|||||||
import eu.kanade.tachiyomi.util.system.setDefaultSettings
|
import eu.kanade.tachiyomi.util.system.setDefaultSettings
|
||||||
import kotlinx.collections.immutable.persistentListOf
|
import kotlinx.collections.immutable.persistentListOf
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
import logcat.LogPriority
|
||||||
import okhttp3.Request
|
import okhttp3.Request
|
||||||
|
import tachiyomi.core.common.util.system.logcat
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.components.material.Scaffold
|
import tachiyomi.presentation.core.components.material.Scaffold
|
||||||
import tachiyomi.presentation.core.i18n.stringResource
|
import tachiyomi.presentation.core.i18n.stringResource
|
||||||
@ -145,16 +147,18 @@ fun WebViewScreenContent(
|
|||||||
|
|
||||||
val contentType = response.body.contentType()?.let { "${it.type}/${it.subtype}" } ?: "text/html"
|
val contentType = response.body.contentType()?.let { "${it.type}/${it.subtype}" } ?: "text/html"
|
||||||
val contentEncoding = response.body.contentType()?.charset()?.name() ?: "utf-8"
|
val contentEncoding = response.body.contentType()?.charset()?.name() ?: "utf-8"
|
||||||
|
val message = response.message.ifBlank { WebViewUtil.getMessageFromHttpStatusCode(response.code) }
|
||||||
|
|
||||||
WebResourceResponse(
|
WebResourceResponse(
|
||||||
contentType,
|
contentType,
|
||||||
contentEncoding,
|
contentEncoding,
|
||||||
response.code,
|
response.code,
|
||||||
response.message,
|
message,
|
||||||
response.headers.associate { it.first to it.second },
|
response.headers.associate { it.first to it.second },
|
||||||
response.body.byteStream(),
|
response.body.byteStream(),
|
||||||
)
|
)
|
||||||
} catch (e: Throwable) {
|
} catch (e: Throwable) {
|
||||||
|
logcat(priority = LogPriority.ERROR, throwable = e)
|
||||||
super.shouldInterceptRequest(view, request)
|
super.shouldInterceptRequest(view, request)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -64,6 +64,75 @@ object WebViewUtil {
|
|||||||
SYSTEM_SETTINGS_PACKAGE
|
SYSTEM_SETTINGS_PACKAGE
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun getMessageFromHttpStatusCode(code: Int): String {
|
||||||
|
return when (code) {
|
||||||
|
100 -> "Continue"
|
||||||
|
101 -> "Switching Protocols"
|
||||||
|
102 -> "Processing"
|
||||||
|
103 -> "Early Hints"
|
||||||
|
200 -> "OK"
|
||||||
|
201 -> "Created"
|
||||||
|
202 -> "Accepted"
|
||||||
|
203 -> "Non-Authoritative Information"
|
||||||
|
204 -> "No Content"
|
||||||
|
205 -> "Reset Content"
|
||||||
|
206 -> "Partial Content"
|
||||||
|
207 -> "Multi-Status"
|
||||||
|
208 -> "Already Reported"
|
||||||
|
226 -> "IM Used"
|
||||||
|
300 -> "Multiple Choices"
|
||||||
|
301 -> "Moved Permanently"
|
||||||
|
302 -> "Found"
|
||||||
|
303 -> "See Other"
|
||||||
|
304 -> "Not Modified"
|
||||||
|
305 -> "Use Proxy"
|
||||||
|
306 -> "unused"
|
||||||
|
307 -> "Temporary Redirect"
|
||||||
|
308 -> "Permanent Redirect"
|
||||||
|
400 -> "Bad Request"
|
||||||
|
401 -> "Unauthorized"
|
||||||
|
402 -> "Payment Required"
|
||||||
|
403 -> "Forbidden"
|
||||||
|
404 -> "Not Found"
|
||||||
|
405 -> "Method Not Allowed"
|
||||||
|
406 -> "Not Acceptable"
|
||||||
|
407 -> "Proxy Authentication Required"
|
||||||
|
408 -> "Request Timeout"
|
||||||
|
409 -> "Conflict"
|
||||||
|
410 -> "Gone"
|
||||||
|
411 -> "Length Required"
|
||||||
|
412 -> "Precondition Failed"
|
||||||
|
413 -> "Content Too Large"
|
||||||
|
414 -> "URI Too Long"
|
||||||
|
415 -> "Unsupported Media Type"
|
||||||
|
416 -> "Range Not Satisfiable"
|
||||||
|
417 -> "Expectation Failed"
|
||||||
|
418 -> "I'm a teapot"
|
||||||
|
421 -> "Misdirected Request"
|
||||||
|
422 -> "Unprocessable Content"
|
||||||
|
423 -> "Locked"
|
||||||
|
424 -> "Failed Dependency"
|
||||||
|
425 -> "Too Early"
|
||||||
|
426 -> "Upgrade Required"
|
||||||
|
428 -> "Precondition Required"
|
||||||
|
429 -> "Too Many Requests"
|
||||||
|
431 -> "Request Header Fields Too Large"
|
||||||
|
451 -> "Unavailable For Legal Reasons"
|
||||||
|
500 -> "Internal Server Error"
|
||||||
|
501 -> "Not Implemented"
|
||||||
|
502 -> "Bad Gateway"
|
||||||
|
503 -> "Service Unavailable"
|
||||||
|
504 -> "Gateway Timeout"
|
||||||
|
505 -> "HTTP Version Not Supported"
|
||||||
|
506 -> "Variant Also Negotiates"
|
||||||
|
507 -> "Insufficient Storage"
|
||||||
|
508 -> "Loop Detected"
|
||||||
|
510 -> "Not Extended"
|
||||||
|
511 -> "Network Authentication Required"
|
||||||
|
else -> "Unknown"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun WebView.isOutdated(): Boolean {
|
fun WebView.isOutdated(): Boolean {
|
||||||
|
Reference in New Issue
Block a user