и В.
На фрагменте А - текстовое поле и кнопка.
При клике на кнопку прыгаем на В.
На В в презентере - при входе выполяются 2 вещи:
1) гружу файлик json из raw директории в асинке;
2) и идет запрос на сервак за таким же данными(через ретрофит)
После этого в этом же презентере думаю эти данные писать в таблицу БД - realm.
И получается, что при самом первом старте(когда БД пуста) - мы грузим из raw - и пишем в БД, если есть Инет - грузим с сервака - и переписываем в БД.
Теперь допустим, мы заходим второй раз на этот экран и БД у нас есть.
Тогда мы должны считывать в БД, а если есть Инет - то и загружать от туда(вдруг там новые) - перезаписывать в БД.
В итоге:
1) наше хранение(репозиторий) - это БД. Работать с ней мы будем из презентера - это верный подход?
2) после того как на фрагменте В мы нажмем пункт - мы должны вернуться на фрагмент А и в нем в текстовое поле вставить текст из нажатого пункта. (это реализовывать через Bundle или как-то по иному можно?)
1) нет, подход не верный. Презентер не должен работать с конечными источниками данных напрямую, он вообще о них особо знать не должен. Презентер лишь передает вызовы модели, которая уже осуществляет всю бизнес-логику и обшается с компонентами, которые общаются с внешними источниками данных
Обсуждают сегодня