Fix: IAM not shown when calling login immediately after init #2287
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
One Line Summary
Fix InAppMessagesManager so it now adds a IAM fetch condition in the event of user change instead of start(), to prevent IAM fetch conditions being created with a local onesignal ID.
Details
Motivation
Fix the issue when IAM is not showing on fresh install if Login is called immediately after initWithContext. This is caused by InAppMessagesManager creating IAM fetch conditions with local OneSignalID and not recognizing an updated ID to resolve. The PR adds a user change handler to add the IAM fetch condition in the event of retrieving a new OneSignalID.
Scope
Every time a OneSignalID is changed from a local ID to a backend ID, a IAM fetch condition will be created to attempt fetching IAMs.
Testing
Manual testing
Issue reproducible by a fresh install that is calling Login immediately after initWithContext. We could observe that IAM does not show on the first startup.
After the fix, IAM shows successfully while the ryw rule stays effective.
Affected code checklist
Checklist
Overview
Testing
Final pass
This change is