Skip to content

Commit d110d92

Browse files
committed
Optimize OkHttp initialization for Retrofit
Change-Id: I347f1080ab5adf774a0cdd3c659cbf25c4820f9a
1 parent f3e89ba commit d110d92

File tree

1 file changed

+12
-9
lines changed
  • core/network/src/main/kotlin/com/google/samples/apps/nowinandroid/core/network/retrofit

1 file changed

+12
-9
lines changed

core/network/src/main/kotlin/com/google/samples/apps/nowinandroid/core/network/retrofit/RetrofitNiaNetwork.kt

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
package com.google.samples.apps.nowinandroid.core.network.retrofit
1818

19+
import androidx.tracing.trace
1920
import com.google.samples.apps.nowinandroid.core.network.BuildConfig
2021
import com.google.samples.apps.nowinandroid.core.network.NiaNetworkDataSource
2122
import com.google.samples.apps.nowinandroid.core.network.model.NetworkChangeList
@@ -73,17 +74,19 @@ private data class NetworkResponse<T>(
7374
@Singleton
7475
internal class RetrofitNiaNetwork @Inject constructor(
7576
networkJson: Json,
76-
okhttpCallFactory: Call.Factory,
77+
okhttpCallFactory: dagger.Lazy<Call.Factory>,
7778
) : NiaNetworkDataSource {
7879

79-
private val networkApi = Retrofit.Builder()
80-
.baseUrl(NIA_BASE_URL)
81-
.callFactory(okhttpCallFactory)
82-
.addConverterFactory(
83-
networkJson.asConverterFactory("application/json".toMediaType()),
84-
)
85-
.build()
86-
.create(RetrofitNiaNetworkApi::class.java)
80+
private val networkApi = trace("RetrofitNiaNetwork") {
81+
Retrofit.Builder()
82+
.baseUrl(NIA_BASE_URL)
83+
.callFactory { okhttpCallFactory.get().newCall(it) }
84+
.addConverterFactory(
85+
networkJson.asConverterFactory("application/json".toMediaType()),
86+
)
87+
.build()
88+
.create(RetrofitNiaNetworkApi::class.java)
89+
}
8790

8891
override suspend fun getTopics(ids: List<String>?): List<NetworkTopic> =
8992
networkApi.getTopics(ids = ids).data

0 commit comments

Comments
 (0)