@ Proporciona methods en SubComponent con AndoridInjector y Kotlin

Estoy usando el Dagger2 AndroidInjector y Kotlin. Tengo un subcomponente con su module definido de esta manera:

@Subcomponent(modules = arrayOf( UIModule::class, HomeActivitySubcomponent.ComponentModule::class )) interface HomeActivitySubcomponent : AndroidInjector<HomeActivity> { @Subcomponent.Builder abstract class Builder : AndroidInjector.Builder<HomeActivity>() @Module abstract class ComponentModule { @Binds @IntoMap @ActivityKey(HomeActivity::class) internal abstract fun bindMainActivityInjectorFactory(builder: Builder): AndroidInjector.Factory<out Activity> } } 

Si esto fuera Java, podría agregar un método @Provides estático al ComponentModule @Module. Tiene que ser estático porque Dagger se queja si agrego un método no estático a una class @Module que usa @Binds:

Error: un @Module no puede contener methods @Provides no estáticos y declaraciones @Binds o @Multibinds abstractos

El problema es: ¿cómo puedo hacer esto con Kotlin?

Terminé con esto:

 @Subcomponent(modules = arrayOf( UIModule::class, HomeActivitySubcomponent.ComponentModuleForProviders::class, HomeActivitySubcomponent.ComponentModule::class )) interface HomeActivitySubcomponent : AndroidInjector<HomeActivity> { @Subcomponent.Builder abstract class Builder : AndroidInjector.Builder<HomeActivity>() @Module abstract class ComponentModule { @Suppress("unused") @Binds @IntoMap @ActivityKey(HomeActivity::class) internal abstract fun bindMainActivityInjectorFactory(builder: Builder): AndroidInjector.Factory<out Activity> } @Module open class ComponentModuleForProviders { @Provides open fun provideDrawerPresenter(): DrawerPresenter {...} } } 

Así que utilizo una segunda class @Module para los methods @Provides: ComponentModuleForProviders .

  • ¿La mejor forma de combinar banderas enteras usando Kotlin?
  • Kotlin accede a los miembros del object complementario en types derivados
  • Seguimiento de gestos desde el service de Android
  • problemas del comstackdor de Kotlin para la class no resuelta
  • Cómo extender desde una InnerClass en kotlin
  • ¿Cómo configuro un ícono (dibujable) para un button en anko?
  • Kotlin - Henetworkinga de Java Class que implementa Parcelable
  • Kotlin renombrando Getters Generados y Setters
  • Prueba de unidad Kotlin para parámetro de function y object
  • cómo controlar el flujo de datos cuando se usa correctamente en kotlin
  • La testing en Kotlin no puede acceder al método protegido