diff --git a/cyclestreets.app/src/main/assets/whatsnew.html b/cyclestreets.app/src/main/assets/whatsnew.html index 2087f894c..cf599ce30 100644 --- a/cyclestreets.app/src/main/assets/whatsnew.html +++ b/cyclestreets.app/src/main/assets/whatsnew.html @@ -8,6 +8,7 @@

Release 3.12

There are no new features in this release. We are updated a number of our dependencies, including our underlying maps display. +
  • POI issue fixed.
  • Release 3.11

    Features diff --git a/cyclestreets.app/src/main/play/release-notes/en-GB/beta.txt b/cyclestreets.app/src/main/play/release-notes/en-GB/beta.txt index 1550ba64d..34c157c21 100644 --- a/cyclestreets.app/src/main/play/release-notes/en-GB/beta.txt +++ b/cyclestreets.app/src/main/play/release-notes/en-GB/beta.txt @@ -1,2 +1,3 @@ There are no new features in this release. We are updated a number of our -dependencies, including our underlying maps display. \ No newline at end of file +dependencies, including our underlying maps display. +POI issue fixed. \ No newline at end of file diff --git a/libraries/cyclestreets-core/src/main/java/net/cyclestreets/api/POI.java b/libraries/cyclestreets-core/src/main/java/net/cyclestreets/api/POI.java index 606c5c2cb..6fb0d71b5 100644 --- a/libraries/cyclestreets-core/src/main/java/net/cyclestreets/api/POI.java +++ b/libraries/cyclestreets-core/src/main/java/net/cyclestreets/api/POI.java @@ -6,7 +6,7 @@ public class POI { - private final int id; + private final String id; private final String name; private final String notes; private final String url; @@ -16,7 +16,7 @@ public class POI private POICategory category; - public POI(final int id, + public POI(final String id, final String name, final String notes, final String url, @@ -35,7 +35,7 @@ public POI(final int id, public void setCategory(final POICategory category) { this.category = category; } - public int id() { return id; } + public String id() { return id; } public String name() { return stringOrBlank(name); } public String notes() { return stringOrBlank(notes); } public String url() { return stringOrBlank(url); } diff --git a/libraries/cyclestreets-core/src/main/java/net/cyclestreets/api/client/dto/PoiTypesDto.kt b/libraries/cyclestreets-core/src/main/java/net/cyclestreets/api/client/dto/PoiTypesDto.kt index 74b254468..78e1373db 100644 --- a/libraries/cyclestreets-core/src/main/java/net/cyclestreets/api/client/dto/PoiTypesDto.kt +++ b/libraries/cyclestreets-core/src/main/java/net/cyclestreets/api/client/dto/PoiTypesDto.kt @@ -42,8 +42,8 @@ class PoiTypesDto { } -fun poiIcon(context: Context, id: String): Drawable { - val key = "poi_${id}" +fun poiIcon(context: Context, type: String): Drawable { + val key = "poi_${type}" val res = context.resources val resPackage = res.getResourcePackageName(defaultResId) diff --git a/libraries/cyclestreets-core/src/main/java/net/cyclestreets/api/client/geojson/PoiFactory.java b/libraries/cyclestreets-core/src/main/java/net/cyclestreets/api/client/geojson/PoiFactory.java index 4cb0bb1f8..c49ddac09 100644 --- a/libraries/cyclestreets-core/src/main/java/net/cyclestreets/api/client/geojson/PoiFactory.java +++ b/libraries/cyclestreets-core/src/main/java/net/cyclestreets/api/client/geojson/PoiFactory.java @@ -32,7 +32,7 @@ private static POI toPoi(Feature feature) { if (TextUtils.isEmpty(website)) website = osmTags.get("url"); - return new POI(Integer.parseInt(feature.getProperty("id")), + return new POI(feature.getProperty("id"), feature.getProperty("name"), feature.getProperty("notes"), website, diff --git a/libraries/cyclestreets-core/src/test/java/net/cyclestreets/api/client/RetrofitApiClientTest.java b/libraries/cyclestreets-core/src/test/java/net/cyclestreets/api/client/RetrofitApiClientTest.java index 440835de7..8e3cbfa65 100644 --- a/libraries/cyclestreets-core/src/test/java/net/cyclestreets/api/client/RetrofitApiClientTest.java +++ b/libraries/cyclestreets-core/src/test/java/net/cyclestreets/api/client/RetrofitApiClientTest.java @@ -193,7 +193,7 @@ private static void validatePois(List pois) { // happy path POI poi = pois.get(0); - assertThat(poi.id()).isEqualTo(101399); + assertThat(poi.id()).isEqualTo("alpha_101399"); assertThat(poi.name()).isEqualTo("Chris's Bikes"); assertThat(poi.notes()).isEqualTo("The notes section"); assertThat(poi.phone()).isEqualTo("01234 567890"); @@ -203,7 +203,7 @@ private static void validatePois(List pois) { // website provided within `osmTags.url`, but not in `website` poi = pois.get(6); - assertThat(poi.id()).isEqualTo(113267); + assertThat(poi.id()).isEqualTo("some-other-characters-113267"); assertThat(poi.name()).isEqualTo("Bicycle Ambulance"); assertThat(poi.notes()).isEqualTo(""); assertThat(poi.phone()).isEqualTo(""); diff --git a/libraries/cyclestreets-core/src/test/resources/__files/pois.json b/libraries/cyclestreets-core/src/test/resources/__files/pois.json index 5adec0922..c4d7fb90b 100644 --- a/libraries/cyclestreets-core/src/test/resources/__files/pois.json +++ b/libraries/cyclestreets-core/src/test/resources/__files/pois.json @@ -4,7 +4,7 @@ { "type": "Feature", "properties": { - "id": "101399", + "id": "alpha_101399", "name": "Chris's Bikes", "notes": "The notes section", "osmTags": { @@ -113,7 +113,7 @@ { "type": "Feature", "properties": { - "id": "113267", + "id": "some-other-characters-113267", "name": "Bicycle Ambulance", "notes": "", "osmTags": { diff --git a/libraries/cyclestreets-view/src/main/java/net/cyclestreets/routing/Journey.kt b/libraries/cyclestreets-view/src/main/java/net/cyclestreets/routing/Journey.kt index 7d57a879c..82ad08fb2 100644 --- a/libraries/cyclestreets-view/src/main/java/net/cyclestreets/routing/Journey.kt +++ b/libraries/cyclestreets-view/src/main/java/net/cyclestreets/routing/Journey.kt @@ -212,7 +212,7 @@ class Journey private constructor(wp: Waypoints? = null) { // For circular route pois, the id isn't returned in the API, so will create an artificial one. var id = 0 for (poi in jdo.pois) { - val circularRoutePoi = POI(id, + val circularRoutePoi = POI(id.toString(), poi.name, "", poi.website, diff --git a/libraries/cyclestreets-view/src/main/java/net/cyclestreets/views/overlay/POIOverlay.kt b/libraries/cyclestreets-view/src/main/java/net/cyclestreets/views/overlay/POIOverlay.kt index 8c66ca166..77b98340a 100644 --- a/libraries/cyclestreets-view/src/main/java/net/cyclestreets/views/overlay/POIOverlay.kt +++ b/libraries/cyclestreets-view/src/main/java/net/cyclestreets/views/overlay/POIOverlay.kt @@ -28,6 +28,7 @@ import org.osmdroid.events.ZoomEvent import org.osmdroid.util.BoundingBox import org.osmdroid.views.MapView import org.osmdroid.views.overlay.OverlayItem +import java.util.Objects private val TAG = Logging.getTag(POIOverlay::class.java) @@ -362,7 +363,7 @@ class POIOverlay(mapView: CycleMapView) : LiveItemOverlay(mapVi } - class POIOverlayItem(val poi: POI) : OverlayItem(poi.id().toString(), poi.name(), + class POIOverlayItem(val poi: POI) : OverlayItem(poi.id(), poi.name(), poi.notes(), poi.position()) { init { @@ -381,7 +382,7 @@ class POIOverlay(mapView: CycleMapView) : LiveItemOverlay(mapVi } override fun hashCode(): Int { - return poi.id() + return Objects.hashCode(poi.id()) } override fun toString(): String {