diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 2499e612..733595ef 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -86,11 +86,11 @@ android { dependencies { implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.aar")))) implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") - implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.0") + implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1") implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.3.2") implementation("androidx.activity:activity-compose:1.4.0") - implementation("androidx.navigation:navigation-compose:2.4.1") + implementation("androidx.navigation:navigation-compose:2.4.2") implementation(JetpackCompose.FOUNDATION) implementation(JetpackCompose.UI) @@ -110,9 +110,10 @@ dependencies { implementation("io.coil-kt:coil-compose:1.4.0") - implementation("io.ktor:ktor-client-core:1.6.8") - implementation("io.ktor:ktor-client-okhttp:1.6.8") - implementation("io.ktor:ktor-client-serialization:1.6.8") + implementation("io.ktor:ktor-client-core:2.0.0") + implementation("io.ktor:ktor-client-okhttp:2.0.0") + implementation("io.ktor:ktor-client-content-negotiation:2.0.0") + implementation("io.ktor:ktor-serialization-kotlinx-json:2.0.0") implementation("androidx.room:room-runtime:2.4.2") annotationProcessor("androidx.room:room-compiler:2.4.2") @@ -137,7 +138,7 @@ dependencies { implementation("ru.noties.markwon:core:3.1.0") - implementation("xyz.quaver.pupil.sources:core:0.0.1-alpha01-DEV25") + implementation("xyz.quaver.pupil.sources:core:0.0.1-alpha01-DEV26") implementation("xyz.quaver:documentfilex:0.7.2") implementation("xyz.quaver:subsampledimage:0.0.1-alpha19-SNAPSHOT") diff --git a/app/src/main/java/xyz/quaver/pupil/Pupil.kt b/app/src/main/java/xyz/quaver/pupil/Pupil.kt index e6a89127..2e4b6715 100644 --- a/app/src/main/java/xyz/quaver/pupil/Pupil.kt +++ b/app/src/main/java/xyz/quaver/pupil/Pupil.kt @@ -29,12 +29,7 @@ import com.google.android.gms.common.GooglePlayServicesRepairableException import com.google.android.gms.security.ProviderInstaller import io.ktor.client.* import io.ktor.client.engine.okhttp.* -import io.ktor.client.features.* -import io.ktor.client.features.cache.* -import io.ktor.client.features.json.* -import io.ktor.client.features.json.serializer.* -import io.ktor.http.* -import okhttp3.Protocol +import io.ktor.client.plugins.contentnegotiation.* import org.kodein.di.* import org.kodein.di.android.x.androidXModule import xyz.quaver.pupil.sources.core.NetworkCache @@ -53,10 +48,7 @@ class Pupil : Application(), DIAware { bind { singleton { HttpClient(OkHttp) { - install(JsonFeature) { - serializer = KotlinxSerializer() - accept(ContentType("text", "plain")) - } + install(ContentNegotiation) } } } } diff --git a/app/src/main/java/xyz/quaver/pupil/ui/SourceSelector.kt b/app/src/main/java/xyz/quaver/pupil/ui/SourceSelector.kt index 6400258a..15b73ae8 100644 --- a/app/src/main/java/xyz/quaver/pupil/ui/SourceSelector.kt +++ b/app/src/main/java/xyz/quaver/pupil/ui/SourceSelector.kt @@ -56,6 +56,7 @@ import com.google.accompanist.insets.ui.BottomNavigation import com.google.accompanist.insets.ui.Scaffold import com.google.accompanist.insets.ui.TopAppBar import io.ktor.client.* +import io.ktor.client.call.* import io.ktor.client.request.* import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.delay @@ -181,7 +182,7 @@ fun Explore() { while (true) { delay(1000) value = withContext(Dispatchers.IO) { - client.get>("https://raw.githubusercontent.com/tom5079/PupilSources/master/versions.json") + client.get("https://raw.githubusercontent.com/tom5079/PupilSources/master/versions.json").body() } } } diff --git a/app/src/main/java/xyz/quaver/pupil/util/ApkDownloadManager.kt b/app/src/main/java/xyz/quaver/pupil/util/ApkDownloadManager.kt index 87f9d794..3ee9a8a3 100644 --- a/app/src/main/java/xyz/quaver/pupil/util/ApkDownloadManager.kt +++ b/app/src/main/java/xyz/quaver/pupil/util/ApkDownloadManager.kt @@ -20,23 +20,16 @@ package xyz.quaver.pupil.util import android.content.Context import android.content.Intent -import android.util.Log import android.webkit.MimeTypeMap import androidx.core.content.FileProvider import io.ktor.client.* -import io.ktor.client.call.* -import io.ktor.client.features.* import io.ktor.client.request.* import io.ktor.client.statement.* import io.ktor.http.* -import io.ktor.util.cio.* -import io.ktor.utils.io.* import io.ktor.utils.io.core.* -import io.ktor.utils.io.jvm.javaio.* import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.flow import kotlinx.coroutines.flow.flowOn -import kotlinx.coroutines.withContext import java.io.File import kotlin.io.use @@ -49,8 +42,8 @@ class ApkDownloadManager(private val context: Context, private val client: HttpC it.delete() } - client.get(url).execute { response -> - val channel: ByteReadChannel = response.receive() + client.prepareGet(url).execute { response -> + val channel = response.bodyAsChannel() val contentLength = response.contentLength() ?: -1 var readBytes = 0f