Fix #5958
This commit is contained in:
parent
80e02521d8
commit
2ab0c034c7
7 changed files with 48 additions and 11 deletions
|
@ -658,6 +658,8 @@ public class MapPoiTypes {
|
|||
tp.setOsmValue(parser.getAttributeValue("", "value"));
|
||||
tp.setOsmEditTagValue(parser.getAttributeValue("", "edit_tag"),
|
||||
parser.getAttributeValue("", "edit_value"));
|
||||
tp.setOsmEditTagValue2(parser.getAttributeValue("", "edit_tag2"),
|
||||
parser.getAttributeValue("", "edit_value2"));
|
||||
|
||||
tp.setOsmTag2(parser.getAttributeValue("", "tag2"));
|
||||
tp.setOsmValue2(parser.getAttributeValue("", "value2"));
|
||||
|
|
|
@ -16,9 +16,10 @@ public class PoiType extends AbstractPoiType {
|
|||
|
||||
private String editTag;
|
||||
private String editValue;
|
||||
private String editTag2;
|
||||
private String editValue2;
|
||||
private boolean filterOnly;
|
||||
|
||||
|
||||
private String nameTag;
|
||||
private boolean text;
|
||||
private boolean nameOnly;
|
||||
|
@ -68,27 +69,46 @@ public class PoiType extends AbstractPoiType {
|
|||
this.editTag = osmTag;
|
||||
this.editValue = editValue;
|
||||
}
|
||||
|
||||
|
||||
public void setOsmEditTagValue2(String osmTag, String editValue) {
|
||||
this.editTag2 = osmTag;
|
||||
this.editValue2 = editValue;
|
||||
}
|
||||
|
||||
public String getEditOsmTag() {
|
||||
if(isReference()) {
|
||||
if (isReference()) {
|
||||
return referenceType.getEditOsmTag();
|
||||
}
|
||||
if(editTag == null) {
|
||||
if (editTag == null) {
|
||||
return getOsmTag();
|
||||
}
|
||||
return editTag;
|
||||
}
|
||||
|
||||
public String getEditOsmValue() {
|
||||
if(isReference()) {
|
||||
if (isReference()) {
|
||||
return referenceType.getEditOsmValue();
|
||||
}
|
||||
if(editValue == null) {
|
||||
if (editValue == null) {
|
||||
return getOsmValue();
|
||||
}
|
||||
return editValue;
|
||||
}
|
||||
|
||||
public String getEditOsmTag2() {
|
||||
if (isReference()) {
|
||||
return referenceType.getEditOsmTag2();
|
||||
}
|
||||
return editTag2;
|
||||
}
|
||||
|
||||
public String getEditOsmValue2() {
|
||||
if (isReference()) {
|
||||
return referenceType.getEditOsmValue2();
|
||||
}
|
||||
return editValue2;
|
||||
}
|
||||
|
||||
public void setOsmTag(String osmTag) {
|
||||
this.osmTag = osmTag;
|
||||
}
|
||||
|
|
|
@ -147,6 +147,9 @@ public class AddPOIAction extends QuickAction {
|
|||
if (poiType.getOsmTag2() != null) {
|
||||
newNode.putTagNoLC(poiType.getOsmTag2(), poiType.getOsmValue2());
|
||||
}
|
||||
if (poiType.getEditOsmTag2() != null) {
|
||||
newNode.putTagNoLC(poiType.getEditOsmTag2(), poiType.getEditOsmValue2());
|
||||
}
|
||||
} else if (!Algorithms.isEmpty(tag.getValue())) {
|
||||
PoiCategory category = editPoiData.getPoiCategory();
|
||||
if (category != null) {
|
||||
|
|
|
@ -323,7 +323,9 @@ public class AdvancedEditPoiFragment extends BaseOsmAndFragment
|
|||
if (poiType.getOsmTag2() != null) {
|
||||
stringSet.add(poiType.getOsmTag2());
|
||||
}
|
||||
|
||||
if (poiType.getEditOsmTag2() != null) {
|
||||
stringSet.add(poiType.getEditOsmTag2());
|
||||
}
|
||||
}
|
||||
if (poiType.getEditOsmValue() != null) {
|
||||
values.add(poiType.getEditOsmValue());
|
||||
|
|
|
@ -237,11 +237,13 @@ public class EditPoiData {
|
|||
private void removeTypeTagWithPrefix(boolean needRemovePrefix) {
|
||||
if (currentPoiType != null) {
|
||||
if (needRemovePrefix) {
|
||||
tagValues.put(Entity.REMOVE_TAG_PREFIX + currentPoiType.getEditOsmTag(), REMOVE_TAG_VALUE);
|
||||
tagValues.put(Entity.REMOVE_TAG_PREFIX + currentPoiType.getOsmTag2(), REMOVE_TAG_VALUE);
|
||||
tagValues.put(Entity.REMOVE_TAG_PREFIX + currentPoiType.getEditOsmTag(), REMOVE_TAG_VALUE);
|
||||
tagValues.put(Entity.REMOVE_TAG_PREFIX + currentPoiType.getEditOsmTag2(), REMOVE_TAG_VALUE);
|
||||
} else {
|
||||
tagValues.remove(Entity.REMOVE_TAG_PREFIX + currentPoiType.getEditOsmTag());
|
||||
tagValues.remove(Entity.REMOVE_TAG_PREFIX + currentPoiType.getOsmTag2());
|
||||
tagValues.remove(Entity.REMOVE_TAG_PREFIX + currentPoiType.getEditOsmTag());
|
||||
tagValues.remove(Entity.REMOVE_TAG_PREFIX + currentPoiType.getEditOsmTag2());
|
||||
}
|
||||
removeCurrentTypeTag();
|
||||
}
|
||||
|
@ -249,9 +251,10 @@ public class EditPoiData {
|
|||
|
||||
private void removeCurrentTypeTag() {
|
||||
if (currentPoiType != null) {
|
||||
tagValues.remove(currentPoiType.getEditOsmTag());
|
||||
tagValues.remove(currentPoiType.getOsmTag2());
|
||||
changedTags.removeAll(Arrays.asList(currentPoiType.getEditOsmTag(), currentPoiType.getOsmTag2()));
|
||||
tagValues.remove(currentPoiType.getEditOsmTag());
|
||||
tagValues.remove(currentPoiType.getEditOsmTag2());
|
||||
changedTags.removeAll(Arrays.asList(currentPoiType.getEditOsmTag(),currentPoiType.getEditOsmTag2(), currentPoiType.getOsmTag2()));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -515,6 +515,10 @@ public class EditPoiDialogFragment extends BaseOsmAndDialogFragment {
|
|||
entity.putTagNoLC(poiType.getOsmTag2(), poiType.getOsmValue2());
|
||||
entity.removeTag(Entity.REMOVE_TAG_PREFIX + poiType.getOsmTag2());
|
||||
}
|
||||
if (poiType.getEditOsmTag2() != null) {
|
||||
entity.putTagNoLC(poiType.getEditOsmTag2(), poiType.getEditOsmValue2());
|
||||
entity.removeTag(Entity.REMOVE_TAG_PREFIX + poiType.getEditOsmTag2());
|
||||
}
|
||||
} else if (!Algorithms.isEmpty(poiTypeTag)) {
|
||||
PoiCategory category = editPoiData.getPoiCategory();
|
||||
if (category != null) {
|
||||
|
|
|
@ -127,6 +127,9 @@ public class OpenstreetmapLocalUtil implements OpenstreetmapUtil {
|
|||
if (poiType.getOsmTag2() != null) {
|
||||
entity.putTagNoLC(poiType.getOsmTag2(), poiType.getOsmValue2());
|
||||
}
|
||||
if (poiType.getEditOsmTag2() != null) {
|
||||
entity.putTagNoLC(poiType.getEditOsmTag2(), poiType.getEditOsmValue2());
|
||||
}
|
||||
}
|
||||
if (!Algorithms.isEmpty(mapObject.getName())) {
|
||||
entity.putTagNoLC(OSMTagKey.NAME.getValue(), mapObject.getName());
|
||||
|
|
Loading…
Reference in a new issue