From 845a73b4034d1d2d0806ae101855aeafdf7136cd Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Thu, 30 Jun 2022 22:29:40 +0530 Subject: [PATCH] android: override user agent header --- .../claw/android/injection/ApiModule.kt | 10 ++++------ .../interceptors/NapierLoggingInterceptor.kt | 13 +++++++++++++ .../interceptors/UserAgentInterceptor.kt | 17 +++++++++++++++++ 3 files changed, 34 insertions(+), 6 deletions(-) create mode 100644 android/src/main/kotlin/dev/msfjarvis/claw/android/interceptors/NapierLoggingInterceptor.kt create mode 100644 android/src/main/kotlin/dev/msfjarvis/claw/android/interceptors/UserAgentInterceptor.kt 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() + ) + } +}