diff --git a/.github/workflows/pr_builder.yml b/.github/workflows/pr_builder.yml index dfca92693..cd6ba956d 100644 --- a/.github/workflows/pr_builder.yml +++ b/.github/workflows/pr_builder.yml @@ -26,10 +26,10 @@ jobs: restore-keys: | ${{ runner.os }}-gradle- - - name: set up JDK 18 + - name: set up JDK 17 uses: actions/setup-java@v3 with: - java-version: 18 + java-version: 17 distribution: 'temurin' - name: Change gradlew permissions @@ -67,4 +67,4 @@ jobs: run: echo "$GOOGLE_SERVICES_JSON" > app/google-services.json - name: Build with Gradle - run: ./gradlew assembleDebug -PcompileSdkVersion=35 \ No newline at end of file + run: ./gradlew assembleDebug -PcompileSdkVersion=35 --stacktrace diff --git a/app/build.gradle.kts b/app/build.gradle.kts index dd8c5d8b8..c62557ba4 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -113,6 +113,10 @@ dependencies { // Debug debugImplementation(libs.bundles.debug) + debugImplementation(libs.chucker.library) + + // Release + releaseImplementation(libs.chucker.library.no.op) // Androidx implementation(libs.bundles.androidx) diff --git a/app/src/main/java/com/spoony/spoony/core/network/RetrofitModule.kt b/app/src/main/java/com/spoony/spoony/core/network/RetrofitModule.kt index 33f4ce835..574e51e7c 100644 --- a/app/src/main/java/com/spoony/spoony/core/network/RetrofitModule.kt +++ b/app/src/main/java/com/spoony/spoony/core/network/RetrofitModule.kt @@ -1,5 +1,7 @@ package com.spoony.spoony.core.network +import android.content.Context +import com.chuckerteam.chucker.api.ChuckerInterceptor import com.jakewharton.retrofit2.converter.kotlinx.serialization.asConverterFactory import com.spoony.spoony.BuildConfig.BASE_URL import com.spoony.spoony.core.network.qualifier.Auth @@ -7,6 +9,7 @@ import com.spoony.spoony.core.network.qualifier.CoilClient 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 kotlinx.serialization.json.Json @@ -79,15 +82,21 @@ object RetrofitModule { @Singleton fun provideTokenAuthenticator(authenticator: TokenAuthenticator): Authenticator = authenticator + @Provides + @Singleton + fun provideChuckerInterceptor(@ApplicationContext context: Context): ChuckerInterceptor = ChuckerInterceptor.Builder(context).build() + @Provides @Singleton fun provideClient( loggingInterceptor: HttpLoggingInterceptor, authInterceptor: Interceptor, - tokenAuthenticator: TokenAuthenticator + tokenAuthenticator: TokenAuthenticator, + chuckerInterceptor: ChuckerInterceptor ) = OkHttpClient.Builder() .addInterceptor(loggingInterceptor) .addInterceptor(authInterceptor) + .addInterceptor(chuckerInterceptor) .authenticator(tokenAuthenticator) .build() @@ -95,18 +104,22 @@ object RetrofitModule { @Singleton @Auth fun provideAuthClient( - loggingInterceptor: HttpLoggingInterceptor + loggingInterceptor: HttpLoggingInterceptor, + chuckerInterceptor: ChuckerInterceptor ) = OkHttpClient.Builder() .addInterceptor(loggingInterceptor) + .addInterceptor(chuckerInterceptor) .build() @Provides @Singleton @CoilClient fun provideCoilClient( - loggingInterceptor: HttpLoggingInterceptor + loggingInterceptor: HttpLoggingInterceptor, + chuckerInterceptor: ChuckerInterceptor ) = OkHttpClient.Builder() .addInterceptor(loggingInterceptor) + .addInterceptor(chuckerInterceptor) .build() @Provides diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b3c4a7326..f32a6fa15 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -42,6 +42,7 @@ firebaseBom = "34.3.0" firebaseCrashlyticsPlugin = "3.0.6" # Third Party +chucker = "4.0.0" okhttp = "4.11.0" retrofit = "2.9.0" retrofitKotlinSerializationConverter = "1.0.0" @@ -118,6 +119,8 @@ accompanist-pager-indicators = { module = "com.google.accompanist:accompanist-pa accompanist-systemuicontroller = { module = "com.google.accompanist:accompanist-systemuicontroller", version.ref = "accompanistSystemuicontroller" } # Third Party +chucker-library = { group = "com.github.chuckerteam.chucker", name = "library", version.ref = "chucker" } +chucker-library-no-op = { group = "com.github.chuckerteam.chucker", name = "library-no-op", version.ref = "chucker" } okhttp = { group = "com.squareup.okhttp3", name = "okhttp" } okhttp-bom = { group = "com.squareup.okhttp3", name = "okhttp-bom", version.ref = "okhttp" } okhttp-logging = { group = "com.squareup.okhttp3", name = "logging-interceptor", version.ref = "okhttp" }