diff options
30 files changed, 102 insertions, 85 deletions
diff --git a/platform/darwin/include/mbgl/storage/reachability.h b/platform/darwin/include/mbgl/storage/reachability.h index e38c9b1e20..e7a00008be 100644 --- a/platform/darwin/include/mbgl/storage/reachability.h +++ b/platform/darwin/include/mbgl/storage/reachability.h @@ -69,8 +69,6 @@ typedef void (^NetworkUnreachable)(MGLReachability * reachability); +(instancetype)reachabilityWithAddress:(void *)hostAddress; +(instancetype)reachabilityForLocalWiFi; --(instancetype)initWithReachabilityRef:(SCNetworkReachabilityRef)ref; - -(BOOL)startNotifier; -(void)stopNotifier; diff --git a/platform/darwin/src/NSExpression+MGLAdditions.h b/platform/darwin/src/NSExpression+MGLAdditions.h index 9ef6623068..a19ec1af2e 100644 --- a/platform/darwin/src/NSExpression+MGLAdditions.h +++ b/platform/darwin/src/NSExpression+MGLAdditions.h @@ -190,7 +190,7 @@ FOUNDATION_EXTERN MGL_EXPORT const MGLExpressionInterpolationMode MGLExpressionI @return An initialized expression equivalent to `object`, suitable for use as the value of a style layer attribute. */ -+ (instancetype)expressionWithMGLJSONObject:(nullable id)object NS_SWIFT_NAME(init(mglJSONObject:)); ++ (instancetype)expressionWithMGLJSONObject:(id)object NS_SWIFT_NAME(init(mglJSONObject:)); /** An equivalent Foundation object that can be serialized as JSON. diff --git a/platform/darwin/src/NSExpression+MGLAdditions.mm b/platform/darwin/src/NSExpression+MGLAdditions.mm index 026d8bec02..b3060b5787 100644 --- a/platform/darwin/src/NSExpression+MGLAdditions.mm +++ b/platform/darwin/src/NSExpression+MGLAdditions.mm @@ -792,6 +792,9 @@ NSArray *MGLSubexpressionsWithJSONObjects(NSArray *objects) { } else if ([curveType isEqualToString:@"cubic-bezier"]) { curveParameters = @[@"literal", [interpolationOptions subarrayWithRange:NSMakeRange(1, 4)]]; } + else { + curveParameters = [NSNull null]; + } NSExpression *curveParameterExpression = [NSExpression expressionWithMGLJSONObject:curveParameters]; argumentObjects = [argumentObjects subarrayWithRange:NSMakeRange(1, argumentObjects.count - 1)]; NSExpression *inputExpression = [NSExpression expressionWithMGLJSONObject:argumentObjects.firstObject]; diff --git a/platform/darwin/src/reachability.m b/platform/darwin/src/reachability.m index 2030e7ef71..737145a8a7 100644 --- a/platform/darwin/src/reachability.m +++ b/platform/darwin/src/reachability.m @@ -100,6 +100,8 @@ static void TMReachabilityCallback(SCNetworkReachabilityRef target, SCNetworkRea { id reachability = [[self alloc] initWithReachabilityRef:ref]; + CFRelease(ref); + return reachability; } @@ -113,6 +115,8 @@ static void TMReachabilityCallback(SCNetworkReachabilityRef target, SCNetworkRea { id reachability = [[self alloc] initWithReachabilityRef:ref]; + CFRelease(ref); + return reachability; } @@ -149,13 +153,13 @@ static void TMReachabilityCallback(SCNetworkReachabilityRef target, SCNetworkRea self = [super init]; if (self != nil) { - self.reachableOnWWAN = YES; - self.reachabilityRef = ref; + _reachableOnWWAN = YES; + _reachabilityRef = CFRetain(ref); // We need to create a serial queue. // We allocate this once for the lifetime of the notifier. - self.reachabilitySerialQueue = dispatch_queue_create("com.tonymillion.reachability", NULL); + _reachabilitySerialQueue = dispatch_queue_create("com.tonymillion.reachability", NULL); } return self; @@ -165,15 +169,15 @@ static void TMReachabilityCallback(SCNetworkReachabilityRef target, SCNetworkRea { [self stopNotifier]; - if(self.reachabilityRef) + if(_reachabilityRef) { - CFRelease(self.reachabilityRef); - self.reachabilityRef = nil; + CFRelease(_reachabilityRef); + _reachabilityRef = nil; } - self.reachableBlock = nil; - self.unreachableBlock = nil; - self.reachabilitySerialQueue = nil; + _reachableBlock = nil; + _unreachableBlock = nil; + _reachabilitySerialQueue = nil; } #pragma mark - Notifier Methods diff --git a/platform/ios/ios.xcodeproj/project.pbxproj b/platform/ios/ios.xcodeproj/project.pbxproj index be0c2388f5..c1b0b875a2 100644 --- a/platform/ios/ios.xcodeproj/project.pbxproj +++ b/platform/ios/ios.xcodeproj/project.pbxproj @@ -3749,6 +3749,8 @@ isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ANALYZER_LOCALIZABILITY_EMPTY_CONTEXT = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = NO; DEVELOPMENT_TEAM = ""; INFOPLIST_FILE = "$(SRCROOT)/app/Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; @@ -4094,6 +4096,8 @@ isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ANALYZER_LOCALIZABILITY_EMPTY_CONTEXT = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = NO; DEVELOPMENT_TEAM = ""; INFOPLIST_FILE = "$(SRCROOT)/app/Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; @@ -4106,6 +4110,8 @@ isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ANALYZER_LOCALIZABILITY_EMPTY_CONTEXT = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = NO; DEVELOPMENT_TEAM = ""; INFOPLIST_FILE = "$(SRCROOT)/app/Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; diff --git a/platform/ios/resources/Base.lproj/Localizable.strings b/platform/ios/resources/Base.lproj/Localizable.strings index d660cb6ddd..e1bfc0b256 100644 --- a/platform/ios/resources/Base.lproj/Localizable.strings +++ b/platform/ios/resources/Base.lproj/Localizable.strings @@ -1,7 +1,7 @@ /* Accessibility hint */ "ANNOTATION_A11Y_HINT" = "Shows more info"; -/* No comment provided by engineer. */ +/* Title of button for dismissing attribution action sheet */ "CANCEL" = "Cancel"; /* Accessibility hint for closing the selected annotation’s callout view and returning to the map */ @@ -20,7 +20,7 @@ "DESIGNABLE" = "To display a Mapbox-hosted map here, set %1$@ to your access token in %2$@\n\nFor detailed instructions, see:"; /* Setup documentation URL display string; keep as short as possible */ -"FIRST_STEPS_URL" = "mapbox.com/help/first-steps-ios-sdk"; +"FIRST_STEPS_URL" = "docs.mapbox.com/help/tutorials/first-steps-ios-sdk"; /* Accessibility hint */ "INFO_A11Y_HINT" = "Shows credits, a feedback form, and more"; diff --git a/platform/ios/resources/bg.lproj/Localizable.strings b/platform/ios/resources/bg.lproj/Localizable.strings index 777f4fe563..9b77111d30 100644 --- a/platform/ios/resources/bg.lproj/Localizable.strings +++ b/platform/ios/resources/bg.lproj/Localizable.strings @@ -7,7 +7,7 @@ /* No comment provided by engineer. */ "API_CLIENT_400_REASON" = "Статус код %ld"; -/* No comment provided by engineer. */ +/* Title of button for dismissing attribution action sheet */ "CANCEL" = "Отказ"; /* Accessibility hint for closing the selected annotation’s callout view and returning to the map */ diff --git a/platform/ios/resources/ca.lproj/Localizable.strings b/platform/ios/resources/ca.lproj/Localizable.strings index a5c06f739e..41996b191f 100644 --- a/platform/ios/resources/ca.lproj/Localizable.strings +++ b/platform/ios/resources/ca.lproj/Localizable.strings @@ -7,7 +7,7 @@ /* No comment provided by engineer. */ "API_CLIENT_400_REASON" = "El codi d’estat era %ld"; -/* No comment provided by engineer. */ +/* Title of button for dismissing attribution action sheet */ "CANCEL" = "Cancel·lar"; /* Accessibility hint for closing the selected annotation’s callout view and returning to the map */ diff --git a/platform/ios/resources/cs.lproj/Localizable.strings b/platform/ios/resources/cs.lproj/Localizable.strings index d660cb6ddd..587e67a054 100644 --- a/platform/ios/resources/cs.lproj/Localizable.strings +++ b/platform/ios/resources/cs.lproj/Localizable.strings @@ -1,7 +1,7 @@ /* Accessibility hint */ "ANNOTATION_A11Y_HINT" = "Shows more info"; -/* No comment provided by engineer. */ +/* Title of button for dismissing attribution action sheet */ "CANCEL" = "Cancel"; /* Accessibility hint for closing the selected annotation’s callout view and returning to the map */ diff --git a/platform/ios/resources/da.lproj/Localizable.strings b/platform/ios/resources/da.lproj/Localizable.strings index dd384b21fc..f1af0c39db 100644 --- a/platform/ios/resources/da.lproj/Localizable.strings +++ b/platform/ios/resources/da.lproj/Localizable.strings @@ -7,7 +7,7 @@ /* No comment provided by engineer. */ "API_CLIENT_400_REASON" = "Status koden var %ld"; -/* No comment provided by engineer. */ +/* Title of button for dismissing attribution action sheet */ "CANCEL" = "Fortryd"; /* Accessibility hint for closing the selected annotation’s callout view and returning to the map */ diff --git a/platform/ios/resources/de.lproj/Localizable.strings b/platform/ios/resources/de.lproj/Localizable.strings index f3e5dfe2f1..c340a78770 100644 --- a/platform/ios/resources/de.lproj/Localizable.strings +++ b/platform/ios/resources/de.lproj/Localizable.strings @@ -7,7 +7,7 @@ /* No comment provided by engineer. */ "API_CLIENT_400_REASON" = "Der Statuscode ist %ld"; -/* No comment provided by engineer. */ +/* Title of button for dismissing attribution action sheet */ "CANCEL" = "Abbrechen"; /* Accessibility hint for closing the selected annotation’s callout view and returning to the map */ diff --git a/platform/ios/resources/es.lproj/Localizable.strings b/platform/ios/resources/es.lproj/Localizable.strings index 90811be973..b2da706d8c 100644 --- a/platform/ios/resources/es.lproj/Localizable.strings +++ b/platform/ios/resources/es.lproj/Localizable.strings @@ -7,7 +7,7 @@ /* No comment provided by engineer. */ "API_CLIENT_400_REASON" = "El código de estado fue %ld"; -/* No comment provided by engineer. */ +/* Title of button for dismissing attribution action sheet */ "CANCEL" = "Cancelar"; /* Accessibility hint for closing the selected annotation’s callout view and returning to the map */ diff --git a/platform/ios/resources/fr.lproj/Localizable.strings b/platform/ios/resources/fr.lproj/Localizable.strings index f75d067251..17a0240517 100644 --- a/platform/ios/resources/fr.lproj/Localizable.strings +++ b/platform/ios/resources/fr.lproj/Localizable.strings @@ -1,7 +1,7 @@ /* Accessibility hint */ "ANNOTATION_A11Y_HINT" = "Afficher plus d’informations"; -/* No comment provided by engineer. */ +/* Title of button for dismissing attribution action sheet */ "CANCEL" = "Annuler"; /* Accessibility hint for closing the selected annotation’s callout view and returning to the map */ diff --git a/platform/ios/resources/gl.lproj/Localizable.strings b/platform/ios/resources/gl.lproj/Localizable.strings index 2ab14fd0b5..083423d434 100644 --- a/platform/ios/resources/gl.lproj/Localizable.strings +++ b/platform/ios/resources/gl.lproj/Localizable.strings @@ -1,7 +1,7 @@ /* Accessibility hint */ "ANNOTATION_A11Y_HINT" = "Amosa máis información"; -/* No comment provided by engineer. */ +/* Title of button for dismissing attribution action sheet */ "CANCEL" = "Desbotar"; /* Accessibility hint for closing the selected annotation’s callout view and returning to the map */ diff --git a/platform/ios/resources/he.lproj/Localizable.strings b/platform/ios/resources/he.lproj/Localizable.strings index 9503c16d3d..2e4c9a17fb 100644 --- a/platform/ios/resources/he.lproj/Localizable.strings +++ b/platform/ios/resources/he.lproj/Localizable.strings @@ -7,7 +7,7 @@ /* No comment provided by engineer. */ "API_CLIENT_400_REASON" = "סטטוס הקוד היה %ld"; -/* No comment provided by engineer. */ +/* Title of button for dismissing attribution action sheet */ "CANCEL" = "ביטול"; /* Accessibility hint for closing the selected annotation’s callout view and returning to the map */ diff --git a/platform/ios/resources/hu.lproj/Localizable.strings b/platform/ios/resources/hu.lproj/Localizable.strings index e4c9882600..bac747b4a2 100644 --- a/platform/ios/resources/hu.lproj/Localizable.strings +++ b/platform/ios/resources/hu.lproj/Localizable.strings @@ -7,7 +7,7 @@ /* No comment provided by engineer. */ "API_CLIENT_400_REASON" = "A státuszkód %ld volt"; -/* No comment provided by engineer. */ +/* Title of button for dismissing attribution action sheet */ "CANCEL" = "Mégse"; /* Accessibility hint for closing the selected annotation’s callout view and returning to the map */ diff --git a/platform/ios/resources/ja.lproj/Localizable.strings b/platform/ios/resources/ja.lproj/Localizable.strings index 0bcb706cae..0b5429b487 100644 --- a/platform/ios/resources/ja.lproj/Localizable.strings +++ b/platform/ios/resources/ja.lproj/Localizable.strings @@ -7,7 +7,7 @@ /* No comment provided by engineer. */ "API_CLIENT_400_REASON" = "The status code was %ld"; -/* No comment provided by engineer. */ +/* Title of button for dismissing attribution action sheet */ "CANCEL" = "キャンセル"; /* Accessibility hint */ diff --git a/platform/ios/resources/ko.lproj/Localizable.strings b/platform/ios/resources/ko.lproj/Localizable.strings index 40136803d1..6374fc72df 100644 --- a/platform/ios/resources/ko.lproj/Localizable.strings +++ b/platform/ios/resources/ko.lproj/Localizable.strings @@ -7,7 +7,7 @@ /* No comment provided by engineer. */ "API_CLIENT_400_REASON" = "상태 코드 %ld"; -/* No comment provided by engineer. */ +/* Title of button for dismissing attribution action sheet */ "CANCEL" = "취소"; /* Accessibility hint for closing the selected annotation’s callout view and returning to the map */ diff --git a/platform/ios/resources/lt.lproj/Localizable.strings b/platform/ios/resources/lt.lproj/Localizable.strings index e8424434b9..2f2e30f966 100644 --- a/platform/ios/resources/lt.lproj/Localizable.strings +++ b/platform/ios/resources/lt.lproj/Localizable.strings @@ -7,7 +7,7 @@ /* No comment provided by engineer. */ "API_CLIENT_400_REASON" = "Būklės kodas: %ld"; -/* No comment provided by engineer. */ +/* Title of button for dismissing attribution action sheet */ "CANCEL" = "Atšaukti"; /* Accessibility hint for closing the selected annotation’s callout view and returning to the map */ diff --git a/platform/ios/resources/pt-BR.lproj/Localizable.strings b/platform/ios/resources/pt-BR.lproj/Localizable.strings index 4e7e998ab3..d80c943c7e 100644 --- a/platform/ios/resources/pt-BR.lproj/Localizable.strings +++ b/platform/ios/resources/pt-BR.lproj/Localizable.strings @@ -7,7 +7,7 @@ /* No comment provided by engineer. */ "API_CLIENT_400_REASON" = "O código de status foi %ld"; -/* No comment provided by engineer. */ +/* Title of button for dismissing attribution action sheet */ "CANCEL" = "Cancelar"; /* Accessibility hint for closing the selected annotation’s callout view and returning to the map */ diff --git a/platform/ios/resources/pt-PT.lproj/Localizable.strings b/platform/ios/resources/pt-PT.lproj/Localizable.strings index bed26df478..8104ef5842 100644 --- a/platform/ios/resources/pt-PT.lproj/Localizable.strings +++ b/platform/ios/resources/pt-PT.lproj/Localizable.strings @@ -7,7 +7,7 @@ /* No comment provided by engineer. */ "API_CLIENT_400_REASON" = "O código de estado era %ld"; -/* No comment provided by engineer. */ +/* Title of button for dismissing attribution action sheet */ "CANCEL" = "Cancelar"; /* Accessibility hint for closing the selected annotation’s callout view and returning to the map */ diff --git a/platform/ios/resources/ru.lproj/Localizable.strings b/platform/ios/resources/ru.lproj/Localizable.strings index b6ceffd520..5bb987489e 100644 --- a/platform/ios/resources/ru.lproj/Localizable.strings +++ b/platform/ios/resources/ru.lproj/Localizable.strings @@ -7,7 +7,7 @@ /* No comment provided by engineer. */ "API_CLIENT_400_REASON" = "Код ответа %ld"; -/* No comment provided by engineer. */ +/* Title of button for dismissing attribution action sheet */ "CANCEL" = "Отмена"; /* Accessibility hint for closing the selected annotation’s callout view and returning to the map */ diff --git a/platform/ios/resources/sv.lproj/Localizable.strings b/platform/ios/resources/sv.lproj/Localizable.strings index d136f9e52f..db189f141f 100644 --- a/platform/ios/resources/sv.lproj/Localizable.strings +++ b/platform/ios/resources/sv.lproj/Localizable.strings @@ -7,7 +7,7 @@ /* No comment provided by engineer. */ "API_CLIENT_400_REASON" = "Statuskoden var %ld"; -/* No comment provided by engineer. */ +/* Title of button for dismissing attribution action sheet */ "CANCEL" = "Avbryt"; /* Accessibility hint for closing the selected annotation’s callout view and returning to the map */ diff --git a/platform/ios/resources/uk.lproj/Localizable.strings b/platform/ios/resources/uk.lproj/Localizable.strings index 4e5a452b95..f413b963c1 100644 --- a/platform/ios/resources/uk.lproj/Localizable.strings +++ b/platform/ios/resources/uk.lproj/Localizable.strings @@ -7,7 +7,7 @@ /* No comment provided by engineer. */ "API_CLIENT_400_REASON" = "Код стану %ld"; -/* No comment provided by engineer. */ +/* Title of button for dismissing attribution action sheet */ "CANCEL" = "Скасувати"; /* Accessibility hint for closing the selected annotation’s callout view and returning to the map */ diff --git a/platform/ios/resources/vi.lproj/Localizable.strings b/platform/ios/resources/vi.lproj/Localizable.strings index 06242a39e7..0a6d937d2c 100644 --- a/platform/ios/resources/vi.lproj/Localizable.strings +++ b/platform/ios/resources/vi.lproj/Localizable.strings @@ -7,7 +7,7 @@ /* No comment provided by engineer. */ "API_CLIENT_400_REASON" = "Mã trạng thái là %ld"; -/* No comment provided by engineer. */ +/* Title of button for dismissing attribution action sheet */ "CANCEL" = "Hủy bỏ"; /* Accessibility hint for closing the selected annotation’s callout view and returning to the map */ diff --git a/platform/ios/resources/zh-Hans.lproj/Localizable.strings b/platform/ios/resources/zh-Hans.lproj/Localizable.strings index 1a3453e209..98d4e345fa 100644 --- a/platform/ios/resources/zh-Hans.lproj/Localizable.strings +++ b/platform/ios/resources/zh-Hans.lproj/Localizable.strings @@ -7,7 +7,7 @@ /* No comment provided by engineer. */ "API_CLIENT_400_REASON" = "The status code was %ld"; -/* No comment provided by engineer. */ +/* Title of button for dismissing attribution action sheet */ "CANCEL" = "取消"; /* Accessibility hint for closing the selected annotation’s callout view and returning to the map */ diff --git a/platform/ios/resources/zh-Hant.lproj/Localizable.strings b/platform/ios/resources/zh-Hant.lproj/Localizable.strings index d660a3d1ae..abdee6d3ab 100644 --- a/platform/ios/resources/zh-Hant.lproj/Localizable.strings +++ b/platform/ios/resources/zh-Hant.lproj/Localizable.strings @@ -7,7 +7,7 @@ /* No comment provided by engineer. */ "API_CLIENT_400_REASON" = "The status code was %ld"; -/* No comment provided by engineer. */ +/* Title of button for dismissing attribution action sheet */ "CANCEL" = "取消"; /* Accessibility hint for closing the selected annotation’s callout view and returning to the map */ diff --git a/platform/ios/src/MGLMapView.h b/platform/ios/src/MGLMapView.h index 2423d62ee1..607a197840 100644 --- a/platform/ios/src/MGLMapView.h +++ b/platform/ios/src/MGLMapView.h @@ -1130,7 +1130,7 @@ MGL_EXPORT `UIApplicationWillTerminateNotification`; you may receive a `nil` return value depending on the order of notification delivery. */ -- (nullable MGLMapCamera *)cameraThatFitsCoordinateBounds:(MGLCoordinateBounds)bounds edgePadding:(UIEdgeInsets)insets; +- (MGLMapCamera *)cameraThatFitsCoordinateBounds:(MGLCoordinateBounds)bounds edgePadding:(UIEdgeInsets)insets; /** Returns the camera that best fits the given coordinate bounds, with the specified camera, @@ -1150,7 +1150,7 @@ MGL_EXPORT `UIApplicationWillTerminateNotification`; you may receive a `nil` return value depending on the order of notification delivery. */ -- (nullable MGLMapCamera *)camera:(MGLMapCamera *)camera fittingCoordinateBounds:(MGLCoordinateBounds)bounds edgePadding:(UIEdgeInsets)insets; +- (MGLMapCamera *)camera:(MGLMapCamera *)camera fittingCoordinateBounds:(MGLCoordinateBounds)bounds edgePadding:(UIEdgeInsets)insets; /** Returns the camera that best fits the given shape, with the specified camera, @@ -1169,7 +1169,7 @@ MGL_EXPORT `UIApplicationWillTerminateNotification`; you may receive a `nil` return value depending on the order of notification delivery. */ -- (nullable MGLMapCamera *)camera:(MGLMapCamera *)camera fittingShape:(MGLShape *)shape edgePadding:(UIEdgeInsets)insets; +- (MGLMapCamera *)camera:(MGLMapCamera *)camera fittingShape:(MGLShape *)shape edgePadding:(UIEdgeInsets)insets; /** Returns the camera that best fits the given shape, with the specified direction, @@ -1187,7 +1187,7 @@ MGL_EXPORT `UIApplicationWillTerminateNotification`; you may receive a `nil` return value depending on the order of notification delivery. */ -- (nullable MGLMapCamera *)cameraThatFitsShape:(MGLShape *)shape direction:(CLLocationDirection)direction edgePadding:(UIEdgeInsets)insets; +- (MGLMapCamera *)cameraThatFitsShape:(MGLShape *)shape direction:(CLLocationDirection)direction edgePadding:(UIEdgeInsets)insets; /** Returns the point in this view’s coordinate system on which to "anchor" in diff --git a/platform/ios/src/MGLMapView.mm b/platform/ios/src/MGLMapView.mm index b5383ee30e..7cebd57710 100644 --- a/platform/ios/src/MGLMapView.mm +++ b/platform/ios/src/MGLMapView.mm @@ -2481,7 +2481,7 @@ public: }]; [attributionController addAction:telemetryAction]; - NSString *cancelTitle = NSLocalizedStringWithDefaultValue(@"CANCEL", nil, nil, @"Cancel", @"Cancel"); + NSString *cancelTitle = NSLocalizedStringWithDefaultValue(@"CANCEL", nil, nil, @"Cancel", @"Title of button for dismissing attribution action sheet"); UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:cancelTitle style:UIAlertActionStyleCancel handler:NULL]; @@ -3873,9 +3873,9 @@ public: { if (!_mbglMap) { - return nil; + return self.residualCamera; } - + mbgl::EdgeInsets padding = MGLEdgeInsetsFromNSEdgeInsets(insets); padding += MGLEdgeInsetsFromNSEdgeInsets(self.contentInset); mbgl::CameraOptions cameraOptions = self.mbglMap.cameraForLatLngBounds(MGLLatLngBoundsFromCoordinateBounds(bounds), padding); @@ -3886,7 +3886,7 @@ public: { if (!_mbglMap) { - return nil; + return self.residualCamera; } mbgl::EdgeInsets padding = MGLEdgeInsetsFromNSEdgeInsets(insets); @@ -3903,7 +3903,7 @@ public: - (MGLMapCamera *)camera:(MGLMapCamera *)camera fittingShape:(MGLShape *)shape edgePadding:(UIEdgeInsets)insets { if (!_mbglMap) { - return nil; + return self.residualCamera; } mbgl::EdgeInsets padding = MGLEdgeInsetsFromNSEdgeInsets(insets); @@ -3921,7 +3921,7 @@ public: - (MGLMapCamera *)cameraThatFitsShape:(MGLShape *)shape direction:(CLLocationDirection)direction edgePadding:(UIEdgeInsets)insets { if (!_mbglMap) { - return nil; + return self.residualCamera; } mbgl::EdgeInsets padding = MGLEdgeInsetsFromNSEdgeInsets(insets); @@ -3936,7 +3936,7 @@ public: { if (!_mbglMap) { - return nil; + return self.residualCamera; } mbgl::CameraOptions mapCamera = self.mbglMap.getCameraOptions(); diff --git a/platform/ios/vendor/SMCalloutView/SMCalloutView.m b/platform/ios/vendor/SMCalloutView/SMCalloutView.m index 0520ba08a5..06626f9497 100755 --- a/platform/ios/vendor/SMCalloutView/SMCalloutView.m +++ b/platform/ios/vendor/SMCalloutView/SMCalloutView.m @@ -520,52 +520,58 @@ NSTimeInterval const kMGLSMCalloutViewRepositionDelayForUIScrollView = 1.0/3.0; - (CAAnimation *)animationWithType:(MGLSMCalloutAnimation)type presenting:(BOOL)presenting { CAAnimation *animation = nil; - if (type == MGLSMCalloutAnimationBounce) { - - CABasicAnimation *fade = [CABasicAnimation animationWithKeyPath:@"opacity"]; - fade.duration = 0.23; - fade.fromValue = presenting ? @0.0 : @1.0; - fade.toValue = presenting ? @1.0 : @0.0; - fade.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; - - CABasicAnimation *bounce = [CABasicAnimation animationWithKeyPath:@"transform.scale"]; - bounce.duration = 0.23; - bounce.fromValue = presenting ? @0.7 : @1.0; - bounce.toValue = presenting ? @1.0 : @0.7; - bounce.timingFunction = [CAMediaTimingFunction functionWithControlPoints:0.59367:0.12066:0.18878:1.5814]; - - CAAnimationGroup *group = [CAAnimationGroup animation]; - group.animations = @[fade, bounce]; - group.duration = 0.23; - - animation = group; - } - else if (type == MGLSMCalloutAnimationFade) { - CABasicAnimation *fade = [CABasicAnimation animationWithKeyPath:@"opacity"]; - fade.duration = 1.0/3.0; - fade.fromValue = presenting ? @0.0 : @1.0; - fade.toValue = presenting ? @1.0 : @0.0; - animation = fade; - } - else if (type == MGLSMCalloutAnimationStretch) { - CABasicAnimation *stretch = [CABasicAnimation animationWithKeyPath:@"transform.scale"]; - stretch.duration = 0.1; - stretch.fromValue = presenting ? @0.0 : @1.0; - stretch.toValue = presenting ? @1.0 : @0.0; - animation = stretch; + switch (type) + { + case MGLSMCalloutAnimationBounce: + { + CABasicAnimation *fade = [CABasicAnimation animationWithKeyPath:@"opacity"]; + fade.duration = 0.23; + fade.fromValue = presenting ? @0.0 : @1.0; + fade.toValue = presenting ? @1.0 : @0.0; + fade.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; + + CABasicAnimation *bounce = [CABasicAnimation animationWithKeyPath:@"transform.scale"]; + bounce.duration = 0.23; + bounce.fromValue = presenting ? @0.7 : @1.0; + bounce.toValue = presenting ? @1.0 : @0.7; + bounce.timingFunction = [CAMediaTimingFunction functionWithControlPoints:0.59367:0.12066:0.18878:1.5814]; + + CAAnimationGroup *group = [CAAnimationGroup animation]; + group.animations = @[fade, bounce]; + group.duration = 0.23; + + animation = group; + break; + } + + case MGLSMCalloutAnimationFade: + { + CABasicAnimation *fade = [CABasicAnimation animationWithKeyPath:@"opacity"]; + fade.duration = 1.0/3.0; + fade.fromValue = presenting ? @0.0 : @1.0; + fade.toValue = presenting ? @1.0 : @0.0; + animation = fade; + break; + } + + case MGLSMCalloutAnimationStretch: + { + CABasicAnimation *stretch = [CABasicAnimation animationWithKeyPath:@"transform.scale"]; + stretch.duration = 0.1; + stretch.fromValue = presenting ? @0.0 : @1.0; + stretch.toValue = presenting ? @1.0 : @0.0; + animation = stretch; + break; + } } - - NSAssert(animation, @"There should be an animation"); - + // CAAnimation is KVC compliant, so we can store whether we're presenting for lookup in our delegate methods [animation setValue:@(presenting) forKey:@"presenting"]; animation.fillMode = kCAFillModeForwards; animation.removedOnCompletion = NO; - // Cast as non-null to mute static analysis warning as documented at - // https://clang-analyzer.llvm.org/faq.html#decide_nullability - return (CAAnimation * _Nonnull)animation; + return animation; } - (void)layoutSubviews { |