From 6e1e42fefd69a3a4a28998778d24680c09092973 Mon Sep 17 00:00:00 2001 From: Jobobby04 Date: Sat, 3 Sep 2022 19:55:30 -0400 Subject: [PATCH] Address some OkHttp nullability issues --- .../java/eu/kanade/tachiyomi/data/cache/PagePreviewCache.kt | 4 ++-- .../java/eu/kanade/tachiyomi/source/online/all/EHentai.kt | 4 ++-- .../java/eu/kanade/tachiyomi/source/online/all/NHentai.kt | 2 +- app/src/main/java/exh/md/handlers/AzukiHandler.kt | 2 +- app/src/main/java/exh/md/handlers/ComikeyHandler.kt | 4 ++-- app/src/main/java/exh/md/handlers/MangaHotHandler.kt | 2 +- app/src/main/java/exh/md/handlers/MangaPlusHandler.kt | 4 ++-- app/src/main/java/exh/recs/RecommendsPagingSource.kt | 2 +- app/src/main/java/exh/ui/captcha/BrowserActionActivity.kt | 2 +- app/src/main/java/exh/util/OkHttpUtil.kt | 3 +-- 10 files changed, 14 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/cache/PagePreviewCache.kt b/app/src/main/java/eu/kanade/tachiyomi/data/cache/PagePreviewCache.kt index eb3c5b1bf..09533a3df 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/cache/PagePreviewCache.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/cache/PagePreviewCache.kt @@ -169,12 +169,12 @@ class PagePreviewCache(private val context: Context) { editor = diskCache.edit(key) ?: throw IOException("Unable to edit key") // Get OutputStream and write page with Okio. - response.body!!.source().saveTo(editor.newOutputStream(0)) + response.body.source().saveTo(editor.newOutputStream(0)) diskCache.flush() editor.commit() } finally { - response.body?.close() + response.body.close() editor?.abortUnlessCommitted() } } diff --git a/app/src/main/java/eu/kanade/tachiyomi/source/online/all/EHentai.kt b/app/src/main/java/eu/kanade/tachiyomi/source/online/all/EHentai.kt index 2a18b2a36..a83d4953e 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/source/online/all/EHentai.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/source/online/all/EHentai.kt @@ -1087,7 +1087,7 @@ class EHentai( .url(EH_API_BASE) .post(json.toString().toRequestBody(JSON)) .build(), - ).execute().body!!.string(), + ).execute().body.string(), ) val obj = outJson["tokenlist"]!!.jsonArray.first().jsonObject @@ -1216,7 +1216,7 @@ class EHentai( if (response.isSuccessful) { val body = ByteArrayOutputStream() .use { - val bitmap = BitmapFactory.decodeStream(response.body!!.byteStream()) + val bitmap = BitmapFactory.decodeStream(response.body.byteStream()) ?: throw IOException("Null bitmap($thumbnailPreview)") Bitmap.createBitmap( bitmap, diff --git a/app/src/main/java/eu/kanade/tachiyomi/source/online/all/NHentai.kt b/app/src/main/java/eu/kanade/tachiyomi/source/online/all/NHentai.kt index aeb3dc8ce..0ca49ec03 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/source/online/all/NHentai.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/source/online/all/NHentai.kt @@ -62,7 +62,7 @@ class NHentai(delegate: HttpSource, val context: Context) : } override suspend fun parseIntoMetadata(metadata: NHentaiSearchMetadata, input: Response) { - val json = GALLERY_JSON_REGEX.find(input.body?.string().orEmpty())!!.groupValues[1].replace( + val json = GALLERY_JSON_REGEX.find(input.body.string())!!.groupValues[1].replace( UNICODE_ESCAPE_REGEX, ) { it.groupValues[1].toInt(radix = 16).toChar().toString() } val jsonResponse = jsonParser.decodeFromString(json) diff --git a/app/src/main/java/exh/md/handlers/AzukiHandler.kt b/app/src/main/java/exh/md/handlers/AzukiHandler.kt index dc54aa9c3..47d1779af 100644 --- a/app/src/main/java/exh/md/handlers/AzukiHandler.kt +++ b/app/src/main/java/exh/md/handlers/AzukiHandler.kt @@ -32,7 +32,7 @@ class AzukiHandler(currentClient: OkHttpClient, userAgent: String) { } fun pageListParse(response: Response): List { - return Json.parseToJsonElement(response.body!!.string()) + return Json.parseToJsonElement(response.body.string()) .jsonObject["pages"]!! .jsonArray.mapIndexed { index, element -> val url = element.jsonObject["image_wm"]!!.jsonObject["webp"]!!.jsonArray[1].jsonObject["url"]!!.jsonPrimitive.content diff --git a/app/src/main/java/exh/md/handlers/ComikeyHandler.kt b/app/src/main/java/exh/md/handlers/ComikeyHandler.kt index 2f29887e6..f780de828 100644 --- a/app/src/main/java/exh/md/handlers/ComikeyHandler.kt +++ b/app/src/main/java/exh/md/handlers/ComikeyHandler.kt @@ -45,7 +45,7 @@ class ComikeyHandler(cloudflareClient: OkHttpClient, userAgent: String) { } private fun getActualPageList(response: Response): Request? { - val element = Json.parseToJsonElement(response.body!!.string()).jsonObject + val element = Json.parseToJsonElement(response.body.string()).jsonObject val ok = element["ok"]?.jsonPrimitive?.booleanOrNull ?: false if (ok.not()) { return null @@ -55,7 +55,7 @@ class ComikeyHandler(cloudflareClient: OkHttpClient, userAgent: String) { } fun pageListParse(response: Response): List { - return Json.parseToJsonElement(response.body!!.string()) + return Json.parseToJsonElement(response.body.string()) .jsonObject["readingOrder"]!! .jsonArray.mapIndexed { index, element -> val url = element.jsonObject["href"]!!.jsonPrimitive.content diff --git a/app/src/main/java/exh/md/handlers/MangaHotHandler.kt b/app/src/main/java/exh/md/handlers/MangaHotHandler.kt index 5b8580065..85a7cef6d 100644 --- a/app/src/main/java/exh/md/handlers/MangaHotHandler.kt +++ b/app/src/main/java/exh/md/handlers/MangaHotHandler.kt @@ -26,7 +26,7 @@ class MangaHotHandler(currentClient: OkHttpClient, userAgent: String) { } fun pageListParse(response: Response): List { - return Json.parseToJsonElement(response.body!!.string()) + return Json.parseToJsonElement(response.body.string()) .jsonObject["content"]!!.jsonObject["contentUrls"]!! .jsonArray.mapIndexed { index, element -> val url = element.jsonPrimitive.content diff --git a/app/src/main/java/exh/md/handlers/MangaPlusHandler.kt b/app/src/main/java/exh/md/handlers/MangaPlusHandler.kt index c8d08496f..8b1e4e018 100644 --- a/app/src/main/java/exh/md/handlers/MangaPlusHandler.kt +++ b/app/src/main/java/exh/md/handlers/MangaPlusHandler.kt @@ -40,7 +40,7 @@ class MangaPlusHandler(currentClient: OkHttpClient) { } private fun pageListParse(response: Response): List { - val result = ProtoBuf.decodeFromByteArray(response.body!!.bytes()) + val result = ProtoBuf.decodeFromByteArray(response.body.bytes()) if (result.success == null) { throw Exception("error getting images") @@ -70,7 +70,7 @@ class MangaPlusHandler(currentClient: OkHttpClient) { val response = chain.proceed(request) - val image = decodeImage(encryptionKey, response.body!!.bytes()) + val image = decodeImage(encryptionKey, response.body.bytes()) val body = image.toResponseBody("image/jpeg".toMediaTypeOrNull()) return response.newBuilder().body(body).build() diff --git a/app/src/main/java/exh/recs/RecommendsPagingSource.kt b/app/src/main/java/exh/recs/RecommendsPagingSource.kt index 62d32bc7e..b624d848f 100644 --- a/app/src/main/java/exh/recs/RecommendsPagingSource.kt +++ b/app/src/main/java/exh/recs/RecommendsPagingSource.kt @@ -52,7 +52,7 @@ class MyAnimeList : API("https://api.jikan.moe/v3/") { .toString() val response = client.newCall(GET(apiUrl)).await() - val body = withIOContext { response.body?.string() } ?: throw Exception("Null Response") + val body = withIOContext { response.body.string() } val data = Json.decodeFromString(body) val recommendations = data["recommendations"] as? JsonArray return recommendations?.filterIsInstance()?.map { rec -> diff --git a/app/src/main/java/exh/ui/captcha/BrowserActionActivity.kt b/app/src/main/java/exh/ui/captcha/BrowserActionActivity.kt index e6d49f93b..f2bb49b3e 100644 --- a/app/src/main/java/exh/ui/captcha/BrowserActionActivity.kt +++ b/app/src/main/java/exh/ui/captcha/BrowserActionActivity.kt @@ -292,7 +292,7 @@ class BrowserActionActivity : AppCompatActivity() { token to it } }.flatMap { (token, response) -> - val audioFile = response.body!!.bytes() + val audioFile = response.body.bytes() httpClient.newCall( Request.Builder() diff --git a/app/src/main/java/exh/util/OkHttpUtil.kt b/app/src/main/java/exh/util/OkHttpUtil.kt index 48afc9034..b55184843 100644 --- a/app/src/main/java/exh/util/OkHttpUtil.kt +++ b/app/src/main/java/exh/util/OkHttpUtil.kt @@ -7,8 +7,7 @@ import okhttp3.ResponseBody.Companion.toResponseBody import org.jsoup.nodes.Document fun Response.interceptAsHtml(block: (Document) -> Unit): Response { - val body = body - return if (body?.contentType()?.type == "text" && + return if (body.contentType()?.type == "text" && body.contentType()?.subtype == "html" ) { val bodyString = body.string()