Soy nuevo en Dagger y es increíble, pero tengo un problema.
La clase de diálogo necesita la actividad actual como context para la inicialización.
class ProgressUtil @Inject constructor(val context: Activity) { var dialog: Dialog? = null fun show() { hide() dialog = Dialog(context) dialog?.let { it.window!!.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) it.setContentView(R.layout.progress_dialog) it.setCancelable(false) it.show() } } fun hide() { dialog?.let { if (it.isShowing) { it.dismiss() } } } } Y aquí está mi clase ActivityModules
@Module abstract class ActivityModules { @ContributesAndroidInjector abstract fun contributeMainActivity() : MainActivity @ContributesAndroidInjector abstract fun contributePostsActivity() : PostsActivity // Want to pass current activity as activity param @Provides fun progressUtilMainActivity(activity: Activity): ProgressUtil = ProgressUtil(activity) }Clase AppComponent
@Singleton @Component( modules = [ AndroidSupportInjectionModule::class, ActivityModules::class ] ) interface AppComponent { @Component.Builder interface Builder { @BindsInstance fun application(application: AppController) : Builder fun build() : AppComponent } fun inject(application: AppController) }¿Existe una forma genérica de usar la barra de progreso en muchas actividades sin crear un módulo para cada actividad?