Почему Composite не успевает проинициализироваться? onFirstViewAttach ведь вызвался уже
Caused by: kotlin.UninitializedPropertyAccessException: lateinit property compositeDisposable has not been initialized
передавайте параметром в конструктор презентера в функции провайдпрезентер это ближе всего к тому что вы хотите в момент вызова onAttach / onFirstViewattach бегите параметр переданный в конструктор и вызывайте функцию внутри самого презентера
таким образом вам вообще будет по барабану на жизненный цикл активити/франмента в общем если кто то при использовании мокси вспоминаете про жизненный цикл Android это для меня сигнал что в логике что то не так
Moxy тем и хороша что утрировала жизненный цикл до 3-х функций только ими и надо пользоваться только про них и стоит знать все остальное нужно помнить только для глупых вопросов на собеседовании )
Всем привет. Когда-то мне был интересен MVP подход лишь ради интереса, но тогда я его не понял, более того, посчитал ненужным бредом и забыл. Сейчас, в текущем проекте, я вынужден в нем разобраться. Поэтому я тут, писать пока ничего не буду, в связи с отсутствием знаний. Не баньте за пассивность участия в группе
Кто-нить думал как "православно" по MVP сделать makeSceneTransitionAnimation()?
Кейс такой: юзер кликает на элемент, нужно запустить другую активити с хитрой анимацией через makeSceneTransitionAnimation().
Проблема: makeSceneTransitionAnimation() принимает параметром android.view.View (элемент на исходной активити). Т.е. эта android.view.View нужна для запуска анимации. В презентер очень не хочется передавать android.view.View. Эта View может погибнуть. Мало того, что утечка памяти, так ещё эта view уже может не существовать в исходной активити (на случай, если презентер повторит команду).
Не самый лучший выход: запустить активити не через презентер. Но тут нарушается концепт MVP.
Кто-нить думал как "православно" по MVP сделать makeSceneTransitionAnimation()?
Кейс такой: юзер кликает на элемент, нужно запустить другую активити с хитрой анимацией через makeSceneTransitionAnimation().
Проблема: makeSceneTransitionAnimation() принимает параметром android.view.View (элемент на исходной активити). Т.е. эта android.view.View нужна для запуска анимации. В презентер очень не хочется передавать android.view.View. Эта View может погибнуть. Мало того, что утечка памяти, так ещё эта view уже может не существовать в исходной активити (на случай, если презентер повторит команду).
Не самый лучший выход: запустить активити не через презентер. Но тут нарушается концепт MVP.
Есть идеи как это можно сделать не нарушая MVP?
А что мешает вызвать через презентер вызов твоей анимации? Просто прокинь событие, что нужно сделать анимацию, а во вью уже делай её потом. Тут же главное событие покинуть, как я понимаю.
Проблема в том, что View известна в момент клика. Чтобы провернуть это через презентер, нужно передать туда View на которую кликнули (onClicked(view: View)). И потом презентер должен эту View вернуть в activity, чтобы activity запустила другую activity через makeSceneTransitionAnimation()
Проблема в том, что View известна в момент клика. Чтобы провернуть это через презентер, нужно передать туда View на которую кликнули (onClicked(view: View)). И потом презентер должен эту View вернуть в activity, чтобы activity запустила другую activity через makeSceneTransitionAnimation()
viewstate.goToMyActivity() в презентере а вот в реализация в activity уже знает какое именно view
Ну, кстати, да, как вариант, можно сделать типа viewState.goToMyActivityInCaseOfClickOnXxxView() И внутри найти эту view и сделать анимацию. В моём случае дело осложняется тем, что View, на которую кликнули - в recycler. Надо подумать можно ли её найти.
Ну, кстати, да, как вариант, можно сделать типа viewState.goToMyActivityInCaseOfClickOnXxxView() И внутри найти эту view и сделать анимацию. В моём случае дело осложняется тем, что View, на которую кликнули - в recycler. Надо подумать можно ли её найти.
а что если не прокидывать ничего в презентер и решить все вопросы на месте?)