@@ -138,8 +138,7 @@ - (instancetype)init {
138138 };
139139 self.messages = [OneSignalUserDefaults.initStandard getSavedCodeableDataForKey: OS_IAM_MESSAGES_ARRAY
140140 defaultValue: [NSArray <OSInAppMessageInternal *> new]];
141- self.triggerController = [OSTriggerController new ];
142- self.triggerController .delegate = self;
141+ [self initializeTriggerController ];
143142 self.messageDisplayQueue = [NSMutableArray new ];
144143
145144 let standardUserDefaults = OneSignalUserDefaults.initStandard ;
@@ -160,6 +159,14 @@ - (instancetype)init {
160159 return self;
161160}
162161
162+ - (void )initializeTriggerController {
163+ self.triggerController = [OSTriggerController new ];
164+ self.triggerController .delegate = self;
165+ NSString *timeSinceLastMessage = [OneSignalUserDefaults.initShared getSavedStringForKey: OS_IAM_TIME_SINCE_LAST_MESSAGE_KEY defaultValue: nil ];
166+ [self .triggerController timeSinceLastMessage: [[NSDateFormatter iso8601DateFormatter ]
167+ dateFromString: timeSinceLastMessage]];
168+ }
169+
163170- (void )updateInAppMessagesFromCache {
164171 self.messages = [OneSignalUserDefaults.initStandard getSavedCodeableDataForKey: OS_IAM_MESSAGES_ARRAY defaultValue: [NSArray new ]];
165172 [self evaluateMessages ];
@@ -602,7 +609,7 @@ - (void)messageViewControllerWasDismissed:(OSInAppMessageInternal *)message disp
602609 // Reset the IAM viewController to prepare for next IAM if one exists
603610 self.viewController = nil ;
604611 // Reset time since last IAM
605- [self .triggerController timeSinceLastMessage: [ NSDate new ] ];
612+ [self setAndPersistTimeSinceLastMessage ];
606613
607614 if (!_currentPromptAction) {
608615 [self evaluateMessageDisplayQueue ];
@@ -612,6 +619,15 @@ - (void)messageViewControllerWasDismissed:(OSInAppMessageInternal *)message disp
612619 }
613620}
614621
622+ - (void )setAndPersistTimeSinceLastMessage {
623+ NSDate *timeSinceLastMessage = [NSDate new ];
624+ [self .triggerController timeSinceLastMessage: timeSinceLastMessage];
625+ NSString *stringTimeSinceLastMessage = [[NSDateFormatter iso8601DateFormatter ]
626+ stringFromDate: timeSinceLastMessage];
627+ [OneSignalUserDefaults.initShared saveStringForKey: OS_IAM_TIME_SINCE_LAST_MESSAGE_KEY
628+ withValue: stringTimeSinceLastMessage];
629+ }
630+
615631- (void )evaluateMessageDisplayQueue {
616632 [OneSignal onesignal_Log: ONE_S_LL_VERBOSE message: @" Evaluating message display queue" ];
617633 // No IAMs are showing currently
0 commit comments