Пользовательская область с @ContributesAndroidInjector

Я пытаюсь поделиться той же ViewModel между различными фрагментами. Я аннотировал это с @PerFragment:

@PerFragment class LoginViewModel @Inject constructor(val authenticationApi: AuthenticationApi) : ViewModel() {
...

Я не уверен, где еще установить пользовательскую область?

В моей деятельности у меня есть этот модуль (без подкомпонента), который предоставляет мне фрагмент электронной почты, аннотированный @PerFragment:

@dagger.Module class Module {

    @Provides @PerFragment fun splashEntryFragment(): SplashEntryFragment {
        return SplashEntryFragment()
    }

    @Provides @PerFragment fun emailFragment(): EmailFragment {
        return EmailFragment()
    }
}

в моем фрагменте логина электронной почты у меня есть только этот модуль, который предоставляет следующий фрагмент (без подкомпонента):

@dagger.Module class Module {
    @Provides @PerFragment fun passwordFragment(): PasswordFragment {
        return PasswordFragment()
    }
}

Все мои действия и фрагменты используют обязательные модули так:

@Module абстрактный класс ActivitiesBindingModule {

// Activities
@ContributesAndroidInjector(modules = [SplashActivity.Module::class]) abstract fun splashActivity(): SplashActivity

@ContributesAndroidInjector(modules = [MainActivity.Module::class]) abstract fun mainActivity(): MainActivity

}

@Module абстрактный класс FragmentBindingModule {

@ContributesAndroidInjector(modules = [SplashEntryFragment.Module::class]) abstract fun splashFragment(): SplashEntryFragment
@PerFragment @ContributesAndroidInjector(modules = [EmailFragment.Module::class]) abstract fun emailFragment(): EmailFragment
@PerFragment @ContributesAndroidInjector(modules = [PasswordFragment.Module::class]) abstract fun passwordFragment(): PasswordFragment
@ContributesAndroidInjector(modules = [FeedFragment.Module::class]) abstract fun feedFragment(): FeedFragment

}

Тем не менее - я получаю новый LoginViewModel для каждого фрагмента. В чем проблема?

0 ответов

Другие вопросы по тегам