diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/injection/InterceptorModule.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/injection/InterceptorModule.kt deleted file mode 100644 index 87596589..00000000 --- a/android/src/main/kotlin/dev/msfjarvis/claw/android/injection/InterceptorModule.kt +++ /dev/null @@ -1,20 +0,0 @@ -package dev.msfjarvis.claw.android.injection - -import dagger.Binds -import dagger.Module -import dagger.hilt.InstallIn -import dagger.hilt.components.SingletonComponent -import dagger.multibindings.IntoSet -import dev.msfjarvis.claw.android.network.NapierLogger -import dev.msfjarvis.claw.android.network.UserAgentInterceptor -import okhttp3.Interceptor -import okhttp3.logging.HttpLoggingInterceptor - -@Module -@InstallIn(SingletonComponent::class) -interface InterceptorModule { - - @Binds fun NapierLogger.bindLogger(): HttpLoggingInterceptor.Logger - - @Binds @IntoSet fun UserAgentInterceptor.bindUAInterceptor(): Interceptor -} diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/injection/OkHttpModule.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/injection/OkHttpModule.kt index 54a65f9f..caf5bb02 100644 --- a/android/src/main/kotlin/dev/msfjarvis/claw/android/injection/OkHttpModule.kt +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/injection/OkHttpModule.kt @@ -2,6 +2,7 @@ package dev.msfjarvis.claw.android.injection import android.content.Context import android.net.TrafficStats +import dagger.Binds import dagger.Module import dagger.Provides import dagger.hilt.InstallIn @@ -9,6 +10,8 @@ import dagger.hilt.android.qualifiers.ApplicationContext import dagger.hilt.components.SingletonComponent import dagger.multibindings.IntoSet import dev.msfjarvis.claw.android.network.DelegatingSocketFactory +import dev.msfjarvis.claw.android.network.NapierLogger +import dev.msfjarvis.claw.android.network.UserAgentInterceptor import java.net.Socket import javax.net.SocketFactory import okhttp3.Cache @@ -18,40 +21,48 @@ import okhttp3.logging.HttpLoggingInterceptor @Module @InstallIn(SingletonComponent::class) -object OkHttpModule { - @Provides - fun provideCache(@ApplicationContext context: Context): Cache { - return Cache(context.cacheDir, 10 * 1024 * 1024) - } +abstract class OkHttpModule { - @Provides - fun provideSocketFactory(): SocketFactory { - return object : DelegatingSocketFactory(getDefault()) { - override fun configureSocket(socket: Socket): Socket { - TrafficStats.setThreadStatsTag(0x000090000) - return super.configureSocket(socket) - } + @Binds abstract fun NapierLogger.bindLogger(): HttpLoggingInterceptor.Logger + + @Binds @IntoSet abstract fun UserAgentInterceptor.bindUAInterceptor(): Interceptor + + companion object { + + @Provides + fun provideCache(@ApplicationContext context: Context): Cache { + return Cache(context.cacheDir, 10 * 1024 * 1024) } - } - @Provides - fun provideClient( - cache: Cache, - socketFactory: SocketFactory, - interceptors: Set<@JvmSuppressWildcards Interceptor>, - ): OkHttpClient { - return OkHttpClient.Builder() - .apply { - cache(cache) - interceptors.forEach(::addNetworkInterceptor) - socketFactory(socketFactory) + @Provides + fun provideSocketFactory(): SocketFactory { + return object : DelegatingSocketFactory(getDefault()) { + override fun configureSocket(socket: Socket): Socket { + TrafficStats.setThreadStatsTag(0x000090000) + return super.configureSocket(socket) + } } - .build() - } + } + + @Provides + fun provideClient( + cache: Cache, + socketFactory: SocketFactory, + interceptors: Set<@JvmSuppressWildcards Interceptor>, + ): OkHttpClient { + return OkHttpClient.Builder() + .apply { + cache(cache) + interceptors.forEach(::addNetworkInterceptor) + socketFactory(socketFactory) + } + .build() + } - @Provides - @IntoSet - fun provideHttpLoggingInterceptor(logger: HttpLoggingInterceptor.Logger): Interceptor { - return HttpLoggingInterceptor(logger).setLevel(HttpLoggingInterceptor.Level.HEADERS) + @Provides + @IntoSet + fun provideHttpLoggingInterceptor(logger: HttpLoggingInterceptor.Logger): Interceptor { + return HttpLoggingInterceptor(logger).setLevel(HttpLoggingInterceptor.Level.HEADERS) + } } }