49 lines
1.5 KiB
Kotlin
49 lines
1.5 KiB
Kotlin
package gq.kirmanak.mealient.di
|
|
|
|
import android.content.Context
|
|
import com.chuckerteam.chucker.api.ChuckerCollector
|
|
import com.chuckerteam.chucker.api.ChuckerInterceptor
|
|
import com.chuckerteam.chucker.api.RetentionManager
|
|
import dagger.Module
|
|
import dagger.Provides
|
|
import dagger.hilt.InstallIn
|
|
import dagger.hilt.android.qualifiers.ApplicationContext
|
|
import dagger.hilt.components.SingletonComponent
|
|
import dagger.multibindings.IntoSet
|
|
import gq.kirmanak.mealient.BuildConfig
|
|
import okhttp3.Interceptor
|
|
import okhttp3.logging.HttpLoggingInterceptor
|
|
import timber.log.Timber
|
|
import javax.inject.Singleton
|
|
|
|
@Module
|
|
@InstallIn(SingletonComponent::class)
|
|
object DebugModule {
|
|
@Provides
|
|
@Singleton
|
|
@IntoSet
|
|
fun provideLoggingInterceptor(): Interceptor {
|
|
val interceptor = HttpLoggingInterceptor { message -> Timber.tag("OkHttp").v(message) }
|
|
interceptor.level = when {
|
|
BuildConfig.LOG_NETWORK -> HttpLoggingInterceptor.Level.BODY
|
|
else -> HttpLoggingInterceptor.Level.BASIC
|
|
}
|
|
return interceptor
|
|
}
|
|
|
|
@Provides
|
|
@Singleton
|
|
@IntoSet
|
|
fun provideChuckerInterceptor(@ApplicationContext context: Context): Interceptor {
|
|
val collector = ChuckerCollector(
|
|
context = context,
|
|
showNotification = true,
|
|
retentionPeriod = RetentionManager.Period.ONE_HOUR,
|
|
)
|
|
return ChuckerInterceptor.Builder(context)
|
|
.collector(collector)
|
|
.alwaysReadResponseBody(true)
|
|
.build()
|
|
}
|
|
}
|