Skip to content

Instantly share code, notes, and snippets.

@tfcporciuncula
tfcporciuncula / ApplicationInjection.kt
Created March 25, 2019 23:23
ApplicationInjection.kt
@AssistedModule
@Module(includes = [AssistedInject_AssistedInjectModule::class])
interface AssistedInjectModule
@tfcporciuncula
tfcporciuncula / TextActivity.kt
Last active March 31, 2019 13:49
TextActivity.kt
private val presenter by lazy {
component.textPresenterFactory.create(this, intent.getStringExtra(EXTRA_TEXT))
}
@tfcporciuncula
tfcporciuncula / SimpleAssistedInjectApplication.kt
Created March 25, 2019 23:52
SimpleAssistedInjectApplication
class SimpleAssistedInjectApplication : Application() {
val component: ApplicationComponent by lazy {
DaggerApplicationComponent.builder()
.applicationContext(applicationContext)
.build()
}
}
val Activity.component get() = (application as SimpleAssistedInjectApplication).component
@tfcporciuncula
tfcporciuncula / TextPresenter.kt
Created March 26, 2019 14:23
TextPresenter.kt
class TextPresenter @AssistedInject constructor(
@Assisted private val view: TextView,
@Assisted @Text private val text: String,
private val textDecorator: TextDecorator
) {
@AssistedInject.Factory
interface Factory {
fun create(view: TextView, @Text text: String): TextPresenter
}
@tfcporciuncula
tfcporciuncula / ApplicationModule.kt
Created March 26, 2019 14:28
ApplicationModule.kt
@AssistedModule
@Module(includes = [AssistedInject_ApplicationModule::class])
object ApplicationModule {
...
}
@tfcporciuncula
tfcporciuncula / ApplicationComponent.kt
Created March 27, 2019 12:23
ApplicationComponent.kt
@Singleton
@Component(modules = [AssistedInjectModule::class])
interface ApplicationComponent {
...
val textPresenterFactory: TextPresenter.Factory
}
@tfcporciuncula
tfcporciuncula / MyApplication.kt
Created April 7, 2019 13:16
Creating component
DaggerApplicationComponent
.builder()
.applicationModule(ApplicationModule(applicationContext))
.build()
@tfcporciuncula
tfcporciuncula / ApplicationComponent.kt
Created April 7, 2019 13:23
ApplicationComponent.kt
@Component(modules = ...)
interface ApplicationComponent {
@Component.Builder
interface Builder {
@BindsInstance fun applicationContext(applicationContext: Context): Builder
fun build(): ApplicationComponent
}
...
@tfcporciuncula
tfcporciuncula / ApplicationComponent.kt
Created April 7, 2019 13:33
ApplicationComponent.kt
@Component(modules = ...)
interface ApplicationComponent {
@Component.Factory
interface Factory {
fun create(@BindsInstance applicationContext: Context): ApplicationComponent
}
...
}
@tfcporciuncula
tfcporciuncula / MyApplication.kt
Created April 7, 2019 13:33
Creating component
DaggerApplicationComponent
.factory()
.create(applicationContext)