Add user switching support in restore flow#770
Merged
nikita-ushakov merged 2 commits intodevelopfrom Feb 12, 2026
Merged
Conversation
When restore returns a different uid than the current local user (e.g. after app reinstall), the SDK now detects this and updates the local user state accordingly: persists the new user ID, updates internal config, resets remote config cache, and clears the permissions cache. This ensures the SDK correctly returns to the original user after a restore instead of creating a duplicate user with copied entitlements. Co-authored-by: Cursor <cursoragent@cursor.com>
| return | ||
| } | ||
|
|
||
| logger.release( |
Contributor
There was a problem hiding this comment.
I'm not sure if we need the release log here. I think debug is enough
suriksarkisyan
approved these changes
Feb 12, 2026
Co-authored-by: Cursor <cursoragent@cursor.com>
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.
Summary
restore()could result in the SDK operating under a newly created user instead of returning to the original user. This change adds user switching logic to the restore flow so that when the backend returns a differentuid, the SDK updates its local state accordingly.identify()flow: persist the new user ID, update internal config, notify remote config manager, and clear the permissions cache.Changes
QProductCenterManager.kt: AddedhandleUserSwitchingOnRestore()method, called in therestore()success callback before caching the launch result. If the returneduiddiffers from the current local user, the SDK switches to the returned user.QProductCenterManagerTest.kt: Added 4 unit tests covering:Test plan