Я пытаюсь следовать шаблону проектирования MVP, используя RxJava2. Я новичок в этом. Поскольку я запрашиваю данные из API, в своем Presenter я вызываю свою модель следующим образом:
mModel.getDataFromAPI()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(data -> {
// Do something with the data
}, throwable -> {
// A wild error appears!
// TODO: Display a dialog
});
Когда возникает ошибка, я хочу отобразить диалог с сообщением для пользователя.
Итак, я подумал о том, чтобы создать displayErrorDialog(String message)
в представлении. Но проблема в том, что я вызываю API немного везде в приложении, так что это означает, что ВСЕ мои представления должны будут реализовать метод!
Диалог должен отображаться в представлении:
- следовать шаблону проектирования MVP
- потому что мне нужен текущий контекст для отображения диалогового окна.
Я ищу лучшее решение, чтобы не реализовывать один и тот же метод каждый раз, когда у меня появляется новое представление.