summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjmkiley <jordan.kiley@mapbox.com>2019-06-27 15:18:44 -0700
committerjmkiley <jordan.kiley@mapbox.com>2019-07-09 15:03:39 -0700
commit495fe30146c70f85dda1f1a77462515cabb23546 (patch)
treed79ff9c671b84d85ad0afe384928386bc34b2de0
parenta1027e93c618926ec680e0086ed7909ddb643bc8 (diff)
downloadqtlocation-mapboxgl-495fe30146c70f85dda1f1a77462515cabb23546.tar.gz
[ios] Started invalidateOfflineRegion
-rw-r--r--platform/darwin/src/MGLOfflineStorage.mm34
1 files changed, 23 insertions, 11 deletions
diff --git a/platform/darwin/src/MGLOfflineStorage.mm b/platform/darwin/src/MGLOfflineStorage.mm
index b91da5b26c..3e30c1f6ed 100644
--- a/platform/darwin/src/MGLOfflineStorage.mm
+++ b/platform/darwin/src/MGLOfflineStorage.mm
@@ -443,21 +443,33 @@ const MGLExceptionName MGLUnsupportedRegionTypeException = @"MGLUnsupportedRegio
});
}
});
+
}
-- (void)invalidateOfflineRegion:(MGLShapeOfflineRegion *)region withCompletionHandler:(void (^)(NSError * _Nullable))completion {
+- (void)invalidateOfflineRegion:(id <MGLOfflineRegion>)region withCompletionHandler:(void (^)(NSError * _Nullable))completion {
if (!completion) { return; }
- const mbgl::OfflineRegionDefinition mbglRegionDefinition = [(id <MGLOfflineRegion_Private>)region offlineRegionDefinition];
- // JK - I need to convert the MGLOfflineRegion to an OfflineRegion
-
-// _mbglFileSource->invalidateOfflineRegion(std::move *region, [&, completion](std::exception_ptr exception) {
-// NSError *error;
-// if (error) {
-// error = [NSError errorWithDomain:MGLErrorDomain code:-1 userInfo:@{
-//
-// }];
-// }
+
+ if (![region conformsToProtocol:@protocol(MGLOfflineRegion_Private)]) {
+ [NSException raise:MGLUnsupportedRegionTypeException
+ format:@"Regions of type %@ are unsupported.", NSStringFromClass([region class])];
+ return;
+ }
+
+// const mbgl::OfflineRegionDefinition regionDefinition = [(id <MGLOfflineRegion_Private>)region offlineRegionDefinition];
+// _mbglFileSource->createOfflineRegion(regionDefinition, nil, [&, completion](mbgl::expected<mbgl::OfflineRegion, std::exception_ptr> mbglOfflineRegion) {
// });
+// // JK - I need to convert the MGLOfflineRegion to an OfflineRegion. :ohno:
+// mbgl::OfflineRegion offlineRegion = const_cast<mbgl::OfflineRegion>(region);
+ MGLShapeOfflineRegion *weakCopy = region;
+
+ _mbglFileSource->invalidateOfflineRegion(weakCopy, [&, completion](std::exception_ptr exception) {
+ NSError *error;
+ if (error) {
+ error = [NSError errorWithDomain:MGLErrorDomain code:-1 userInfo:@{
+
+ }];
+ }
+ });
}
- (void)reloadPacks {
MGLLogInfo(@"Reloading packs.");