Introduced accessibility mode options allowing to prevent automatic
route recalculation.
This commit is contained in:
parent
1111ed1928
commit
3a02be2e5a
5 changed files with 23 additions and 2 deletions
|
@ -2004,4 +2004,8 @@
|
|||
<string name="access_smart_autoannounce_descr">Говорить только при изменении направления на целевую точку</string>
|
||||
<string name="access_autoannounce_period">Период автооповещений</string>
|
||||
<string name="access_autoannounce_period_descr">Минимальное время между оповещениями</string>
|
||||
<string name="access_disable_offroute_recalc">Не менять маршрут при сходе с пути</string>
|
||||
<string name="access_disable_offroute_recalc_descr">Предотвращает автоматический пересчет маршрута при значительном удалении от заданного пути</string>
|
||||
<string name="access_disable_wrong_direction_recalc">Не менять маршрут при неверном направлении движения</string>
|
||||
<string name="access_disable_wrong_direction_recalc_descr">Предотвращает автоматический пересчет маршрута при неверном направлении движения</string>
|
||||
</resources>
|
||||
|
|
|
@ -10,6 +10,10 @@
|
|||
PLEASE: Have a look at http://code.google.com/p/osmand/wiki/UIConsistency, it may really improve your and our work :-) Thx - Hardy
|
||||
-->
|
||||
|
||||
<string name="access_disable_offroute_recalc">Don\'t change route when you are off the way</string>
|
||||
<string name="access_disable_offroute_recalc_descr">Prevent automatic route recalculation when you are quite far from the right way</string>
|
||||
<string name="access_disable_wrong_direction_recalc">Don\'t change route by wrong direction</string>
|
||||
<string name="access_disable_wrong_direction_recalc_descr">Prevent automatic route recalculation when you are moving in wrong direction</string>
|
||||
<string name="access_smart_autoannounce">Smart autoannounce</string>
|
||||
<string name="access_smart_autoannounce_descr">Notify only when direction to the target point is changed</string>
|
||||
<string name="access_autoannounce_period">Autoannounce period</string>
|
||||
|
|
|
@ -91,6 +91,11 @@ public class SettingsAccessibilityActivity extends SettingsBaseActivity {
|
|||
});
|
||||
cat.addPreference(autoannouncePeriodPreference);
|
||||
|
||||
cat.addPreference(createCheckBoxPreference(settings.DISABLE_OFFROUTE_RECALC, R.string.access_disable_offroute_recalc,
|
||||
R.string.access_disable_offroute_recalc_descr));
|
||||
cat.addPreference(createCheckBoxPreference(settings.DISABLE_WRONG_DIRECTION_RECALC, R.string.access_disable_wrong_direction_recalc,
|
||||
R.string.access_disable_wrong_direction_recalc_descr));
|
||||
|
||||
cat.addPreference(createCheckBoxPreference(settings.ZOOM_BY_TRACKBALL, R.string.zoom_by_trackball,
|
||||
R.string.zoom_by_trackball_descr));
|
||||
}
|
||||
|
|
|
@ -787,6 +787,14 @@ public class OsmandSettings {
|
|||
// cache of metrics constants as they are used very often
|
||||
public final OsmandPreference<Integer> ACCESSIBILITY_AUTOANNOUNCE_PERIOD = new IntPreference("accessibility_autoannounce_period", 10000).makeGlobal().cache();
|
||||
|
||||
// this value string is synchronized with settings_pref.xml preference name
|
||||
public final OsmandPreference<Boolean> DISABLE_OFFROUTE_RECALC =
|
||||
new BooleanAccessibilityPreference("disable_offroute_recalc", false).makeGlobal();
|
||||
|
||||
// this value string is synchronized with settings_pref.xml preference name
|
||||
public final OsmandPreference<Boolean> DISABLE_WRONG_DIRECTION_RECALC =
|
||||
new BooleanAccessibilityPreference("disable_wrong_direction_recalc", false).makeGlobal();
|
||||
|
||||
// this value string is synchronized with settings_pref.xml preference name
|
||||
public final OsmandPreference<Boolean> ZOOM_BY_TRACKBALL =
|
||||
new BooleanAccessibilityPreference("zoom_by_trackball", false).makeGlobal();
|
||||
|
|
|
@ -315,7 +315,7 @@ public class RoutingHelper {
|
|||
// >100m off current route (sideways)
|
||||
if (currentRoute > 0) {
|
||||
double dist = getOrthogonalDistance(currentLocation, routeNodes.get(currentRoute - 1), routeNodes.get(currentRoute));
|
||||
if (dist > 1.7 * posTolerance) {
|
||||
if ((!settings.DISABLE_OFFROUTE_RECALC.get()) && (dist > (1.7 * posTolerance))) {
|
||||
log.info("Recalculate route, because correlation : " + dist); //$NON-NLS-1$
|
||||
calculateRoute = true;
|
||||
}
|
||||
|
@ -329,7 +329,7 @@ public class RoutingHelper {
|
|||
// 3. Identify wrong movement direction
|
||||
Location next = route.getNextRouteLocation();
|
||||
boolean wrongMovementDirection = checkWrongMovementDirection(currentLocation, next);
|
||||
if (wrongMovementDirection && currentLocation.distanceTo(routeNodes.get(currentRoute)) > 2 * posTolerance) {
|
||||
if ((!settings.DISABLE_WRONG_DIRECTION_RECALC.get()) && wrongMovementDirection && (currentLocation.distanceTo(routeNodes.get(currentRoute)) > (2 * posTolerance))) {
|
||||
log.info("Recalculate route, because wrong movement direction: " + currentLocation.distanceTo(routeNodes.get(currentRoute))); //$NON-NLS-1$
|
||||
calculateRoute = true;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue