Skip to content

Commit 64161b1

Browse files
author
Rodrigo Gomez Palacio
committed
Remove IAM Caching
Motivation: we should not cache IAMs since it is incongruent with RYW consistency. Example: there is an IAM targeting users on version 1.0. The user upgrades to 2.0 & should no longer see the IAM targeting 1.0. The source of truth is the backend & we should only show IAMs as calculated by segment membership.
1 parent 279cce6 commit 64161b1

File tree

5 files changed

+1
-39
lines changed

5 files changed

+1
-39
lines changed

iOS_SDK/OneSignalSDK/OneSignalInAppMessages/Controller/OSInAppMessageMigrationController.m

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -77,15 +77,6 @@ + (void)migrateToOSInAppMessageInternal {
7777
[OneSignalLog onesignalLog:ONE_S_LL_DEBUG message:[NSString stringWithFormat:@"Migrating OSInAppMessage from version: %ld", sdkVersion]];
7878

7979
[NSKeyedUnarchiver setClass:[OSInAppMessageInternal class] forClassName:@"OSInAppMessage"];
80-
// Messages Array
81-
NSArray<OSInAppMessageInternal *> *messages = [OneSignalUserDefaults.initStandard getSavedCodeableDataForKey:OS_IAM_MESSAGES_ARRAY
82-
defaultValue:[NSArray<OSInAppMessageInternal *> new]];
83-
if (messages && messages.count) {
84-
[NSKeyedArchiver setClassName:@"OSInAppMessageInternal" forClass:[OSInAppMessageInternal class]];
85-
[OneSignalUserDefaults.initStandard saveCodeableDataForKey:OS_IAM_MESSAGES_ARRAY withValue:messages];
86-
} else {
87-
[OneSignalUserDefaults.initStandard saveCodeableDataForKey:OS_IAM_MESSAGES_ARRAY withValue:nil];
88-
}
8980

9081
// Redisplay Messages Dict
9182
NSMutableDictionary <NSString *, OSInAppMessageInternal *> *redisplayedInAppMessages = [[NSMutableDictionary alloc] initWithDictionary:[OneSignalUserDefaults.initStandard getSavedCodeableDataForKey:OS_IAM_REDISPLAY_DICTIONARY defaultValue:[NSMutableDictionary new]]];

iOS_SDK/OneSignalSDK/OneSignalInAppMessages/Controller/OSMessagingController.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@ NS_ASSUME_NONNULL_BEGIN
5151
+ (void)start;
5252
+ (void)removeInstance;
5353
- (void)presentInAppMessage:(OSInAppMessageInternal *)message;
54-
- (void)updateInAppMessagesFromCache;
5554
- (void)getInAppMessagesFromServer:(NSString * _Nullable)subscriptionId;
5655
- (void)messageViewImpressionRequest:(OSInAppMessageInternal *)message;
5756
- (void)messageViewPageImpressionRequest:(OSInAppMessageInternal *)message withPageId:(NSString *)pageId;

iOS_SDK/OneSignalSDK/OneSignalInAppMessages/Controller/OSMessagingController.m

Lines changed: 1 addition & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -207,8 +207,7 @@ - (instancetype)init {
207207
self.dateGenerator = ^ NSTimeInterval {
208208
return [[NSDate date] timeIntervalSince1970];
209209
};
210-
self.messages = [OneSignalUserDefaults.initStandard getSavedCodeableDataForKey:OS_IAM_MESSAGES_ARRAY
211-
defaultValue:[NSArray<OSInAppMessageInternal *> new]];
210+
self.messages = [NSArray<OSInAppMessageInternal *> new];
212211
[self initializeTriggerController];
213212
self.messageDisplayQueue = [NSMutableArray new];
214213
self.clickListeners = [NSMutableArray new];
@@ -242,17 +241,11 @@ - (void)initializeTriggerController {
242241
dateFromString:timeSinceLastMessage]];
243242
}
244243

245-
- (void)updateInAppMessagesFromCache {
246-
self.messages = [OneSignalUserDefaults.initStandard getSavedCodeableDataForKey:OS_IAM_MESSAGES_ARRAY defaultValue:[NSArray new]];
247-
[self evaluateMessages];
248-
}
249-
250244
- (void)getInAppMessagesFromServer:(NSString *)subscriptionId {
251245
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
252246
[OneSignalLog onesignalLog:ONE_S_LL_VERBOSE message:@"getInAppMessagesFromServer"];
253247

254248
if (!subscriptionId) {
255-
[self updateInAppMessagesFromCache];
256249
return;
257250
}
258251

@@ -326,7 +319,6 @@ - (void)attemptFetchWithRetries:(NSString *)subscriptionId
326319
NSDictionary* responseHeaders = errorInfo[@"headers"];
327320

328321
if (!statusCode) {
329-
[self updateInAppMessagesFromCache];
330322
return;
331323
}
332324

@@ -354,9 +346,6 @@ - (void)attemptFetchWithRetries:(NSString *)subscriptionId
354346
}
355347
} else if (code >= 500 && code <= 599) {
356348
[OneSignalLog onesignalLog:ONE_S_LL_VERBOSE message:@"Server error, skipping retries"];
357-
[self updateInAppMessagesFromCache];
358-
} else {
359-
[self updateInAppMessagesFromCache];
360349
}
361350
}];
362351
}
@@ -401,23 +390,15 @@ - (void)fetchInAppMessagesWithoutToken:(NSString *)subscriptionId {
401390
[self updateInAppMessagesFromServer:messages];
402391
return;
403392
}
404-
[self updateInAppMessagesFromCache];
405393
});
406394
} onFailure:^(NSError *error) {
407395
[OneSignalLog onesignalLog:ONE_S_LL_VERBOSE message:[NSString stringWithFormat:@"getInAppMessagesFromServer failure: %@", error.localizedDescription]];
408-
[self updateInAppMessagesFromCache];
409396
}];
410397
}
411398

412399
- (void)updateInAppMessagesFromServer:(NSArray<OSInAppMessageInternal *> *)newMessages {
413400
[OneSignalLog onesignalLog:ONE_S_LL_VERBOSE message:@"updateInAppMessagesFromServer"];
414401
self.messages = newMessages;
415-
416-
// Cache if messages passed in are not null, this method is called from on_session for
417-
// new messages and cached when foregrounding app
418-
if (self.messages)
419-
[OneSignalUserDefaults.initStandard saveCodeableDataForKey:OS_IAM_MESSAGES_ARRAY withValue:self.messages];
420-
421402
self.calledLoadTags = NO;
422403
[self resetRedisplayMessagesBySession];
423404
[self evaluateMessages];
@@ -438,11 +419,6 @@ - (void)deleteInactiveMessage:(OSInAppMessageInternal *)message {
438419
NSMutableArray *newMessagesArray = [NSMutableArray arrayWithArray:self.messages];
439420
[newMessagesArray removeObject: message];
440421
self.messages = newMessagesArray;
441-
if (self.messages) {
442-
[OneSignalUserDefaults.initStandard saveCodeableDataForKey:OS_IAM_MESSAGES_ARRAY withValue:self.messages];
443-
} else {
444-
[OneSignalUserDefaults.initStandard removeValueForKey:OS_IAM_MESSAGES_ARRAY];
445-
}
446422
}
447423

448424
/*

iOS_SDK/OneSignalSDK/OneSignalInAppMessages/OSInAppMessagingDefines.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,6 @@ typedef NS_ENUM(NSUInteger, OSTriggerOperatorType) {
7373
#define OS_IAM_CLICKED_SET_KEY @"OS_IAM_CLICKED_SET"
7474
#define OS_IAM_IMPRESSIONED_SET_KEY @"OS_IAM_IMPRESSIONED_SET"
7575
#define OS_IAM_PAGE_IMPRESSIONED_SET_KEY @"OS_IAM_PAGE_IMPRESSIONED_SET"
76-
#define OS_IAM_MESSAGES_ARRAY @"OS_IAM_MESSAGES_ARRAY"
7776
#define OS_IAM_REDISPLAY_DICTIONARY @"OS_IAM_REDISPLAY_DICTIONARY"
7877
#define OS_IAM_TIME_SINCE_LAST_MESSAGE_KEY @"OS_IAM_TIME_SINCE_LAST_MESSAGE"
7978

iOS_SDK/OneSignalSDK/Source/OneSignal.m

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -417,9 +417,6 @@ + (void)startNewSessionInternal {
417417
// [OneSignalLocation sendLocation];
418418
// [self executePendingLiveActivityUpdates];
419419
// [self receivedInAppMessageJson:results[@"push"][@"in_app_messages"]]; // go to controller
420-
421-
// on failure:
422-
// [OSMessagingController.sharedInstance updateInAppMessagesFromCache]; // go to controller
423420
}
424421

425422
+ (void)startInAppMessages {

0 commit comments

Comments
 (0)