diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 56cafbd4..b0f878a6 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -91,6 +91,10 @@ dependencies { implementation(Dependencies.AndroidX.Room.runtime) implementation(Dependencies.AndroidX.Room.ktx) implementation(Dependencies.Kotlin.Coroutines.android) + implementation(Dependencies.Kotlin.Ktor.clientCore) + implementation(Dependencies.Kotlin.Ktor.clientJson) + implementation(Dependencies.Kotlin.Ktor.clientOkHttp) + implementation(Dependencies.Kotlin.Ktor.clientSerialization) implementation(Dependencies.Kotlin.Serialization.json) implementation(Dependencies.ThirdParty.accompanist) implementation(Dependencies.ThirdParty.customtabs) diff --git a/app/src/main/java/dev/msfjarvis/lobsters/injection/KtorApiModule.kt b/app/src/main/java/dev/msfjarvis/lobsters/injection/KtorApiModule.kt new file mode 100644 index 00000000..a9fad0f7 --- /dev/null +++ b/app/src/main/java/dev/msfjarvis/lobsters/injection/KtorApiModule.kt @@ -0,0 +1,26 @@ +package dev.msfjarvis.lobsters.injection + +import dagger.Module +import dagger.Provides +import dagger.hilt.InstallIn +import dagger.hilt.android.components.ApplicationComponent +import io.ktor.client.HttpClient +import io.ktor.client.engine.okhttp.OkHttp +import io.ktor.client.features.json.JsonFeature +import io.ktor.client.features.json.serializer.KotlinxSerializer + +@Module +@InstallIn(ApplicationComponent::class) +object KtorApiModule { + @Provides + fun provideClient() = HttpClient(OkHttp) { + install(JsonFeature) { + serializer = KotlinxSerializer() + } + engine { + config { + followSslRedirects(true) + } + } + } +}