@@ -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
@@ -46,10 +53,6 @@ final class InternalIterableAPI: NSObject, PushTrackerProtocol, AuthProvider {
46
53
appPackageName: Bundle . main. appPackageName ?? " " )
47
54
}
48
55
49
- var lastPushPayload : [ AnyHashable : Any ] ? {
50
- localStorage. getLastPushPayload ( dateProvider. currentDate)
51
- }
52
-
53
56
var attributionInfo : IterableAttributionInfo ? {
54
57
get {
55
58
localStorage. getAttributionInfo ( currentDate: dateProvider. currentDate)
@@ -85,6 +88,7 @@ final class InternalIterableAPI: NSObject, PushTrackerProtocol, AuthProvider {
85
88
urlDelegate: config. urlDelegate,
86
89
urlOpener: urlOpener,
87
90
allowedProtocols: config. allowedProtocols)
91
+
88
92
pending. onSuccess { attributionInfo in
89
93
if let attributionInfo = attributionInfo {
90
94
self . attributionInfo = attributionInfo
@@ -100,6 +104,11 @@ final class InternalIterableAPI: NSObject, PushTrackerProtocol, AuthProvider {
100
104
func removeDeviceAttribute( name: String ) {
101
105
deviceAttributes. removeValue ( forKey: name)
102
106
}
107
+
108
+ func setPayloadData( _ data: [ AnyHashable : Any ] ? ) {
109
+ ITBInfo ( )
110
+ _payloadData = data
111
+ }
103
112
104
113
func setEmail( _ email: String ? , authToken: String ? = nil ) {
105
114
ITBInfo ( )
@@ -416,6 +425,7 @@ final class InternalIterableAPI: NSObject, PushTrackerProtocol, AuthProvider {
416
425
private var deepLinkManager : DeepLinkManager
417
426
418
427
private var _email : String ?
428
+ private var _payloadData : [ AnyHashable : Any ] ?
419
429
private var _userId : String ?
420
430
421
431
/// the hex representation of this device token
@@ -537,15 +547,15 @@ final class InternalIterableAPI: NSObject, PushTrackerProtocol, AuthProvider {
537
547
}
538
548
539
549
private func save( pushPayload payload: [ AnyHashable : Any ] ) {
540
- let expiration = Calendar . current. date ( byAdding: . hour,
541
- value: Const . UserDefault. payloadExpiration,
542
- to: dateProvider. currentDate)
543
- localStorage. saveLastPushPayload ( payload, withExpiration: expiration)
544
550
545
551
if let metadata = IterablePushNotificationMetadata . metadata ( fromLaunchOptions: payload) {
546
552
if let templateId = metadata. templateId {
547
553
attributionInfo = IterableAttributionInfo ( campaignId: metadata. campaignId, templateId: templateId, messageId: metadata. messageId)
548
554
}
555
+
556
+ if !metadata. isGhostPush {
557
+ lastPushPayload = payload
558
+ }
549
559
}
550
560
}
551
561
0 commit comments