From 75096e98083ae07cfc65273e736978d75ebba33b Mon Sep 17 00:00:00 2001 From: arkon Date: Sat, 5 Feb 2022 18:26:50 -0500 Subject: [PATCH] Don't show error toasts in MangaController for HTTP 103 responses (closes #6562) (cherry picked from commit 95b253db0984c87750b1cb284007754bf6c31880) # Conflicts: # app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt --- .../java/eu/kanade/tachiyomi/network/OkHttpExtensions.kt | 6 ++++-- .../java/eu/kanade/tachiyomi/ui/manga/MangaController.kt | 7 +++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/network/OkHttpExtensions.kt b/app/src/main/java/eu/kanade/tachiyomi/network/OkHttpExtensions.kt index cbdb99fd7..58cc444dd 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/network/OkHttpExtensions.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/network/OkHttpExtensions.kt @@ -65,7 +65,7 @@ suspend fun Call.await(): Response { object : Callback { override fun onResponse(call: Call, response: Response) { if (!response.isSuccessful) { - continuation.resumeWithException(Exception("HTTP error ${response.code}")) + continuation.resumeWithException(HttpException(response.code)) return } @@ -96,7 +96,7 @@ fun Call.asObservableSuccess(): Observable { return asObservable().doOnNext { response -> if (!response.isSuccessful) { response.close() - throw Exception("HTTP error ${response.code}") + throw HttpException(response.code) } } } @@ -123,3 +123,5 @@ inline fun Response.parseAs(/* SY --> */ json: Json = Injekt.getInst return json.decodeFromString(responseBody) } } + +class HttpException(val code: Int) : IllegalStateException("HTTP error $code") diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt index 94203ae39..00b7acf8c 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt @@ -49,6 +49,7 @@ import eu.kanade.tachiyomi.data.track.EnhancedTrackService import eu.kanade.tachiyomi.data.track.TrackService import eu.kanade.tachiyomi.data.track.model.TrackSearch import eu.kanade.tachiyomi.databinding.MangaControllerBinding +import eu.kanade.tachiyomi.network.HttpException import eu.kanade.tachiyomi.source.CatalogueSource import eu.kanade.tachiyomi.source.LocalSource import eu.kanade.tachiyomi.source.Source @@ -585,6 +586,12 @@ class MangaController : fun onFetchMangaInfoError(error: Throwable) { isRefreshingInfo = false updateRefreshing() + + // Ignore early hints "errors" that aren't handled by OkHttp + if (error is HttpException && error.code == 103) { + return + } + activity?.toast(error.message) }