This commit is contained in:
GaidamakUA 2015-11-12 12:05:43 +02:00
commit 7fa2ccef32
2 changed files with 16 additions and 7 deletions

View file

@ -26,14 +26,13 @@ public class EditPoiData {
private boolean hasChangesBeenMade = false; private boolean hasChangesBeenMade = false;
private Map<String, PoiType> allTranslatedSubTypes; private Map<String, PoiType> allTranslatedSubTypes;
private PoiCategory category; private PoiCategory category;
private String subtype;
public EditPoiData(Node node, OsmandApplication app) { public EditPoiData(Node node, OsmandApplication app) {
allTranslatedSubTypes = app.getPoiTypes().getAllTranslatedNames(true); allTranslatedSubTypes = app.getPoiTypes().getAllTranslatedNames(true);
category = app.getPoiTypes().getOtherPoiCategory(); category = app.getPoiTypes().getOtherPoiCategory();
subtype = "";
entity = node; entity = node;
initTags(node); initTags(node);
updateTypeTag(getPoiTypeString());
} }
public Map<String, PoiType> getAllTranslatedSubTypes() { public Map<String, PoiType> getAllTranslatedSubTypes() {
@ -43,7 +42,7 @@ public class EditPoiData {
public void updateType(PoiCategory type) { public void updateType(PoiCategory type) {
if(type != null && type != category) { if(type != null && type != category) {
category = type; category = type;
subtype = ""; tagValues.put(POI_TYPE_TAG, "");
} }
} }
@ -57,7 +56,8 @@ public class EditPoiData {
} }
public String getPoiTypeString() { public String getPoiTypeString() {
return subtype; String s = tagValues.get(POI_TYPE_TAG) ;
return s == null ? "" : s;
} }
public Node getEntity() { public Node getEntity() {
@ -94,7 +94,6 @@ public class EditPoiData {
if(tp != null) { if(tp != null) {
PoiType pt = allTranslatedSubTypes.get(tp); PoiType pt = allTranslatedSubTypes.get(tp);
if (pt != null) { if (pt != null) {
subtype = tp;
category = pt.getCategory(); category = pt.getCategory();
} }
} }
@ -181,6 +180,16 @@ public class EditPoiData {
return hasChangesBeenMade; return hasChangesBeenMade;
} }
public void updateTypeTag(String string) {
tagValues.put(POI_TYPE_TAG, string);
retrieveType();
PoiType pt = getPoiTypeDefined();
if(pt != null) {
tagValues.remove(pt.getOsmTag());
tagValues.remove(pt.getOsmTag2());
}
}
} }

View file

@ -250,7 +250,7 @@ public class EditPoiDialogFragment extends DialogFragment {
@Override @Override
public void afterTextChanged(Editable s) { public void afterTextChanged(Editable s) {
if (!getEditPoiData().isInEdit()) { if (!getEditPoiData().isInEdit()) {
getEditPoiData().putTag(EditPoiData.POI_TYPE_TAG, s.toString()); getEditPoiData().updateTypeTag(s.toString());
} }
} }
}); });
@ -314,7 +314,7 @@ public class EditPoiDialogFragment extends DialogFragment {
if (poiType.getOsmTag2() != null) { if (poiType.getOsmTag2() != null) {
node.putTag(poiType.getOsmTag2(), poiType.getOsmValue2()); node.putTag(poiType.getOsmTag2(), poiType.getOsmValue2());
} }
} else { } else if (!Algorithms.isEmpty(tag.getValue())) {
node.putTag(editPoiData.getPoiCategory().getDefaultTag(), tag.getValue()); node.putTag(editPoiData.getPoiCategory().getDefaultTag(), tag.getValue());
} }