diff options
author | Minh Nguyễn <mxn@1ec5.org> | 2017-02-07 18:26:49 -0800 |
---|---|---|
committer | Minh Nguyễn <mxn@1ec5.org> | 2017-02-08 16:54:09 -0800 |
commit | 360e5bf631229e2aec71780a515a42e32d4c28e6 (patch) | |
tree | ea53e5f0f96b79418c4edfa1261057f08d8da573 | |
parent | bd2f3a28a5d401ad41a5353c662c2f739cb34fc9 (diff) | |
download | qtlocation-mapboxgl-360e5bf631229e2aec71780a515a42e32d4c28e6.tar.gz |
[ios, macos] Fixed runtime styling deprecation warnings
-rw-r--r-- | platform/darwin/test/MGLStyleTests.mm | 3 | ||||
-rw-r--r-- | platform/darwin/test/MGLStyleValueTests.m | 102 | ||||
-rw-r--r-- | platform/darwin/test/MGLStyleValueTests.swift | 91 | ||||
-rw-r--r-- | platform/macos/app/MapDocument.m | 12 |
4 files changed, 110 insertions, 98 deletions
diff --git a/platform/darwin/test/MGLStyleTests.mm b/platform/darwin/test/MGLStyleTests.mm index ed86a252fa..c50330d488 100644 --- a/platform/darwin/test/MGLStyleTests.mm +++ b/platform/darwin/test/MGLStyleTests.mm @@ -246,7 +246,10 @@ } - (void)testClasses { +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" XCTAssertEqual(self.style.styleClasses.count, 0); +#pragma clang diagnostic pop } - (void)testImages { diff --git a/platform/darwin/test/MGLStyleValueTests.m b/platform/darwin/test/MGLStyleValueTests.m index fe6096584d..cd6eec8324 100644 --- a/platform/darwin/test/MGLStyleValueTests.m +++ b/platform/darwin/test/MGLStyleValueTests.m @@ -7,7 +7,107 @@ @implementation MGLStyleValueTests - (void)testStoplessFunction { - XCTAssertThrowsSpecificNamed([MGLStyleValue<NSNumber *> valueWithStops:@{}], NSException, NSInvalidArgumentException, @"Stopless function should raise an exception"); + XCTAssertThrowsSpecificNamed([MGLStyleValue<NSNumber *> valueWithInterpolationMode:MGLInterpolationModeExponential cameraStops:@{} options:nil], NSException, NSInvalidArgumentException, @"Stopless function should raise an exception"); +} + +- (void)testDeprecatedFunctions { + MGLShapeSource *shapeSource = [[MGLShapeSource alloc] initWithIdentifier:@"test" + shape:nil + options:nil]; + MGLSymbolStyleLayer *symbolStyleLayer = [[MGLSymbolStyleLayer alloc] initWithIdentifier:@"symbolLayer" + source:shapeSource]; + MGLCircleStyleLayer *circleStyleLayer = [[MGLCircleStyleLayer alloc] initWithIdentifier:@"circleLayer" + source:shapeSource]; + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + // deprecated function, stops with float values + NSDictionary<NSNumber *, MGLStyleValue<NSNumber *> *> *stops = @{ + @1: [MGLStyleValue<NSNumber *> valueWithRawValue:@0], + @2: [MGLStyleValue<NSNumber *> valueWithRawValue:@1], + @3: [MGLStyleValue<NSNumber *> valueWithRawValue:@2], + @4: [MGLStyleValue<NSNumber *> valueWithRawValue:@0], + }; + MGLStyleValue<NSNumber *> *iconHaloBlurStyleValue = + [MGLStyleValue<NSNumber *> valueWithInterpolationBase:1.0 stops:stops]; + symbolStyleLayer.iconHaloBlur = iconHaloBlurStyleValue; + XCTAssertEqualObjects(symbolStyleLayer.iconHaloBlur, iconHaloBlurStyleValue); + + // deprecated function, stops with boolean values + stops = @{ + @1: [MGLStyleValue<NSNumber *> valueWithRawValue:@YES], + @2: [MGLStyleValue<NSNumber *> valueWithRawValue:@NO], + @3: [MGLStyleValue<NSNumber *> valueWithRawValue:@YES], + @4: [MGLStyleValue<NSNumber *> valueWithRawValue:@NO], + }; + MGLStyleValue<NSNumber *> *iconAllowsOverlapStyleValue = + [MGLStyleValue<NSNumber *> valueWithInterpolationBase:1.0 stops:stops]; + symbolStyleLayer.iconAllowsOverlap = iconAllowsOverlapStyleValue; + // iconAllowsOverlap is boolean so mgl and mbgl conversions will coerce the developers stops into interval stops + MGLStyleValue<NSNumber *> *expectedIconAllowsOverlapStyleValue = + [MGLStyleValue<NSNumber *> valueWithInterpolationMode:MGLInterpolationModeInterval + cameraStops:stops + options:nil]; + XCTAssertEqualObjects(symbolStyleLayer.iconAllowsOverlap, expectedIconAllowsOverlapStyleValue); + + /// + // creating and using MGLStyleFunctions directly + /// + + NSDictionary<NSNumber *, MGLStyleValue<NSNumber *> *> *circleRadiusStops = @{ + @0: [MGLStyleValue<NSNumber *> valueWithRawValue:@10], + @20: [MGLStyleValue<NSNumber *> valueWithRawValue:@5], + }; + MGLStyleFunction<NSNumber *> *circleRadiusFunction = + [MGLStyleFunction<NSNumber *> functionWithInterpolationBase:1.0 + stops:circleRadiusStops]; + circleStyleLayer.circleRadius = circleRadiusFunction; + MGLStyleValue<NSNumber *> *expectedCircleRadiusFunction = + [MGLStyleValue<NSNumber *> valueWithInterpolationMode:MGLInterpolationModeExponential + cameraStops:circleRadiusStops + options:nil]; + // setting a data driven property to an MGLStyleFunction should return an exponential camera function + XCTAssertEqualObjects(circleStyleLayer.circleRadius, expectedCircleRadiusFunction); + + CGVector circleTranslationOne = CGVectorMake(100, 0); + CGVector circleTranslationTwo = CGVectorMake(0, 0); +#if TARGET_OS_IPHONE + NSValue *circleTranslationValueOne = [NSValue valueWithCGVector:circleTranslationOne]; + NSValue *circleTranslationValueTwo = [NSValue valueWithCGVector:circleTranslationTwo]; +#else + NSValue *circleTranslationValueOne = [NSValue value:&circleTranslationOne withObjCType:@encode(CGVector)]; + NSValue *circleTranslationValueTwo = [NSValue value:&circleTranslationTwo withObjCType:@encode(CGVector)]; +#endif + + NSDictionary<NSNumber *, MGLStyleValue<NSValue *> *> *circleTranslationStops = @{ + @0: [MGLStyleValue<NSValue *> valueWithRawValue:circleTranslationValueOne], + @10: [MGLStyleValue<NSValue *> valueWithRawValue:circleTranslationValueTwo], + }; + MGLStyleFunction<NSValue *> *circleTranslationFunction = + [MGLStyleFunction<NSValue *> functionWithInterpolationBase:1.0 + stops:circleTranslationStops]; + circleStyleLayer.circleTranslation = circleTranslationFunction; + MGLStyleValue<NSValue *> *expectedCircleTranslationFunction = + [MGLStyleValue<NSValue *> valueWithInterpolationMode:MGLInterpolationModeExponential + cameraStops:circleTranslationStops + options:nil]; + // setting a non-data driven, interpolatable property to an MGLStyleFunction should return an exponential camera function + XCTAssertEqualObjects(circleStyleLayer.circleTranslation, expectedCircleTranslationFunction); + + NSDictionary<NSNumber *, MGLStyleValue<NSNumber *> *> *iconOptionalStops = @{ + @0: [MGLStyleValue<NSNumber *> valueWithRawValue:@NO], + @20: [MGLStyleValue<NSNumber *> valueWithRawValue:@YES], + }; + MGLStyleFunction<NSNumber *> *iconOptionalFunction = + [MGLStyleFunction<NSNumber *> valueWithInterpolationBase:1.0 + stops:iconOptionalStops]; + symbolStyleLayer.iconOptional = iconOptionalFunction; + MGLStyleValue<NSNumber *> *expectedIconOptionalFunction = + [MGLStyleValue<NSNumber *> valueWithInterpolationMode:MGLInterpolationModeInterval + cameraStops:iconOptionalStops + options:nil]; + XCTAssertEqualObjects(symbolStyleLayer.iconOptional, expectedIconOptionalFunction); +#pragma clang diagnostic pop } @end diff --git a/platform/darwin/test/MGLStyleValueTests.swift b/platform/darwin/test/MGLStyleValueTests.swift index afdc2ef9a3..a8c4aaf71a 100644 --- a/platform/darwin/test/MGLStyleValueTests.swift +++ b/platform/darwin/test/MGLStyleValueTests.swift @@ -35,97 +35,6 @@ extension MGLStyleValueTests { XCTAssertEqual(circleStyleLayer.circleScaleAlignment, expectedCircleScaleAlignmentValue) } - func testDeprecatedFunctions() { - let shapeSource = MGLShapeSource(identifier: "test", shape: nil, options: nil) - let symbolStyleLayer = MGLSymbolStyleLayer(identifier: "symbolLayer", source: shapeSource) - let circleStyleLayer = MGLCircleStyleLayer(identifier: "circleLayer", source: shapeSource) - - // deprecated function, stops with float values - let iconHaloBlurStyleValue = MGLStyleValue<NSNumber>(interpolationBase: 1.0, stops: [1: MGLStyleValue(rawValue: 0), - 2: MGLStyleValue(rawValue: 1), - 3: MGLStyleValue(rawValue: 2), - 4: MGLStyleValue(rawValue: 3)]) - symbolStyleLayer.iconHaloBlur = iconHaloBlurStyleValue - XCTAssertEqual(symbolStyleLayer.iconHaloBlur!, iconHaloBlurStyleValue) - - // deprecated function, stops with boolean values - let stops: [NSNumber: MGLStyleValue<NSNumber>] = [ - 1: MGLStyleValue(rawValue: true), - 2: MGLStyleValue(rawValue: false), - 3: MGLStyleValue(rawValue: true), - 4: MGLStyleValue(rawValue: false), - ] - let iconAllowsOverlapStyleValue = MGLStyleValue<NSNumber>(interpolationBase: 1, stops: stops) - symbolStyleLayer.iconAllowsOverlap = iconAllowsOverlapStyleValue - // iconAllowsOverlap is boolean so mgl and mbgl conversions will coerce the developers stops into interval stops - let expectedIconAllowsOverlapStyleValue = MGLStyleValue<NSNumber>( - interpolationMode: .interval, - cameraStops: stops, - options: nil - ) - XCTAssertEqual(symbolStyleLayer.iconAllowsOverlap, expectedIconAllowsOverlapStyleValue) - - /// - // creating and using MGLStyleFunctions directly - /// - - let circleRadiusStops: [NSNumber: MGLStyleValue<NSNumber>] = [ - 0: MGLStyleValue(rawValue: 10), - 20: MGLStyleValue(rawValue: 5) - ] - let circleRadiusFunction = MGLStyleFunction<NSNumber>( - interpolationBase: 1.0, - stops: circleRadiusStops - ) - circleStyleLayer.circleRadius = circleRadiusFunction - let expectedCircleRadiusFunction = MGLStyleValue<NSNumber>( - interpolationMode: .exponential, - cameraStops: - circleRadiusStops, - options: nil - ) - // setting a data driven property to an MGLStyleFunction should return an exponential camera function - XCTAssertEqual(circleStyleLayer.circleRadius, expectedCircleRadiusFunction) - - var circleTranslationOne = CGVector(dx: 100, dy: 0) - let circleTranslationValueOne = NSValue(bytes: &circleTranslationOne, objCType: "{CGVector=dd}") - var circleTranslationTwo = CGVector(dx: 0, dy: 0) - let circleTranslationValueTwo = NSValue(bytes: &circleTranslationTwo, objCType: "{CGVector=dd}") - - let circleTranslationStops: [NSNumber: MGLStyleValue<NSValue>] = [ - 0: MGLStyleValue<NSValue>(rawValue: circleTranslationValueOne), - 10: MGLStyleValue<NSValue>(rawValue: circleTranslationValueTwo) - ] - let circleTranslationFunction = MGLStyleFunction<NSValue>( - interpolationBase: 1.0, - stops: circleTranslationStops - ) - circleStyleLayer.circleTranslation = circleTranslationFunction - let expectedCircleTranslationFunction = MGLStyleValue<NSValue>( - interpolationMode: .exponential, - cameraStops: circleTranslationStops, - options: nil - ) - // setting a non-data driven, interpolatable property to an MGLStyleFunction should return an exponential camera function - XCTAssertEqual(circleStyleLayer.circleTranslation, expectedCircleTranslationFunction) - - let iconOptionalStops: [NSNumber: MGLStyleValue<NSNumber>] = [ - 0: MGLStyleValue(rawValue: false), - 20: MGLStyleValue(rawValue: true) - ] - let iconOptionalFunction = MGLStyleFunction( - interpolationBase: 1.0, - stops: iconOptionalStops - ) - symbolStyleLayer.iconOptional = iconOptionalFunction - let expectedIconOptionalFunction = MGLStyleValue( - interpolationMode: .interval, - cameraStops: iconOptionalStops, - options: nil - ) - XCTAssertEqual(symbolStyleLayer.iconOptional, expectedIconOptionalFunction) - } - func testFunctionsWithNonDataDrivenProperties() { let shapeSource = MGLShapeSource(identifier: "test", shape: nil, options: nil) let circleStyleLayer = MGLCircleStyleLayer(identifier: "circleLayer", source: shapeSource) diff --git a/platform/macos/app/MapDocument.m b/platform/macos/app/MapDocument.m index 62ddd2ce60..6f63542527 100644 --- a/platform/macos/app/MapDocument.m +++ b/platform/macos/app/MapDocument.m @@ -689,11 +689,11 @@ NS_ARRAY_OF(id <MGLAnnotation>) *MBXFlattenedShapes(NS_ARRAY_OF(id <MGLAnnotatio MGLFillStyleLayer *fillStyleLayer = (MGLFillStyleLayer *)[self.mapView.style layerWithIdentifier:@"water"]; - MGLStyleValue *colorFunction = [MGLStyleValue<NSColor *> valueWithStops:@{ + MGLStyleValue *colorFunction = [MGLStyleValue<NSColor *> valueWithInterpolationMode:MGLInterpolationModeExponential cameraStops:@{ @0.0: [MGLStyleValue<NSColor *> valueWithRawValue:[NSColor redColor]], @10.0: [MGLStyleValue<NSColor *> valueWithRawValue:[NSColor yellowColor]], @20.0: [MGLStyleValue<NSColor *> valueWithRawValue:[NSColor blackColor]], - }]; + } options:nil]; fillStyleLayer.fillColor = colorFunction; NSString *filePath = [[NSBundle bundleForClass:self.class] pathForResource:@"amsterdam" ofType:@"geojson"]; @@ -715,11 +715,11 @@ NS_ARRAY_OF(id <MGLAnnotation>) *MBXFlattenedShapes(NS_ARRAY_OF(id <MGLAnnotatio theaterLayer.predicate = [NSPredicate predicateWithFormat:@"maki == 'theatre'"]; theaterLayer.iconImageName = [MGLStyleValue valueWithRawValue:NSImageNameIChatTheaterTemplate]; theaterLayer.iconScale = [MGLStyleValue valueWithRawValue:@2]; - theaterLayer.iconColor = [MGLStyleValue valueWithStops:@{ + theaterLayer.iconColor = [MGLStyleValue valueWithInterpolationMode:MGLInterpolationModeExponential cameraStops:@{ @16.0: [MGLStyleValue valueWithRawValue:[NSColor redColor]], @18.0: [MGLStyleValue valueWithRawValue:[NSColor yellowColor]], @20.0: [MGLStyleValue valueWithRawValue:[NSColor blackColor]], - }]; + } options:nil]; [self.mapView.style addLayer:theaterLayer]; } @@ -1080,14 +1080,14 @@ NS_ARRAY_OF(id <MGLAnnotation>) *MBXFlattenedShapes(NS_ARRAY_OF(id <MGLAnnotatio - (void)mapView:(MGLMapView *)mapView didSelectAnnotation:(id <MGLAnnotation>)annotation { if ([annotation isKindOfClass:[DroppedPinAnnotation class]]) { - DroppedPinAnnotation *droppedPin = annotation; + DroppedPinAnnotation *droppedPin = (DroppedPinAnnotation *)annotation; [droppedPin resume]; } } - (void)mapView:(MGLMapView *)mapView didDeselectAnnotation:(id <MGLAnnotation>)annotation { if ([annotation isKindOfClass:[DroppedPinAnnotation class]]) { - DroppedPinAnnotation *droppedPin = annotation; + DroppedPinAnnotation *droppedPin = (DroppedPinAnnotation *)annotation; [droppedPin pause]; } } |