This commit is contained in:
11
platform/darwin/src/MGLNetworkConfiguration.h
Normal file
11
platform/darwin/src/MGLNetworkConfiguration.h
Normal file
@@ -0,0 +1,11 @@
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
@interface MGLNetworkConfiguration : NSObject
|
||||
|
||||
/// Returns the shared instance of the `MGLNetworkConfiguration` class.
|
||||
+ (instancetype)sharedManager;
|
||||
|
||||
/// The current API base URL.
|
||||
@property (atomic) NSURL *apiBaseURL;
|
||||
|
||||
@end
|
||||
43
platform/darwin/src/MGLNetworkConfiguration.m
Normal file
43
platform/darwin/src/MGLNetworkConfiguration.m
Normal file
@@ -0,0 +1,43 @@
|
||||
#import "MGLNetworkConfiguration.h"
|
||||
#import "NSProcessInfo+MGLAdditions.h"
|
||||
|
||||
@implementation MGLNetworkConfiguration
|
||||
|
||||
+ (void)load {
|
||||
// Read the initial configuration from Info.plist.
|
||||
NSString *apiBaseURL = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"MGLMapboxAPIBaseURL"];
|
||||
if (apiBaseURL.length) {
|
||||
[self setAPIBaseURL:[NSURL URLWithString:apiBaseURL]];
|
||||
}
|
||||
}
|
||||
|
||||
+ (instancetype)sharedManager {
|
||||
if (NSProcessInfo.processInfo.mgl_isInterfaceBuilderDesignablesAgent) {
|
||||
return nil;
|
||||
}
|
||||
static dispatch_once_t onceToken;
|
||||
static MGLNetworkConfiguration *_sharedManager;
|
||||
void (^setupBlock)() = ^{
|
||||
dispatch_once(&onceToken, ^{
|
||||
_sharedManager = [[self alloc] init];
|
||||
});
|
||||
};
|
||||
if (![[NSThread currentThread] isMainThread]) {
|
||||
dispatch_sync(dispatch_get_main_queue(), ^{
|
||||
setupBlock();
|
||||
});
|
||||
} else {
|
||||
setupBlock();
|
||||
}
|
||||
return _sharedManager;
|
||||
}
|
||||
|
||||
+ (void)setAPIBaseURL:(NSURL *)apiBaseURL {
|
||||
[MGLNetworkConfiguration sharedManager].apiBaseURL = apiBaseURL;
|
||||
}
|
||||
|
||||
+ (NSURL *)apiBaseURL {
|
||||
return [MGLNetworkConfiguration sharedManager].apiBaseURL;
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
#import "MGLAccountManager_Private.h"
|
||||
#import "MGLGeometry_Private.h"
|
||||
#import "MGLNetworkConfiguration.h"
|
||||
#import "MGLOfflinePack_Private.h"
|
||||
#import "MGLOfflineRegion_Private.h"
|
||||
#import "MGLTilePyramidOfflineRegion.h"
|
||||
@@ -127,6 +128,13 @@ NSString * const MGLOfflinePackMaximumCountUserInfoKey = @"MaximumCount";
|
||||
|
||||
_mbglFileSource = new mbgl::DefaultFileSource(cachePath.UTF8String, [NSBundle mainBundle].resourceURL.path.UTF8String);
|
||||
|
||||
// Observe for changes to the API base URL (and find out the current one).
|
||||
[[MGLNetworkConfiguration sharedManager] addObserver:self
|
||||
forKeyPath:@"apiBaseURL"
|
||||
options:(NSKeyValueObservingOptionInitial |
|
||||
NSKeyValueObservingOptionNew)
|
||||
context:NULL];
|
||||
|
||||
// Observe for changes to the global access token (and find out the current one).
|
||||
[[MGLAccountManager sharedManager] addObserver:self
|
||||
forKeyPath:@"accessToken"
|
||||
@@ -147,6 +155,7 @@ NSString * const MGLOfflinePackMaximumCountUserInfoKey = @"MaximumCount";
|
||||
}
|
||||
|
||||
- (void)dealloc {
|
||||
[[MGLNetworkConfiguration sharedManager] removeObserver:self forKeyPath:@"apiBaseURL"];
|
||||
[[MGLAccountManager sharedManager] removeObserver:self forKeyPath:@"accessToken"];
|
||||
|
||||
for (MGLOfflinePack *pack in self.packs) {
|
||||
@@ -164,6 +173,13 @@ NSString * const MGLOfflinePackMaximumCountUserInfoKey = @"MaximumCount";
|
||||
if (![accessToken isKindOfClass:[NSNull class]]) {
|
||||
self.mbglFileSource->setAccessToken(accessToken.UTF8String);
|
||||
}
|
||||
} else if ([keyPath isEqualToString:@"apiBaseURL"] && object == [MGLNetworkConfiguration sharedManager]) {
|
||||
NSURL *apiBaseURL = change[NSKeyValueChangeNewKey];
|
||||
if ([apiBaseURL isKindOfClass:[NSNull class]]) {
|
||||
self.mbglFileSource->setAPIBaseURL(mbgl::util::API_BASE_URL);
|
||||
} else {
|
||||
self.mbglFileSource->setAPIBaseURL(apiBaseURL.absoluteString.UTF8String);
|
||||
}
|
||||
} else {
|
||||
[super observeValueForKeyPath:keyPath ofObject:object change:change context:context];
|
||||
}
|
||||
|
||||
@@ -427,6 +427,9 @@
|
||||
DAED38641D62D0FC00D7640F /* NSURL+MGLAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = DAED38611D62D0FC00D7640F /* NSURL+MGLAdditions.h */; };
|
||||
DAED38651D62D0FC00D7640F /* NSURL+MGLAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = DAED38621D62D0FC00D7640F /* NSURL+MGLAdditions.m */; };
|
||||
DAED38661D62D0FC00D7640F /* NSURL+MGLAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = DAED38621D62D0FC00D7640F /* NSURL+MGLAdditions.m */; };
|
||||
DD0902A91DB1929D00C5BDCE /* MGLNetworkConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = DD0902A21DB18DE700C5BDCE /* MGLNetworkConfiguration.m */; };
|
||||
DD0902AA1DB1929D00C5BDCE /* MGLNetworkConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = DD0902A21DB18DE700C5BDCE /* MGLNetworkConfiguration.m */; };
|
||||
DD0902AB1DB192A800C5BDCE /* MGLNetworkConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = DD0902A41DB18F1B00C5BDCE /* MGLNetworkConfiguration.h */; };
|
||||
DD4823751D94AE6C00EB71B7 /* fill_filter_style.json in Resources */ = {isa = PBXBuildFile; fileRef = DD4823721D94AE6C00EB71B7 /* fill_filter_style.json */; };
|
||||
DD4823761D94AE6C00EB71B7 /* line_filter_style.json in Resources */ = {isa = PBXBuildFile; fileRef = DD4823731D94AE6C00EB71B7 /* line_filter_style.json */; };
|
||||
DD4823771D94AE6C00EB71B7 /* numeric_filter_style.json in Resources */ = {isa = PBXBuildFile; fileRef = DD4823741D94AE6C00EB71B7 /* numeric_filter_style.json */; };
|
||||
@@ -797,6 +800,8 @@
|
||||
DAD165771CF4CDFF001FF4B9 /* MGLShapeCollection.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGLShapeCollection.m; sourceTree = "<group>"; };
|
||||
DAED38611D62D0FC00D7640F /* NSURL+MGLAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSURL+MGLAdditions.h"; sourceTree = "<group>"; };
|
||||
DAED38621D62D0FC00D7640F /* NSURL+MGLAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSURL+MGLAdditions.m"; sourceTree = "<group>"; };
|
||||
DD0902A21DB18DE700C5BDCE /* MGLNetworkConfiguration.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGLNetworkConfiguration.m; sourceTree = "<group>"; };
|
||||
DD0902A41DB18F1B00C5BDCE /* MGLNetworkConfiguration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGLNetworkConfiguration.h; sourceTree = "<group>"; };
|
||||
DD4823721D94AE6C00EB71B7 /* fill_filter_style.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = fill_filter_style.json; sourceTree = "<group>"; };
|
||||
DD4823731D94AE6C00EB71B7 /* line_filter_style.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = line_filter_style.json; sourceTree = "<group>"; };
|
||||
DD4823741D94AE6C00EB71B7 /* numeric_filter_style.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = numeric_filter_style.json; sourceTree = "<group>"; };
|
||||
@@ -1138,6 +1143,8 @@
|
||||
DA8847DF1CBAFA5100AB86E3 /* MGLAccountManager.h */,
|
||||
DA8847FF1CBAFA6200AB86E3 /* MGLAccountManager_Private.h */,
|
||||
DA8848001CBAFA6200AB86E3 /* MGLAccountManager.m */,
|
||||
DD0902A41DB18F1B00C5BDCE /* MGLNetworkConfiguration.h */,
|
||||
DD0902A21DB18DE700C5BDCE /* MGLNetworkConfiguration.m */,
|
||||
DA8847E21CBAFA5100AB86E3 /* MGLMapCamera.h */,
|
||||
DA8848031CBAFA6200AB86E3 /* MGLMapCamera.mm */,
|
||||
DA8847EC1CBAFA5100AB86E3 /* MGLStyle.h */,
|
||||
@@ -1488,6 +1495,7 @@
|
||||
350098CF1D482E10004B2AF0 /* NSArray+MGLStyleAttributeAdditions_Private.h in Headers */,
|
||||
3510FFEA1D6D9C7A00F413B2 /* NSComparisonPredicate+MGLAdditions.h in Headers */,
|
||||
DA6408DB1DA4E7D300908C90 /* MGLVectorStyleLayer.h in Headers */,
|
||||
DD0902AB1DB192A800C5BDCE /* MGLNetworkConfiguration.h in Headers */,
|
||||
DA8848571CBAFB9800AB86E3 /* MGLMapboxEvents.h in Headers */,
|
||||
DA8848311CBAFA6200AB86E3 /* NSString+MGLAdditions.h in Headers */,
|
||||
353933F81D3FB79F003F57D7 /* MGLLineStyleLayer.h in Headers */,
|
||||
@@ -2008,6 +2016,7 @@
|
||||
DA8848501CBAFB9800AB86E3 /* MGLAnnotationImage.m in Sources */,
|
||||
DA8848281CBAFA6200AB86E3 /* MGLShape.mm in Sources */,
|
||||
DA35A2B31CCA141D00E826B2 /* MGLCompassDirectionFormatter.m in Sources */,
|
||||
DD0902A91DB1929D00C5BDCE /* MGLNetworkConfiguration.m in Sources */,
|
||||
35D13AB91D3D15E300AFB4E0 /* MGLStyleLayer.mm in Sources */,
|
||||
DA35A2CB1CCAAAD200E826B2 /* NSValue+MGLAdditions.m in Sources */,
|
||||
DA8848321CBAFA6200AB86E3 /* NSString+MGLAdditions.m in Sources */,
|
||||
@@ -2083,6 +2092,7 @@
|
||||
DAA4E4261CBB730400178DFB /* MGLStyle.mm in Sources */,
|
||||
DAA4E41D1CBB730400178DFB /* MGLGeometry.mm in Sources */,
|
||||
DAA4E41F1CBB730400178DFB /* MGLMultiPoint.mm in Sources */,
|
||||
DD0902AA1DB1929D00C5BDCE /* MGLNetworkConfiguration.m in Sources */,
|
||||
DA35A2B41CCA141D00E826B2 /* MGLCompassDirectionFormatter.m in Sources */,
|
||||
35D13ABA1D3D15E300AFB4E0 /* MGLStyleLayer.mm in Sources */,
|
||||
DA35A2CC1CCAAAD200E826B2 /* NSValue+MGLAdditions.m in Sources */,
|
||||
|
||||
@@ -7,10 +7,6 @@
|
||||
|
||||
@implementation MGLNSDataAdditionsTests
|
||||
|
||||
- (void)setUp {
|
||||
[super setUp];
|
||||
}
|
||||
|
||||
- (void)testCompressDecompress
|
||||
{
|
||||
NSArray *originalArray = [self mockDataWithCount:180];
|
||||
|
||||
@@ -193,6 +193,8 @@
|
||||
DAE6C3D61CC34C9900DB3429 /* MGLStyleTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = DAE6C3CC1CC34BD800DB3429 /* MGLStyleTests.mm */; };
|
||||
DAED385F1D62CED700D7640F /* NSURL+MGLAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = DAED385D1D62CED700D7640F /* NSURL+MGLAdditions.h */; };
|
||||
DAED38601D62CED700D7640F /* NSURL+MGLAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = DAED385E1D62CED700D7640F /* NSURL+MGLAdditions.m */; };
|
||||
DD0902B21DB1AC6400C5BDCE /* MGLNetworkConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = DD0902AF1DB1AC6400C5BDCE /* MGLNetworkConfiguration.m */; };
|
||||
DD0902B31DB1AC6400C5BDCE /* MGLNetworkConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = DD0902B01DB1AC6400C5BDCE /* MGLNetworkConfiguration.h */; };
|
||||
DD58A4C91D822C6700E1F038 /* MGLExpressionTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = DD58A4C71D822C6200E1F038 /* MGLExpressionTests.mm */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
@@ -440,6 +442,8 @@
|
||||
DAE6C3CC1CC34BD800DB3429 /* MGLStyleTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = MGLStyleTests.mm; path = ../../darwin/test/MGLStyleTests.mm; sourceTree = "<group>"; };
|
||||
DAED385D1D62CED700D7640F /* NSURL+MGLAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSURL+MGLAdditions.h"; sourceTree = "<group>"; };
|
||||
DAED385E1D62CED700D7640F /* NSURL+MGLAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSURL+MGLAdditions.m"; sourceTree = "<group>"; };
|
||||
DD0902AF1DB1AC6400C5BDCE /* MGLNetworkConfiguration.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGLNetworkConfiguration.m; sourceTree = "<group>"; };
|
||||
DD0902B01DB1AC6400C5BDCE /* MGLNetworkConfiguration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGLNetworkConfiguration.h; sourceTree = "<group>"; };
|
||||
DD58A4C71D822C6200E1F038 /* MGLExpressionTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = MGLExpressionTests.mm; path = ../../darwin/test/MGLExpressionTests.mm; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
@@ -831,6 +835,8 @@
|
||||
DAE6C34A1CC31E0400DB3429 /* MGLAccountManager.h */,
|
||||
DAE6C36A1CC31E2A00DB3429 /* MGLAccountManager_Private.h */,
|
||||
DAE6C36B1CC31E2A00DB3429 /* MGLAccountManager.m */,
|
||||
DD0902B01DB1AC6400C5BDCE /* MGLNetworkConfiguration.h */,
|
||||
DD0902AF1DB1AC6400C5BDCE /* MGLNetworkConfiguration.m */,
|
||||
DAE6C34D1CC31E0400DB3429 /* MGLMapCamera.h */,
|
||||
DAE6C36E1CC31E2A00DB3429 /* MGLMapCamera.mm */,
|
||||
DAE6C3571CC31E0400DB3429 /* MGLStyle.h */,
|
||||
@@ -935,6 +941,7 @@
|
||||
DA8F25B11D51CB270010E6B5 /* NSString+MGLStyleAttributeAdditions_Private.h in Headers */,
|
||||
3593E52A1D52A628006D9365 /* MGLStyleAttribute.h in Headers */,
|
||||
35C5D8491D6DD66D00E95907 /* NSCompoundPredicate+MGLAdditions.h in Headers */,
|
||||
DD0902B31DB1AC6400C5BDCE /* MGLNetworkConfiguration.h in Headers */,
|
||||
DAE6C3621CC31E0400DB3429 /* MGLOverlay.h in Headers */,
|
||||
DAE6C3651CC31E0400DB3429 /* MGLPolyline.h in Headers */,
|
||||
DAE6C39A1CC31E2A00DB3429 /* NSProcessInfo+MGLAdditions.h in Headers */,
|
||||
@@ -1160,6 +1167,7 @@
|
||||
40B77E461DB11BCD003DA2FE /* NSArray+MGLAdditions.mm in Sources */,
|
||||
DAE6C38C1CC31E2A00DB3429 /* MGLOfflinePack.mm in Sources */,
|
||||
35D65C5B1D65AD5500722C23 /* NSDate+MGLAdditions.mm in Sources */,
|
||||
DD0902B21DB1AC6400C5BDCE /* MGLNetworkConfiguration.m in Sources */,
|
||||
DAE6C3B11CC31EF300DB3429 /* MGLAnnotationImage.m in Sources */,
|
||||
3508EC651D749D39009B0EE4 /* NSExpression+MGLAdditions.mm in Sources */,
|
||||
DACC22151CF3D3E200D220D9 /* MGLFeature.mm in Sources */,
|
||||
|
||||
Reference in New Issue
Block a user