Size: a a a

Moxy – MVP библиотека под Android

2020 March 11

EP

Egor Polyakov in Moxy – MVP библиотека под Android
И я думал что их нельзя передавать в методы презентера
источник

Rl

Roman lastName in Moxy – MVP библиотека под Android
Egor Polyakov
И я думал что их нельзя передавать в методы презентера
Ой. Это Вы не мне =)
источник
2020 March 13

Д

Денис in Moxy – MVP библиотека под Android
Привет и спасибо разработчикам
источник

Д

Денис in Moxy – MVP библиотека под Android
Нарвался на багу в https://github.com/moxy-community/Moxy/blob/develop/moxy-androidx/src/main/java/moxy/MvpAppCompatFragment.java

Для воспроизведения:

1. Activity - FullScreenFragment1

Выполняем такую транзакцию
       fragmentTransaction
           .replace(fragmentContainerId, FullScreenFragment2, screen.screenKey)
           .addToBackStack(screen.screenKey)
           .commit()

2. Activity - FullScreenFragment2
Здесь свернуть приложение и вернуться в него

Потом очищаем все фрагменты и переходим куда-нибудь на другой фрагмент

По итогу получаем такой лог для FullScreenFragment1:

onStart()
bindView()
onResume()
onPause()
onSaveInstanceState(Bundle[{}])

onStart()
bindView()
onResume()
onPause()
onSaveInstanceState(Bundle[{}])
onDestroy() isActivityFinishing: false, isRemoving: true isStateSaved: true


И вот этот workaround
       // When we rotate device isRemoving() return true for fragment placed in backstack
       // http://stackoverflow.com/questions/34649126/fragment-back-stack-and-isremoving
       if (isStateSaved) {
           isStateSaved = false;
           return;
       }
Не дает вызвать getMvpDelegate().onDestroy()
источник

Д

Денис in Moxy – MVP библиотека под Android
Возможно это можно вылечить заменой этого блока на
       if(activity?.isChangingConfigurations){
           return
       }
источник

АЕ

Алексей Ершов in Moxy – MVP библиотека под Android
Привет, Денис! Интересная история, будем думать. Заведите, пожалуйста, issue, иначе потеряется проблема)
источник

Д

Денис in Moxy – MVP библиотека под Android
Ok
источник
2020 March 15

AE

Arsen Esatov in Moxy – MVP библиотека под Android
Добрый вечер. Скажите пожалуйста как лучше передавать данные пришедшие во fragment в presenter?
источник

IG

Ilya Gulya in Moxy – MVP библиотека под Android
Arsen Esatov
Добрый вечер. Скажите пожалуйста как лучше передавать данные пришедшие во fragment в presenter?
В конструктор в методе providePresenter
источник

AE

Arsen Esatov in Moxy – MVP библиотека под Android
Если kotlin,то moxyPresenter и снова в конструктор? Но когда общая фабрика для всех презентеров, такой же ведь подход не удастся?Или я ошибаюсь?
источник

IG

Ilya Gulya in Moxy – MVP библиотека под Android
Arsen Esatov
Если kotlin,то moxyPresenter и снова в конструктор? Но когда общая фабрика для всех презентеров, такой же ведь подход не удастся?Или я ошибаюсь?
Да, всё так.
Что за общая фабрика?
источник

AE

Arsen Esatov in Moxy – MVP библиотека под Android
Использую dagger и создал фабрику для создания каждого презентера
источник

IG

Ilya Gulya in Moxy – MVP библиотека под Android
Arsen Esatov
Использую dagger и создал фабрику для создания каждого презентера
значит аргументы нужно сувать в билдер компонента
источник

IG

Ilya Gulya in Moxy – MVP библиотека под Android
и через DI подсовывать в конструктор
источник

MM

Mikhail Mustakimov in Moxy – MVP библиотека под Android
Ilya Gulya
и через DI подсовывать в конструктор
+
источник

MM

Mikhail Mustakimov in Moxy – MVP библиотека под Android
Либо, как вариант, сделать метод init(...), который будет принимать параметры, нужные для инициализации презентера
источник

MM

Mikhail Mustakimov in Moxy – MVP библиотека под Android
(в нескольких местах так делал, каюсь)
источник

IG

Ilya Gulya in Moxy – MVP библиотека под Android
Mikhail Mustakimov
Либо, как вариант, сделать метод init(...), который будет принимать параметры, нужные для инициализации презентера
Это лучше избегать всеми возможными способами
источник

IG

Ilya Gulya in Moxy – MVP библиотека под Android
И считать такой подход костылём
источник

MM

Mikhail Mustakimov in Moxy – MVP библиотека под Android
Либо, как вариант, самостоятельно строить презентер, включая в свой фрагмент/активность все зависимости презентера и подавая ему их
источник