[firebase_messaging] Separate onLaunch to a future to be able to retrieve launch message in a synchronous way #1481
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.
Separate onLaunch to an specific method to be able to retrieve launch message in a synchronous way
Description
When an application is closed an a user opens it by clicking a push notification we can retrieve the message in a synchronous way but the current architecture expects this to be asynchronous which may conflict with other processes run in parallel. This behaviour forces programmers to synchronize those processes and with the added problem that on of the async calls (onLaunch) is not called when the user opens the app in a normal way, so it is needed to add timeouts to limit the time we wait the callback.
Android and iOS let programmers access how the app has been opened in a synchronous way for Dynamic Links, Push notifications, etc. So this PR (and flutter/plugins#1687) fixes this and handles this two situations in a consistent way.
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes (
[x]
). This will ensure a smooth and quick review process.///
).flutter analyze
) does not report any problems on my PR.Breaking Change
Does your PR require plugin users to manually update their apps to accommodate your change?