From ed6f075d91d03fdf7f373d0d61881192c6a053c8 Mon Sep 17 00:00:00 2001 From: Evan Greer Date: Thu, 13 Feb 2025 14:05:10 -0700 Subject: [PATCH] adds FCM checks --- swift-sdk/Internal/InternalIterableAPI.swift | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/swift-sdk/Internal/InternalIterableAPI.swift b/swift-sdk/Internal/InternalIterableAPI.swift index 9c6aca25..a377e289 100644 --- a/swift-sdk/Internal/InternalIterableAPI.swift +++ b/swift-sdk/Internal/InternalIterableAPI.swift @@ -189,6 +189,8 @@ final class InternalIterableAPI: NSObject, PushTrackerProtocol, AuthProvider { hexToken = token + isFromFCM = isFromFCM + let mobileFrameworkInfo = config.mobileFrameworkInfo ?? createDefaultMobileFrameworkInfo() let registerTokenInfo = RegisterTokenInfo(hexToken: token, @@ -210,6 +212,9 @@ final class InternalIterableAPI: NSObject, PushTrackerProtocol, AuthProvider { onFailure?(reason, data) } ) + notificationStateProvider.isNotificationsEnabled { isEnabled in + self.localStorage.isNotificationsEnabled = isEnabled + } } func register(token: Data, @@ -517,6 +522,7 @@ final class InternalIterableAPI: NSObject, PushTrackerProtocol, AuthProvider { /// the hex representation of this device token private var hexToken: String? + private var isFromFCM: Bool? private var launchOptions: [UIApplication.LaunchOptionsKey: Any]? @@ -747,7 +753,11 @@ final class InternalIterableAPI: NSObject, PushTrackerProtocol, AuthProvider { if self.isEitherUserIdOrEmailSet() { if hasStoredPermission && (storedEnabled != systemEnabled) { - self.notificationStateProvider.registerForRemoteNotifications() + if let token = self.hexToken, let isFromFCM = self.isFromFCM, isFromFCM { + IterableAPI.registerFCM(token: token) + } else { + self.notificationStateProvider.registerForRemoteNotifications() + } } // Always store the current state