Fix OsmAndLocationProvider#scheduleCheckIfGpsLost

This commit is contained in:
Alex Sytnyk 2018-05-25 18:25:44 +03:00
parent 1385b5e267
commit 17f4dfb7c4

View file

@ -691,7 +691,8 @@ public class OsmAndLocationProvider implements SensorEventListener {
private void scheduleCheckIfGpsLost(final net.osmand.Location location) {
final RoutingHelper routingHelper = app.getRoutingHelper();
if (location != null) {
if (location != null && routingHelper.isFollowingMode() && routingHelper.getLeftDistance() > 0
&& simulatePosition == null) {
final long fixTime = location.getTime();
app.runMessageInUIThreadAndCancelPrevious(LOST_LOCATION_MSG_ID, new Runnable() {
@ -709,25 +710,23 @@ public class OsmAndLocationProvider implements SensorEventListener {
setLocation(null);
}
}, LOST_LOCATION_CHECK_DELAY);
if (routingHelper.isFollowingMode() && routingHelper.getLeftDistance() > 0 && simulatePosition == null) {
app.runMessageInUIThreadAndCancelPrevious(START_SIMULATE_LOCATION_MSG_ID, new Runnable() {
app.runMessageInUIThreadAndCancelPrevious(START_SIMULATE_LOCATION_MSG_ID, new Runnable() {
@Override
public void run() {
net.osmand.Location lastKnown = getLastKnownLocation();
if (lastKnown != null && lastKnown.getTime() > fixTime) {
// false positive case, still strange how we got here with removeMessages
return;
}
List<RouteSegmentResult> tunnel = routingHelper.getUpcomingTunnel(1000);
if(tunnel != null) {
simulatePosition = new SimulationProvider();
simulatePosition.startSimulation(tunnel, location);
simulatePositionImpl();
}
@Override
public void run() {
net.osmand.Location lastKnown = getLastKnownLocation();
if (lastKnown != null && lastKnown.getTime() > fixTime) {
// false positive case, still strange how we got here with removeMessages
return;
}
}, START_LOCATION_SIMULATION_DELAY);
}
List<RouteSegmentResult> tunnel = routingHelper.getUpcomingTunnel(1000);
if(tunnel != null) {
simulatePosition = new SimulationProvider();
simulatePosition.startSimulation(tunnel, location);
simulatePositionImpl();
}
}
}, START_LOCATION_SIMULATION_DELAY);
}
}