Skip to content

Commit 3f9d651

Browse files
If an unknown trigger type is found, serialize/deserialize as .never.
1 parent e2a8cd3 commit 3f9d651

File tree

3 files changed

+10
-5
lines changed

3 files changed

+10
-5
lines changed

swift-sdk/Internal/InAppHelper.swift

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,11 @@ class InAppDisplayer : InAppDisplayerProtocol {
3838
}
3939
}
4040

41+
extension IterableInAppTriggerType {
42+
static let defaultTriggerType = IterableInAppTriggerType.immediate // default is what is chosen by default
43+
static let undefinedTriggerType = IterableInAppTriggerType.never // undefined is what we select if payload has new trigger type
44+
}
45+
4146
class InAppSilentPushSynchronizer : InAppSynchronizerProtocol {
4247
weak var internalApi: IterableAPIInternal?
4348
weak var inAppSyncDelegate: InAppSynchronizerDelegate?
@@ -379,10 +384,10 @@ struct InAppHelper {
379384

380385
private static func parseTrigger(fromTriggerElement element: [AnyHashable : Any]?) -> IterableInAppTriggerType {
381386
guard let element = element else {
382-
return .immediate
387+
return .undefinedTriggerType
383388
}
384389
guard let triggerTypeString = element[.ITBL_IN_APP_TRIGGER_TYPE] as? String else {
385-
return .immediate
390+
return .undefinedTriggerType
386391
}
387392

388393
switch triggerTypeString.lowercased() {
@@ -393,7 +398,7 @@ struct InAppHelper {
393398
case String(describing: IterableInAppTriggerType.never).lowercased():
394399
return .never
395400
default:
396-
return .immediate
401+
return .undefinedTriggerType
397402
}
398403
}
399404

swift-sdk/Internal/InAppPersistence.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ extension IterableInAppMessage : Codable {
8686
let messageId = (try? container.decode(String.self, forKey: .messageId)) ?? ""
8787
let campaignId = (try? container.decode(String.self, forKey: .campaignId)) ?? ""
8888
let channelName = (try? container.decode(String.self, forKey: .channelName)) ?? ""
89-
let trigger = (try? container.decode(IterableInAppTriggerType.self, forKey: .trigger)) ?? .immediate
89+
let trigger = (try? container.decode(IterableInAppTriggerType.self, forKey: .trigger)) ?? .undefinedTriggerType
9090
let expiresAt = (try? container.decode(Date.self, forKey: .expiresAt))
9191
let content = (try? container.decode(IterableHtmlInAppContent.self, forKey: .content)) ?? IterableHtmlInAppContent(edgeInsets: .zero, backgroundAlpha: 0.0, html: "")
9292
let extraInfoData = try? container.decode(Data.self, forKey: .extraInfo)

swift-sdk/IterableInApp.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ public final class IterableInAppMessage : NSObject {
125125
campaignId: String,
126126
channelName: String = "reserved",
127127
contentType: IterableInAppContentType = .html,
128-
trigger: IterableInAppTriggerType = .immediate,
128+
trigger: IterableInAppTriggerType = .defaultTriggerType,
129129
expiresAt: Date? = nil,
130130
content: IterableInAppContent,
131131
extraInfo: [AnyHashable : Any]? = nil

0 commit comments

Comments
 (0)