Conversation
5d1825e to
a20b47c
Compare
This commit avoids to unnecessary fetch user scenarios: 1. App open, first time. 2. Login, when user is currently anonymous Case 1 UserRefreshService would always add a RefreshUserOperation to the OperationRepo on cold start. However this is not needed for the first time the app is opened, as there is no need to fetch a User we just created. Case 2 If OneSignal.login() is called and the user is currently anonymous then we simply identify the User. In this case there is no need to fetch the user, as it is the same user, we just updated it.
a20b47c to
5a099c0
Compare
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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
Avoids unnecessary fetch user scenarios; 1. App open - first time. 2. Login - with a unique externalId, when user is anonymous.
Details
Case 1
UserRefreshService would always add a RefreshUserOperation to the OperationRepo on cold start. However this is not needed for the first time the app is opened, as there is no need to fetch a User we just created.
Case 2
If OneSignal.login() is called and the user is currently anonymous then we simply identify the User. If identifying is successful then there is no need to fetch the user, as its the same user, we just added an Aliases to them.
Motivation
Preventing unneeded networks calls optimizes both device and OneSignal backend resources.
Scope
Only affects fetch User.
Related
Related fetch user changes were recently made in [Improvement] limit refresh User and GET IAMs to foreground #2036
Testing
Unit testing
Added a new Unit test for Login executor
Manual testing
Tested on an Android 14 emulator:
Affected code checklist
Checklist
Overview
Testing
Final pass
This change is