Sagar Suri
02/04/2020, 1:59 PMAppComponent
marked as Singleton
can have dependencies which are not Singleton
?
AppComponent
@Singleton
@Component(modules = [AppModule::class])
interface AppComponent {
fun inject(mainActivity: MainActivity)
fun inject(secondActivity: SecondActivity)
}
AppModule
@Module
class AppModule(private val application: MyApplication) {
@Provides
@Singleton
fun provideOkHttpClient(): OkHttpClient {
return OkHttpClient.Builder().build()
}
@Provides
fun provideRetrofit(okHttpClient: OkHttpClient): Retrofit {
return Retrofit.Builder()
.baseUrl("<https://api.unsplash.com>")
.client(okHttpClient)
.build()
}
}
This works. If you see provideRetrofit
is not annotated as Singleton
but it works.