Skip to content

Commit 7fe2010

Browse files
committed
fix missing modify keys on some operations
All operations must have at least a create or modify key, this is required so operations are not grouped together when they should not be. This fixes a bug where calling addTag() back-to-back with login() would cause the login to be dropped. This is because SetTagOperation.modifyComparisonKey was "" which matched LoginUserOperation.modifyComparisonKey as it was also "" and both these operations we returned by OperationRepo.getGroupableOperations. Both operations were given to UpdateUserOperationExecutor which it would skip the LoginUserOperation silently. This mistake originated from f1d204e which wasn't in the 5.0.0-beta4 release, but was introduced in 5.0.0. The intent of PR #1794 is still preserved in this commit, we just simply fixed the bug noted above.
1 parent 55c5443 commit 7fe2010

File tree

3 files changed

+3
-3
lines changed

3 files changed

+3
-3
lines changed

OneSignalSDK/onesignal/core/src/main/java/com/onesignal/user/internal/operations/DeleteTagOperation.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ class DeleteTagOperation() : Operation(UpdateUserOperationExecutor.DELETE_TAG) {
3939
}
4040

4141
override val createComparisonKey: String get() = ""
42-
override val modifyComparisonKey: String get() = createComparisonKey
42+
override val modifyComparisonKey: String get() = "$appId.User.$onesignalId"
4343
override val groupComparisonType: GroupComparisonType = GroupComparisonType.ALTER
4444
override val canStartExecute: Boolean get() = !IDManager.isLocalId(onesignalId)
4545

OneSignalSDK/onesignal/core/src/main/java/com/onesignal/user/internal/operations/SetPropertyOperation.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ class SetPropertyOperation() : Operation(UpdateUserOperationExecutor.SET_PROPERT
4747
}
4848

4949
override val createComparisonKey: String get() = ""
50-
override val modifyComparisonKey: String get() = createComparisonKey
50+
override val modifyComparisonKey: String get() = "$appId.User.$onesignalId"
5151
override val groupComparisonType: GroupComparisonType = GroupComparisonType.ALTER
5252
override val canStartExecute: Boolean get() = !IDManager.isLocalId(onesignalId)
5353

OneSignalSDK/onesignal/core/src/main/java/com/onesignal/user/internal/operations/SetTagOperation.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ class SetTagOperation() : Operation(UpdateUserOperationExecutor.SET_TAG) {
4848
}
4949

5050
override val createComparisonKey: String get() = ""
51-
override val modifyComparisonKey: String get() = createComparisonKey
51+
override val modifyComparisonKey: String get() = "$appId.User.$onesignalId"
5252
override val groupComparisonType: GroupComparisonType = GroupComparisonType.ALTER
5353
override val canStartExecute: Boolean get() = !IDManager.isLocalId(onesignalId)
5454

0 commit comments

Comments
 (0)