summaryrefslogtreecommitdiff
path: root/platform/darwin/src/native_apple_interface.m
diff options
context:
space:
mode:
Diffstat (limited to 'platform/darwin/src/native_apple_interface.m')
-rw-r--r--platform/darwin/src/native_apple_interface.m73
1 files changed, 73 insertions, 0 deletions
diff --git a/platform/darwin/src/native_apple_interface.m b/platform/darwin/src/native_apple_interface.m
new file mode 100644
index 0000000000..07dce0d5b0
--- /dev/null
+++ b/platform/darwin/src/native_apple_interface.m
@@ -0,0 +1,73 @@
+#import <Foundation/Foundation.h>
+#import <mbgl/interface/native_apple_interface.h>
+
+@implementation MGLNativeNetworkManager
+
+static MGLNativeNetworkManager *instance = nil;
+
++ (MGLNativeNetworkManager *)sharedManager {
+ static dispatch_once_t onceToken;
+ dispatch_once(&onceToken, ^{
+ instance = [[MGLNativeNetworkManager alloc] init];
+ });
+ return instance;
+}
+
+- (NSURLSessionConfiguration *)sessionConfiguration {
+ if (_delegate && [_delegate respondsToSelector:@selector(sessionConfiguration)]) {
+ return [_delegate sessionConfiguration];
+ }
+ // For testing. Since we get a `nil` return when SDK is modualar, we use this for testing requests.
+ // Same as `[MGLNetworkConfiguration defaultSessionConfiguration]` in `MGLNetworkConfiguration.m`.
+ return [self testSessionConfiguration];
+}
+
+- (NSURLSessionConfiguration *)testSessionConfiguration {
+ NSURLSessionConfiguration* sessionConfiguration = [NSURLSessionConfiguration defaultSessionConfiguration];
+
+ sessionConfiguration.timeoutIntervalForResource = 30;
+ sessionConfiguration.HTTPMaximumConnectionsPerHost = 8;
+ sessionConfiguration.requestCachePolicy = NSURLRequestReloadIgnoringLocalCacheData;
+ sessionConfiguration.URLCache = nil;
+
+ return sessionConfiguration;
+}
+
+- (NSString *)skuToken {
+ if(_delegate && [_delegate respondsToSelector:@selector(skuToken)]) {
+ return [_delegate skuToken];
+ }
+ return nil;
+}
+
+- (void)startDownloadEvent:(NSString *)event type:(NSString *)type {
+ if (_delegate && [_delegate respondsToSelector:@selector(startDownloadEvent:type:)]) {
+ [_delegate startDownloadEvent:event type:type];
+ }
+}
+
+- (void)cancelDownloadEventForResponse:(NSURLResponse *)response {
+ if (_delegate && [_delegate respondsToSelector:@selector(cancelDownloadEventForResponse:)]) {
+ return [_delegate cancelDownloadEventForResponse:response];
+ }
+}
+
+- (void)stopDownloadEventForResponse:(NSURLResponse *)response {
+ if (_delegate && [_delegate respondsToSelector:@selector(stopDownloadEventForResponse:)]) {
+ return [_delegate stopDownloadEventForResponse:response];
+ }
+}
+
+- (void)debugLog:(NSString *)format, ...{
+ if (_delegate && [_delegate respondsToSelector:@selector(debugLog:)]) {
+ return [_delegate debugLog:format];
+ }
+}
+
+- (void)errorLog:(NSString *)format, ...{
+ if (_delegate && [_delegate respondsToSelector:@selector(errorLog:)]) {
+ return [_delegate errorLog:format];
+ }
+}
+
+@end