diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/attribution/Attribution.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/attribution/Attribution.java index b7c6c417733..e7ee5b6130b 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/attribution/Attribution.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/attribution/Attribution.java @@ -2,15 +2,23 @@ import android.support.annotation.Nullable; +import java.util.ArrayList; +import java.util.List; + public class Attribution { private static final String OPENSTREETMAP = "OpenStreetMap"; private static final String OPENSTREETMAP_ABBR = "OSM"; static final String TELEMETRY = "Telemetry Settings"; - - static final String IMPROVE_MAP_URL = "https://www.mapbox.com/feedback/"; static final String MAPBOX_URL = "https://www.mapbox.com/about/maps/"; static final String TELEMETRY_URL = "https://www.mapbox.com/telemetry/"; + static final List IMPROVE_MAP_URLS = new ArrayList<>(); + + static { + // Using a List makes URL backwards compatible + IMPROVE_MAP_URLS.add("https://www.mapbox.com/feedback/"); + IMPROVE_MAP_URLS.add("https://www.mapbox.com/map-feedback/"); + } private String title; private String url; diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/attribution/AttributionParser.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/attribution/AttributionParser.java index 16020891b13..ff59dbdf92f 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/attribution/AttributionParser.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/attribution/AttributionParser.java @@ -157,7 +157,7 @@ private String translateImproveThisMapAnchor(String anchor) { * @return if the url is valid for improve this map */ private boolean isValidForImproveThisMap(@NonNull String url) { - return withImproveMap || !url.equals(Attribution.IMPROVE_MAP_URL); + return withImproveMap || !(Attribution.IMPROVE_MAP_URLS.contains(url)); } /** diff --git a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/attribution/AttributionParseTest.java b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/attribution/AttributionParseTest.java index ed9f4be47f5..f20244aca9e 100644 --- a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/attribution/AttributionParseTest.java +++ b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/attribution/AttributionParseTest.java @@ -15,8 +15,8 @@ @Config(constants = BuildConfig.class) public class AttributionParseTest { - private static final String STREETS_ATTRIBUTION = "© Mapbox © OpenStreetMap Improve this map\n"; - private static final String SATELLITE_ATTRIBUTION = "© Mapbox © OpenStreetMap Improve this map © DigitalGlobe\n"; + private static final String STREETS_ATTRIBUTION = "© Mapbox © OpenStreetMap Improve this map\n"; + private static final String SATELLITE_ATTRIBUTION = "© Mapbox © OpenStreetMap Improve this map © DigitalGlobe\n"; @Test public void testParseAttributionStringSatellite() throws Exception { @@ -39,7 +39,7 @@ public void testParseAttributionStringSatellite() throws Exception { assertEquals("Title openstreetmap should match", "© OpenStreetMap", attribution.getTitle()); break; case 2: - assertEquals("URL improve map should match", "https://www.mapbox.com/feedback/", attribution.getUrl()); + assertEquals("URL improve map should match", "https://www.mapbox.com/map-feedback/", attribution.getUrl()); assertEquals("Title improve map should match", "Improve This Map", attribution.getTitle()); break; case 3: @@ -72,7 +72,7 @@ public void testParseAttributionStringStreets() throws Exception { assertEquals("Title openstreetmap should match", "© OpenStreetMap", attribution.getTitle()); break; case 2: - assertEquals("URL improve map should match", "https://www.mapbox.com/feedback/", attribution.getUrl()); + assertEquals("URL improve map should match", "https://www.mapbox.com/map-feedback/", attribution.getUrl()); assertEquals("Title improve map should match", "Improve This Map", attribution.getTitle()); break; } @@ -98,7 +98,7 @@ public void testParseAttributionWithoutMapbox() throws Exception { assertEquals("Title openstreetmap should match", "© OpenStreetMap", attribution.getTitle()); break; case 1: - assertEquals("URL improve map should match", "https://www.mapbox.com/feedback/", attribution.getUrl()); + assertEquals("URL improve map should match", "https://www.mapbox.com/map-feedback/", attribution.getUrl()); assertEquals("Title improve map should match", "Improve This Map", attribution.getTitle()); break; } @@ -126,7 +126,7 @@ public void testParseAttributionArrayString() throws Exception { assertEquals("Title openstreetmap should match", "© OpenStreetMap", attribution.getTitle()); break; case 2: - assertEquals("URL improve map should match", "https://www.mapbox.com/feedback/", attribution.getUrl()); + assertEquals("URL improve map should match", "https://www.mapbox.com/map-feedback/", attribution.getUrl()); assertEquals("Title improve map should match", "Improve This Map", attribution.getTitle()); break; case 3: @@ -188,7 +188,7 @@ public void testParseHideCopyrightAttributionArrayString() throws Exception { assertEquals("Title openstreetmap should match", "OpenStreetMap", attribution.getTitle()); break; case 2: - assertEquals("URL improve map should match", "https://www.mapbox.com/feedback/", attribution.getUrl()); + assertEquals("URL improve map should match", "https://www.mapbox.com/map-feedback/", attribution.getUrl()); assertEquals("Title improve map should match", "Improve This Map", attribution.getTitle()); break; case 3: @@ -307,4 +307,19 @@ public void testShortOpenStreetMapWithoutCopyrightString() throws Exception { attributionParser.createAttributionString(true) ); } + + @Test + public void testWithImproveThisMapString() throws Exception { + AttributionParser attributionParser = new AttributionParser.Options(RuntimeEnvironment.application) + .withAttributionData(STREETS_ATTRIBUTION, "blabla", "") + .withImproveMap(true) + .withCopyrightSign(false) + .build(); + + assertEquals( + "Attribution string should match", + "© Mapbox / OSM / Improve This Map", + attributionParser.createAttributionString(true) + ); + } }