android: override user agent header

This commit is contained in:
Harsh Shandilya 2022-06-30 22:29:40 +05:30
parent 79114bac9f
commit 845a73b403
No known key found for this signature in database
GPG key ID: 366D7BBAD1031E80
3 changed files with 34 additions and 6 deletions

View file

@ -8,8 +8,9 @@ import dagger.Provides
import dagger.hilt.InstallIn import dagger.hilt.InstallIn
import dagger.hilt.android.qualifiers.ApplicationContext import dagger.hilt.android.qualifiers.ApplicationContext
import dagger.hilt.components.SingletonComponent 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 dev.msfjarvis.claw.api.LobstersApi
import io.github.aakira.napier.Napier
import kotlinx.serialization.ExperimentalSerializationApi import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
import okhttp3.Cache import okhttp3.Cache
@ -32,11 +33,8 @@ object ApiModule {
fun provideClient(cache: Lazy<Cache>): OkHttpClient { fun provideClient(cache: Lazy<Cache>): OkHttpClient {
return OkHttpClient.Builder() return OkHttpClient.Builder()
.cache(cache.get()) .cache(cache.get())
.addNetworkInterceptor { chain -> .addNetworkInterceptor(UserAgentInterceptor())
val request = chain.request() .addNetworkInterceptor(NapierLoggingInterceptor())
Napier.d(tag = "LobstersApi") { "${request.method}: ${request.url}" }
chain.proceed(request)
}
.build() .build()
} }

View file

@ -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)
}
}

View file

@ -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()
)
}
}