Fixed osm bug context menu

This commit is contained in:
Alexey Kulish 2015-11-09 17:17:32 +03:00
parent d3d1ac3ed4
commit 05b85352ef

View file

@ -279,6 +279,9 @@ public class OsmBugsLayer extends OsmandMapLayer implements IContextMenuProvider
} }
} }
reader.close(); reader.close();
for (OpenStreetNote note : bugs) {
note.acquireDescriptionAndType();
}
} catch (IOException e) { } catch (IOException e) {
log.warn("Error loading bugs", e); //$NON-NLS-1$ log.warn("Error loading bugs", e); //$NON-NLS-1$
} catch (NumberFormatException e) { } catch (NumberFormatException e) {
@ -513,7 +516,10 @@ public class OsmBugsLayer extends OsmandMapLayer implements IContextMenuProvider
@Override @Override
public PointDescription getObjectName(Object o) { public PointDescription getObjectName(Object o) {
if(o instanceof OpenStreetNote){ if(o instanceof OpenStreetNote){
return new PointDescription(PointDescription.POINT_TYPE_OSM_NOTE, activity.getString(R.string.osb_bug_name), ""); OpenStreetNote bug = (OpenStreetNote) o;
String name = bug.description != null ? bug.description : "";
String typeName = bug.typeName != null ? bug.typeName : activity.getString(R.string.osb_bug_name);
return new PointDescription(PointDescription.POINT_TYPE_OSM_NOTE, typeName, name);
} }
return null; return null;
} }
@ -567,25 +573,64 @@ public class OsmBugsLayer extends OsmandMapLayer implements IContextMenuProvider
private static final long serialVersionUID = -7848941747811172615L; private static final long serialVersionUID = -7848941747811172615L;
private double latitude; private double latitude;
private double longitude; private double longitude;
private String name; private String description;
private String typeName;
private List<String> dates = new ArrayList<String>(); private List<String> dates = new ArrayList<String>();
private List<String> comments = new ArrayList<String>(); private List<String> comments = new ArrayList<String>();
private List<String> users = new ArrayList<String>(); private List<String> users = new ArrayList<String>();
private long id; private long id;
private boolean opened; private boolean opened;
private void acquireDescriptionAndType() {
for (int i = 0; i < comments.size(); i++) {
StringBuilder sb = new StringBuilder();
if (i < dates.size()) {
sb.append(dates.get(i)).append(" ");
}
if (i < users.size()) {
sb.append(users.get(i));
}
description = comments.get(i);
typeName = sb.toString();
break;
}
if (description != null) {
if (comments.size() > 0) {
comments.remove(0);
}
if (dates.size() > 0) {
dates.remove(0);
}
if (users.size() > 0) {
users.remove(0);
}
}
}
public double getLatitude() { public double getLatitude() {
return latitude; return latitude;
} }
public void setLatitude(double latitude) { public void setLatitude(double latitude) {
this.latitude = latitude; this.latitude = latitude;
} }
public double getLongitude() { public double getLongitude() {
return longitude; return longitude;
} }
public void setLongitude(double longitude) { public void setLongitude(double longitude) {
this.longitude = longitude; this.longitude = longitude;
} }
public String getDescription() {
return description;
}
public String getTypeName() {
return typeName;
}
public String getCommentDescription() { public String getCommentDescription() {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
for (String s : getCommentDescriptionList()) { for (String s : getCommentDescriptionList()) {