Created
July 24, 2020 15:27
-
-
Save beigirad/d3ae3f2b906b8e1637193888ea7748ce to your computer and use it in GitHub Desktop.
dagger component scope types
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@Module | |
interface DataModule { | |
@Binds | |
fun bindSessionProvider(sessionProvider: SessionProviderImpl): SessionProvider | |
} | |
@Singleton | |
class SessionProviderImpl @Inject constructor( | |
private val application: Application | |
) : SessionProvider | |
public final class DaggerCoreComponent implements CoreComponent { | |
private final Application app; | |
private Provider<Application> appProvider; | |
private Provider<SessionProviderImpl> sessionProviderImplProvider; | |
private DaggerCoreComponent(Application appParam) { | |
this.app = appParam; | |
initialize(appParam); | |
} | |
@SuppressWarnings("unchecked") | |
private void initialize(final Application appParam) { | |
this.appProvider = InstanceFactory.create(appParam); | |
this.sessionProviderImplProvider = DoubleCheck.provider(SessionProviderImpl_Factory.create(appProvider)); | |
} | |
private AuthenticationInterceptor getAuthenticationInterceptor() { | |
return NetworkModule_ProvideAuthInterceptorFactory.provideAuthInterceptor(sessionProviderImplProvider.get());} | |
private AuthenticationRepositoryImpl getAuthenticationRepositoryImpl() { | |
return new AuthenticationRepositoryImpl(getAuthenticationSourceProvider(), sessionProviderImplProvider.get());} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@Module | |
interface DataModule { | |
@Singleton | |
@Binds | |
fun bindSessionProvider(sessionProvider: SessionProviderImpl): SessionProvider | |
} | |
class SessionProviderImpl @Inject constructor( | |
private val application: Application | |
) : SessionProvider | |
public final class DaggerCoreComponent implements CoreComponent { | |
private final Application app; | |
private Provider<Application> appProvider; | |
private Provider<SessionProviderImpl> sessionProviderImplProvider; | |
private Provider<SessionProvider> bindSessionProvider; | |
private DaggerCoreComponent(Application appParam) { | |
this.app = appParam; | |
initialize(appParam); | |
} | |
@SuppressWarnings("unchecked") | |
private void initialize(final Application appParam) { | |
this.appProvider = InstanceFactory.create(appParam); | |
this.sessionProviderImplProvider = SessionProviderImpl_Factory.create(appProvider); | |
this.bindSessionProvider = DoubleCheck.provider((Provider) sessionProviderImplProvider); | |
} | |
private AuthenticationInterceptor getAuthenticationInterceptor() { | |
return NetworkModule_ProvideAuthInterceptorFactory.provideAuthInterceptor(bindSessionProvider.get());} | |
private AuthenticationRepositoryImpl getAuthenticationRepositoryImpl() { | |
return new AuthenticationRepositoryImpl(getAuthenticationSourceProvider(), bindSessionProvider.get());} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@Module | |
interface DataModule { | |
@Binds | |
fun bindSessionProvider(sessionProvider: SessionProviderImpl): SessionProvider | |
} | |
class SessionProviderImpl @Inject constructor( | |
private val application: Application | |
) : SessionProvider | |
public final class DaggerCoreComponent implements CoreComponent { | |
private final Application app; | |
private DaggerCoreComponent(Application appParam) { | |
this.app = appParam; | |
} | |
private SessionProviderImpl getSessionProviderImpl() { | |
return new SessionProviderImpl(app);} | |
private AuthenticationInterceptor getAuthenticationInterceptor() { | |
return NetworkModule_ProvideAuthInterceptorFactory.provideAuthInterceptor(getSessionProviderImpl());} | |
private AuthenticationRepositoryImpl getAuthenticationRepositoryImpl() { | |
return new AuthenticationRepositoryImpl(getAuthenticationSourceProvider(), getSessionProviderImpl());} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment