Я новичок в Dagger
, и это здорово, но у меня проблема.
Класс диалога нуждается в текущей активности как context
для инициализации.
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()
}
}
}
}
Ивот мой 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)
}
класс 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)
}
Существует ли универсальный способ использования индикатора выполнения во многих действиях без создания модуля для каждого действия?