Skip to content

Commit

Permalink
added ktor client to data
Browse files Browse the repository at this point in the history
  • Loading branch information
anmolvermamm committed Feb 13, 2022
1 parent 9071500 commit 8e27df1
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 2 deletions.
10 changes: 9 additions & 1 deletion buildSrc/src/main/kotlin/Dependencies.kt
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,8 @@ object Lib {
private const val CONSTRAINT_LAYOUT_COMPOSE =
"androidx.constraintlayout:constraintlayout-compose:1.0.0"
private const val COMPOSE_UI = "androidx.compose.ui:ui:${composeVersion}"
private const val COMPOSE_LIVEDATA = "androidx.compose.runtime:runtime-livedata:${composeVersion}"
private const val COMPOSE_LIVEDATA =
"androidx.compose.runtime:runtime-livedata:${composeVersion}"
private const val COMPOSE_MATERIAL = "androidx.compose.material:material:${composeVersion}"
private const val COMPOSE_TOOLING = "androidx.compose.ui:ui-tooling-preview:${composeVersion}"
private const val COMPOSE_DEBUG_TOOLING = "androidx.compose.ui:ui-tooling:${composeVersion}"
Expand Down Expand Up @@ -115,6 +116,13 @@ object Lib {
const val testing = "androidx.room:room-testing:$roomVersion"
}

object Networking {
const val KTOR = "io.ktor:ktor-client-android:1.6.7"
const val KTOR_LOGGING = "io.ktor:ktor-client-logging-jvm:1.6.7"

val ktorList = listOf(KTOR, KTOR_LOGGING)
}

object ThirdParty {
private const val COIL_COMPOSE = "io.coil-kt:coil-compose:1.4.0"

Expand Down
2 changes: 1 addition & 1 deletion data/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ dependencies {
implementation(project(":domain"))

Lib.Kotlin.list.forEach(::implementation)

Lib.Networking.ktorList.forEach(::implementation)
/*DI*/
implementation(Lib.Di.hilt)
implementation(Lib.Di.hiltNavigationCompose)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,22 @@ import android.content.Context
import android.content.SharedPreferences
import androidx.room.Room
import androidx.room.RoomDatabase
import com.mutualmobile.praxis.data.BuildConfig
import com.mutualmobile.praxis.data.local.AppDatabase
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.android.qualifiers.ApplicationContext
import dagger.hilt.components.SingletonComponent
import javax.inject.Singleton
import io.ktor.client.*
import io.ktor.client.engine.android.*
import io.ktor.client.features.*
import io.ktor.client.features.logging.*
import io.ktor.client.features.observer.*
import io.ktor.client.request.*
import io.ktor.http.*
import timber.log.Timber

@Module
@InstallIn(SingletonComponent::class)
Expand All @@ -27,4 +36,30 @@ object DataModule {
return context.getSharedPreferences("app_prefs", Context.MODE_PRIVATE)
}

@Provides
@Singleton
fun providesKtorClient() = HttpClient(Android) {
engine {
connectTimeout = 60_000
socketTimeout = 60_000
}

install(Logging) {
logger = object : Logger {
override fun log(message: String) {
Timber.d("Logger Ktor => $message")
}
}
if (BuildConfig.DEBUG) {
level = LogLevel.ALL
}
}

install(ResponseObserver) {
onResponse { response ->
Timber.d("HTTP status: ${response.status.value}")
}
}
}

}

0 comments on commit 8e27df1

Please sign in to comment.