Je développe un projet Android avec Kotlin et Dagger 2. J'ai un NetworkModule
il est censé fournir une instance singleton de Retrofit. dans laquelle je définis toutes ces fonctions de fournisseur.
Tous les extraits de code ci-dessous sont dans NetworkModule
:
@Module
object NetworkModule {
...
}
Ma 1ère question :
Je veux fournir un singleton de HttpLoggingInterceptor
para OkHttpClient
. Voici ce que j'ai essayé :
@Provides
internal fun provideLoggingInterceptor(): Interceptor {
// compiler error: Unresolved reference 'setLevel', unresolved reference 'Level'
return HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY)
}
Mais je reçois une erreur de compilation : Unresolved reference 'setLevel'
y Unresolved reference 'Level'
Comment s'en débarrasser ?
Ma deuxième question :
Je définis ma fonction de fournisseur OkHttpClient comme :
@Provides
internal fun provideOkHttpClient(loggingInterceptor: Interceptor): OkHttpClient {
return OkHttpClient.Builder()
.addInterceptor(loggingInterceptor)
...
.build()
}
Comment puis-je faire en sorte que seuls addInterceptor(loggingInterceptor)
lorsqu'il est dans le modèle de débogage, alors qu'en mode release, il ne faut pas ajouter l'élément HttpLoggingInterceptor
dans la fonction fournisseur ci-dessus ?