diff --git a/OneSignalSDK/onesignal/core/src/main/java/com/onesignal/common/modeling/IModelStore.kt b/OneSignalSDK/onesignal/core/src/main/java/com/onesignal/common/modeling/IModelStore.kt index c3f38ecb8f..28d7428567 100644 --- a/OneSignalSDK/onesignal/core/src/main/java/com/onesignal/common/modeling/IModelStore.kt +++ b/OneSignalSDK/onesignal/core/src/main/java/com/onesignal/common/modeling/IModelStore.kt @@ -16,7 +16,7 @@ interface IModelStore : * * @param jsonObject The optional [JSONObject] to initialize the new model with. */ - fun create(jsonObject: JSONObject? = null): TModel + fun create(jsonObject: JSONObject? = null): TModel? /** * List the models that are owned by this model store. diff --git a/OneSignalSDK/onesignal/core/src/main/java/com/onesignal/common/modeling/ModelStore.kt b/OneSignalSDK/onesignal/core/src/main/java/com/onesignal/common/modeling/ModelStore.kt index 91bb502c67..185b60415d 100644 --- a/OneSignalSDK/onesignal/core/src/main/java/com/onesignal/common/modeling/ModelStore.kt +++ b/OneSignalSDK/onesignal/core/src/main/java/com/onesignal/common/modeling/ModelStore.kt @@ -126,7 +126,7 @@ abstract class ModelStore( val str = _prefs.getString(PreferenceStores.ONESIGNAL, PreferenceOneSignalKeys.MODEL_STORE_PREFIX + name, "[]") val jsonArray = JSONArray(str) for (index in 0 until jsonArray.length()) { - val newModel = create(jsonArray.getJSONObject(index)) + val newModel = create(jsonArray.getJSONObject(index)) ?: continue _models.add(newModel) // listen for changes to this model newModel.subscribe(this) diff --git a/OneSignalSDK/onesignal/core/src/main/java/com/onesignal/common/modeling/SingletonModelStore.kt b/OneSignalSDK/onesignal/core/src/main/java/com/onesignal/common/modeling/SingletonModelStore.kt index 4b18901105..73ba0aabd0 100644 --- a/OneSignalSDK/onesignal/core/src/main/java/com/onesignal/common/modeling/SingletonModelStore.kt +++ b/OneSignalSDK/onesignal/core/src/main/java/com/onesignal/common/modeling/SingletonModelStore.kt @@ -24,7 +24,7 @@ open class SingletonModelStore( return model } - val createdModel = store.create() + val createdModel = store.create() ?: throw Exception("Unable to initialize model from store $store") createdModel.id = _singletonId store.add(createdModel) return createdModel diff --git a/OneSignalSDK/onesignal/core/src/main/java/com/onesignal/core/internal/operations/impl/OperationModelStore.kt b/OneSignalSDK/onesignal/core/src/main/java/com/onesignal/core/internal/operations/impl/OperationModelStore.kt index 2a0319d070..4577ad7b0f 100644 --- a/OneSignalSDK/onesignal/core/src/main/java/com/onesignal/core/internal/operations/impl/OperationModelStore.kt +++ b/OneSignalSDK/onesignal/core/src/main/java/com/onesignal/core/internal/operations/impl/OperationModelStore.kt @@ -3,11 +3,13 @@ package com.onesignal.core.internal.operations.impl import com.onesignal.common.modeling.ModelStore import com.onesignal.core.internal.operations.Operation import com.onesignal.core.internal.preferences.IPreferencesService +import com.onesignal.debug.internal.logging.Logging import com.onesignal.user.internal.operations.CreateSubscriptionOperation import com.onesignal.user.internal.operations.DeleteAliasOperation import com.onesignal.user.internal.operations.DeleteSubscriptionOperation import com.onesignal.user.internal.operations.DeleteTagOperation import com.onesignal.user.internal.operations.LoginUserOperation +import com.onesignal.user.internal.operations.LoginUserFromSubscriptionOperation import com.onesignal.user.internal.operations.RefreshUserOperation import com.onesignal.user.internal.operations.SetAliasOperation import com.onesignal.user.internal.operations.SetPropertyOperation @@ -18,6 +20,7 @@ import com.onesignal.user.internal.operations.TrackSessionStartOperation import com.onesignal.user.internal.operations.TransferSubscriptionOperation import com.onesignal.user.internal.operations.UpdateSubscriptionOperation import com.onesignal.user.internal.operations.impl.executors.IdentityOperationExecutor +import com.onesignal.user.internal.operations.impl.executors.LoginUserFromSubscriptionOperationExecutor import com.onesignal.user.internal.operations.impl.executors.LoginUserOperationExecutor import com.onesignal.user.internal.operations.impl.executors.RefreshUserOperationExecutor import com.onesignal.user.internal.operations.impl.executors.SubscriptionOperationExecutor @@ -30,13 +33,15 @@ internal class OperationModelStore(prefs: IPreferencesService) : ModelStore DeleteSubscriptionOperation() SubscriptionOperationExecutor.TRANSFER_SUBSCRIPTION -> TransferSubscriptionOperation() LoginUserOperationExecutor.LOGIN_USER -> LoginUserOperation() + LoginUserFromSubscriptionOperationExecutor.LOGIN_USER_FROM_SUBSCRIPTION_USER -> LoginUserFromSubscriptionOperation() RefreshUserOperationExecutor.REFRESH_USER -> RefreshUserOperation() UpdateUserOperationExecutor.SET_TAG -> SetTagOperation() UpdateUserOperationExecutor.DELETE_TAG -> DeleteTagOperation()