-
Notifications
You must be signed in to change notification settings - Fork 479
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
Confusing and broken behavior of interactive dismissal on iOS 13 #789
Comments
@morganchen12 can I get some attention here? |
Yeah, I'll fix this this week. Thanks for reporting 👍 |
You can try the changes here: https://github.com/firebase/FirebaseUI-iOS/pull/792/files Note that reporting the interactive dismissal cancelation varies based on the presentation method. Currently, if you use the auth picker screen, your presenting view controller's presentation controller will receive dismissal events. If you skip the auth picker view controller, the navigation controller created by FirebaseUI is the one that receives the dismissal events, but since that controller is retained only by the view hierarchy, it's difficult to capture the interactive dismissal event. I think the best way to resolve this is to expose the created navigation controller in the auth provider sign in method (via return value). This gives users the freedom to do whatever they want to the returned controller, but it's also a breaking API change, so it will not be in the next release. We can look at adding the new method signature earlier and deprecating the old method. |
@morganchen12 I can confirm your solution works as expected. The idea around the navigation controller exposal is great, but not necessary for this to work. |
I'll release it today or tomorrow. |
The fix has been released. |
Thanks @morganchen12 🙌 |
Step 1: Are you in the right place?
I am 🙄
Step 2: Describe your environment
Step 3: Describe the problem:
Steps to reproduce:
Open login UI with only
password
method.Observed Results:
When setting
shouldHideCancelButton = true
on Auth instance, cancel button is hidden but the interactive dismiss is still possible.Expected Results:
Interactive dismiss should be disabled in this case. It looks like you've only applied interactive dismiss handling on the login method selection screen, but not on a particular screen. I'm not sure about the sdk implementation for this case, but it doesn't work 🤷♂
Another interesting thing is if this would work as expected (interactive dismissal disabled), it's really confusing and broken. When the screen is presented, the user cannot cancel the flow if he decides so. I think you should not tie interactive dismissal to the cancel button.
I should be able to:
Relevant Code:
This is a snippet from my code to present email/password login UI:
Please fix this asap.
The text was updated successfully, but these errors were encountered: