diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/injection/ApiModule.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/injection/ApiModule.kt index 3303c965..f63a2cf3 100644 --- a/android/src/main/kotlin/dev/msfjarvis/claw/android/injection/ApiModule.kt +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/injection/ApiModule.kt @@ -8,8 +8,9 @@ import dagger.Provides import dagger.hilt.InstallIn import dagger.hilt.android.qualifiers.ApplicationContext import dagger.hilt.components.SingletonComponent +import dev.msfjarvis.claw.android.interceptors.NapierLoggingInterceptor +import dev.msfjarvis.claw.android.interceptors.UserAgentInterceptor import dev.msfjarvis.claw.api.LobstersApi -import io.github.aakira.napier.Napier import kotlinx.serialization.ExperimentalSerializationApi import kotlinx.serialization.json.Json import okhttp3.Cache @@ -32,11 +33,8 @@ object ApiModule { fun provideClient(cache: Lazy): OkHttpClient { return OkHttpClient.Builder() .cache(cache.get()) - .addNetworkInterceptor { chain -> - val request = chain.request() - Napier.d(tag = "LobstersApi") { "${request.method}: ${request.url}" } - chain.proceed(request) - } + .addNetworkInterceptor(UserAgentInterceptor()) + .addNetworkInterceptor(NapierLoggingInterceptor()) .build() } diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/interceptors/NapierLoggingInterceptor.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/interceptors/NapierLoggingInterceptor.kt new file mode 100644 index 00000000..4a69ca1d --- /dev/null +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/interceptors/NapierLoggingInterceptor.kt @@ -0,0 +1,13 @@ +package dev.msfjarvis.claw.android.interceptors + +import io.github.aakira.napier.Napier +import okhttp3.Interceptor +import okhttp3.Response + +class NapierLoggingInterceptor : Interceptor { + override fun intercept(chain: Interceptor.Chain): Response { + val request = chain.request() + Napier.d(tag = "LobstersApi") { "${request.method}: ${request.url}" } + return chain.proceed(request) + } +} diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/interceptors/UserAgentInterceptor.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/interceptors/UserAgentInterceptor.kt new file mode 100644 index 00000000..44c6c04e --- /dev/null +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/interceptors/UserAgentInterceptor.kt @@ -0,0 +1,17 @@ +package dev.msfjarvis.claw.android.interceptors + +import dev.msfjarvis.claw.android.BuildConfig +import okhttp3.Interceptor +import okhttp3.Response + +class UserAgentInterceptor : Interceptor { + override fun intercept(chain: Interceptor.Chain): Response { + return chain.proceed( + chain + .request() + .newBuilder() + .header("User-Agent", "Claw-Android/${BuildConfig.VERSION_NAME}/msfjarvis") + .build() + ) + } +}