diff --git a/OsmAnd/src/net/osmand/plus/mapmarkers/CoordinateInputDialogFragment.java b/OsmAnd/src/net/osmand/plus/mapmarkers/CoordinateInputDialogFragment.java index 389e479be5..f723b865dc 100644 --- a/OsmAnd/src/net/osmand/plus/mapmarkers/CoordinateInputDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapmarkers/CoordinateInputDialogFragment.java @@ -355,13 +355,10 @@ public class CoordinateInputDialogFragment extends DialogFragment implements Osm private void registerInputTextViews() { TextWatcher textWatcher = new TextWatcher() { - int len = 0; - String strBeforeChanging = ""; @Override public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { - len = charSequence.length(); - strBeforeChanging = charSequence.toString(); + } @Override @@ -371,10 +368,19 @@ public class CoordinateInputDialogFragment extends DialogFragment implements Osm @Override public void afterTextChanged(Editable editable) { - View focusedView = getDialog().getCurrentFocus(); - if (focusedView != null && focusedView instanceof EditText) { - EditText focusedEditText = (EditText) focusedView; - String str = focusedEditText.getText().toString(); + if (goToNextField) { + View focusedView = getDialog().getCurrentFocus(); + if (focusedView != null && focusedView instanceof EditText) { + EditText focusedEditText = (EditText) focusedView; + String str = focusedEditText.getText().toString(); + int pointIndex = str.indexOf("."); + if (pointIndex != -1) { + int currentAccuracy = str.substring(pointIndex + 1).length(); + if (currentAccuracy >= accuracy) { + switchToNextInput(focusedEditText.getId()); + } + } + } } } };