#1225 - Simplifying MGLAccountManager for initial setup and access to AccessToken
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
@interface MGLAccountManager : NSObject
|
||||
|
||||
+ (instancetype) sharedInstanceWithAccessToken:(NSString *)token;
|
||||
+ (NSString *) sharedAccessToken;
|
||||
+ (void) setAccessToken:(NSString *) accessToken;
|
||||
+ (NSString *) accessToken;
|
||||
|
||||
@end
|
||||
@@ -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]];
|
||||
|
||||
@@ -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
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user