Skip to content

Commit 66354c0

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 75eab0f commit 66354c0

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

@@ -328,7 +321,6 @@ - (void)attemptFetchWithRetries:(NSString *)subscriptionId
328321
NSDictionary* responseHeaders = errorInfo[@"headers"];
329322

330323
if (!statusCode) {
331-
[self updateInAppMessagesFromCache];
332324
return;
333325
}
334326

@@ -356,9 +348,6 @@ - (void)attemptFetchWithRetries:(NSString *)subscriptionId
356348
}
357349
} else if (code >= 500 && code <= 599) {
358350
[OneSignalLog onesignalLog:ONE_S_LL_VERBOSE message:@"Server error, skipping retries"];
359-
[self updateInAppMessagesFromCache];
360-
} else {
361-
[self updateInAppMessagesFromCache];
362351
}
363352
}];
364353
}
@@ -403,23 +392,15 @@ - (void)fetchInAppMessagesWithoutToken:(NSString *)subscriptionId {
403392
[self updateInAppMessagesFromServer:messages];
404393
return;
405394
}
406-
[self updateInAppMessagesFromCache];
407395
});
408396
} onFailure:^(NSError *error) {
409397
[OneSignalLog onesignalLog:ONE_S_LL_VERBOSE message:[NSString stringWithFormat:@"getInAppMessagesFromServer failure: %@", error.localizedDescription]];
410-
[self updateInAppMessagesFromCache];
411398
}];
412399
}
413400

414401
- (void)updateInAppMessagesFromServer:(NSArray<OSInAppMessageInternal *> *)newMessages {
415402
[OneSignalLog onesignalLog:ONE_S_LL_VERBOSE message:@"updateInAppMessagesFromServer"];
416403
self.messages = newMessages;
417-
418-
// Cache if messages passed in are not null, this method is called from on_session for
419-
// new messages and cached when foregrounding app
420-
if (self.messages)
421-
[OneSignalUserDefaults.initStandard saveCodeableDataForKey:OS_IAM_MESSAGES_ARRAY withValue:self.messages];
422-
423404
self.calledLoadTags = NO;
424405
[self resetRedisplayMessagesBySession];
425406
[self evaluateMessages];
@@ -440,11 +421,6 @@ - (void)deleteInactiveMessage:(OSInAppMessageInternal *)message {
440421
NSMutableArray *newMessagesArray = [NSMutableArray arrayWithArray:self.messages];
441422
[newMessagesArray removeObject: message];
442423
self.messages = newMessagesArray;
443-
if (self.messages) {
444-
[OneSignalUserDefaults.initStandard saveCodeableDataForKey:OS_IAM_MESSAGES_ARRAY withValue:self.messages];
445-
} else {
446-
[OneSignalUserDefaults.initStandard removeValueForKey:OS_IAM_MESSAGES_ARRAY];
447-
}
448424
}
449425

450426
/*

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)