Не могу никак разобраться с восстановлением состояния в MVP.
В моем приложении я по нажатию кнопки загружаю JSON-объект Post и вывожу в MainActivity результат в TextView.
Но при смене ориентации экрана все сбрасывается.
Нашел такую статью в интернете:
https://pspdfkit.com/blog/2016/restoring-state-in-android-mvp-architecture/В ней автор к интерфейсу Contract помимо интерфейсов View, Presenter, Model добавляет интерфейс State.
Как я понял у меня должен быть класс PostState реализовывающий интерфейс State, класс этот имеет приватное поле типа Post, конструктор который назначает Post и геттер возвращающий Post.
Интерфейс State передаётся Presenter, когда View подписывается на Presenter.
Presenter проверяет, в случае state != null берет Post из state.getPost() и выводит в View, но если state == null то обращаётся к модели которая загружает Post из интернета и соответсвенно выводит в View.
Так же Presenter имеет метод getState() который возвращает new PostState(post)
В View в методе onSaveInstanceState автор вызывает метод writeToBundle(outState, presenter.getState())
А в момент подписки View на Presenter, которя у меня происходит в методе onCreate() автор передаёт метод readFromBundle(
savedInstanceState
);
И вот, по поводу этих методов writeToBundle и readFromBundle - автор не написал их реализации, а написал вот что
«The methods writeToBundle() and readFromBundle() are just helper methods for writing State to the bundle, and they are used to avoid code clutter (this implementation is omitted since it’s trivial).»
Я не могу понять, что нужно прописать в этих методах writeToBundle() и readFromBundle().
Может мне кто-то объяснить?
И вообще, это поможет мне в том, чтобы при поворачивании экрана текст не сбрасывался или я не туда копаю?