diff --git a/app-android/src/main/java/org/mtransit/android/ui/map/MapViewModel.kt b/app-android/src/main/java/org/mtransit/android/ui/map/MapViewModel.kt index d0ea7116..9807de5d 100644 --- a/app-android/src/main/java/org/mtransit/android/ui/map/MapViewModel.kt +++ b/app-android/src/main/java/org/mtransit/android/ui/map/MapViewModel.kt @@ -41,7 +41,7 @@ import org.mtransit.android.ui.view.common.MediatorLiveData4 import org.mtransit.android.ui.view.common.MediatorLiveData3 import org.mtransit.android.ui.view.common.getLiveDataDistinct import org.mtransit.android.ui.view.map.MTMapIconDef -import org.mtransit.android.ui.view.map.MTMapIconsProvider.iconDefForRotation +import org.mtransit.android.ui.view.map.MTMapIconsProvider.getIconDefForRotation import org.mtransit.android.ui.view.map.MTPOIMarker import org.mtransit.android.util.containsEntirely import javax.inject.Inject @@ -348,7 +348,7 @@ class MapViewModel @Inject constructor( extra = (poim.poi as? RouteDirectionStop)?.route?.shortestName uuid = poim.poi.uuid authority = poim.poi.authority - iconDef = rotation.iconDefForRotation + iconDef = getIconDefForRotation(rotation, poim.poi) color = poim.getColor(dataSourcesRepository) secondaryColor = agency.colorInt clusterItems[positionTrunc] = clusterItems[positionTrunc]?.apply { diff --git a/app-android/src/main/java/org/mtransit/android/ui/view/MapViewController.java b/app-android/src/main/java/org/mtransit/android/ui/view/MapViewController.java index d88adef7..45cc77d4 100644 --- a/app-android/src/main/java/org/mtransit/android/ui/view/MapViewController.java +++ b/app-android/src/main/java/org/mtransit/android/ui/view/MapViewController.java @@ -1089,7 +1089,7 @@ private Collection createPOIMarkers(MapMarkerProvider markerProvide zIndex = uuid.equals(mapViewController.focusedOnUUID) ? MAP_MARKER_Z_INDEX_STOP_FOCUSED_ON : MAP_MARKER_Z_INDEX_STOPS_OTHER; iconDef = uuid.equals(mapViewController.focusedOnUUID) ? MTMapIconsProvider.getSelectedDefaultIconDef() - : MTMapIconsProvider.getIconDefForRotation(rotation); + : MTMapIconsProvider.getIconDefForRotation(rotation, poim.poi); MTPOIMarker currentItem = clusterItems.get(positionTrunc); if (currentItem == null) { currentItem = new MTPOIMarker(position, name, agencyShortName, extra, iconDef, color, secondaryColor, alpha, rotation, zIndex, uuid, authority); diff --git a/app-android/src/main/java/org/mtransit/android/ui/view/map/MTMapIconsProvider.kt b/app-android/src/main/java/org/mtransit/android/ui/view/map/MTMapIconsProvider.kt index 39126e61..199ffc04 100644 --- a/app-android/src/main/java/org/mtransit/android/ui/view/map/MTMapIconsProvider.kt +++ b/app-android/src/main/java/org/mtransit/android/ui/view/map/MTMapIconsProvider.kt @@ -1,8 +1,11 @@ package org.mtransit.android.ui.view.map import org.mtransit.android.R +import org.mtransit.android.commons.data.POI +import org.mtransit.android.commons.data.RouteDirectionStop import org.mtransit.android.commons.dp import org.mtransit.android.data.DataSourceType +import org.mtransit.commons.FeatureFlags object MTMapIconsProvider { @@ -46,8 +49,16 @@ object MTMapIconsProvider { //@formatter:on @JvmStatic - val Float?.iconDefForRotation: MTMapIconDef - get() = if (this != null) arrowIconDef else defaultIconDef + fun getIconDefForRotation(rotation: Float?, poi: POI): MTMapIconDef { + @Suppress("SimplifyBooleanWithConstants") + if (FeatureFlags.F_EXPORT_DIRECTION_STOP_LAST + && poi is RouteDirectionStop + && poi.isAlwaysLastTripStop + ) { + return defaultIconDef + } + return if (rotation != null) arrowIconDef else defaultIconDef + } @JvmStatic val DataSourceType?.vehicleIconDef: MTMapIconDef