fix: stripe crash on Android #815
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
📜 Description
Fixes a crash after entering date expiry in stripe input on Android.
💡 Motivation and Context
Closes #807 stripe/stripe-android#10178
The detailed explanation of the problem can be found here: stripe/stripe-android#10178 (comment)
We decided that both frameworks (stripe and keyboard-controller) should implement a fix, so I'm adding asynchronous removal in this PR. Screenshots proving that it works as expected:
When we call remove:
Async (holds the same references):
📢 Changelog
Android
.post
) with capturingTextWatcher
into a closure (to remove correct watcher);🤔 How Has This Been Tested?
Tested manually in example app (with added Stripe SDK).
📸 Screenshots (if appropriate):
Screen.Recording.2025-02-19.at.19.18.26.mov
📝 Checklist