Skip to content

Commit 1c29e60

Browse files
committed
Check and pop EXTERNAL_USER_ID_AUTH_HASH every time we persistState
- Every time we persistState, we check if the syncValues has an EXTERNAL_USER_ID_AUTH_HASH that is a candidate to be popped. - It is removed if either the EXTERNAL_USER_ID is "" (empty string) or not in the syncValues. - In some cases, when we set the external user ID to "", the EXTERNAL_USER_ID_AUTH_HASH is in the syncValues while the EXTERNAL_USER_ID is not but we want to pop the EXTERNAL_USER_ID_AUTH_HASH
1 parent 7bde122 commit 1c29e60

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

OneSignalSDK/onesignal/src/main/java/com/onesignal/UserState.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
import static com.onesignal.UserStateSynchronizer.APP_ID;
1717
import static com.onesignal.UserStateSynchronizer.EMAIL_AUTH_HASH_KEY;
18+
import static com.onesignal.UserStateSynchronizer.EXTERNAL_USER_ID;
1819
import static com.onesignal.UserStateSynchronizer.EXTERNAL_USER_ID_AUTH_HASH;
1920
import static com.onesignal.UserStateSynchronizer.SMS_AUTH_HASH_KEY;
2021

@@ -318,6 +319,18 @@ private void loadState() {
318319

319320
void persistState() {
320321
synchronized(LOCK) {
322+
// pop the EXTERNAL_USER_ID_AUTH_HASH if in process of removing external user ID
323+
// external_user_id is either "" or not present
324+
try {
325+
if (syncValues.has(EXTERNAL_USER_ID_AUTH_HASH) &&
326+
((syncValues.has(EXTERNAL_USER_ID) && syncValues.get(EXTERNAL_USER_ID).toString() == "") || !syncValues.has(EXTERNAL_USER_ID))) {
327+
syncValues.remove(EXTERNAL_USER_ID_AUTH_HASH);
328+
// the auth_hash is popped above but external user id may still remain as ""
329+
}
330+
} catch (JSONException e) {
331+
e.printStackTrace();
332+
}
333+
321334
OneSignalPrefs.saveString(OneSignalPrefs.PREFS_ONESIGNAL,
322335
OneSignalPrefs.PREFS_ONESIGNAL_USERSTATE_SYNCVALYES_ + persistKey, syncValues.toString());
323336
OneSignalPrefs.saveString(OneSignalPrefs.PREFS_ONESIGNAL,

0 commit comments

Comments
 (0)