From 2408c6ec3964ab0de225aa640fa6717d5548ded6 Mon Sep 17 00:00:00 2001 From: simonpoole Date: Sat, 17 Aug 2024 11:15:07 +0200 Subject: [PATCH] Fix regression that caused the direction widget not to be displayed Fixes https://github.com/MarcusWolschon/osmeditor4android/issues/2664 --- src/main/java/de/blau/android/osm/Tags.java | 65 ++++++++++--------- .../propertyeditor/tagform/TextRow.java | 6 +- 2 files changed, 35 insertions(+), 36 deletions(-) diff --git a/src/main/java/de/blau/android/osm/Tags.java b/src/main/java/de/blau/android/osm/Tags.java index 6b577a0bd4..65d505224e 100644 --- a/src/main/java/de/blau/android/osm/Tags.java +++ b/src/main/java/de/blau/android/osm/Tags.java @@ -128,38 +128,39 @@ public static boolean isLikeAName(@NonNull String key) { return false; } - public static final String KEY_NAME_LEFT = "name:left"; - public static final String KEY_NAME_RIGHT = "name:right"; - public static final String KEY_REF = "ref"; - public static final String KEY_NONAME = "noname"; - public static final String KEY_VALIDATE_NO_NAME = "validate:no_name"; - public static final String KEY_NOREF = "noref"; - public static final String KEY_HIGHWAY = "highway"; - public static final String VALUE_ROAD = "road"; - public static final String VALUE_MOTORWAY = "motorway"; - public static final String VALUE_MOTORWAY_LINK = "motorway_link"; - public static final String VALUE_FOOTWAY = "footway"; - public static final String VALUE_CYCLEWAY = "cycleway"; - public static final String VALUE_PATH = "path"; - public static final String VALUE_STEPS = "steps"; - public static final String VALUE_TRACK = "track"; - public static final String KEY_TRACKTYPE = "tracktype"; - public static final String KEY_SIDEWALK = "sidewalk"; - public static final String KEY_BRIDGE = "bridge"; - public static final String KEY_TUNNEL = "tunnel"; - public static final String VALUE_CULVERT = "culvert"; - public static final String KEY_BARRIER = "barrier"; - public static final String VALUE_RETAINING_WALL = "retaining_wall"; - public static final String VALUE_KERB = "kerb"; - public static final String VALUE_GUARD_RAIL = "guard_rail"; - public static final String VALUE_CITY_WALL = "city_wall"; - public static final String KEY_TWO_SIDED = "two_sided"; - public static final String KEY_MAN_MADE = "man_made"; - public static final String VALUE_EMBANKMENT = "embankment"; - public static final String KEY_ONEWAY = "oneway"; - public static final String VALUE_REVERSE = "reverse"; - public static final String KEY_WATERWAY = "waterway"; - public static final String VALUE_RIVERBANK = "riverbank"; + public static final String KEY_NAME_LEFT = "name:left"; + public static final String KEY_NAME_RIGHT = "name:right"; + public static final String KEY_REF = "ref"; + public static final String KEY_NONAME = "noname"; + public static final String KEY_VALIDATE_NO_NAME = "validate:no_name"; + public static final String KEY_NOREF = "noref"; + public static final String KEY_HIGHWAY = "highway"; + public static final String VALUE_ROAD = "road"; + public static final String VALUE_MOTORWAY = "motorway"; + public static final String VALUE_MOTORWAY_LINK = "motorway_link"; + public static final String VALUE_FOOTWAY = "footway"; + public static final String VALUE_CYCLEWAY = "cycleway"; + public static final String VALUE_PATH = "path"; + public static final String VALUE_STEPS = "steps"; + public static final String VALUE_MINI_ROUNDABOUT = "mini_roundabout"; + public static final String VALUE_TRACK = "track"; + public static final String KEY_TRACKTYPE = "tracktype"; + public static final String KEY_SIDEWALK = "sidewalk"; + public static final String KEY_BRIDGE = "bridge"; + public static final String KEY_TUNNEL = "tunnel"; + public static final String VALUE_CULVERT = "culvert"; + public static final String KEY_BARRIER = "barrier"; + public static final String VALUE_RETAINING_WALL = "retaining_wall"; + public static final String VALUE_KERB = "kerb"; + public static final String VALUE_GUARD_RAIL = "guard_rail"; + public static final String VALUE_CITY_WALL = "city_wall"; + public static final String KEY_TWO_SIDED = "two_sided"; + public static final String KEY_MAN_MADE = "man_made"; + public static final String VALUE_EMBANKMENT = "embankment"; + public static final String KEY_ONEWAY = "oneway"; + public static final String VALUE_REVERSE = "reverse"; + public static final String KEY_WATERWAY = "waterway"; + public static final String VALUE_RIVERBANK = "riverbank"; public static final String KEY_LANDUSE = "landuse"; public static final String VALUE_CONSTRUCTION = "construction"; diff --git a/src/main/java/de/blau/android/propertyeditor/tagform/TextRow.java b/src/main/java/de/blau/android/propertyeditor/tagform/TextRow.java index 4f3af2a920..9e18b10b7e 100644 --- a/src/main/java/de/blau/android/propertyeditor/tagform/TextRow.java +++ b/src/main/java/de/blau/android/propertyeditor/tagform/TextRow.java @@ -216,7 +216,6 @@ static TextRow getRow(@NonNull final TagFormFragment caller, @NonNull final Layo caller.getValueAutocompleteAdapter(key, values, preset, null, allTags, true, false, -1), row, valueType, imperial); dialog.setOnDismissListener(d -> finalView.setEnabled(true)); dialog.show(); - return; }); } if (ValueType.INTEGER == valueType) { @@ -226,17 +225,16 @@ static TextRow getRow(@NonNull final TagFormFragment caller, @NonNull final Layo final View finalView = v; finalView.setEnabled(false); // debounce IntegerValueFragment.show(caller, hint != null ? hint : key, key, ((TextView) v).getText().toString(), values, preset, allTags); - return; }); } - if (Tags.DIRECTION_KEYS.contains(key) && (preset != null && !preset.hasKeyValue(key, Tags.VALUE_CLOCKWISE))) { + if (Tags.DIRECTION_KEYS.contains(key) + && (preset == null || !(preset.hasKeyValue(Tags.KEY_HIGHWAY, Tags.VALUE_MINI_ROUNDABOUT) && Tags.KEY_DIRECTION.equals(key)))) { ourValueView.setFocusable(false); ourValueView.setFocusableInTouchMode(false); ourValueView.setOnClickListener(v -> { final View finalView = v; finalView.setEnabled(false); // debounce DirectionValueFragment.show(caller, hint != null ? hint : key, key, ((TextView) v).getText().toString(), values, preset, allTags); - return; }); } ourValueView.setOnFocusChangeListener((v, hasFocus) -> {