Skip to content
This repository has been archived by the owner on Aug 8, 2023. It is now read-only.

[ios, macos] Deprecate trafficDayStyleURL and trafficNightStyleURL #9918

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 9 additions & 37 deletions platform/darwin/src/MGLStyle.h
Original file line number Diff line number Diff line change
Expand Up @@ -270,66 +270,38 @@ MGL_EXPORT
+ (NSURL *)satelliteStreetsStyleURLWithVersion:(NSInteger)version;

/**
Returns the URL to the current version of the
Returns the URL to version 2 of the
<a href="https://www.mapbox.com/blog/live-traffic-maps/">Mapbox Traffic Day</a>
style.

Traffic Day color-codes roads based on live traffic congestion data. Traffic
data is currently available in
<a href="https://www.mapbox.com/api-documentation/pages/traffic-countries.html">these select countries</a>.

@warning The return value may change in a future release of the SDK. If you use
any feature that depends on a specific aspect of a default style – for
instance, the minimum zoom level that includes roads – use the
`-trafficDayStyleURLWithVersion:` method instead. Such details may change
significantly from version to version.
*/
+ (NSURL *)trafficDayStyleURL;
+ (NSURL *)trafficDayStyleURL __attribute__((deprecated("Create an NSURL object with the string “mapbox://styles/mapbox/traffic-day-v2”.")));

/**
Returns the URL to the given version of the
<a href="https://www.mapbox.com/blog/live-traffic-maps/">Mapbox Traffic Day</a>
style as of publication.

Traffic Day color-codes roads based on live traffic congestion data. Traffic
data is currently available in
<a href="https://www.mapbox.com/api-documentation/pages/traffic-countries.html">these select countries</a>.


@param version A specific version of the style.
*/
+ (NSURL *)trafficDayStyleURLWithVersion:(NSInteger)version;
+ (NSURL *)trafficDayStyleURLWithVersion:(NSInteger)version __attribute__((deprecated("Create an NSURL object with the string “mapbox://styles/mapbox/traffic-day-v2”.")));;

/**
Returns the URL to the current version of the
Returns the URL to the version 2 of the
<a href="https://www.mapbox.com/blog/live-traffic-maps/">Mapbox Traffic Night</a>
style.

Traffic Night color-codes roads based on live traffic congestion data and is
designed to maximize legibility in low-light situations. Traffic data is
currently available in
<a href="https://www.mapbox.com/api-documentation/pages/traffic-countries.html">these select countries</a>.

@warning The return value may change in a future release of the SDK. If you use
any feature that depends on a specific aspect of a default style – for
instance, the minimum zoom level that includes roads – use the
`-trafficNightStyleURLWithVersion:` method instead. Such details may change
significantly from version to version.
*/
+ (NSURL *)trafficNightStyleURL;
+ (NSURL *)trafficNightStyleURL __attribute__((deprecated("Create an NSURL object with the string “mapbox://styles/mapbox/traffic-night-v2”.")));

/**
Returns the URL to the given version of the
Returns the URL to to the version 2 of the
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo: “to to”.

<a href="https://www.mapbox.com/blog/live-traffic-maps/">Mapbox Traffic Night</a>
style as of publication.

Traffic Night color-codes roads based on live traffic congestion data and is
designed to maximize legibility in low-light situations. Traffic data is
currently available in
<a href="https://www.mapbox.com/api-documentation/pages/traffic-countries.html">these select countries</a>.


@param version A specific version of the style.
*/
+ (NSURL *)trafficNightStyleURLWithVersion:(NSInteger)version;
+ (NSURL *)trafficNightStyleURLWithVersion:(NSInteger)version __attribute__((deprecated("Create an NSURL object with the string “mapbox://styles/mapbox/traffic-night-v2”.")));

#pragma mark Accessing Metadata About the Style

Expand Down
31 changes: 29 additions & 2 deletions platform/darwin/src/MGLStyle.mm
Original file line number Diff line number Diff line change
Expand Up @@ -106,8 +106,6 @@ + (NSURL *)name##StyleURL##WithVersion:(NSInteger)version { \
MGL_DEFINE_STYLE(dark, dark)
MGL_DEFINE_STYLE(satellite, satellite)
MGL_DEFINE_STYLE(satelliteStreets, satellite-streets)
MGL_DEFINE_STYLE(trafficDay, traffic-day)
MGL_DEFINE_STYLE(trafficNight, traffic-night)

// Make sure all the styles listed in mbgl::util::default_styles::orderedStyles
// are defined above and also declared in MGLStyle.h.
Expand All @@ -134,6 +132,35 @@ + (NSURL *)emeraldStyleURL {
return MGLStyleURL_emerald;
}

// Traffic Day is no longer getting new versions as a default style, so the current version is hard-coded here.
static NSURL *MGLStyleURL_trafficDay;
+ (NSURL *)trafficDayStyleURL {
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
MGLStyleURL_trafficDay = [NSURL URLWithString:@"mapbox://styles/mapbox/traffic-day-v2"];
});
return MGLStyleURL_trafficDay;
}

+ (NSURL *)trafficDayStyleURLWithVersion:(NSInteger)version {
return [NSURL URLWithString:[@"mapbox://styles/mapbox/traffic-day-v" stringByAppendingFormat:@"%li", (long)version]];
}

// Traffic Night is no longer getting new versions as a default style, so the current version is hard-coded here.
static NSURL *MGLStyleURL_trafficNight;
+ (NSURL *)trafficNightStyleURL {
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
MGLStyleURL_trafficNight = [NSURL URLWithString:@"mapbox://styles/mapbox/traffic-night-v2"];
});
return MGLStyleURL_trafficNight;
}

+ (NSURL *)trafficNightStyleURLWithVersion:(NSInteger)version {
return [NSURL URLWithString:[@"mapbox://styles/mapbox/traffic-night-v" stringByAppendingFormat:@"%li", (long)version]];
}


#pragma mark -

- (instancetype)initWithMapView:(MGLMapView *)mapView {
Expand Down
5 changes: 4 additions & 1 deletion platform/darwin/test/MGLStyleTests.mm
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,8 @@ - (void)testVersionedStyleURLs {
@(mbgl::util::default_styles::satelliteStreets.url));
XCTAssertEqualObjects([MGLStyle satelliteStreetsStyleURLWithVersion:99].absoluteString,
@"mapbox://styles/mapbox/satellite-streets-v99");
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
XCTAssertEqualObjects([MGLStyle trafficDayStyleURLWithVersion:mbgl::util::default_styles::trafficDay.currentVersion].absoluteString,
@(mbgl::util::default_styles::trafficDay.url));
XCTAssertEqualObjects([MGLStyle trafficDayStyleURLWithVersion:99].absoluteString,
Expand All @@ -107,6 +109,7 @@ - (void)testVersionedStyleURLs {
@(mbgl::util::default_styles::trafficNight.url));
XCTAssertEqualObjects([MGLStyle trafficNightStyleURLWithVersion:99].absoluteString,
@"mapbox://styles/mapbox/traffic-night-v99");
#pragma clang diagnostic pop

static_assert(8 == mbgl::util::default_styles::numOrderedStyles,
"MGLStyleTests isn’t testing all the styles in mbgl::util::default_styles.");
Expand Down Expand Up @@ -140,7 +143,7 @@ - (void)testStyleURLDeclarations {
NSString *styleHeader = self.stringWithContentsOfStyleHeader;

NSError *versionedMethodError;
NSString *versionedMethodExpressionString = @(R"RE(^\+\s*\(NSURL\s*\*\s*\)\s*\w+StyleURLWithVersion\s*:\s*\(\s*NSInteger\s*\)\s*version\s*;)RE");
NSString *versionedMethodExpressionString = @(R"RE(^\+\s*\(NSURL\s*\*\s*\)\s*\w+StyleURLWithVersion\s*:\s*\(\s*NSInteger\s*\)\s*version\s*\b)RE");
NSRegularExpression *versionedMethodExpression = [NSRegularExpression regularExpressionWithPattern:versionedMethodExpressionString options:NSRegularExpressionAnchorsMatchLines error:&versionedMethodError];
XCTAssertNil(versionedMethodError, @"Error compiling regular expression to search for versioned methods.");
NSUInteger numVersionedMethodDeclarations = [versionedMethodExpression numberOfMatchesInString:styleHeader options:0 range:NSMakeRange(0, styleHeader.length)];
Expand Down
1 change: 1 addition & 0 deletions platform/ios/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ Mapbox welcomes participation and contributions from everyone. Please read [CONT
* Added support for iOS 11 location usage descriptions. ([#9869](https://github.com/mapbox/mapbox-gl-native/pull/9869))
* Fixed an issue where `MGLUserLocation.location` did not follow its documented initialization behavior. This property will now properly return `nil` until the user’s location has been determined. ([#9639](https://github.com/mapbox/mapbox-gl-native/pull/9639))
* `MGLMapView`’s `minimumZoomLevel` and `maximumZoomLevel` properties are now available in Interface Builder’s Attributes inspector. ([#9729](https://github.com/mapbox/mapbox-gl-native/pull/9729))
* Deprecated `+[MGLStyle trafficDayStyleURL]` and `+[MGLStyle trafficNightStyleURL]` with no replacement method. To use the Traffic Day and Traffic Night styles going forward, we recommend that you use the underlying URL. ([#9918](https://github.com/mapbox/mapbox-gl-native/pull/9918))

## 3.6.2 - August 18, 2017

Expand Down
5 changes: 3 additions & 2 deletions platform/ios/app/MBXViewController.m
Original file line number Diff line number Diff line change
Expand Up @@ -1519,8 +1519,9 @@ - (IBAction)cycleStyles:(__unused id)sender
[MGLStyle darkStyleURL],
[MGLStyle satelliteStyleURL],
[MGLStyle satelliteStreetsStyleURL],
[MGLStyle trafficDayStyleURL],
[MGLStyle trafficNightStyleURL],
[NSURL URLWithString:@"mapbox://styles/mapbox/traffic-day-v2"],
[NSURL URLWithString:@"mapbox://styles/mapbox/traffic-night-v2"],

];
NSAssert(styleNames.count == styleURLs.count, @"Style names and URLs don’t match.");

Expand Down
1 change: 1 addition & 0 deletions platform/macos/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ This version of the Mapbox macOS SDK corresponds to version 3.6.3 of the Mapbox
* Fixed an issue that caused `-[MGLShapeSource featuresMatchingPredicate:]` and `-[MGLVectorSource featuresInSourceLayersWithIdentifiers:predicate:]` to always return an empty array. ([#9784](https://github.com/mapbox/mapbox-gl-native/pull/9784))
* `MGLMapView`’s `minimumZoomLevel` and `maximumZoomLevel` properties are now available in Interface Builder’s Attributes inspector. ([#9729](https://github.com/mapbox/mapbox-gl-native/pull/9729))
* Added a Hungarian localization. ([#9945](https://github.com/mapbox/mapbox-gl-native/pull/9945))
* Deprecated `+[MGLStyle trafficDayStyleURL]` and `+[MGLStyle trafficNightStyleURL]` with no replacement method. To use the Traffic Day and Traffic Night styles going forward, we recommend that you use the underlying URL. ([#9918](https://github.com/mapbox/mapbox-gl-native/pull/9918))

## 0.5.0

Expand Down
8 changes: 4 additions & 4 deletions platform/macos/app/MapDocument.m
Original file line number Diff line number Diff line change
Expand Up @@ -183,10 +183,10 @@ - (IBAction)showStyle:(id)sender {
styleURL = [MGLStyle satelliteStreetsStyleURL];
break;
case 7:
styleURL = [MGLStyle trafficDayStyleURL];
styleURL = [NSURL URLWithString:@"mapbox://styles/mapbox/traffic-day-v2"];
break;
case 8:
styleURL = [MGLStyle trafficNightStyleURL];
styleURL = [NSURL URLWithString:@"mapbox://styles/mapbox/traffic-night-v2"];
break;
default:
NSAssert(NO, @"Cannot set style from control with tag %li", (long)tag);
Expand Down Expand Up @@ -760,10 +760,10 @@ - (BOOL)validateMenuItem:(NSMenuItem *)menuItem {
state = [styleURL isEqual:[MGLStyle satelliteStreetsStyleURL]];
break;
case 7:
state = [styleURL isEqual:[MGLStyle trafficDayStyleURL]];
state = [styleURL isEqual:[NSURL URLWithString:@"mapbox://styles/mapbox/traffic-day-v2"]];
break;
case 8:
state = [styleURL isEqual:[MGLStyle trafficNightStyleURL]];
state = [styleURL isEqual:[NSURL URLWithString:@"mapbox://styles/mapbox/traffic-night-v2"]];
break;
default:
return NO;
Expand Down