From 0d59621876372068d4d1b375d7d52f24b59f3e78 Mon Sep 17 00:00:00 2001 From: Fabian Guerra Date: Tue, 17 Sep 2019 14:34:47 -0700 Subject: [ios] Add a flag to pause network requests. --- platform/darwin/src/MGLNetworkConfiguration.h | 8 ++++++++ platform/darwin/src/http_file_source.mm | 4 ++++ 2 files changed, 12 insertions(+) diff --git a/platform/darwin/src/MGLNetworkConfiguration.h b/platform/darwin/src/MGLNetworkConfiguration.h index 6c56050aae..91932c2d1d 100644 --- a/platform/darwin/src/MGLNetworkConfiguration.h +++ b/platform/darwin/src/MGLNetworkConfiguration.h @@ -32,6 +32,14 @@ MGL_EXPORT */ @property (atomic, strong, null_resettable) NSURLSessionConfiguration *sessionConfiguration; +/** +A Boolean value indicating whether the current `NSURLSessionConfiguration` stops +making network requests. + +The default value of this property is `NO`. +*/ +@property (atomic, assign) BOOL stopsRequests; + @end NS_ASSUME_NONNULL_END diff --git a/platform/darwin/src/http_file_source.mm b/platform/darwin/src/http_file_source.mm index b0f69f4a7f..09562e0347 100644 --- a/platform/darwin/src/http_file_source.mm +++ b/platform/darwin/src/http_file_source.mm @@ -229,6 +229,10 @@ NSURL *resourceURLWithAccountType(const Resource& resource, NSInteger accountTyp std::unique_ptr HTTPFileSource::request(const Resource& resource, Callback callback) { auto request = std::make_unique(callback); auto shared = request->shared; // Explicit copy so that it also gets copied into the completion handler block below. + + if ([MGLNetworkConfiguration sharedManager].stopsRequests) { + return std::move(request); + } @autoreleasepool { NSURL *url = resourceURLWithAccountType(resource, impl->accountType); -- cgit v1.2.1