BaseFragment, от которой наследуются все фрагменты. В каждой вьюмодели сейчас находится лайвдата с ошибкой, и каждый фрагмент на нее подписывается. Нужно сделать так, чтобы в BaseViewModel была эта лайвдата и в BaseFragment была подписка. Как лучше всего это сделать, создать в BaseFragment поле с типом BaseViewModel и передавать в каждом фрагменте вьюмодель? И соответственно в BaseViewModel создать поле с лайвдатой
А где сложность?
Так есть ещё другие способы?
А чем тебе не подходит способ который ты уже нашел?)
Можно сделать интерфейс/абстрактный класс BaseViewModel с полем errorLiveData. А в базовом фрагменте завести abstract val viewModel: T, где T : BaseViewModel (дженерик). В базовом фрагменте подписываться на viewModel.errorLiveData. Подклассы фрагмента будут только ViewModel создавать
Обсуждают сегодня