#1225 - Simplifying MGLAccountManager for initial setup and access to AccessToken

This commit is contained in:
Brad Leege
2015-05-05 11:50:01 -05:00
parent 4ce4e979ff
commit 804c092c81
4 changed files with 18 additions and 14 deletions

View File

@@ -1,6 +1,6 @@
@interface MGLAccountManager : NSObject
+ (instancetype) sharedInstanceWithAccessToken:(NSString *)token;
+ (NSString *) sharedAccessToken;
+ (void) setAccessToken:(NSString *) accessToken;
+ (NSString *) accessToken;
@end

View File

@@ -21,7 +21,8 @@
}
if ( ! accessToken) NSLog(@"No access token set. Mapbox vector tiles won't work.");
[MGLAccountManager sharedInstanceWithAccessToken:accessToken];
// Start Mapbox GL SDK
[MGLAccountManager setAccessToken:accessToken];
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.rootViewController = [[UINavigationController alloc] initWithRootViewController:[MBXViewController new]];

View File

@@ -15,17 +15,14 @@
static MGLAccountManager *_sharedManager;
// Can be called from any thread. Called implicitly from any
// public class convenience methods.
// Can be called from any thread.
//
+ (instancetype) sharedInstanceWithAccessToken:(NSString *)token {
+ (instancetype) sharedInstance {
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
if ( ! NSProcessInfo.processInfo.mgl_isInterfaceBuilderDesignablesAgent) {
void (^setupBlock)() = ^{
_sharedManager = [[self alloc] init];
_sharedManager.accessToken = token;
[MGLMapboxEvents setToken:token];
};
if ( ! [[NSThread currentThread] isMainThread]) {
dispatch_sync(dispatch_get_main_queue(), ^{
@@ -40,11 +37,17 @@ static MGLAccountManager *_sharedManager;
return _sharedManager;
}
+ (NSString *) sharedAccessToken {
if (_sharedManager) {
return _sharedManager.accessToken;
}
return nil;
+ (void) setAccessToken:(NSString *) accessToken {
[[MGLAccountManager sharedInstance] setAccessToken:accessToken];
// Update MGLMapboxEvents
// NOTE: This is (likely) the initial setup of MGLMapboxEvents
[MGLMapboxEvents setToken:accessToken];
}
+ (NSString *) accessToken {
return [MGLAccountManager sharedInstance].accessToken;
}
@end

View File

@@ -110,7 +110,7 @@ std::chrono::steady_clock::duration secondsAsDuration(float duration)
if (self && [self commonInit])
{
self.styleURL = nil;
self.accessToken = [MGLAccountManager sharedAccessToken];
self.accessToken = [MGLAccountManager accessToken];
return self;
}