-
Notifications
You must be signed in to change notification settings - Fork 3
Allow a Coordinator to be requested to finish #39
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Test Results0 tests 0 ✅ 0s ⏱️ Results for commit 8a9b184. ♻️ This comment has been updated with latest results. |
I think this is a worthwhile addition--for a long time, we've been hesitant to allow other classes "Finish" a coordinator because it is (was) hard to manipulate the navigation stack accordingly. While that is still somewhat true, we've been implementing one-off instances of this logic in many of our coordinators, so we should formalize it. I have some suggestions to the approach:
A few key points to this approach:
Once this is done, this should replace instances where we created a |
@mediabounds I mostly followed your notes here and it seems to be working well! I diverged a couple spots, mostly because I think there may have been a typo. I actually think in a lot of ways we'd be better served by getting more of these navigation methods to be asynchronous, which may also open us up for better animations, code flow, safety checks, etc. |
} | ||
} | ||
} | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@EBusch We're probably missing a call to the base implementation here. When you add that, you may have an issue with Finish
getting called twice:
Coordinator.HandleNavigation
may call it and so will CoordinatorParent.HandleChildFinish
-- it is not currently clear to me the best way to address that.
@mediabounds a few things: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Most of the feedback from last time wasn't addressed--I reopened those conversations. Maybe not all the code got pushed?
As for the conflict--the latest version of Float.Core should be compatible with both Maui and Xamarin.Forms so I don't think a legacy branch will be needed.
@mediabounds you were right, I missed pushing one of my commits. Whoops! Taking another spin through now to make sure I covered off on everything. |
… family-finish # Conflicts: # Float.Core/UX/Coordinator.cs
Not quite sure how we can get this one building again. The errors all seem to be in unchecked files, but previous pull requests worked, which is strange. Interestingly, my local gets a different issue when trying to build this, that I'm missing maui-tizen. I've tried installing the workloads with no such luck. Very strange... |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
After SL-8129 has been tested and merged; the implementation here should be reviewed/updated to make sure it matches what was tested.
This is a proposal for an idea that gives parent coordinators a way of attempting to finish the children before they finish.This is a proposal for an idea that adds a method on coordinators to request finishing, as well as parent coordinators to allow a delayed finish based on waiting for the child coordinators to finish.