Size: a a a

Cicerone Chat (RUS)

2018 May 07

МИ

Марат Исхаков in Cicerone Chat (RUS)
Ivan Fedotov
если вам кажется что какой то функциональности не хватает, то всегда можно обернуть функциональность и "украсить" своей функциональностью)
Да это понятно, переопределил в applyCommand обработку команды Replace простым реплейсом фрагментов и все ок. Похоже, что в моем случае, проблему вызывал
            if (fragmentManager.getBackStackEntryCount() > 0) {
               fragmentManager.popBackStackImmediate();

вот я теперь и думаю, что я делаю не так и зачем это нужно.
источник

VC

Vasili Chyrvon in Cicerone Chat (RUS)
Должно было быть пофикшено. См https://github.com/terrakok/Cicerone/releases
источник

VC

Vasili Chyrvon in Cicerone Chat (RUS)
Если в последней версии есть проблема, то лучше написать issue, чем обсуждать обходные пути в чатике 😉
источник

KT

Konstantin Tskhovrebov in Cicerone Chat (RUS)
Все команды идут в одной транзакции
источник

KT

Konstantin Tskhovrebov in Cicerone Chat (RUS)
Легко убедиться посмотрев как все работает
источник

KT

Konstantin Tskhovrebov in Cicerone Chat (RUS)
Ну если конечно все нормально используется, а не делаются по несколько вызовов на роутере
источник
2018 May 08

OF

Osip Fatkullin in Cicerone Chat (RUS)
Добрый день. Такой вопрос.
Использую Cicerone + Moxy. Делаю локальную навигацию внутри фрагмента, нужно чтобы при входе во фрагмент открывался определенный фрагмент по умолчанию. Но при попытке ткнуть роутер в onFirstViewAttach или после onResume, получаю FragmentManager is already executing transactions. Как я понял из обсуждения подобной проблемы выше, это из-за того что фрагмент еще не завершил свою транцзакцию, но как тогда сделать это правильно?
источник

VC

Vasili Chyrvon in Cicerone Chat (RUS)
Это может быть если где-то вызван executePendingTransactions явно или косвенно. И второй раз вызов не прокатывает. Смотри как и где вызываете, поищи где происходит происходят вызовы.
источник

OF

Osip Fatkullin in Cicerone Chat (RUS)
Vasili Chyrvon
Это может быть если где-то вызван executePendingTransactions явно или косвенно. И второй раз вызов не прокатывает. Смотри как и где вызываете, поищи где происходит происходят вызовы.
Он вызвается только из Cicerone. Я предполагаю, что это из-за того, что локальный навигатор пытается открыть фрагмент до того как завершилась транзакция глобального навигатора. Но не понятно как с этим бороться.
источник

VC

Vasili Chyrvon in Cicerone Chat (RUS)
А локальный навигатор же в чайлд фрагменеджер сует свои фрагменты. Разве они должны спорить?

Если дело не в этом, то советую посмотреть реализацию вложенной навигации в семпле либы и в @gitfox (думаю там тоже есть). Возможно заметите какие-то отличия и натолкнет на решения.
источник

OF

Osip Fatkullin in Cicerone Chat (RUS)
Vasili Chyrvon
А локальный навигатор же в чайлд фрагменеджер сует свои фрагменты. Разве они должны спорить?

Если дело не в этом, то советую посмотреть реализацию вложенной навигации в семпле либы и в @gitfox (думаю там тоже есть). Возможно заметите какие-то отличия и натолкнет на решения.
Спасибо, я понял. Они использовали один и тот же FragmentManager. Я забыл про childFragmentManager
источник

VC

Vasili Chyrvon in Cicerone Chat (RUS)
Osip Fatkullin
Спасибо, я понял. Они использовали один и тот же FragmentManager. Я забыл про childFragmentManager
Ффух, ну значит я еще помню что-то про фрагменты 😄. Круто, если помогло!
источник

МИ

Марат Исхаков in Cicerone Chat (RUS)
Vasili Chyrvon
Если в последней версии есть проблема, то лучше написать issue, чем обсуждать обходные пути в чатике 😉
Обновление до 3.0 решило проблему, спасибо!)
источник

VC

Vasili Chyrvon in Cicerone Chat (RUS)
Марат Исхаков
Обновление до 3.0 решило проблему, спасибо!)
🔥👍
источник

KT

Konstantin Tskhovrebov in Cicerone Chat (RUS)
Читаю и радуюсь 😊
источник

VC

Vasili Chyrvon in Cicerone Chat (RUS)
Да вообще заряд позитива! 😃
источник

ES

Eugene Shapovalov in Cicerone Chat (RUS)
Добрый день. Константин/Василий у меня возник вопрос относительно setResultListener.
PresenterA (ActivityA) стартует PresenterB (ActivityB) с результатом всё как по примеру в Wiki.

Система убивает наш процесс и после восстанавливает наc ActivityB. При возвращении с ActivityB нашего listener не будет, т.к он добавляется в конструкторе Presenter.
Как правильно обработать такую ситуацию или, я что-то не понимаю?
источник

KT

Konstantin Tskhovrebov in Cicerone Chat (RUS)
Женя, ты забыл упомянуть, что используешь мокси, а то что после смерти и восстановления презентер А появится только после возврата - это особенность андроида и мокси ее тоже не обрабатывает. И странно было бы обрабатывать это на уровне навигации.
А вообще это очередной минус использования навигации на активити, а также повод передать результат через модель
источник

ES

Eugene Shapovalov in Cicerone Chat (RUS)
Этот случай не относится к мокси. Я на текущий момент не знаю, как правильно его обработать.
Если использовать framework навигацию (startActivityForResult), то система вызовет его в этом случае.
источник

KT

Konstantin Tskhovrebov in Cicerone Chat (RUS)
Это особенность системы, что стек не восстанавливается весь после смерти. Но Мокси как бы отвязывает от системных компонентов, поэтому можно было бы как-то сделать это (хотя не знаю как 😂)
источник