@@ -7,7 +7,14 @@ import UIKit
7
7
8
8
final class InternalIterableAPI : NSObject , PushTrackerProtocol , AuthProvider {
9
9
var apiKey : String
10
-
10
+ var lastPushPayload : [ AnyHashable : Any ] ? {
11
+ get {
12
+ _payloadData
13
+ } set {
14
+ setPayloadData ( newValue)
15
+ }
16
+ }
17
+
11
18
var email : String ? {
12
19
get {
13
20
_email
@@ -40,10 +47,6 @@ final class InternalIterableAPI: NSObject, PushTrackerProtocol, AuthProvider {
40
47
appPackageName: Bundle . main. appPackageName ?? " " )
41
48
}
42
49
43
- var lastPushPayload : [ AnyHashable : Any ] ? {
44
- localStorage. getLastPushPayload ( dateProvider. currentDate)
45
- }
46
-
47
50
var attributionInfo : IterableAttributionInfo ? {
48
51
get {
49
52
localStorage. getAttributionInfo ( currentDate: dateProvider. currentDate)
@@ -94,6 +97,11 @@ final class InternalIterableAPI: NSObject, PushTrackerProtocol, AuthProvider {
94
97
func removeDeviceAttribute( name: String ) {
95
98
deviceAttributes. removeValue ( forKey: name)
96
99
}
100
+
101
+ func setPayloadData( _ data: [ AnyHashable : Any ] ? ) {
102
+ ITBInfo ( )
103
+ _payloadData = data
104
+ }
97
105
98
106
func setEmail( _ email: String ? , authToken: String ? = nil ) {
99
107
ITBInfo ( )
@@ -400,6 +408,7 @@ final class InternalIterableAPI: NSObject, PushTrackerProtocol, AuthProvider {
400
408
private var deepLinkManager : DeepLinkManager
401
409
402
410
private var _email : String ?
411
+ private var _payloadData : [ AnyHashable : Any ] ?
403
412
private var _userId : String ?
404
413
405
414
/// the hex representation of this device token
@@ -519,15 +528,15 @@ final class InternalIterableAPI: NSObject, PushTrackerProtocol, AuthProvider {
519
528
}
520
529
521
530
private func save( pushPayload payload: [ AnyHashable : Any ] ) {
522
- let expiration = Calendar . current. date ( byAdding: . hour,
523
- value: Const . UserDefault. payloadExpiration,
524
- to: dateProvider. currentDate)
525
- localStorage. saveLastPushPayload ( payload, withExpiration: expiration)
526
531
527
532
if let metadata = IterablePushNotificationMetadata . metadata ( fromLaunchOptions: payload) {
528
533
if let templateId = metadata. templateId {
529
534
attributionInfo = IterableAttributionInfo ( campaignId: metadata. campaignId, templateId: templateId, messageId: metadata. messageId)
530
535
}
536
+
537
+ if !metadata. isGhostPush {
538
+ lastPushPayload = payload
539
+ }
531
540
}
532
541
}
533
542
0 commit comments