From 57c4b0c5e48c5ccc4ddc249709181ee06f2f958a Mon Sep 17 00:00:00 2001 From: ivanPyrohivskyi Date: Thu, 6 Feb 2025 13:02:57 +0200 Subject: [PATCH] Fix speed alarm --- .../plus/views/mapwidgets/widgets/SpeedometerWidget.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/OsmAnd/src/net/osmand/plus/views/mapwidgets/widgets/SpeedometerWidget.java b/OsmAnd/src/net/osmand/plus/views/mapwidgets/widgets/SpeedometerWidget.java index 18fe5af8224..1c1a0eb0dff 100644 --- a/OsmAnd/src/net/osmand/plus/views/mapwidgets/widgets/SpeedometerWidget.java +++ b/OsmAnd/src/net/osmand/plus/views/mapwidgets/widgets/SpeedometerWidget.java @@ -44,6 +44,7 @@ import net.osmand.plus.settings.backend.ApplicationMode; import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.plus.settings.enums.DrivingRegion; +import net.osmand.router.RouteSegmentResult; import net.osmand.shared.settings.enums.SpeedConstants; import net.osmand.plus.settings.enums.WidgetSize; import net.osmand.plus.utils.AndroidUtils; @@ -614,7 +615,13 @@ private AlarmInfo getSpeedLimitInfo() { AlarmInfo alarm = waypointHelper.getSpeedLimitAlarm(speedFormat, whenExceeded); if (alarm == null) { Location loc = provider.getLastKnownLocation(); - RouteDataObject dataObject = provider.getLastKnownRouteSegment(); + RouteSegmentResult current = routingHelper.getRoute().getCurrentSegmentResult(); + RouteDataObject dataObject = null; + if (current != null) { + dataObject = current.getObject(); + } else { + dataObject = provider.getLastKnownRouteSegment(); + } if (dataObject != null && loc != null) { alarm = waypointHelper.calculateSpeedLimitAlarm(dataObject, loc, speedFormat, whenExceeded); }