Skip to content

Commit d120b52

Browse files
committed
Don't manually remove the push subscription
* When the SDK hydrates users, it will trigger the subscription model store's `replaceAll` method. This will remove the current push subscription model and immediately add a new push subscription model. The Subscription Manager was removing the current push subscription and then adding a new push subscription that it manages. When the new one is added, the old one is removed and any observers are transferred over. * However, because the old one was already removed by the time the new one is added, observers are lost. The [onModelAdded] already triggers an add and remove, so we should not remove in the [onModelRemoved] event. * These 2 events are always together. There is no current usage where only [onModelRemoved] is called for a push subscription model. Even on 404s, push subscription models are not removed.
1 parent 8f470c0 commit d120b52

File tree

1 file changed

+8
-0
lines changed
  • OneSignalSDK/onesignal/core/src/main/java/com/onesignal/user/internal/subscriptions/impl

1 file changed

+8
-0
lines changed

OneSignalSDK/onesignal/core/src/main/java/com/onesignal/user/internal/subscriptions/impl/SubscriptionManager.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,14 @@ internal class SubscriptionManager(
190190
model: SubscriptionModel,
191191
tag: String,
192192
) {
193+
// Do not remove the push subscription: we need to keep the existing push subscription and its observers
194+
// This push subscription will immediately be replaced by the new one in the [onModelAdded] event
195+
// The [onModelRemoved] event for a push subscription model should always be followed by a [onModelAdded]
196+
// event with a new push subscription model. On 404s, no push subscription models are removed.
197+
if (model.type == SubscriptionType.PUSH) {
198+
return
199+
}
200+
193201
val subscription = subscriptions.collection.firstOrNull { it.id == model.id }
194202

195203
if (subscription != null) {

0 commit comments

Comments
 (0)