Skip to content

Commit 432c091

Browse files
runnerrunner
authored andcommitted
Release 4.5.0
1 parent befa223 commit 432c091

File tree

155 files changed

+5842
-315
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

155 files changed

+5842
-315
lines changed

SourceCode/Private/Core/Api/USRVApiRequest.m

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
#import "UADSCommonNetworkErrorProxy.h"
1212
#import "UADSCorePresenceChecker.h"
1313
#import "NSDictionary+Headers.h"
14+
#import "UADSServiceProvider.h"
1415

1516
@implementation USRVApiRequest
1617
static NSString *webRequestEventCategory = @"REQUEST";
@@ -207,7 +208,7 @@ + (void)WebViewExposed_sendRequest: (NSDictionary *)requestDictionary
207208
}
208209

209210
+ (UADSCommonNetworkProxy *)network {
210-
return [UADSServiceProviderProxy shared].mainNetworkLayer;
211+
return UADSServiceProvider.sharedInstance.objBridge.nativeNetworkLayer;
211212
}
212213

213214
@end
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
#import "USRVWebViewCallback.h"
12
@interface USRVApiSdk : NSObject
23

34
typedef NS_ENUM (NSInteger, USRVDownloadLatestWebViewStatus) {
@@ -6,5 +7,6 @@ typedef NS_ENUM (NSInteger, USRVDownloadLatestWebViewStatus) {
67
kDownloadLatestWebViewStatusMissingLatestConfig,
78
kDownloadLatestWebViewStatusBackgroundDownloadStarted
89
};
9-
10+
+ (void)setServiceProviderForTesting: (id)sProvider;
11+
+ (void)WebViewExposed_getTrrData: (USRVWebViewCallback *)callback;
1012
@end

SourceCode/Private/Core/Api/USRVApiSdk.m

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,18 @@
66
#import "USRVInitialize.h"
77
#import "USRVDevice.h"
88
#import "UADSServiceProvider.h"
9+
10+
static UADSServiceProvider* serviceProvider;
911
@implementation USRVApiSdk
1012

13+
+ (void)load {
14+
serviceProvider = UADSServiceProvider.sharedInstance;
15+
}
16+
17+
+ (void)setServiceProviderForTesting: (UADSServiceProvider*)sProvider {
18+
serviceProvider = sProvider;
19+
}
20+
1121
+ (void)WebViewExposed_loadComplete: (USRVWebViewCallback *)callback {
1222
USRVLogDebug(@"Web application loaded");
1323
[[USRVWebViewApp getCurrentApp] setWebAppLoaded: true];
@@ -103,4 +113,8 @@ + (NSString *)privacyState {
103113
return uads_privacyResponseStateToString(state);
104114
}
105115

116+
+ (void)WebViewExposed_getTrrData: (USRVWebViewCallback *)callback {
117+
[callback invoke: serviceProvider.configurationStorage.getCurrentConfiguration.originalJSON, nil];
118+
}
119+
106120
@end

SourceCode/Private/Core/Configuration/ConfigurationStorage/UADSConfigurationCRUDBase.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
#import "USRVConfiguration.h"
33
#import "UADSConfigurationMetricTagsReader.h"
44
#import "UADSGenericMediator.h"
5+
#import "UADSServiceProviderProxy.h"
56

67
NS_ASSUME_NONNULL_BEGIN
78

@@ -10,14 +11,15 @@ typedef void (^UADSConfigurationObserver)(USRVConfiguration *);
1011
@protocol UADSConfigurationSaver <NSObject>
1112

1213
- (void)saveConfiguration: (USRVConfiguration *)configuration;
13-
14+
- (void)triggerSaved: (USRVConfiguration *)config;
1415
@end
1516

1617
@protocol UADSConfigurationReader <NSObject>
1718

1819
- (USRVConfiguration *)getCurrentConfiguration;
1920
- (NSDictionary *) currentSessionExperimentsAsDictionary;
2021
- (UADSConfigurationExperiments *) currentSessionExperiments;
22+
- (NSString *)getCurrentMetricsUrl;
2123
@end
2224

2325

@@ -35,6 +37,7 @@ typedef void (^UADSConfigurationObserver)(USRVConfiguration *);
3537

3638

3739
@interface UADSConfigurationCRUDBase : NSObject<UADSConfigurationCRUD>
40+
@property (nonatomic, weak) UADSServiceProviderProxy *serviceProviderBridge;
3841
@end
3942

4043
NS_ASSUME_NONNULL_END

SourceCode/Private/Core/Configuration/ConfigurationStorage/UADSConfigurationCRUDBase.m

Lines changed: 34 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
#import "USRVSdkProperties.h"
33
#import "USRVWebViewApp.h"
44
#import "UADSServiceProviderProxy.h"
5+
#import "NSMutableDictionary+SafeOperations.h"
56

67
@interface UADSConfigurationCRUDBase ()
78
@property (nonatomic, assign) BOOL localRead;
@@ -24,7 +25,7 @@ - (USRVConfiguration *)localConfiguration {
2425
dispatch_sync(self.syncQueue, ^{
2526
if (!self.localRead) {
2627
self.localConfig = [self getConfigFromFile];
27-
self.localRead = YES;
28+
self.localRead = true;
2829
}
2930
});
3031

@@ -33,13 +34,26 @@ - (USRVConfiguration *)localConfiguration {
3334

3435
#pragma mark UADSConfigurationReader
3536
- (USRVConfiguration *)getCurrentConfiguration {
37+
3638
if ([self.remoteConfig hasValidWebViewURL]) {
3739
return self.remoteConfig;
3840
}
3941

4042
return [self localConfiguration];
4143
}
4244

45+
- (NSString *)getCurrentMetricsUrl {
46+
if (![self.remoteConfig.metricsUrl isEqualToString: @""]) {
47+
return self.remoteConfig.metricsUrl;
48+
}
49+
50+
return self.localConfiguration.metricsUrl;
51+
}
52+
53+
- (UADSConfigurationExperiments *)currentSessionExperiments {
54+
return [UADSConfigurationExperiments newWithJSON: self.currentSessionExperimentsAsDictionary];
55+
}
56+
4357
- (NSDictionary *)currentSessionExperimentsAsDictionary {
4458
USRVConfiguration *config = [ self getCurrentConfiguration];
4559

@@ -57,10 +71,6 @@ - (NSDictionary *)currentSessionExperimentsAsDictionary {
5771
return experiments;
5872
}
5973

60-
- (UADSConfigurationExperiments *)currentSessionExperiments {
61-
return [UADSConfigurationExperiments newWithJSON: self.currentSessionExperimentsAsDictionary];
62-
}
63-
6474
#pragma mark UADSConfigurationMetricTagsReader
6575
- (NSDictionary *)metricTags {
6676
USRVConfiguration *currentConfig = [self getCurrentConfiguration];
@@ -82,26 +92,39 @@ - (NSDictionary *)metricInfo {
8292
if (currentConfig == nil) {
8393
return nil;
8494
}
85-
86-
return @{
87-
kUnityServicesConfigValueMetricSamplingRate: [@(currentConfig.metricSamplingRate) stringValue]
88-
};
95+
NSMutableDictionary *info = [NSMutableDictionary new];
96+
info[kUnityServicesConfigValueMetricSamplingRate] = [@(currentConfig.metricSamplingRate) stringValue];
97+
[info uads_setValueIfNotNil: currentConfig.sessionToken
98+
forKey: @"sTkn"];
99+
return info;
89100
}
90101

102+
91103
- (void)subscribeToConfigUpdates: (UADSConfigurationObserver)observer {
92104
[self.mediator subscribe: observer];
93105
}
94106

95107
- (void)saveConfiguration: (USRVConfiguration *)configuration {
108+
[self saveConfiguration:configuration notifyBridge:YES];
109+
}
110+
111+
- (void)saveConfiguration: (USRVConfiguration *)configuration notifyBridge: (bool)notify {
96112
dispatch_sync(self.syncQueue, ^{
97-
[configuration saveToDisk];
113+
98114
self.remoteConfig = configuration;
99115
});
116+
117+
if (notify) {
118+
[self.serviceProviderBridge saveConfiguration: configuration.originalJSON];
119+
}
100120

101-
[UADSServiceProviderProxy.shared saveConfiguration: configuration.originalJSON];
102121
[self.mediator notifyObserversWithObjectAndRemove: configuration];
103122
}
104123

124+
- (void)triggerSaved: (USRVConfiguration *)config {
125+
[self saveConfiguration: config notifyBridge: NO];
126+
}
127+
105128
- (USRVConfiguration *)getConfigFromFile {
106129
if ([[NSFileManager defaultManager] fileExistsAtPath: [USRVSdkProperties getLocalConfigFilepath]]) {
107130
NSData *configData = [NSData dataWithContentsOfFile: [USRVSdkProperties getLocalConfigFilepath]
Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
#import <Foundation/Foundation.h>
2-
#import "UADSConfigurationLoaderStrategy.h"
32
#import "UADSConfigurationExperiments.h"
43
#import "UADSConfigurationLoaderWithPersistence.h"
54
#import "UADSPrivacyStorage.h"
@@ -11,12 +10,16 @@
1110

1211
NS_ASSUME_NONNULL_BEGIN
1312

14-
typedef id<UADSClientConfig, UADSPrivacyConfig> UADSConfigurationLoaderBuilderConfig;
13+
@protocol UADSConfigurationLoaderProvider <NSObject>
14+
- (id<UADSConfigurationLoader>)configurationLoader;
15+
@end
16+
17+
//typedef id<UADSConfigurationRequestFactoryConfig, UADSPrivacyConfig> UADSConfigurationLoaderBuilderConfig;
1518

16-
@interface UADSConfigurationLoaderBuilder : NSObject
19+
@interface UADSConfigurationLoaderBuilder : NSObject<UADSConfigurationLoaderProvider>
1720
@property (nonatomic, strong) id<USRVInitializationRequestFactory> mainRequestFactory;
1821
@property (nonatomic, strong) id<UADSConfigurationSaver> configurationSaver;
19-
@property (nonatomic, strong) id<ISDKMetrics> metricsSender;
22+
@property (nonatomic, strong) id<ISDKMetrics, ISDKPerformanceMetricsSender> metricsSender;
2023
@property (nonatomic, strong) id<UADSPrivacyResponseSaver, UADSPrivacyResponseReader> privacyStorage;
2124
@property (nonatomic, strong) id<UADSPrivacyLoader>privacyLoader;
2225
@property (nonatomic, strong) id<UADSDeviceInfoReader>deviceInfoReader;
@@ -27,12 +30,11 @@ typedef id<UADSClientConfig, UADSPrivacyConfig> UADSConfigurationLoaderBuilderCo
2730
@property (nonatomic, strong) id<UADSGameSessionIdReader> gameSessionIdReader;
2831
@property (nonatomic) BOOL noCompression;
2932

30-
- (id<UADSConfigurationLoader>) loader;
3133
- (id<USRVInitializationRequestFactory>)requestFactoryWithExtendedInfo: (BOOL)hasExtendedInfo;
3234

33-
+ (instancetype)newWithConfig: (UADSConfigurationLoaderBuilderConfig)config
35+
+ (instancetype)newWithConfig: (id<UADSClientConfig>)config
3436
andWebRequestFactory: (id<IUSRVWebRequestFactory>)webRequestFactory
35-
metricSender: (id<ISDKMetrics>)metricSender;
37+
metricSender: (id<ISDKMetrics, ISDKPerformanceMetricsSender>)metricSender;
3638
@end
3739

3840
NS_ASSUME_NONNULL_END

SourceCode/Private/Core/Configuration/SDKConfigurationReader/ConfigurationLoader/UADSConfigurationLoaderBuilder.m

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,20 +13,20 @@
1313
#import "UADSWebRequestFactorySwiftAdapter.h"
1414
#import "UADSPrivacyLoaderWithMetrics.h"
1515
#import "UADSConfigurationLoaderWithMetrics.h"
16-
16+
#import "UADSConfigurationLoaderStrategy.h"
1717
#import "UADSServiceProvider.h"
1818

1919
@interface UADSConfigurationLoaderBuilder ()
20-
@property (nonatomic, strong) UADSConfigurationLoaderBuilderConfig config;
20+
@property (nonatomic, strong) id<UADSClientConfig> config;
2121
@property (nonatomic, strong) id<IUSRVWebRequestFactory> webRequestFactory;
2222
@end
2323

2424
@implementation UADSConfigurationLoaderBuilder
2525

2626

27-
+ (instancetype)newWithConfig: (UADSConfigurationLoaderBuilderConfig)config
27+
+ (instancetype)newWithConfig: (id<UADSClientConfig>)config
2828
andWebRequestFactory: (id<IUSRVWebRequestFactory>)webRequestFactory
29-
metricSender: (id<ISDKMetrics>)metricSender {
29+
metricSender: (id<ISDKMetrics, ISDKPerformanceMetricsSender>)metricSender {
3030
UADSConfigurationLoaderBuilder *builder = [self new];
3131

3232
builder.metricsSender = metricSender;
@@ -36,13 +36,14 @@ + (instancetype)newWithConfig: (UADSConfigurationLoaderBuilderConfig)config
3636
return builder;
3737
}
3838

39-
- (id<UADSConfigurationLoader>)loader {
39+
- (id<UADSConfigurationLoader>)configurationLoader {
4040
id<UADSConfigurationLoader> loaderToReturn = self.baseStrategy;
4141

4242
loaderToReturn = [self decorateWithSaving: loaderToReturn];
4343
return loaderToReturn;
4444
}
4545

46+
4647
- (id<UADSConfigurationLoader>)baseStrategy {
4748
id<UADSConfigurationLoader>mainLoader = self.mainLoader;
4849

@@ -102,7 +103,7 @@ + (instancetype)newWithConfig: (UADSConfigurationLoaderBuilderConfig)config
102103
UADSDeviceInfoReaderBuilder *builder = [UADSDeviceInfoReaderBuilder new];
103104

104105
builder.metricsSender = _metricsSender;
105-
builder.selectorConfig = self.config;
106+
builder.clientConfig = self.config;
106107
builder.extendedReader = extended;
107108
builder.privacyReader = self.privacyStorage;
108109
builder.logger = self.logger;

SourceCode/Private/Core/Configuration/SDKConfigurationReader/UADSClientConfig.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
NS_ASSUME_NONNULL_BEGIN
55
@class UADSConfigurationExperiments;
66

7-
@protocol UADSClientConfig <NSObject>
7+
@protocol UADSClientConfig <NSObject, UADSPrivacyConfig>
88
- (NSString *) gameID;
99
- (NSString *) sdkVersionName;
1010
- (NSString *) sdkVersion;

SourceCode/Private/Core/Configuration/SDKConfigurationReader/UADSConfigurationExperimentValue.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#import "UADSConfigurationExperimentValue.h"
22

3-
#define NEXT_SESSION_FLAGS @[@"tsi", @"tsi_upii", @"tsi_p", @"tsi_nt", @"tsi_prr", @"tsi_prw"]
3+
#define NEXT_SESSION_FLAGS @[@"tsi", @"tsi_upii", @"tsi_p", @"tsi_nt", @"tsi_prr", @"tsi_prw", @"s_init", @"s_pte", @"s_ntf", @"s_nrq", @"s_wbrq", @"s_wd"]
44
#define NEXT_SESSION_FLAGS_SET [NSSet setWithArray: NEXT_SESSION_FLAGS]
55

66
@implementation UADSConfigurationExperimentValue

SourceCode/Private/Core/Configuration/SDKConfigurationReader/UADSConfigurationExperiments.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ NS_ASSUME_NONNULL_BEGIN
1515
- (BOOL) isSwiftDownloadEnabled;
1616
- (BOOL) isSwiftNativeRequestsEnabled;
1717
- (BOOL) isSwiftWebViewRequestsEnabled;
18+
- (BOOL) isSwiftInitFlowEnabled;
19+
- (BOOL) isUseNewTasksEnabled;
20+
- (BOOL) isParallelExecutionEnabled;
1821

1922
- (NSDictionary<NSString *, NSString *> *)nextSessionFlags;
2023
- (NSDictionary<NSString *, NSString *> *)currentSessionFlags;

0 commit comments

Comments
 (0)