summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesse Bounds <jesse@rebounds.net>2018-01-05 15:27:22 -0800
committerFabian Guerra <fabian.guerra@mapbox.com>2018-02-19 16:08:18 -0500
commit17baa1b31dddd5288b7b632169917aaa4df230f8 (patch)
tree6a5cb0b467b13154b2de10d401d4387423229de0
parent7aefc1f7db5d2c0b447a584c4382047624480403 (diff)
downloadqtlocation-mapboxgl-17baa1b31dddd5288b7b632169917aaa4df230f8.tar.gz
Set events options with MGL user defaults values
For options that historically could be set with user defaults in the Maps SDK, collect them and set the appropriate property values in the new events library. Also, check the existence of two new optional configuration values MGLTelemetryAccessToken and MGLTelemetryBaseURL so that the events endpoint and access token can be configured and the access token can easily be set dynamically and apart from the access token for the maps API. MGLTelemetryBaseURL replaces the legacy MGLTelemetryTestServerURL. This is ok because this value was never intended to be used by client applications. The new name better reflects the fact that the URL can be changed to any backend stack, not just a test server. Because it is possible for the configuration values to be read from user defaults before the events manager is fully set up, this also adds a local cache for the baseURL and accessToken values so that they can be stored and applied once it is time to setup the the events manager.
-rw-r--r--platform/ios/src/MGLMapboxEvents.m34
1 files changed, 32 insertions, 2 deletions
diff --git a/platform/ios/src/MGLMapboxEvents.m b/platform/ios/src/MGLMapboxEvents.m
index 2efbf52d73..0825e46666 100644
--- a/platform/ios/src/MGLMapboxEvents.m
+++ b/platform/ios/src/MGLMapboxEvents.m
@@ -6,6 +6,8 @@ static NSString * const MGLAPIClientUserAgentBase = @"MapboxEventsiOS";
@interface MGLMapboxEvents ()
@property (nonatomic) MMEEventsManager *eventsManager;
+@property (nonatomic) NSURL *baseURL;
+@property (nonatomic, copy) NSString *accessToken;
@end
@implementation MGLMapboxEvents
@@ -35,7 +37,16 @@ static NSString * const MGLAPIClientUserAgentBase = @"MapboxEventsiOS";
if (self) {
_eventsManager = [[MMEEventsManager alloc] init];
_eventsManager.debugLoggingEnabled = [[NSUserDefaults standardUserDefaults] boolForKey:@"MGLMapboxMetricsDebugLoggingEnabled"];
+ _eventsManager.accountType = [[NSUserDefaults standardUserDefaults] integerForKey:@"MGLMapboxAccountType"];
_eventsManager.metricsEnabled = [[NSUserDefaults standardUserDefaults] boolForKey:@"MGLMapboxMetricsEnabled"];
+
+ if ([[[[NSUserDefaults standardUserDefaults] dictionaryRepresentation] allKeys] containsObject:@"MGLTelemetryAccessToken"]) {
+ self.accessToken = [[NSUserDefaults standardUserDefaults] objectForKey:@"MGLTelemetryAccessToken"];
+ }
+ if ([[[[NSUserDefaults standardUserDefaults] dictionaryRepresentation] allKeys] containsObject:@"MGLTelemetryBaseURL"]) {
+ self.baseURL = [NSURL URLWithString:[[NSUserDefaults standardUserDefaults] objectForKey:@"MGLTelemetryBaseURL"]];
+ }
+
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(userDefaultsDidChange:) name:NSUserDefaultsDidChangeNotification object:nil];
}
return self;
@@ -47,8 +58,21 @@ static NSString * const MGLAPIClientUserAgentBase = @"MapboxEventsiOS";
- (void)userDefaultsDidChange:(NSNotification *)notification {
dispatch_async(dispatch_get_main_queue(), ^{
- self.eventsManager.debugLoggingEnabled = [[NSUserDefaults standardUserDefaults] boolForKey:@"MGLMapboxMetricsDebugLoggingEnabled"];
+
+ // Default values
self.eventsManager.metricsEnabled = [[NSUserDefaults standardUserDefaults] boolForKey:@"MGLMapboxMetricsEnabled"];
+ self.eventsManager.accountType = [[NSUserDefaults standardUserDefaults] integerForKey:@"MGLMapboxAccountType"];
+ self.eventsManager.debugLoggingEnabled = [[NSUserDefaults standardUserDefaults] boolForKey:@"MGLMapboxMetricsDebugLoggingEnabled"];
+
+ // Optional values
+ if ([[[[NSUserDefaults standardUserDefaults] dictionaryRepresentation] allKeys] containsObject:@"MGLTelemetryAccessToken"]) {
+ self.eventsManager.accessToken = [[NSUserDefaults standardUserDefaults] objectForKey:@"MGLTelemetryAccessToken"];
+ }
+ if ([[[[NSUserDefaults standardUserDefaults] dictionaryRepresentation] allKeys] containsObject:@"MGLTelemetryBaseURL"]) {
+ NSURL *baseURL = [NSURL URLWithString:[[NSUserDefaults standardUserDefaults] objectForKey:@"MGLTelemetryBaseURL"]];
+ self.eventsManager.baseURL = baseURL;
+ }
+
[self.eventsManager pauseOrResumeMetricsCollectionIfRequired];
});
}
@@ -57,7 +81,13 @@ static NSString * const MGLAPIClientUserAgentBase = @"MapboxEventsiOS";
NSString *semanticVersion = [NSBundle mgl_frameworkInfoDictionary][@"MGLSemanticVersionString"];
NSString *shortVersion = [NSBundle mgl_frameworkInfoDictionary][@"CFBundleShortVersionString"];
NSString *sdkVersion = semanticVersion ?: shortVersion;
- [[[self sharedManager] eventsManager] initializeWithAccessToken:accessToken userAgentBase:MGLAPIClientUserAgentBase hostSDKVersion:sdkVersion];
+ NSString *resolvedAccessToken = [MGLMapboxEvents sharedManager].accessToken ?: accessToken;
+
+ [[[MGLMapboxEvents sharedManager] eventsManager] initializeWithAccessToken:resolvedAccessToken userAgentBase:MGLAPIClientUserAgentBase hostSDKVersion:sdkVersion];
+
+ if ([MGLMapboxEvents sharedManager].baseURL) {
+ [[MGLMapboxEvents sharedManager] eventsManager].baseURL = [MGLMapboxEvents sharedManager].baseURL;
+ }
}
+ (void)pushTurnstileEvent {