diff --git a/IceCubesApp/App/Tabs/Settings/PushNotificationsView.swift b/IceCubesApp/App/Tabs/Settings/PushNotificationsView.swift index 6a3c0d4e..9841caa9 100644 --- a/IceCubesApp/App/Tabs/Settings/PushNotificationsView.swift +++ b/IceCubesApp/App/Tabs/Settings/PushNotificationsView.swift @@ -92,7 +92,7 @@ struct PushNotificationsView: View { Button("settings.push.duplicate.button.fix") { Task { await subscription.deleteSubscription() - await subscription.updateSubscription(forceCreate: true) + await subscription.updateSubscription() } } } header: { @@ -113,7 +113,7 @@ struct PushNotificationsView: View { private func updateSubscription() { Task { - await subscription.updateSubscription(forceCreate: true) + await subscription.updateSubscription() } } diff --git a/Packages/Env/Sources/Env/PushNotificationsService.swift b/Packages/Env/Sources/Env/PushNotificationsService.swift index 72a2082e..0e0a3c31 100644 --- a/Packages/Env/Sources/Env/PushNotificationsService.swift +++ b/Packages/Env/Sources/Env/PushNotificationsService.swift @@ -64,7 +64,12 @@ public class PushNotificationsService: ObservableObject { await withTaskGroup(of: Void.self, body: { group in group.addTask { await subscription.fetchSubscription() - await subscription.updateSubscription(forceCreate: forceCreate) + if await subscription.subscription != nil && !forceCreate { + await subscription.deleteSubscription() + await subscription.updateSubscription() + } else if forceCreate { + await subscription.updateSubscription() + } } }) } @@ -159,8 +164,8 @@ public class PushNotificationSubscriptionSettings: ObservableObject { } } - public func updateSubscription(forceCreate: Bool) async { - guard let pushToken = pushToken, subscription != nil || forceCreate else { return } + public func updateSubscription() async { + guard let pushToken = pushToken else { return } let client = Client(server: account.server, oauthToken: account.token) do { var listenerURL = PushNotificationsService.Constants.endpoint