Skip to content

Conversation

@lex090
Copy link

@lex090 lex090 commented Jun 16, 2022

No description provided.

interface FragmentReceiverComponentModule {

@Binds
fun provideStateFlow(

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

точно ли нам нужен тут байнд на уровне FragmentReciver

у нас уже есть инстанс, который создается на уровне активити
в ActivityComponentModule и шарится между всеми фрагментами, можно в ресивере использовать именно его.

В случае с ColorGenerator все сделано верно, потому что его использует только ProviderFragment

Copy link
Author

@lex090 lex090 Jun 20, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Я не хочу провайдить MutableStateFlow так как RecieverViewModel предназначена только для получения данных, я делаю каст к StateFlow чтобы разграничить ответственность в использовании данной сущности и исключить возможность эмита элементов во флоу из любых мест кроме ProviderViewModel.
При этом инстанс используется тот который создался в ActivityComponentModule

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Смотри, идея то понятная и отличная, но у тебя в графе же уже есть инстанс MutableStateFlow и я его могу спокойно заинжектить в ту же ВМ. Может тебе лучше наоборот провайдить StateFlow в активитикомпоненте, тут скастить его в MutableStateFlow ну и закрыть квалифаером для безопасности?

Copy link
Contributor

@antonkazakov antonkazakov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Привет. Я прокомментировал ваш с Семеном тред, и добавил маленький коммент про нейминг. В целом все хорошо, и работу я засчитываю

interface FragmentReceiverComponentModule {

@Binds
fun provideStateFlow(
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Смотри, идея то понятная и отличная, но у тебя в графе же уже есть инстанс MutableStateFlow и я его могу спокойно заинжектить в ту же ВМ. Может тебе лучше наоборот провайдить StateFlow в активитикомпоненте, тут скастить его в MutableStateFlow ну и закрыть квалифаером для безопасности?

}

@Module(subcomponents = [ActivityComponent::class])
class ApplicationComponentModule No newline at end of file
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Имхо не очень хорошая практика модули по именам привязывать к компонентам, у тебя же в принципе модули могут жить в разных компонентах, а конкретно этот вообще необходим только для того чтобы привязать сабкомпоненты, мб его так и назвать?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants