Merge pull request #1034 from misaochan/fix-description-bug

Fix issue with Nearby item descriptions
This commit is contained in:
Yusuke Matsubara 2018-01-15 18:29:24 +09:00 committed by GitHub
commit a8bc53d1a7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 31 additions and 27 deletions

View file

@ -109,7 +109,7 @@ public class NearbyInfoDialog extends OverlayDialog {
NearbyInfoDialog mDialog = new NearbyInfoDialog();
Bundle bundle = new Bundle();
bundle.putString(ARG_TITLE, place.name);
bundle.putString(ARG_DESC, place.getDescription().getText());
bundle.putString(ARG_DESC, place.getLongDescription());
bundle.putDouble(ARG_LATITUDE, place.location.getLatitude());
bundle.putDouble(ARG_LONGITUDE, place.location.getLongitude());
bundle.putParcelable(ARG_SITE_LINK, place.siteLinks);

View file

@ -126,7 +126,7 @@ public class NearbyPlaces {
places.add(new Place(
name,
Place.Description.fromText(type), // list
Place.Label.fromText(type), // list
type, // details
Uri.parse(icon),
new LatLng(latitude, longitude, 0),
@ -188,7 +188,7 @@ public class NearbyPlaces {
places.add(new Place(
name,
Place.Description.fromText(type), // list
Place.Label.fromText(type), // list
type, // details
null,
new LatLng(latitude, longitude, 0),

View file

@ -13,7 +13,7 @@ import fr.free.nrw.commons.location.LatLng;
public class Place {
public final String name;
private final Description description;
private final Label label;
private final String longDescription;
private final Uri secondaryImageUrl;
public final LatLng location;
@ -24,18 +24,22 @@ public class Place {
public final Sitelinks siteLinks;
public Place(String name, Description description, String longDescription,
public Place(String name, Label label, String longDescription,
Uri secondaryImageUrl, LatLng location, Sitelinks siteLinks) {
this.name = name;
this.description = description;
this.label = label;
this.longDescription = longDescription;
this.secondaryImageUrl = secondaryImageUrl;
this.location = location;
this.siteLinks = siteLinks;
}
public Description getDescription() {
return description;
public Label getLabel() {
return label;
}
public String getLongDescription() {
return longDescription;
}
public void setDistance(String distance) {
@ -67,10 +71,8 @@ public class Place {
* Most common types of desc: building, house, cottage, farmhouse,
* village, civil parish, church, railway station,
* gatehouse, milestone, inn, secondary school, hotel
*
* TODO Give a more accurate class name (see issue #742).
*/
public enum Description {
public enum Label {
BUILDING("building", R.drawable.round_icon_generic_building),
HOUSE("house", R.drawable.round_icon_house),
@ -95,19 +97,19 @@ public class Place {
WATERFALL("waterfall", R.drawable.round_icon_waterfall),
UNKNOWN("?", R.drawable.round_icon_unknown);
private static final Map<String, Description> TEXT_TO_DESCRIPTION
= new HashMap<>(Description.values().length);
private static final Map<String, Label> TEXT_TO_DESCRIPTION
= new HashMap<>(Label.values().length);
static {
for (Description description : values()) {
TEXT_TO_DESCRIPTION.put(description.text, description);
for (Label label : values()) {
TEXT_TO_DESCRIPTION.put(label.text, label);
}
}
private final String text;
@DrawableRes private final int icon;
Description(String text, @DrawableRes int icon) {
Label(String text, @DrawableRes int icon) {
this.text = text;
this.icon = icon;
}
@ -121,9 +123,9 @@ public class Place {
return icon;
}
public static Description fromText(String text) {
Description description = TEXT_TO_DESCRIPTION.get(text);
return description == null ? UNKNOWN : description;
public static Label fromText(String text) {
Label label = TEXT_TO_DESCRIPTION.get(text);
return label == null ? UNKNOWN : label;
}
}
}

View file

@ -43,13 +43,13 @@ class PlaceRenderer extends Renderer<Place> {
public void render() {
Place place = getContent();
tvName.setText(place.name);
String descriptionText = place.getDescription().getText();
String descriptionText = place.getLongDescription();
if (descriptionText.equals("?")) {
descriptionText = getContext().getString(R.string.no_description_found);
}
tvDesc.setText(descriptionText);
distance.setText(place.distance);
icon.setImageResource(place.getDescription().getIcon());
icon.setImageResource(place.getLabel().getIcon());
}
interface PlaceClickedListener {