diff --git a/core/network/build.gradle.kts b/core/network/build.gradle.kts index fa810cd1..e3e157f2 100644 --- a/core/network/build.gradle.kts +++ b/core/network/build.gradle.kts @@ -33,4 +33,7 @@ dependencies { libs.kotlinx.coroutines.core, libs.logger, ) + + debugImplementation(libs.chucker) + releaseImplementation(libs.chucker.no.op) } diff --git a/core/network/src/main/kotlin/com/ninecraft/booket/core/network/di/NetworkGraph.kt b/core/network/src/main/kotlin/com/ninecraft/booket/core/network/di/NetworkGraph.kt index d0fb0cf4..d6c82ff7 100644 --- a/core/network/src/main/kotlin/com/ninecraft/booket/core/network/di/NetworkGraph.kt +++ b/core/network/src/main/kotlin/com/ninecraft/booket/core/network/di/NetworkGraph.kt @@ -1,6 +1,9 @@ package com.ninecraft.booket.core.network.di +import android.content.Context import android.util.Log +import com.chuckerteam.chucker.api.ChuckerInterceptor +import com.ninecraft.booket.core.di.ApplicationContext import com.ninecraft.booket.core.di.DataScope import com.ninecraft.booket.core.network.BuildConfig import com.ninecraft.booket.core.network.TokenAuthenticator @@ -83,11 +86,19 @@ interface NetworkGraph { return interceptor } + @Provides + fun provideChuckerInterceptor( + @ApplicationContext context: Context, + ): ChuckerInterceptor { + return ChuckerInterceptor(context) + } + @Provides fun provideOkHttpClient( httpLoggingInterceptor: HttpLoggingInterceptor, tokenInterceptor: TokenInterceptor, tokenAuthenticator: TokenAuthenticator, + chuckerInterceptor: ChuckerInterceptor, ): OkHttpClient { return OkHttpClient.Builder() .connectTimeout(MaxTimeoutMillis, TimeUnit.MILLISECONDS) @@ -95,6 +106,7 @@ interface NetworkGraph { .writeTimeout(MaxTimeoutMillis, TimeUnit.MILLISECONDS) .addInterceptor(tokenInterceptor) .authenticator(tokenAuthenticator) + .addInterceptor(chuckerInterceptor) .addInterceptor(httpLoggingInterceptor) .build() } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b442b099..0f85ffaf 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -3,8 +3,8 @@ minSdk = "28" targetSdk = "36" compileSdk = "36" -versionName = "1.3.0" -versionCode = "9" +versionName = "1.4.0" +versionCode = "11" packageName = "com.ninecraft.booket" ## Android gradle plugin @@ -40,6 +40,7 @@ metro = "0.10.2" ## Network okhttp = "5.3.2" retrofit = "3.0.0" +chucker = "4.3.1" ## Circuit circuit = "0.32.0" @@ -114,6 +115,8 @@ compose-keyboard-state = { group = "tech.thdev", name = "extensions-compose-keyb retrofit = { group = "com.squareup.retrofit2", name = "retrofit", version.ref = "retrofit" } retrofit-kotlinx-serialization-converter = { module = "com.squareup.retrofit2:converter-kotlinx-serialization", version.ref = "retrofit" } okhttp-logging-interceptor = { group = "com.squareup.okhttp3", name = "logging-interceptor", version.ref = "okhttp" } +chucker = { group = "com.github.chuckerteam.chucker", name = "library", version.ref = "chucker" } +chucker-no-op = { group = "com.github.chuckerteam.chucker", name = "library-no-op", version.ref = "chucker" } coil-compose = { group = "io.coil-kt", name = "coil-compose", version.ref = "coil-compose" } landscapist-bom = { group = "com.github.skydoves", name = "landscapist-bom", version.ref = "landscapist" }