From c0cb056328d446de31b06c38068f20049b9c04ac Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Fri, 17 Mar 2023 10:02:51 +0100 Subject: [PATCH] Inject Lazy and then use callFactory instead of setting client manually. It'll allow to initialise retrofit/okhttp lazily. --- .../io/element/android/libraries/network/RetrofitFactory.kt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libraries/network/src/main/kotlin/io/element/android/libraries/network/RetrofitFactory.kt b/libraries/network/src/main/kotlin/io/element/android/libraries/network/RetrofitFactory.kt index cba09525f9..86531d3680 100644 --- a/libraries/network/src/main/kotlin/io/element/android/libraries/network/RetrofitFactory.kt +++ b/libraries/network/src/main/kotlin/io/element/android/libraries/network/RetrofitFactory.kt @@ -17,6 +17,7 @@ package io.element.android.libraries.network import com.jakewharton.retrofit2.converter.kotlinx.serialization.asConverterFactory +import dagger.Lazy import io.element.android.libraries.core.uri.ensureTrailingSlash import kotlinx.serialization.json.Json import okhttp3.MediaType.Companion.toMediaType @@ -25,14 +26,14 @@ import retrofit2.Retrofit import javax.inject.Inject class RetrofitFactory @Inject constructor( - private val okHttpClient: OkHttpClient, + private val okHttpClient: Lazy, ) { fun create(baseUrl: String): Retrofit { val contentType = "application/json".toMediaType() return Retrofit.Builder() .baseUrl(baseUrl.ensureTrailingSlash()) .addConverterFactory(Json.asConverterFactory(contentType)) - .client(okHttpClient) + .callFactory { request -> okHttpClient.get().newCall(request) } .build() } }