Расширение модуля core-mvp для работы с диалогами.
В наших приложениях мы не используем напрямую диалоги из Android Framework.
Предоставляет 2 парадигмы работы с диалогами:
- Диалог как часть родительского вью, события диалога в этом случае
получает презентер родительского вью (см
CoreSimpleDialogFragment
) - Диалог с собственным презентером, родительский презентер в этом случае
может получить событие с диалога через RxBus (см
CoreDialogFragmentView
)
Gradle:
implementation "ru.surfstudio.android:mvp-dialog:X.X.X"
Для диалогов предусмотрен базовые классы
Базовый класс простого диалога который может возвращать результат У этого диалога презентер не предусмотрен. Простой диалог рассматривается как часть родителького View и оповещает презентер о событиях пользователя прямым вызовом метода презентера. Для получения презентера в диалоге предусмотрен метод #getScreenComponent(Class), который возвращает компонент родительского экрана.
Этот диалог следует расширять если не требуется реализация сложной логики в диалоге и обращение к слою Interactor.
Простой BottomSheetDialog без презентера, аналогичен CoreSimpleDialogFragment
.
Диалог с собственным презентером. Следует использовать если в диалоге есть сложная логика или обращение к слою данных. Для оповещения о результате выполнения диалога следует использовать шину (RxBus)
BottomSheetDialog с собственным презентером.
Общая информация по навигации - здесь.
Открытие диалогов осуществляется из презентера через DialogNavigator.
Предусмотрены базовые маршруты: