У меня есть класс с именем AlertManager
, для которого требуется Activity
экземпляр, чтобы показать Toast
и AlertDialog
.
class AlertManager @Inject constructor(private val activity: Activity) {
fun showToast(message: String) {
Toast.makeText(activity, message, Toast.LENGTH_SHORT).show()
}
}
Теперь я хочу AlertManager
как зависимость в двух действиях HomeActivity
& ProductsActivity
.В настоящее время я создал модули для каждого Activity
, например:
@Module
class HomeActivityModule {
@Provides
@ActivityContext
fun provideAlertManager(activity: HomeActivity) = AlertManager(activity)
}
И
@Module
class ProductsActivityModule {
@Provides
@ActivityContext
fun provideAlertManager(activity: ProductsActivity) = AlertManager(activity)
}
И связал их с Dagger, как
@Module
abstract class ActivityProvider {
@ContributesAndroidInjector(modules = [HomeActivityModule::class])
@ActivityContext
abstract fun bindHomeActivity(): HomeActivity
@ContributesAndroidInjector(modules = [ProductsActivityModule::class])
@ActivityContext
abstract fun bindProductsActivity(): ProductsActivity
}
Теперь мои вопросы:
1) Как мне избежать создания модулей для каждого вида деятельности и иметь общие ActivityModule
, которые я могу связать с любым Activity
я хочу?
2) Допустим, у меня есть фрагмент с именем HomeFragment
внутри HomeActivity
, тогда как я могу внедрить тот же AlertManager
экземпляр HomeActivity
внутри фрагмента?
Я застрял здесьс тех пор довольно долго и пытался найти много через Интернет, но я не могу найти ни одного блога или руководства, которые могут помочь мне достичь того, что я ищу.Если кто-то может указать мне правильное направление, я буду благодарен.