diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 655d27661..d70004b93 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -308,12 +308,12 @@ tasks { kotlinOptions.freeCompilerArgs += listOf( "-Xopt-in=kotlin.Experimental", "-Xopt-in=kotlin.RequiresOptIn", - "-Xuse-experimental=kotlin.ExperimentalStdlibApi", - "-Xuse-experimental=kotlinx.coroutines.FlowPreview", - "-Xuse-experimental=kotlinx.coroutines.ExperimentalCoroutinesApi", - "-Xuse-experimental=kotlinx.coroutines.InternalCoroutinesApi", - "-Xuse-experimental=kotlinx.serialization.ExperimentalSerializationApi", - "-Xuse-experimental=coil.annotation.ExperimentalCoilApi", + "-Xopt-in=kotlin.ExperimentalStdlibApi", + "-Xopt-in=kotlinx.coroutines.FlowPreview", + "-Xopt-in=kotlinx.coroutines.ExperimentalCoroutinesApi", + "-Xopt-in=kotlinx.coroutines.InternalCoroutinesApi", + "-Xopt-in=kotlinx.serialization.ExperimentalSerializationApi", + "-Xopt-in=coil.annotation.ExperimentalCoilApi", ) } diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/track/bangumi/BangumiApi.kt b/app/src/main/java/eu/kanade/tachiyomi/data/track/bangumi/BangumiApi.kt index 05db4bd6f..bbf26622e 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/track/bangumi/BangumiApi.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/track/bangumi/BangumiApi.kt @@ -26,6 +26,7 @@ import okhttp3.OkHttpClient import okhttp3.Request import uy.kohesive.injekt.injectLazy import java.net.URLEncoder +import java.nio.charset.StandardCharsets class BangumiApi(private val client: OkHttpClient, interceptor: BangumiInterceptor) { @@ -109,7 +110,7 @@ class BangumiApi(private val client: OkHttpClient, interceptor: BangumiIntercept suspend fun search(search: String): List { return withIOContext { - val url = "$apiUrl/search/subject/${URLEncoder.encode(search, Charsets.UTF_8.name())}" + val url = "$apiUrl/search/subject/${URLEncoder.encode(search, StandardCharsets.UTF_8.name())}" .toUri() .buildUpon() .appendQueryParameter("max_results", "20") @@ -133,7 +134,7 @@ class BangumiApi(private val client: OkHttpClient, interceptor: BangumiIntercept suspend fun searchAnime(search: String): List { return withIOContext { - val url = "$apiUrl/search/subject/${URLEncoder.encode(search, Charsets.UTF_8.name())}" + val url = "$apiUrl/search/subject/${URLEncoder.encode(search, StandardCharsets.UTF_8.name())}" .toUri() .buildUpon() .appendQueryParameter("max_results", "20") diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/track/kitsu/KitsuApi.kt b/app/src/main/java/eu/kanade/tachiyomi/data/track/kitsu/KitsuApi.kt index d801d48a1..1c6956672 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/track/kitsu/KitsuApi.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/track/kitsu/KitsuApi.kt @@ -26,6 +26,8 @@ import okhttp3.OkHttpClient import okhttp3.Request import okhttp3.RequestBody import okhttp3.RequestBody.Companion.toRequestBody +import java.net.URLEncoder +import java.nio.charset.StandardCharsets class KitsuApi(private val client: OkHttpClient, interceptor: KitsuInterceptor) { @@ -220,7 +222,7 @@ class KitsuApi(private val client: OkHttpClient, interceptor: KitsuInterceptor) private suspend fun algoliaSearch(key: String, query: String): List { return withIOContext { val jsonObject = buildJsonObject { - put("params", "query=$query$algoliaFilter") + put("params", "query=${URLEncoder.encode(query, StandardCharsets.UTF_8.name())}$algoliaFilter") } client.newCall( @@ -249,7 +251,7 @@ class KitsuApi(private val client: OkHttpClient, interceptor: KitsuInterceptor) private suspend fun algoliaSearchAnime(key: String, query: String): List { return withIOContext { val jsonObject = buildJsonObject { - put("params", "query=$query$algoliaFilterAnime") + put("params", "query=${URLEncoder.encode(query, StandardCharsets.UTF_8.name())}$algoliaFilterAnime") } client.newCall( diff --git a/app/src/main/java/eu/kanade/tachiyomi/util/lang/StringExtensions.kt b/app/src/main/java/eu/kanade/tachiyomi/util/lang/StringExtensions.kt index ab8c1c933..d03cb92ca 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/util/lang/StringExtensions.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/util/lang/StringExtensions.kt @@ -1,6 +1,7 @@ package eu.kanade.tachiyomi.util.lang import net.greypanther.natsort.CaseInsensitiveSimpleNaturalComparator +import java.nio.charset.StandardCharsets import kotlin.math.floor /** @@ -41,7 +42,7 @@ fun String.compareToCaseInsensitiveNaturalOrder(other: String): Int { * Returns the size of the string as the number of bytes. */ fun String.byteSize(): Int { - return toByteArray(Charsets.UTF_8).size + return toByteArray(StandardCharsets.UTF_8).size } /** @@ -49,7 +50,7 @@ fun String.byteSize(): Int { * string is shorter. */ fun String.takeBytes(n: Int): String { - val bytes = toByteArray(Charsets.UTF_8) + val bytes = toByteArray(StandardCharsets.UTF_8) return if (bytes.size <= n) { this } else {