This commit is contained in:
Alexey Kulish 2016-07-03 11:41:32 +03:00
parent 68119255cb
commit 8baaea48fb
3 changed files with 24 additions and 1 deletions

View file

@ -1631,6 +1631,18 @@ public class OsmandSettings {
.commit(); .commit();
} }
public boolean restorePointToStart() {
if (settingsAPI.getFloat(globalPreferences, POINT_NAVIGATE_LAT_BACKUP, 0) == 0) {
settingsAPI.edit(globalPreferences)
.putFloat(START_POINT_LAT, settingsAPI.getFloat(globalPreferences, START_POINT_LAT_BACKUP, 0))
.putFloat(START_POINT_LON, settingsAPI.getFloat(globalPreferences, START_POINT_LON_BACKUP, 0))
.commit();
return true;
} else {
return false;
}
}
public LatLon getPointToNavigate() { public LatLon getPointToNavigate() {
float lat = settingsAPI.getFloat(globalPreferences, POINT_NAVIGATE_LAT, 0); float lat = settingsAPI.getFloat(globalPreferences, POINT_NAVIGATE_LAT, 0);
float lon = settingsAPI.getFloat(globalPreferences, POINT_NAVIGATE_LON, 0); float lon = settingsAPI.getFloat(globalPreferences, POINT_NAVIGATE_LON, 0);

View file

@ -305,6 +305,10 @@ public class MapActivityActions implements DialogProvider {
mapActivity.startActivity(intent); mapActivity.startActivity(intent);
} else if (standardId == R.string.context_menu_item_directions_from) { } else if (standardId == R.string.context_menu_item_directions_from) {
mapActivity.getContextMenu().hide(); mapActivity.getContextMenu().hide();
if (settings.USE_MAP_MARKERS.get()
&& getMyApplication().getTargetPointsHelper().getPointToNavigate() == null) {
setFirstMapMarkerAsTarget();
}
enterRoutePlanningMode(new LatLon(latitude, longitude), enterRoutePlanningMode(new LatLon(latitude, longitude),
mapActivity.getContextMenu().getPointDescription()); mapActivity.getContextMenu().getPointDescription());
} }

View file

@ -26,6 +26,7 @@ import net.osmand.plus.MapMarkersHelper.MapMarkerChangedListener;
import net.osmand.plus.OsmandSettings; import net.osmand.plus.OsmandSettings;
import net.osmand.plus.R; import net.osmand.plus.R;
import net.osmand.plus.TargetPointsHelper; import net.osmand.plus.TargetPointsHelper;
import net.osmand.plus.TargetPointsHelper.TargetPoint;
import net.osmand.plus.activities.MapActivity; import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.dashboard.DashboardOnMap; import net.osmand.plus.dashboard.DashboardOnMap;
import net.osmand.plus.dialogs.DirectionsDialogs; import net.osmand.plus.dialogs.DirectionsDialogs;
@ -501,8 +502,14 @@ public class MapContextMenu extends MenuTitleController implements StateChangedL
DirectionsDialogs.addWaypointDialogAndLaunchMap(mapActivity, latLon.getLatitude(), DirectionsDialogs.addWaypointDialogAndLaunchMap(mapActivity, latLon.getLatitude(),
latLon.getLongitude(), getPointDescriptionForTarget()); latLon.getLongitude(), getPointDescriptionForTarget());
} else if (targets.getIntermediatePoints().isEmpty()) { } else if (targets.getIntermediatePoints().isEmpty()) {
boolean hasPointToStart = settings.restorePointToStart();
targets.navigateToPoint(latLon, true, -1, getPointDescriptionForTarget()); targets.navigateToPoint(latLon, true, -1, getPointDescriptionForTarget());
mapActivity.getMapActions().enterRoutePlanningModeGivenGpx(null, null, null, true, true); if (!hasPointToStart) {
mapActivity.getMapActions().enterRoutePlanningModeGivenGpx(null, null, null, true, true);
} else {
TargetPoint start = targets.getPointToStart();
mapActivity.getMapActions().enterRoutePlanningModeGivenGpx(null, start.point, start.getOriginalPointDescription(), true, true);
}
close(); close();
} else { } else {
Builder bld = new AlertDialog.Builder(mapActivity); Builder bld = new AlertDialog.Builder(mapActivity);