Skip to content

Commit 74b8196

Browse files
authored
[InAppMessaging] Migrate to GoogleUtilities's storage container (#12757)
1 parent 5fd1eb2 commit 74b8196

15 files changed

+56
-33
lines changed

FirebaseInAppMessaging.podspec

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,8 @@ See more product details at https://firebase.google.com/products/in-app-messagin
8383
s.dependency 'FirebaseCore', '~> 10.0'
8484
s.dependency 'FirebaseInstallations', '~> 10.0'
8585
s.dependency 'FirebaseABTesting', '~> 10.0'
86-
s.dependency 'GoogleUtilities/Environment', '~> 7.8'
86+
s.dependency 'GoogleUtilities/Environment', '~> 7.13'
87+
s.dependency 'GoogleUtilities/UserDefaults', '~> 7.13'
8788
s.dependency 'nanopb', '>= 2.30908.0', '< 2.30911.0'
8889

8990
s.test_spec 'unit' do |unit_tests|

FirebaseInAppMessaging/Sources/Analytics/FIRIAMAnalyticsEventLoggerImpl.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
#import "FirebaseInAppMessaging/Sources/Private/Flows/FIRIAMAnalyticsEventLogger.h"
2020

2121
@class FIRIAMClearcutLogger;
22+
@class GULUserDefaults;
2223
@protocol FIRIAMTimeFetcher;
2324
@protocol FIRAnalyticsInterop;
2425

@@ -34,12 +35,12 @@ NS_ASSUME_NONNULL_BEGIN
3435
/**
3536
*
3637
* @param userDefaults needed for tracking upload timing info persistently.If nil, using
37-
* NSUserDefaults standardUserDefaults. It's defined as a parameter to help with
38+
* GULUserDefaults standardUserDefaults. It's defined as a parameter to help with
3839
* unit testing mocking
3940
*/
4041
- (instancetype)initWithClearcutLogger:(FIRIAMClearcutLogger *)ctLogger
4142
usingTimeFetcher:(id<FIRIAMTimeFetcher>)timeFetcher
42-
usingUserDefaults:(nullable NSUserDefaults *)userDefaults
43+
usingUserDefaults:(nullable GULUserDefaults *)userDefaults
4344
analytics:(nullable id<FIRAnalyticsInterop>)analytics;
4445
@end
4546
NS_ASSUME_NONNULL_END

FirebaseInAppMessaging/Sources/Analytics/FIRIAMAnalyticsEventLoggerImpl.m

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
#import <TargetConditionals.h>
1818
#if TARGET_OS_IOS || TARGET_OS_TV || (defined(TARGET_OS_VISION) && TARGET_OS_VISION)
1919

20+
#import <GoogleUtilities/GULUserDefaults.h>
21+
2022
#import "FirebaseInAppMessaging/Sources/Analytics/FIRIAMAnalyticsEventLoggerImpl.h"
2123

2224
#import "FirebaseCore/Extension/FirebaseCoreInternal.h"
@@ -29,7 +31,7 @@
2931
@interface FIRIAMAnalyticsEventLoggerImpl ()
3032
@property(readonly, nonatomic) FIRIAMClearcutLogger *clearCutLogger;
3133
@property(readonly, nonatomic) id<FIRIAMTimeFetcher> timeFetcher;
32-
@property(nonatomic, readonly) NSUserDefaults *userDefaults;
34+
@property(nonatomic, readonly) GULUserDefaults *userDefaults;
3335
@end
3436

3537
// in these kFAXX constants, FA represents FirebaseAnalytics
@@ -60,13 +62,13 @@ @implementation FIRIAMAnalyticsEventLoggerImpl {
6062

6163
- (instancetype)initWithClearcutLogger:(FIRIAMClearcutLogger *)ctLogger
6264
usingTimeFetcher:(id<FIRIAMTimeFetcher>)timeFetcher
63-
usingUserDefaults:(nullable NSUserDefaults *)userDefaults
65+
usingUserDefaults:(nullable GULUserDefaults *)userDefaults
6466
analytics:(nullable id<FIRAnalyticsInterop>)analytics {
6567
if (self = [super init]) {
6668
_clearCutLogger = ctLogger;
6769
_timeFetcher = timeFetcher;
6870
_analytics = analytics;
69-
_userDefaults = userDefaults ? userDefaults : [NSUserDefaults standardUserDefaults];
71+
_userDefaults = userDefaults ? userDefaults : [GULUserDefaults standardUserDefaults];
7072

7173
if (!_analytics) {
7274
FIRLogWarning(kFIRLoggerInAppMessaging, @"I-IAM280002",

FirebaseInAppMessaging/Sources/Analytics/FIRIAMClearcutUploader.m

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
#import <TargetConditionals.h>
1818
#if TARGET_OS_IOS || TARGET_OS_TV || (defined(TARGET_OS_VISION) && TARGET_OS_VISION)
1919

20+
#import <GoogleUtilities/GULUserDefaults.h>
2021
#import <UIKit/UIKit.h>
2122
#import "FirebaseCore/Extension/FirebaseCoreInternal.h"
2223

@@ -66,7 +67,7 @@ @interface FIRIAMClearcutUploader () {
6667
@property(nonatomic, readonly) FIRIAMClearcutLogStorage *logStorage;
6768

6869
@property(nonatomic, readonly) FIRIAMClearcutStrategy *strategy;
69-
@property(nonatomic, readonly) NSUserDefaults *userDefaults;
70+
@property(nonatomic, readonly) GULUserDefaults *userDefaults;
7071
@end
7172

7273
static NSString *FIRIAM_UserDefaultsKeyForNextValidClearcutUploadTimeInMills =
@@ -89,7 +90,7 @@ - (instancetype)initWithRequestSender:(FIRIAMClearcutHttpRequestSender *)request
8990
timeFetcher:(id<FIRIAMTimeFetcher>)timeFetcher
9091
logStorage:(FIRIAMClearcutLogStorage *)logStorage
9192
usingStrategy:(FIRIAMClearcutStrategy *)strategy
92-
usingUserDefaults:(nullable NSUserDefaults *)userDefaults {
93+
usingUserDefaults:(nullable GULUserDefaults *)userDefaults {
9394
if (self = [super init]) {
9495
_nextSendScheduled = NO;
9596
_timeFetcher = timeFetcher;
@@ -109,7 +110,7 @@ - (instancetype)initWithRequestSender:(FIRIAMClearcutHttpRequestSender *)request
109110
object:nil];
110111
}
111112
#endif // defined(__IPHONE_13_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 130000
112-
_userDefaults = userDefaults ? userDefaults : [NSUserDefaults standardUserDefaults];
113+
_userDefaults = userDefaults ? userDefaults : [GULUserDefaults standardUserDefaults];
113114
// it would be 0 if it does not exist, which is equvilent to saying that
114115
// you can send now
115116
_nextValidSendTimeInMills = (int64_t)

FirebaseInAppMessaging/Sources/Flows/FIRIAMBookKeeper.m

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
#import <TargetConditionals.h>
1818
#if TARGET_OS_IOS || TARGET_OS_TV || (defined(TARGET_OS_VISION) && TARGET_OS_VISION)
1919

20+
#import <GoogleUtilities/GULUserDefaults.h>
21+
2022
#import "FirebaseCore/Extension/FirebaseCoreInternal.h"
2123

2224
#import "FirebaseInAppMessaging/Sources/FIRCore+InAppMessaging.h"
@@ -44,7 +46,7 @@ @interface FIRIAMBookKeeperViaUserDefaults ()
4446
@property(nonatomic) double lastDisplayTime;
4547
@property(nonatomic) double lastFetchTime;
4648
@property(nonatomic) double nextFetchWaitTime;
47-
@property(nonatomic, nonnull) NSUserDefaults *defaults;
49+
@property(nonatomic, nonnull) GULUserDefaults *defaults;
4850
@end
4951

5052
@interface FIRIAMImpressionRecord ()
@@ -85,7 +87,7 @@ - (NSString *)description {
8587

8688
@implementation FIRIAMBookKeeperViaUserDefaults
8789

88-
- (instancetype)initWithUserDefaults:(NSUserDefaults *)userDefaults {
90+
- (instancetype)initWithUserDefaults:(GULUserDefaults *)userDefaults {
8991
if (self = [super init]) {
9092
_defaults = userDefaults;
9193

FirebaseInAppMessaging/Sources/Private/Analytics/FIRIAMClearcutUploader.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
@class FIRIAMClearcutLogRecord;
2020
@class FIRIAMClearcutHttpRequestSender;
2121
@class FIRIAMClearcutLogStorage;
22+
@class GULUserDefaults;
2223

2324
@protocol FIRIAMTimeFetcher;
2425

@@ -58,14 +59,14 @@ NS_ASSUME_NONNULL_BEGIN
5859
/**
5960
*
6061
* @param userDefaults needed for tracking upload timing info persistently.If nil, using
61-
* NSUserDefaults standardUserDefaults. It's defined as a parameter to help with
62+
* GULUserDefaults standardUserDefaults. It's defined as a parameter to help with
6263
* unit testing mocking
6364
*/
6465
- (instancetype)initWithRequestSender:(FIRIAMClearcutHttpRequestSender *)requestSender
6566
timeFetcher:(id<FIRIAMTimeFetcher>)timeFetcher
6667
logStorage:(FIRIAMClearcutLogStorage *)retryStorage
6768
usingStrategy:(FIRIAMClearcutStrategy *)strategy
68-
usingUserDefaults:(nullable NSUserDefaults *)userDefaults;
69+
usingUserDefaults:(nullable GULUserDefaults *)userDefaults;
6970
/**
7071
* This should return very quickly without blocking on and actual log uploading to
7172
* clearcut server, which is done asynchronously

FirebaseInAppMessaging/Sources/Private/Flows/FIRIAMBookKeeper.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@
1717
#import <Foundation/Foundation.h>
1818

1919
NS_ASSUME_NONNULL_BEGIN
20+
21+
@class GULUserDefaults;
22+
2023
@interface FIRIAMImpressionRecord : NSObject
2124
@property(nonatomic, readonly, copy) NSString *messageID;
2225
@property(nonatomic, readonly) long impressionTimeInSeconds;
@@ -64,7 +67,7 @@ NS_ASSUME_NONNULL_BEGIN
6467
@interface FIRIAMBookKeeperViaUserDefaults : NSObject <FIRIAMBookKeeper>
6568

6669
- (instancetype)init NS_UNAVAILABLE;
67-
- (instancetype)initWithUserDefaults:(NSUserDefaults *)userDefaults NS_DESIGNATED_INITIALIZER;
70+
- (instancetype)initWithUserDefaults:(GULUserDefaults *)userDefaults NS_DESIGNATED_INITIALIZER;
6871

6972
// for testing, don't use them for production purpose
7073
- (void)cleanupImpressions;

FirebaseInAppMessaging/Sources/Private/Runtime/FIRIAMSDKModeManager.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818

1919
NS_ASSUME_NONNULL_BEGIN
2020

21+
@class GULUserDefaults;
22+
2123
extern NSInteger const kFIRIAMMaxFetchInNewlyInstalledMode;
2224

2325
/**
@@ -56,8 +58,8 @@ extern NSInteger const kFIRIAMMaxFetchInNewlyInstalledMode;
5658

5759
- (instancetype)init NS_UNAVAILABLE;
5860

59-
// having NSUserDefaults as passed-in to help with unit testing
60-
- (instancetype)initWithUserDefaults:(NSUserDefaults *)userDefaults
61+
// having GULUserDefaults as passed-in to help with unit testing
62+
- (instancetype)initWithUserDefaults:(GULUserDefaults *)userDefaults
6163
testingModeListener:(id<FIRIAMTestingModeListener>)testingModeListener;
6264

6365
// returns the current SDK mode

FirebaseInAppMessaging/Sources/Runtime/FIRIAMRuntimeManager.m

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
#import <TargetConditionals.h>
1818
#if TARGET_OS_IOS || TARGET_OS_TV || (defined(TARGET_OS_VISION) && TARGET_OS_VISION)
1919

20+
#import <GoogleUtilities/GULUserDefaults.h>
21+
2022
#import "FirebaseCore/Extension/FirebaseCoreInternal.h"
2123

2224
#import "FirebaseInAppMessaging/Sources/Analytics/FIRIAMAnalyticsEventLoggerImpl.h"
@@ -94,7 +96,7 @@ - (void)testingModeSwitchedOn {
9496
}
9597

9698
- (FIRIAMAutoDataCollectionSetting)FIAMProgrammaticAutoDataCollectionSetting {
97-
id settingEntry = [[NSUserDefaults standardUserDefaults]
99+
id settingEntry = [[GULUserDefaults standardUserDefaults]
98100
objectForKey:_userDefaultsKeyForFIAMProgammaticAutoDataCollectionSetting];
99101

100102
if (![settingEntry isKindOfClass:[NSNumber class]]) {
@@ -188,7 +190,7 @@ - (BOOL)shouldRunSDKFlowsOnStartup {
188190

189191
- (void)resume {
190192
// persist the setting
191-
[[NSUserDefaults standardUserDefaults]
193+
[[GULUserDefaults standardUserDefaults]
192194
setObject:@(YES)
193195
forKey:_userDefaultsKeyForFIAMProgammaticAutoDataCollectionSetting];
194196

@@ -209,7 +211,7 @@ - (void)resume {
209211

210212
- (void)pause {
211213
// persist the setting
212-
[[NSUserDefaults standardUserDefaults]
214+
[[GULUserDefaults standardUserDefaults]
213215
setObject:@(NO)
214216
forKey:_userDefaultsKeyForFIAMProgammaticAutoDataCollectionSetting];
215217

@@ -262,7 +264,7 @@ - (void)internalStartRuntimeWithSDKSettings:(FIRIAMSDKSettings *)settings {
262264
self.responseParser = [[FIRIAMFetchResponseParser alloc] initWithTimeFetcher:timeFetcher];
263265

264266
self.bookKeeper = [[FIRIAMBookKeeperViaUserDefaults alloc]
265-
initWithUserDefaults:[NSUserDefaults standardUserDefaults]];
267+
initWithUserDefaults:[GULUserDefaults standardUserDefaults]];
266268

267269
self.messageCache = [[FIRIAMMessageClientCache alloc] initWithBookkeeper:self.bookKeeper
268270
usingResponseParser:self.responseParser];
@@ -324,7 +326,7 @@ - (void)internalStartRuntimeWithSDKSettings:(FIRIAMSDKSettings *)settings {
324326
analytics:[FIRInAppMessaging inAppMessaging].analytics];
325327

326328
FIRIAMSDKModeManager *sdkModeManager =
327-
[[FIRIAMSDKModeManager alloc] initWithUserDefaults:NSUserDefaults.standardUserDefaults
329+
[[FIRIAMSDKModeManager alloc] initWithUserDefaults:GULUserDefaults.standardUserDefaults
328330
testingModeListener:self];
329331

330332
FIRIAMActionURLFollower *actionFollower = [FIRIAMActionURLFollower actionURLFollower];

FirebaseInAppMessaging/Sources/Runtime/FIRIAMSDKModeManager.m

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
#import <TargetConditionals.h>
1818
#if TARGET_OS_IOS || TARGET_OS_TV || (defined(TARGET_OS_VISION) && TARGET_OS_VISION)
1919

20+
#import <GoogleUtilities/GULUserDefaults.h>
21+
2022
#import "FirebaseCore/Extension/FirebaseCoreInternal.h"
2123

2224
#import "FirebaseInAppMessaging/Sources/FIRCore+InAppMessaging.h"
@@ -38,7 +40,7 @@
3840
}
3941

4042
@interface FIRIAMSDKModeManager ()
41-
@property(nonatomic, nonnull, readonly) NSUserDefaults *userDefaults;
43+
@property(nonatomic, nonnull, readonly) GULUserDefaults *userDefaults;
4244
// Make it weak so that we don't depend on its existence to avoid circular reference.
4345
@property(nonatomic, readonly, weak) id<FIRIAMTestingModeListener> testingModeListener;
4446
@end
@@ -52,7 +54,7 @@ @implementation FIRIAMSDKModeManager {
5254
NSInteger _fetchCount;
5355
}
5456

55-
- (instancetype)initWithUserDefaults:(NSUserDefaults *)userDefaults
57+
- (instancetype)initWithUserDefaults:(GULUserDefaults *)userDefaults
5658
testingModeListener:(id<FIRIAMTestingModeListener>)testingModeListener {
5759
if (self = [super init]) {
5860
_userDefaults = userDefaults;

0 commit comments

Comments
 (0)