app: add Ktor client module

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
This commit is contained in:
Harsh Shandilya 2020-11-08 16:12:25 +05:30
parent bc7eb9abaa
commit 836b5ef725
No known key found for this signature in database
GPG key ID: 366D7BBAD1031E80
2 changed files with 30 additions and 0 deletions

View file

@ -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)

View file

@ -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)
}
}
}
}