Merge pull request #5401 from osmandapp/Fix_5343

Fix 5343
This commit is contained in:
Alexander Sytnyk 2018-05-14 14:10:47 +03:00 committed by GitHub
commit de6c9bb0f9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 53 additions and 12 deletions

View file

@ -321,6 +321,16 @@ public class MenuBuilder {
return routes.size() > 0;
}
private boolean showLocalTransportRoutes() {
List<TransportStopRoute> localTransportRoutes = mapContextMenu.getLocalTransportStopRoutes();
return localTransportRoutes != null && localTransportRoutes.size() > 0;
}
private boolean showNearbyTransportRoutes() {
List<TransportStopRoute> nearbyTransportRoutes = mapContextMenu.getNearbyTransportStopRoutes();
return nearbyTransportRoutes != null && nearbyTransportRoutes.size() > 0;
}
void onHide() {
hidden = true;
}
@ -440,11 +450,12 @@ public class MenuBuilder {
protected void buildTopInternal(View view) {
if (showTransportRoutes()) {
buildRow(view, 0, null, app.getString(R.string.transport_Routes), 0, true, getCollapsableTransportStopRoutesView(view.getContext(), false, false),
false, 0, false, null, true);
CollapsableView collapsableView = getCollapsableTransportStopRoutesView(view.getContext(), false, true);
if (collapsableView != null) {
if (showLocalTransportRoutes()) {
buildRow(view, 0, null, app.getString(R.string.transport_Routes), 0, true, getCollapsableTransportStopRoutesView(view.getContext(), false, false),
false, 0, false, null, true);
}
if (showNearbyTransportRoutes()) {
CollapsableView collapsableView = getCollapsableTransportStopRoutesView(view.getContext(), false, true);
String routesWithingDistance = app.getString(R.string.transport_nearby_routes_within) + " " + OsmAndFormatter.getFormattedDistance(TransportStopController.SHOW_STOPS_RADIUS_METERS, app);
buildRow(view, 0, null, routesWithingDistance, 0, true, collapsableView,
false, 0, false, null, true);
@ -747,6 +758,19 @@ public class MenuBuilder {
}
}
private String adjustRouteRef(String ref) {
if (ref != null) {
int charPos = ref.lastIndexOf(':');
if (charPos != -1) {
ref = ref.substring(0, charPos);
}
if (ref.length() > 4) {
ref = ref.substring(0, 4);
}
}
return ref;
}
public int dpToPx(float dp) {
Resources r = app.getResources();
return (int) TypedValue.applyDimension(
@ -785,7 +809,7 @@ public class MenuBuilder {
shape.setColor(route.getColor(mapActivity.getMyApplication(), !light));
transportRect.setBackgroundDrawable(shape);
transportRect.setText(route.route.getRef());
transportRect.setText(adjustRouteRef(route.route.getRef()));
baseView.addView(transportRect);
LinearLayout infoView = new LinearLayout(view.getContext());
@ -850,11 +874,7 @@ public class MenuBuilder {
} else {
buildTransportRouteRows(view, nearbyTransportStopRoutes);
}
if (isNearbyRoutes && nearbyTransportStopRoutes.isEmpty()) {
return null;
} else {
return new CollapsableView(view, this, collapsed);
}
return new CollapsableView(view, this, collapsed);
}
private void buildTransportRouteRows(LinearLayout view, List<TransportStopRoute> routes) {

View file

@ -521,7 +521,7 @@ public abstract class MenuController extends BaseMenuController implements Colla
return null;
}
private List<TransportStopRoute> getSubTransportStopRoutes(boolean nearby) {
protected List<TransportStopRoute> getSubTransportStopRoutes(boolean nearby) {
List<TransportStopRoute> allRoutes = getTransportStopRoutes();
if (allRoutes != null) {
List<TransportStopRoute> res = new ArrayList<>();

View file

@ -178,6 +178,24 @@ public class AmenityMenuController extends MenuController {
return routes;
}
@Override
protected List<TransportStopRoute> getSubTransportStopRoutes(boolean nearby) {
List<TransportStopRoute> allRoutes = getTransportStopRoutes();
if (allRoutes != null) {
List<TransportStopRoute> res = new ArrayList<>();
for (TransportStopRoute route : allRoutes) {
boolean isCurrentRouteLocal = route.refStop != null && route.refStop.getName().equals(route.stop.getName());
if (!nearby && isCurrentRouteLocal) {
res.add(route);
} else if (nearby && route.refStop == null) {
res.add(route);
}
}
return res;
}
return null;
}
@Override
public void addPlainMenuItems(String typeStr, PointDescription pointDescription, LatLon latLon) {
}
@ -261,6 +279,9 @@ public class AmenityMenuController extends MenuController {
r.desc = useEnglishNames ? rs.getEnName(true) : rs.getName();
r.route = rs;
r.stop = s;
if (amenity.getLocation().equals(s.getLocation()) || (isSubwayEntrance && type == TransportStopType.SUBWAY)) {
r.refStop = s;
}
r.distance = dist;
this.routes.add(r);
}