Introduce JsonProvider.
It will ensure that classes are using the correct Json instances in the unit tests.
This commit is contained in:
parent
fa8ddba1f5
commit
df48ed5a2d
21 changed files with 103 additions and 52 deletions
|
|
@ -23,6 +23,7 @@ android {
|
|||
setupDependencyInjection()
|
||||
|
||||
dependencies {
|
||||
implementation(projects.libraries.androidutils)
|
||||
implementation(projects.libraries.core)
|
||||
implementation(projects.libraries.di)
|
||||
implementation(projects.libraries.matrix.api)
|
||||
|
|
|
|||
|
|
@ -9,8 +9,8 @@ package io.element.android.libraries.network
|
|||
|
||||
import dev.zacsweers.metro.Inject
|
||||
import dev.zacsweers.metro.Provider
|
||||
import io.element.android.libraries.androidutils.json.JsonProvider
|
||||
import io.element.android.libraries.core.uri.ensureTrailingSlash
|
||||
import kotlinx.serialization.json.Json
|
||||
import okhttp3.MediaType.Companion.toMediaType
|
||||
import okhttp3.OkHttpClient
|
||||
import retrofit2.Retrofit
|
||||
|
|
@ -19,11 +19,11 @@ import retrofit2.converter.kotlinx.serialization.asConverterFactory
|
|||
@Inject
|
||||
class RetrofitFactory(
|
||||
private val okHttpClient: Provider<OkHttpClient>,
|
||||
private val json: Provider<Json>,
|
||||
private val json: Provider<JsonProvider>,
|
||||
) {
|
||||
fun create(baseUrl: String): Retrofit = Retrofit.Builder()
|
||||
.baseUrl(baseUrl.ensureTrailingSlash())
|
||||
.addConverterFactory(json().asConverterFactory("application/json".toMediaType()))
|
||||
.addConverterFactory(json()().asConverterFactory("application/json".toMediaType()))
|
||||
.callFactory { request -> okHttpClient().newCall(request) }
|
||||
.build()
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue