Skip to content

Commit d56f008

Browse files
committed
Read isReceiveReceiptsEnabled from resilient storage if needed
1 parent d9f5ede commit d56f008

1 file changed

Lines changed: 10 additions & 1 deletion

File tree

iOS_SDK/OneSignalSDK/OneSignalExtension/OneSignalReceiveReceiptsController.m

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,22 @@
2828
#import <Foundation/Foundation.h>
2929
#import "OneSignalReceiveReceiptsController.h"
3030
#import <OneSignalCore/OneSignalCore.h>
31+
#import <OneSignalOSCore/OneSignalOSCore-Swift.h>
3132
#import "OSMacros.h"
3233
#import "OneSignalExtensionRequests.h"
3334

3435
@implementation OneSignalReceiveReceiptsController
3536

3637
- (BOOL)isReceiveReceiptsEnabled {
37-
return [OneSignalUserDefaults.initShared getSavedBoolForKey:OSUD_RECEIVE_RECEIPTS_ENABLED defaultValue:NO];
38+
BOOL enabled = [OneSignalUserDefaults.initShared getSavedBoolForKey:OSUD_RECEIVE_RECEIPTS_ENABLED defaultValue:NO];
39+
if (enabled) {
40+
return YES;
41+
}
42+
// UserDefaults may return NO for two reasons: the flag is genuinely off, or the shared
43+
// UserDefaults file isn't readable right now (NSE running while device is locked under
44+
// NSFileProtectionCompleteUntilFirstUserAuthentication). Fall back to the unencrypted cache.
45+
NSString *cached = [OSResilientStorage stringForKey:OSResilientStorage.keyReceiveReceiptsEnabled];
46+
return [cached isEqualToString:@"1"];
3847
}
3948

4049
- (void)sendReceiveReceiptWithNotificationId:(NSString *)notificationId {

0 commit comments

Comments
 (0)