From 51aaa8b139ad6a9048fb99f9890f44b094f62792 Mon Sep 17 00:00:00 2001 From: Rodrigo Gomez Palacio Date: Tue, 24 Sep 2024 16:49:10 -0500 Subject: [PATCH] fixup! Update User & Subscription operation executors to set the tokens --- .../executors/SubscriptionOperationExecutor.kt | 14 ++++++++++++-- .../impl/executors/UpdateUserOperationExecutor.kt | 7 ++++++- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/OneSignalSDK/onesignal/core/src/main/java/com/onesignal/user/internal/operations/impl/executors/SubscriptionOperationExecutor.kt b/OneSignalSDK/onesignal/core/src/main/java/com/onesignal/user/internal/operations/impl/executors/SubscriptionOperationExecutor.kt index 39c7c95fb..1622d55f1 100644 --- a/OneSignalSDK/onesignal/core/src/main/java/com/onesignal/user/internal/operations/impl/executors/SubscriptionOperationExecutor.kt +++ b/OneSignalSDK/onesignal/core/src/main/java/com/onesignal/user/internal/operations/impl/executors/SubscriptionOperationExecutor.kt @@ -6,6 +6,7 @@ import com.onesignal.common.DeviceUtils import com.onesignal.common.NetworkUtils import com.onesignal.common.OneSignalUtils import com.onesignal.common.RootToolsInternalMethods +import com.onesignal.common.consistency.IamFetchReadyCondition import com.onesignal.common.consistency.enums.IamFetchRywTokenKey import com.onesignal.common.consistency.models.IConsistencyManager import com.onesignal.common.exceptions.BackendException @@ -115,7 +116,11 @@ internal class SubscriptionOperationExecutor( val backendSubscriptionId = result.first val rywToken = result.second - _consistencyManager.setRywToken(createOperation.onesignalId, IamFetchRywTokenKey.SUBSCRIPTION, rywToken) + if (rywToken != null) { + _consistencyManager.setRywToken(createOperation.onesignalId, IamFetchRywTokenKey.SUBSCRIPTION, rywToken) + } else { + _consistencyManager.resolveConditionsWithID(IamFetchReadyCondition.ID) + } // update the subscription model with the new ID, if it's still active. val subscriptionModel = _subscriptionModelStore.get(createOperation.subscriptionId) @@ -184,7 +189,12 @@ internal class SubscriptionOperationExecutor( ) val rywToken = _subscriptionBackend.updateSubscription(lastOperation.appId, lastOperation.subscriptionId, subscription) - _consistencyManager.setRywToken(startingOperation.onesignalId, IamFetchRywTokenKey.SUBSCRIPTION, rywToken) + + if (rywToken != null) { + _consistencyManager.setRywToken(startingOperation.onesignalId, IamFetchRywTokenKey.SUBSCRIPTION, rywToken) + } else { + _consistencyManager.resolveConditionsWithID(IamFetchReadyCondition.ID) + } } catch (ex: BackendException) { val responseType = NetworkUtils.getResponseStatusType(ex.statusCode) diff --git a/OneSignalSDK/onesignal/core/src/main/java/com/onesignal/user/internal/operations/impl/executors/UpdateUserOperationExecutor.kt b/OneSignalSDK/onesignal/core/src/main/java/com/onesignal/user/internal/operations/impl/executors/UpdateUserOperationExecutor.kt index 973f3dc08..0f28ae61d 100644 --- a/OneSignalSDK/onesignal/core/src/main/java/com/onesignal/user/internal/operations/impl/executors/UpdateUserOperationExecutor.kt +++ b/OneSignalSDK/onesignal/core/src/main/java/com/onesignal/user/internal/operations/impl/executors/UpdateUserOperationExecutor.kt @@ -1,6 +1,7 @@ package com.onesignal.user.internal.operations.impl.executors import com.onesignal.common.NetworkUtils +import com.onesignal.common.consistency.IamFetchReadyCondition import com.onesignal.common.consistency.enums.IamFetchRywTokenKey import com.onesignal.common.consistency.models.IConsistencyManager import com.onesignal.common.exceptions.BackendException @@ -147,7 +148,11 @@ internal class UpdateUserOperationExecutor( deltasObject, ) - _consistencyManager.setRywToken(onesignalId, IamFetchRywTokenKey.USER, rywToken) + if (rywToken != null) { + _consistencyManager.setRywToken(onesignalId, IamFetchRywTokenKey.USER, rywToken) + } else { + _consistencyManager.resolveConditionsWithID(IamFetchReadyCondition.ID) + } if (_identityModelStore.model.onesignalId == onesignalId) { // go through and make sure any properties are in the correct model state