Merge remote-tracking branch 'origin/master'

This commit is contained in:
Weblate 2018-03-04 16:39:08 +01:00
commit b71bfadb9e
7 changed files with 269 additions and 129 deletions

View file

@ -274,6 +274,9 @@ public class BinaryMapTransportReaderAdapter {
case OsmandOdb.TransportRoute.OPERATOR_FIELD_NUMBER: case OsmandOdb.TransportRoute.OPERATOR_FIELD_NUMBER:
dataObject.setOperator(regStr(stringTable)); //$NON-NLS-1$ dataObject.setOperator(regStr(stringTable)); //$NON-NLS-1$
break; break;
case OsmandOdb.TransportRoute.COLOR_FIELD_NUMBER:
dataObject.setColor(regStr(stringTable));
break;
case OsmandOdb.TransportRoute.GEOMETRY_FIELD_NUMBER: case OsmandOdb.TransportRoute.GEOMETRY_FIELD_NUMBER:
int sizeL = codedIS.readRawVarint32(); int sizeL = codedIS.readRawVarint32();
int pold = codedIS.pushLimit(sizeL); int pold = codedIS.pushLimit(sizeL);
@ -372,10 +375,12 @@ public class BinaryMapTransportReaderAdapter {
if(dataObject.getName().length() > 0 && dataObject.getName("en").length() == 0){ if(dataObject.getName().length() > 0 && dataObject.getName("en").length() == 0){
dataObject.setEnName(Junidecode.unidecode(dataObject.getName())); dataObject.setEnName(Junidecode.unidecode(dataObject.getName()));
} }
if(dataObject.getOperator().length() > 0){ if(dataObject.getOperator().length() > 0){
dataObject.setOperator(stringTable.get(dataObject.getOperator().charAt(0))); dataObject.setOperator(stringTable.get(dataObject.getOperator().charAt(0)));
} }
if(dataObject.getColor() != null && dataObject.getColor().length() > 0){
dataObject.setColor(stringTable.get(dataObject.getColor().charAt(0)));
}
if(dataObject.getType().length() > 0){ if(dataObject.getType().length() > 0){
dataObject.setType(stringTable.get(dataObject.getType().charAt(0))); dataObject.setType(stringTable.get(dataObject.getType().charAt(0)));
} }

View file

@ -29345,6 +29345,24 @@ public final class OsmandOdb {
*/ */
int getDistance(); int getDistance();
// optional uint32 color = 9;
/**
* <code>optional uint32 color = 9;</code>
*
* <pre>
* reference in string table
* </pre>
*/
boolean hasColor();
/**
* <code>optional uint32 color = 9;</code>
*
* <pre>
* reference in string table
* </pre>
*/
int getColor();
// repeated .OsmAnd.OBF.TransportRouteStop directStops = 15; // repeated .OsmAnd.OBF.TransportRouteStop directStops = 15;
/** /**
* <code>repeated .OsmAnd.OBF.TransportRouteStop directStops = 15;</code> * <code>repeated .OsmAnd.OBF.TransportRouteStop directStops = 15;</code>
@ -29525,24 +29543,29 @@ public final class OsmandOdb {
distance_ = input.readUInt32(); distance_ = input.readUInt32();
break; break;
} }
case 72: {
bitField0_ |= 0x00000080;
color_ = input.readUInt32();
break;
}
case 122: { case 122: {
if (!((mutable_bitField0_ & 0x00000080) == 0x00000080)) { if (!((mutable_bitField0_ & 0x00000100) == 0x00000100)) {
directStops_ = new java.util.ArrayList<net.osmand.binary.OsmandOdb.TransportRouteStop>(); directStops_ = new java.util.ArrayList<net.osmand.binary.OsmandOdb.TransportRouteStop>();
mutable_bitField0_ |= 0x00000080; mutable_bitField0_ |= 0x00000100;
} }
directStops_.add(input.readMessage(net.osmand.binary.OsmandOdb.TransportRouteStop.PARSER, extensionRegistry)); directStops_.add(input.readMessage(net.osmand.binary.OsmandOdb.TransportRouteStop.PARSER, extensionRegistry));
break; break;
} }
case 130: { case 130: {
if (!((mutable_bitField0_ & 0x00000100) == 0x00000100)) { if (!((mutable_bitField0_ & 0x00000200) == 0x00000200)) {
reverseStops_ = new java.util.ArrayList<net.osmand.binary.OsmandOdb.TransportRouteStop>(); reverseStops_ = new java.util.ArrayList<net.osmand.binary.OsmandOdb.TransportRouteStop>();
mutable_bitField0_ |= 0x00000100; mutable_bitField0_ |= 0x00000200;
} }
reverseStops_.add(input.readMessage(net.osmand.binary.OsmandOdb.TransportRouteStop.PARSER, extensionRegistry)); reverseStops_.add(input.readMessage(net.osmand.binary.OsmandOdb.TransportRouteStop.PARSER, extensionRegistry));
break; break;
} }
case 138: { case 138: {
bitField0_ |= 0x00000080; bitField0_ |= 0x00000100;
geometry_ = input.readBytes(); geometry_ = input.readBytes();
break; break;
} }
@ -29554,10 +29577,10 @@ public final class OsmandOdb {
throw new com.google.protobuf.InvalidProtocolBufferException( throw new com.google.protobuf.InvalidProtocolBufferException(
e.getMessage()).setUnfinishedMessage(this); e.getMessage()).setUnfinishedMessage(this);
} finally { } finally {
if (((mutable_bitField0_ & 0x00000080) == 0x00000080)) { if (((mutable_bitField0_ & 0x00000100) == 0x00000100)) {
directStops_ = java.util.Collections.unmodifiableList(directStops_); directStops_ = java.util.Collections.unmodifiableList(directStops_);
} }
if (((mutable_bitField0_ & 0x00000100) == 0x00000100)) { if (((mutable_bitField0_ & 0x00000200) == 0x00000200)) {
reverseStops_ = java.util.Collections.unmodifiableList(reverseStops_); reverseStops_ = java.util.Collections.unmodifiableList(reverseStops_);
} }
this.unknownFields = unknownFields.build(); this.unknownFields = unknownFields.build();
@ -29771,6 +29794,30 @@ public final class OsmandOdb {
return distance_; return distance_;
} }
// optional uint32 color = 9;
public static final int COLOR_FIELD_NUMBER = 9;
private int color_;
/**
* <code>optional uint32 color = 9;</code>
*
* <pre>
* reference in string table
* </pre>
*/
public boolean hasColor() {
return ((bitField0_ & 0x00000080) == 0x00000080);
}
/**
* <code>optional uint32 color = 9;</code>
*
* <pre>
* reference in string table
* </pre>
*/
public int getColor() {
return color_;
}
// repeated .OsmAnd.OBF.TransportRouteStop directStops = 15; // repeated .OsmAnd.OBF.TransportRouteStop directStops = 15;
public static final int DIRECTSTOPS_FIELD_NUMBER = 15; public static final int DIRECTSTOPS_FIELD_NUMBER = 15;
private java.util.List<net.osmand.binary.OsmandOdb.TransportRouteStop> directStops_; private java.util.List<net.osmand.binary.OsmandOdb.TransportRouteStop> directStops_;
@ -29877,7 +29924,7 @@ public final class OsmandOdb {
* </pre> * </pre>
*/ */
public boolean hasGeometry() { public boolean hasGeometry() {
return ((bitField0_ & 0x00000080) == 0x00000080); return ((bitField0_ & 0x00000100) == 0x00000100);
} }
/** /**
* <code>optional bytes geometry = 17;</code> * <code>optional bytes geometry = 17;</code>
@ -29901,6 +29948,7 @@ public final class OsmandOdb {
name_ = 0; name_ = 0;
nameEn_ = 0; nameEn_ = 0;
distance_ = 0; distance_ = 0;
color_ = 0;
directStops_ = java.util.Collections.emptyList(); directStops_ = java.util.Collections.emptyList();
reverseStops_ = java.util.Collections.emptyList(); reverseStops_ = java.util.Collections.emptyList();
geometry_ = com.google.protobuf.ByteString.EMPTY; geometry_ = com.google.protobuf.ByteString.EMPTY;
@ -29954,13 +30002,16 @@ public final class OsmandOdb {
if (((bitField0_ & 0x00000040) == 0x00000040)) { if (((bitField0_ & 0x00000040) == 0x00000040)) {
output.writeUInt32(8, distance_); output.writeUInt32(8, distance_);
} }
if (((bitField0_ & 0x00000080) == 0x00000080)) {
output.writeUInt32(9, color_);
}
for (int i = 0; i < directStops_.size(); i++) { for (int i = 0; i < directStops_.size(); i++) {
output.writeMessage(15, directStops_.get(i)); output.writeMessage(15, directStops_.get(i));
} }
for (int i = 0; i < reverseStops_.size(); i++) { for (int i = 0; i < reverseStops_.size(); i++) {
output.writeMessage(16, reverseStops_.get(i)); output.writeMessage(16, reverseStops_.get(i));
} }
if (((bitField0_ & 0x00000080) == 0x00000080)) { if (((bitField0_ & 0x00000100) == 0x00000100)) {
output.writeBytes(17, geometry_); output.writeBytes(17, geometry_);
} }
getUnknownFields().writeTo(output); getUnknownFields().writeTo(output);
@ -30000,6 +30051,10 @@ public final class OsmandOdb {
size += com.google.protobuf.CodedOutputStream size += com.google.protobuf.CodedOutputStream
.computeUInt32Size(8, distance_); .computeUInt32Size(8, distance_);
} }
if (((bitField0_ & 0x00000080) == 0x00000080)) {
size += com.google.protobuf.CodedOutputStream
.computeUInt32Size(9, color_);
}
for (int i = 0; i < directStops_.size(); i++) { for (int i = 0; i < directStops_.size(); i++) {
size += com.google.protobuf.CodedOutputStream size += com.google.protobuf.CodedOutputStream
.computeMessageSize(15, directStops_.get(i)); .computeMessageSize(15, directStops_.get(i));
@ -30008,7 +30063,7 @@ public final class OsmandOdb {
size += com.google.protobuf.CodedOutputStream size += com.google.protobuf.CodedOutputStream
.computeMessageSize(16, reverseStops_.get(i)); .computeMessageSize(16, reverseStops_.get(i));
} }
if (((bitField0_ & 0x00000080) == 0x00000080)) { if (((bitField0_ & 0x00000100) == 0x00000100)) {
size += com.google.protobuf.CodedOutputStream size += com.google.protobuf.CodedOutputStream
.computeBytesSize(17, geometry_); .computeBytesSize(17, geometry_);
} }
@ -30144,20 +30199,22 @@ public final class OsmandOdb {
bitField0_ = (bitField0_ & ~0x00000020); bitField0_ = (bitField0_ & ~0x00000020);
distance_ = 0; distance_ = 0;
bitField0_ = (bitField0_ & ~0x00000040); bitField0_ = (bitField0_ & ~0x00000040);
color_ = 0;
bitField0_ = (bitField0_ & ~0x00000080);
if (directStopsBuilder_ == null) { if (directStopsBuilder_ == null) {
directStops_ = java.util.Collections.emptyList(); directStops_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000080); bitField0_ = (bitField0_ & ~0x00000100);
} else { } else {
directStopsBuilder_.clear(); directStopsBuilder_.clear();
} }
if (reverseStopsBuilder_ == null) { if (reverseStopsBuilder_ == null) {
reverseStops_ = java.util.Collections.emptyList(); reverseStops_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000100); bitField0_ = (bitField0_ & ~0x00000200);
} else { } else {
reverseStopsBuilder_.clear(); reverseStopsBuilder_.clear();
} }
geometry_ = com.google.protobuf.ByteString.EMPTY; geometry_ = com.google.protobuf.ByteString.EMPTY;
bitField0_ = (bitField0_ & ~0x00000200); bitField0_ = (bitField0_ & ~0x00000400);
return this; return this;
} }
@ -30214,26 +30271,30 @@ public final class OsmandOdb {
to_bitField0_ |= 0x00000040; to_bitField0_ |= 0x00000040;
} }
result.distance_ = distance_; result.distance_ = distance_;
if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
to_bitField0_ |= 0x00000080;
}
result.color_ = color_;
if (directStopsBuilder_ == null) { if (directStopsBuilder_ == null) {
if (((bitField0_ & 0x00000080) == 0x00000080)) { if (((bitField0_ & 0x00000100) == 0x00000100)) {
directStops_ = java.util.Collections.unmodifiableList(directStops_); directStops_ = java.util.Collections.unmodifiableList(directStops_);
bitField0_ = (bitField0_ & ~0x00000080); bitField0_ = (bitField0_ & ~0x00000100);
} }
result.directStops_ = directStops_; result.directStops_ = directStops_;
} else { } else {
result.directStops_ = directStopsBuilder_.build(); result.directStops_ = directStopsBuilder_.build();
} }
if (reverseStopsBuilder_ == null) { if (reverseStopsBuilder_ == null) {
if (((bitField0_ & 0x00000100) == 0x00000100)) { if (((bitField0_ & 0x00000200) == 0x00000200)) {
reverseStops_ = java.util.Collections.unmodifiableList(reverseStops_); reverseStops_ = java.util.Collections.unmodifiableList(reverseStops_);
bitField0_ = (bitField0_ & ~0x00000100); bitField0_ = (bitField0_ & ~0x00000200);
} }
result.reverseStops_ = reverseStops_; result.reverseStops_ = reverseStops_;
} else { } else {
result.reverseStops_ = reverseStopsBuilder_.build(); result.reverseStops_ = reverseStopsBuilder_.build();
} }
if (((from_bitField0_ & 0x00000200) == 0x00000200)) { if (((from_bitField0_ & 0x00000400) == 0x00000400)) {
to_bitField0_ |= 0x00000080; to_bitField0_ |= 0x00000100;
} }
result.geometry_ = geometry_; result.geometry_ = geometry_;
result.bitField0_ = to_bitField0_; result.bitField0_ = to_bitField0_;
@ -30275,11 +30336,14 @@ public final class OsmandOdb {
if (other.hasDistance()) { if (other.hasDistance()) {
setDistance(other.getDistance()); setDistance(other.getDistance());
} }
if (other.hasColor()) {
setColor(other.getColor());
}
if (directStopsBuilder_ == null) { if (directStopsBuilder_ == null) {
if (!other.directStops_.isEmpty()) { if (!other.directStops_.isEmpty()) {
if (directStops_.isEmpty()) { if (directStops_.isEmpty()) {
directStops_ = other.directStops_; directStops_ = other.directStops_;
bitField0_ = (bitField0_ & ~0x00000080); bitField0_ = (bitField0_ & ~0x00000100);
} else { } else {
ensureDirectStopsIsMutable(); ensureDirectStopsIsMutable();
directStops_.addAll(other.directStops_); directStops_.addAll(other.directStops_);
@ -30292,7 +30356,7 @@ public final class OsmandOdb {
directStopsBuilder_.dispose(); directStopsBuilder_.dispose();
directStopsBuilder_ = null; directStopsBuilder_ = null;
directStops_ = other.directStops_; directStops_ = other.directStops_;
bitField0_ = (bitField0_ & ~0x00000080); bitField0_ = (bitField0_ & ~0x00000100);
directStopsBuilder_ = directStopsBuilder_ =
com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
getDirectStopsFieldBuilder() : null; getDirectStopsFieldBuilder() : null;
@ -30305,7 +30369,7 @@ public final class OsmandOdb {
if (!other.reverseStops_.isEmpty()) { if (!other.reverseStops_.isEmpty()) {
if (reverseStops_.isEmpty()) { if (reverseStops_.isEmpty()) {
reverseStops_ = other.reverseStops_; reverseStops_ = other.reverseStops_;
bitField0_ = (bitField0_ & ~0x00000100); bitField0_ = (bitField0_ & ~0x00000200);
} else { } else {
ensureReverseStopsIsMutable(); ensureReverseStopsIsMutable();
reverseStops_.addAll(other.reverseStops_); reverseStops_.addAll(other.reverseStops_);
@ -30318,7 +30382,7 @@ public final class OsmandOdb {
reverseStopsBuilder_.dispose(); reverseStopsBuilder_.dispose();
reverseStopsBuilder_ = null; reverseStopsBuilder_ = null;
reverseStops_ = other.reverseStops_; reverseStops_ = other.reverseStops_;
bitField0_ = (bitField0_ & ~0x00000100); bitField0_ = (bitField0_ & ~0x00000200);
reverseStopsBuilder_ = reverseStopsBuilder_ =
com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
getReverseStopsFieldBuilder() : null; getReverseStopsFieldBuilder() : null;
@ -30725,13 +30789,62 @@ public final class OsmandOdb {
return this; return this;
} }
// optional uint32 color = 9;
private int color_ ;
/**
* <code>optional uint32 color = 9;</code>
*
* <pre>
* reference in string table
* </pre>
*/
public boolean hasColor() {
return ((bitField0_ & 0x00000080) == 0x00000080);
}
/**
* <code>optional uint32 color = 9;</code>
*
* <pre>
* reference in string table
* </pre>
*/
public int getColor() {
return color_;
}
/**
* <code>optional uint32 color = 9;</code>
*
* <pre>
* reference in string table
* </pre>
*/
public Builder setColor(int value) {
bitField0_ |= 0x00000080;
color_ = value;
onChanged();
return this;
}
/**
* <code>optional uint32 color = 9;</code>
*
* <pre>
* reference in string table
* </pre>
*/
public Builder clearColor() {
bitField0_ = (bitField0_ & ~0x00000080);
color_ = 0;
onChanged();
return this;
}
// repeated .OsmAnd.OBF.TransportRouteStop directStops = 15; // repeated .OsmAnd.OBF.TransportRouteStop directStops = 15;
private java.util.List<net.osmand.binary.OsmandOdb.TransportRouteStop> directStops_ = private java.util.List<net.osmand.binary.OsmandOdb.TransportRouteStop> directStops_ =
java.util.Collections.emptyList(); java.util.Collections.emptyList();
private void ensureDirectStopsIsMutable() { private void ensureDirectStopsIsMutable() {
if (!((bitField0_ & 0x00000080) == 0x00000080)) { if (!((bitField0_ & 0x00000100) == 0x00000100)) {
directStops_ = new java.util.ArrayList<net.osmand.binary.OsmandOdb.TransportRouteStop>(directStops_); directStops_ = new java.util.ArrayList<net.osmand.binary.OsmandOdb.TransportRouteStop>(directStops_);
bitField0_ |= 0x00000080; bitField0_ |= 0x00000100;
} }
} }
@ -30880,7 +30993,7 @@ public final class OsmandOdb {
public Builder clearDirectStops() { public Builder clearDirectStops() {
if (directStopsBuilder_ == null) { if (directStopsBuilder_ == null) {
directStops_ = java.util.Collections.emptyList(); directStops_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000080); bitField0_ = (bitField0_ & ~0x00000100);
onChanged(); onChanged();
} else { } else {
directStopsBuilder_.clear(); directStopsBuilder_.clear();
@ -30957,7 +31070,7 @@ public final class OsmandOdb {
directStopsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< directStopsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
net.osmand.binary.OsmandOdb.TransportRouteStop, net.osmand.binary.OsmandOdb.TransportRouteStop.Builder, net.osmand.binary.OsmandOdb.TransportRouteStopOrBuilder>( net.osmand.binary.OsmandOdb.TransportRouteStop, net.osmand.binary.OsmandOdb.TransportRouteStop.Builder, net.osmand.binary.OsmandOdb.TransportRouteStopOrBuilder>(
directStops_, directStops_,
((bitField0_ & 0x00000080) == 0x00000080), ((bitField0_ & 0x00000100) == 0x00000100),
getParentForChildren(), getParentForChildren(),
isClean()); isClean());
directStops_ = null; directStops_ = null;
@ -30969,9 +31082,9 @@ public final class OsmandOdb {
private java.util.List<net.osmand.binary.OsmandOdb.TransportRouteStop> reverseStops_ = private java.util.List<net.osmand.binary.OsmandOdb.TransportRouteStop> reverseStops_ =
java.util.Collections.emptyList(); java.util.Collections.emptyList();
private void ensureReverseStopsIsMutable() { private void ensureReverseStopsIsMutable() {
if (!((bitField0_ & 0x00000100) == 0x00000100)) { if (!((bitField0_ & 0x00000200) == 0x00000200)) {
reverseStops_ = new java.util.ArrayList<net.osmand.binary.OsmandOdb.TransportRouteStop>(reverseStops_); reverseStops_ = new java.util.ArrayList<net.osmand.binary.OsmandOdb.TransportRouteStop>(reverseStops_);
bitField0_ |= 0x00000100; bitField0_ |= 0x00000200;
} }
} }
@ -31164,7 +31277,7 @@ public final class OsmandOdb {
public Builder clearReverseStops() { public Builder clearReverseStops() {
if (reverseStopsBuilder_ == null) { if (reverseStopsBuilder_ == null) {
reverseStops_ = java.util.Collections.emptyList(); reverseStops_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000100); bitField0_ = (bitField0_ & ~0x00000200);
onChanged(); onChanged();
} else { } else {
reverseStopsBuilder_.clear(); reverseStopsBuilder_.clear();
@ -31269,7 +31382,7 @@ public final class OsmandOdb {
reverseStopsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< reverseStopsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
net.osmand.binary.OsmandOdb.TransportRouteStop, net.osmand.binary.OsmandOdb.TransportRouteStop.Builder, net.osmand.binary.OsmandOdb.TransportRouteStopOrBuilder>( net.osmand.binary.OsmandOdb.TransportRouteStop, net.osmand.binary.OsmandOdb.TransportRouteStop.Builder, net.osmand.binary.OsmandOdb.TransportRouteStopOrBuilder>(
reverseStops_, reverseStops_,
((bitField0_ & 0x00000100) == 0x00000100), ((bitField0_ & 0x00000200) == 0x00000200),
getParentForChildren(), getParentForChildren(),
isClean()); isClean());
reverseStops_ = null; reverseStops_ = null;
@ -31290,7 +31403,7 @@ public final class OsmandOdb {
* </pre> * </pre>
*/ */
public boolean hasGeometry() { public boolean hasGeometry() {
return ((bitField0_ & 0x00000200) == 0x00000200); return ((bitField0_ & 0x00000400) == 0x00000400);
} }
/** /**
* <code>optional bytes geometry = 17;</code> * <code>optional bytes geometry = 17;</code>
@ -31319,7 +31432,7 @@ public final class OsmandOdb {
if (value == null) { if (value == null) {
throw new NullPointerException(); throw new NullPointerException();
} }
bitField0_ |= 0x00000200; bitField0_ |= 0x00000400;
geometry_ = value; geometry_ = value;
onChanged(); onChanged();
return this; return this;
@ -31335,7 +31448,7 @@ public final class OsmandOdb {
* </pre> * </pre>
*/ */
public Builder clearGeometry() { public Builder clearGeometry() {
bitField0_ = (bitField0_ & ~0x00000200); bitField0_ = (bitField0_ & ~0x00000400);
geometry_ = getDefaultInstance().getGeometry(); geometry_ = getDefaultInstance().getGeometry();
onChanged(); onChanged();
return this; return this;
@ -57940,88 +58053,89 @@ public final class OsmandOdb {
" \003(\t\022\030\n\020attributeTagIds2\030\021 \003(\r\022\030\n\020attrib" + " \003(\t\022\030\n\020attributeTagIds2\030\021 \003(\r\022\030\n\020attrib" +
"uteValues2\030\022 \003(\t\"=\n\017TransportRoutes\022*\n\006r" + "uteValues2\030\022 \003(\t\"=\n\017TransportRoutes\022*\n\006r" +
"outes\030\006 \003(\0132\032.OsmAnd.OBF.TransportRoute\"" + "outes\030\006 \003(\0132\032.OsmAnd.OBF.TransportRoute\"" +
"\367\001\n\016TransportRoute\022\n\n\002id\030\001 \002(\004\022\014\n\004type\030\003" + "\206\002\n\016TransportRoute\022\n\n\002id\030\001 \002(\004\022\014\n\004type\030\003" +
" \001(\r\022\020\n\010operator\030\004 \001(\r\022\013\n\003ref\030\005 \001(\t\022\014\n\004n" + " \001(\r\022\020\n\010operator\030\004 \001(\r\022\013\n\003ref\030\005 \001(\t\022\014\n\004n" +
"ame\030\006 \001(\r\022\017\n\007name_en\030\007 \001(\r\022\020\n\010distance\030\010" + "ame\030\006 \001(\r\022\017\n\007name_en\030\007 \001(\r\022\020\n\010distance\030\010" +
" \001(\r\0223\n\013directStops\030\017 \003(\0132\036.OsmAnd.OBF.T" + " \001(\r\022\r\n\005color\030\t \001(\r\0223\n\013directStops\030\017 \003(\013" +
"ransportRouteStop\0224\n\014reverseStops\030\020 \003(\0132", "2\036.OsmAnd.OBF.TransportRouteStop\0224\n\014reve",
"\036.OsmAnd.OBF.TransportRouteStop\022\020\n\010geome" + "rseStops\030\020 \003(\0132\036.OsmAnd.OBF.TransportRou" +
"try\030\021 \001(\014\"W\n\022TransportRouteStop\022\n\n\002id\030\001 " + "teStop\022\020\n\010geometry\030\021 \001(\014\"W\n\022TransportRou" +
"\002(\022\022\n\n\002dx\030\002 \002(\021\022\n\n\002dy\030\003 \002(\021\022\014\n\004name\030\006 \002(" + "teStop\022\n\n\002id\030\001 \002(\022\022\n\n\002dx\030\002 \002(\021\022\n\n\002dy\030\003 \002" +
"\r\022\017\n\007name_en\030\007 \001(\r\"b\n\rTransportStop\022\n\n\002d" + "(\021\022\014\n\004name\030\006 \002(\r\022\017\n\007name_en\030\007 \001(\r\"b\n\rTra" +
"x\030\001 \002(\021\022\n\n\002dy\030\002 \002(\021\022\n\n\002id\030\005 \002(\022\022\014\n\004name\030" + "nsportStop\022\n\n\002dx\030\001 \002(\021\022\n\n\002dy\030\002 \002(\021\022\n\n\002id" +
"\006 \002(\r\022\017\n\007name_en\030\007 \001(\r\022\016\n\006routes\030\020 \003(\r\"\272" + "\030\005 \002(\022\022\014\n\004name\030\006 \002(\r\022\017\n\007name_en\030\007 \001(\r\022\016\n" +
"\001\n\022TransportStopsTree\022\014\n\004left\030\001 \002(\021\022\r\n\005r" + "\006routes\030\020 \003(\r\"\272\001\n\022TransportStopsTree\022\014\n\004" +
"ight\030\002 \002(\021\022\013\n\003top\030\003 \002(\021\022\016\n\006bottom\030\004 \002(\021\022" + "left\030\001 \002(\021\022\r\n\005right\030\002 \002(\021\022\013\n\003top\030\003 \002(\021\022\016" +
"0\n\010subtrees\030\007 \003(\0132\036.OsmAnd.OBF.Transport" + "\n\006bottom\030\004 \002(\021\0220\n\010subtrees\030\007 \003(\0132\036.OsmAn" +
"StopsTree\022(\n\005leafs\030\010 \003(\0132\031.OsmAnd.OBF.Tr", "d.OBF.TransportStopsTree\022(\n\005leafs\030\010 \003(\0132",
"ansportStop\022\016\n\006baseId\030\020 \001(\004\"\256\001\n\024OsmAndTr" + "\031.OsmAnd.OBF.TransportStop\022\016\n\006baseId\030\020 \001" +
"ansportIndex\022\014\n\004name\030\001 \001(\t\022+\n\006routes\030\003 \001" + "(\004\"\256\001\n\024OsmAndTransportIndex\022\014\n\004name\030\001 \001(" +
"(\0132\033.OsmAnd.OBF.TransportRoutes\022-\n\005stops" + "\t\022+\n\006routes\030\003 \001(\0132\033.OsmAnd.OBF.Transport" +
"\030\006 \001(\0132\036.OsmAnd.OBF.TransportStopsTree\022," + "Routes\022-\n\005stops\030\006 \001(\0132\036.OsmAnd.OBF.Trans" +
"\n\013stringTable\030\t \002(\0132\027.OsmAnd.OBF.StringT" + "portStopsTree\022,\n\013stringTable\030\t \002(\0132\027.Osm" +
"able\"\312\002\n\016OsmAndPoiIndex\022\014\n\004name\030\001 \002(\t\022-\n" + "And.OBF.StringTable\"\312\002\n\016OsmAndPoiIndex\022\014" +
"\nboundaries\030\002 \002(\0132\031.OsmAnd.OBF.OsmAndTil" + "\n\004name\030\001 \002(\t\022-\n\nboundaries\030\002 \002(\0132\031.OsmAn" +
"eBox\0228\n\017categoriesTable\030\003 \003(\0132\037.OsmAnd.O" + "d.OBF.OsmAndTileBox\0228\n\017categoriesTable\030\003" +
"BF.OsmAndCategoryTable\0221\n\tnameIndex\030\004 \001(" + " \003(\0132\037.OsmAnd.OBF.OsmAndCategoryTable\0221\n" +
"\0132\036.OsmAnd.OBF.OsmAndPoiNameIndex\0226\n\rsub", "\tnameIndex\030\004 \001(\0132\036.OsmAnd.OBF.OsmAndPoiN",
"typesTable\030\005 \001(\0132\037.OsmAnd.OBF.OsmAndSubt" + "ameIndex\0226\n\rsubtypesTable\030\005 \001(\0132\037.OsmAnd" +
"ypesTable\022\'\n\005boxes\030\006 \003(\0132\030.OsmAnd.OBF.Os" + ".OBF.OsmAndSubtypesTable\022\'\n\005boxes\030\006 \003(\0132" +
"mAndPoiBox\022-\n\007poiData\030\t \003(\0132\034.OsmAnd.OBF" + "\030.OsmAnd.OBF.OsmAndPoiBox\022-\n\007poiData\030\t \003" +
".OsmAndPoiBoxData\"\331\001\n\022OsmAndPoiNameIndex" + "(\0132\034.OsmAnd.OBF.OsmAndPoiBoxData\"\331\001\n\022Osm" +
"\022-\n\005table\030\003 \002(\0132\036.OsmAnd.OBF.IndexedStri" + "AndPoiNameIndex\022-\n\005table\030\003 \002(\0132\036.OsmAnd." +
"ngTable\022C\n\004data\030\005 \003(\01325.OsmAnd.OBF.OsmAn" + "OBF.IndexedStringTable\022C\n\004data\030\005 \003(\01325.O" +
"dPoiNameIndex.OsmAndPoiNameIndexData\032O\n\026" + "smAnd.OBF.OsmAndPoiNameIndex.OsmAndPoiNa" +
"OsmAndPoiNameIndexData\0225\n\005atoms\030\003 \003(\0132&." + "meIndexData\032O\n\026OsmAndPoiNameIndexData\0225\n" +
"OsmAnd.OBF.OsmAndPoiNameIndexDataAtom\"Q\n" + "\005atoms\030\003 \003(\0132&.OsmAnd.OBF.OsmAndPoiNameI" +
"\032OsmAndPoiNameIndexDataAtom\022\014\n\004zoom\030\002 \001(", "ndexDataAtom\"Q\n\032OsmAndPoiNameIndexDataAt",
"\r\022\t\n\001x\030\003 \001(\r\022\t\n\001y\030\004 \001(\r\022\017\n\007shiftTo\030\016 \001(\007" + "om\022\014\n\004zoom\030\002 \001(\r\022\t\n\001x\030\003 \001(\r\022\t\n\001y\030\004 \001(\r\022\017" +
"\">\n\023OsmAndCategoryTable\022\020\n\010category\030\001 \002(" + "\n\007shiftTo\030\016 \001(\007\">\n\023OsmAndCategoryTable\022\020" +
"\t\022\025\n\rsubcategories\030\003 \003(\t\"E\n\023OsmAndSubtyp" + "\n\010category\030\001 \002(\t\022\025\n\rsubcategories\030\003 \003(\t\"" +
"esTable\022.\n\010subtypes\030\004 \003(\0132\034.OsmAnd.OBF.O" + "E\n\023OsmAndSubtypesTable\022.\n\010subtypes\030\004 \003(\013" +
"smAndPoiSubtype\"\205\001\n\020OsmAndPoiSubtype\022\014\n\004" + "2\034.OsmAnd.OBF.OsmAndPoiSubtype\"\205\001\n\020OsmAn" +
"name\030\001 \002(\t\022\017\n\007tagname\030\002 \001(\t\022\016\n\006isText\030\003 " + "dPoiSubtype\022\014\n\004name\030\001 \002(\t\022\017\n\007tagname\030\002 \001" +
"\002(\010\022\021\n\tfrequency\030\005 \001(\r\022\031\n\021subtypeValuesS" + "(\t\022\016\n\006isText\030\003 \002(\010\022\021\n\tfrequency\030\005 \001(\r\022\031\n" +
"ize\030\006 \001(\r\022\024\n\014subtypeValue\030\010 \003(\t\"\255\001\n\014OsmA" + "\021subtypeValuesSize\030\006 \001(\r\022\024\n\014subtypeValue" +
"ndPoiBox\022\014\n\004zoom\030\001 \002(\r\022\014\n\004left\030\002 \002(\021\022\013\n\003" + "\030\010 \003(\t\"\255\001\n\014OsmAndPoiBox\022\014\n\004zoom\030\001 \002(\r\022\014\n" +
"top\030\003 \002(\021\0223\n\ncategories\030\004 \001(\0132\037.OsmAnd.O", "\004left\030\002 \002(\021\022\013\n\003top\030\003 \002(\021\0223\n\ncategories\030\004",
"BF.OsmAndPoiCategories\022*\n\010subBoxes\030\n \003(\013" + " \001(\0132\037.OsmAnd.OBF.OsmAndPoiCategories\022*\n" +
"2\030.OsmAnd.OBF.OsmAndPoiBox\022\023\n\013shiftToDat" + "\010subBoxes\030\n \003(\0132\030.OsmAnd.OBF.OsmAndPoiBo" +
"a\030\016 \001(\007\"@\n\023OsmAndPoiCategories\022\022\n\ncatego" + "x\022\023\n\013shiftToData\030\016 \001(\007\"@\n\023OsmAndPoiCateg" +
"ries\030\003 \003(\r\022\025\n\rsubcategories\030\005 \003(\r\"i\n\020Osm" + "ories\022\022\n\ncategories\030\003 \003(\r\022\025\n\rsubcategori" +
"AndPoiBoxData\022\014\n\004zoom\030\001 \001(\r\022\t\n\001x\030\002 \001(\r\022\t" + "es\030\005 \003(\r\"i\n\020OsmAndPoiBoxData\022\014\n\004zoom\030\001 \001" +
"\n\001y\030\003 \001(\r\0221\n\007poiData\030\005 \003(\0132 .OsmAnd.OBF." + "(\r\022\t\n\001x\030\002 \001(\r\022\t\n\001y\030\003 \001(\r\0221\n\007poiData\030\005 \003(" +
"OsmAndPoiBoxDataAtom\"\360\001\n\024OsmAndPoiBoxDat" + "\0132 .OsmAnd.OBF.OsmAndPoiBoxDataAtom\"\360\001\n\024" +
"aAtom\022\n\n\002dx\030\002 \002(\021\022\n\n\002dy\030\003 \002(\021\022\022\n\ncategor" + "OsmAndPoiBoxDataAtom\022\n\n\002dx\030\002 \002(\021\022\n\n\002dy\030\003" +
"ies\030\004 \003(\r\022\025\n\rsubcategories\030\005 \003(\r\022\014\n\004name" + " \002(\021\022\022\n\ncategories\030\004 \003(\r\022\025\n\rsubcategorie" +
"\030\006 \001(\t\022\016\n\006nameEn\030\007 \001(\t\022\n\n\002id\030\010 \001(\004\022\024\n\014op", "s\030\005 \003(\r\022\014\n\004name\030\006 \001(\t\022\016\n\006nameEn\030\007 \001(\t\022\n\n",
"eningHours\030\n \001(\t\022\014\n\004site\030\013 \001(\t\022\r\n\005phone\030" + "\002id\030\010 \001(\004\022\024\n\014openingHours\030\n \001(\t\022\014\n\004site\030" +
"\014 \001(\t\022\014\n\004note\030\r \001(\t\022\026\n\016textCategories\030\016 " + "\013 \001(\t\022\r\n\005phone\030\014 \001(\t\022\014\n\004note\030\r \001(\t\022\026\n\016te" +
"\003(\r\022\022\n\ntextValues\030\017 \003(\t\"\032\n\007IdTable\022\017\n\007ro" + "xtCategories\030\016 \003(\r\022\022\n\ntextValues\030\017 \003(\t\"\032" +
"uteId\030\001 \003(\022\"F\n\017RestrictionData\022\014\n\004type\030\001" + "\n\007IdTable\022\017\n\007routeId\030\001 \003(\022\"F\n\017Restrictio" +
" \002(\005\022\014\n\004from\030\002 \002(\005\022\n\n\002to\030\003 \002(\005\022\013\n\003via\030\004 " + "nData\022\014\n\004type\030\001 \002(\005\022\014\n\004from\030\002 \002(\005\022\n\n\002to\030" +
"\001(\005\"x\n\tRouteData\022\016\n\006points\030\001 \002(\014\022\022\n\npoin" + "\003 \002(\005\022\013\n\003via\030\004 \001(\005\"x\n\tRouteData\022\016\n\006point" +
"tTypes\030\004 \001(\014\022\022\n\npointNames\030\005 \001(\014\022\r\n\005type" + "s\030\001 \002(\014\022\022\n\npointTypes\030\004 \001(\014\022\022\n\npointName" +
"s\030\007 \002(\014\022\017\n\007routeId\030\014 \002(\005\022\023\n\013stringNames\030" + "s\030\005 \001(\014\022\r\n\005types\030\007 \002(\014\022\017\n\007routeId\030\014 \002(\005\022" +
"\016 \001(\014\"\304\005\n\022OsmAndRoutingIndex\022\014\n\004name\030\001 \002" + "\023\n\013stringNames\030\016 \001(\014\"\304\005\n\022OsmAndRoutingIn" +
"(\t\022?\n\005rules\030\002 \003(\01320.OsmAnd.OBF.OsmAndRou", "dex\022\014\n\004name\030\001 \002(\t\022?\n\005rules\030\002 \003(\01320.OsmAn",
"tingIndex.RouteEncodingRule\022>\n\trootBoxes" + "d.OBF.OsmAndRoutingIndex.RouteEncodingRu" +
"\030\003 \003(\0132+.OsmAnd.OBF.OsmAndRoutingIndex.R" + "le\022>\n\trootBoxes\030\003 \003(\0132+.OsmAnd.OBF.OsmAn" +
"outeDataBox\022A\n\014basemapBoxes\030\004 \003(\0132+.OsmA" + "dRoutingIndex.RouteDataBox\022A\n\014basemapBox" +
"nd.OBF.OsmAndRoutingIndex.RouteDataBox\022=" + "es\030\004 \003(\0132+.OsmAnd.OBF.OsmAndRoutingIndex" +
"\n\006blocks\030\005 \003(\0132-.OsmAnd.OBF.OsmAndRoutin" + ".RouteDataBox\022=\n\006blocks\030\005 \003(\0132-.OsmAnd.O" +
"gIndex.RouteDataBlock\032;\n\021RouteEncodingRu" + "BF.OsmAndRoutingIndex.RouteDataBlock\032;\n\021" +
"le\022\013\n\003tag\030\003 \002(\t\022\r\n\005value\030\005 \002(\t\022\n\n\002id\030\007 \001" + "RouteEncodingRule\022\013\n\003tag\030\003 \002(\t\022\r\n\005value\030" +
"(\r\032\231\001\n\014RouteDataBox\022\014\n\004left\030\001 \002(\021\022\r\n\005rig" + "\005 \002(\t\022\n\n\002id\030\007 \001(\r\032\231\001\n\014RouteDataBox\022\014\n\004le" +
"ht\030\002 \002(\021\022\013\n\003top\030\003 \002(\021\022\016\n\006bottom\030\004 \002(\021\022\023\n" + "ft\030\001 \002(\021\022\r\n\005right\030\002 \002(\021\022\013\n\003top\030\003 \002(\021\022\016\n\006" +
"\013shiftToData\030\005 \001(\007\022:\n\005boxes\030\007 \003(\0132+.OsmA", "bottom\030\004 \002(\021\022\023\n\013shiftToData\030\005 \001(\007\022:\n\005box",
"nd.OBF.OsmAndRoutingIndex.RouteDataBox\032\303" + "es\030\007 \003(\0132+.OsmAnd.OBF.OsmAndRoutingIndex" +
"\001\n\016RouteDataBlock\022$\n\007idTable\030\005 \001(\0132\023.Osm" + ".RouteDataBox\032\303\001\n\016RouteDataBlock\022$\n\007idTa" +
"And.OBF.IdTable\022*\n\013dataObjects\030\006 \003(\0132\025.O" + "ble\030\005 \001(\0132\023.OsmAnd.OBF.IdTable\022*\n\013dataOb" +
"smAnd.OBF.RouteData\0221\n\014restrictions\030\007 \003(" + "jects\030\006 \003(\0132\025.OsmAnd.OBF.RouteData\0221\n\014re" +
"\0132\033.OsmAnd.OBF.RestrictionData\022,\n\013string" + "strictions\030\007 \003(\0132\033.OsmAnd.OBF.Restrictio" +
"Table\030\010 \001(\0132\027.OsmAnd.OBF.StringTableB\036\n\021" + "nData\022,\n\013stringTable\030\010 \001(\0132\027.OsmAnd.OBF." +
"net.osmand.binaryB\tOsmandOdb" "StringTableB\036\n\021net.osmand.binaryB\tOsmand" +
"Odb"
}; };
com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() { new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
@ -58159,7 +58273,7 @@ public final class OsmandOdb {
internal_static_OsmAnd_OBF_TransportRoute_fieldAccessorTable = new internal_static_OsmAnd_OBF_TransportRoute_fieldAccessorTable = new
com.google.protobuf.GeneratedMessage.FieldAccessorTable( com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_OsmAnd_OBF_TransportRoute_descriptor, internal_static_OsmAnd_OBF_TransportRoute_descriptor,
new java.lang.String[] { "Id", "Type", "Operator", "Ref", "Name", "NameEn", "Distance", "DirectStops", "ReverseStops", "Geometry", }); new java.lang.String[] { "Id", "Type", "Operator", "Ref", "Name", "NameEn", "Distance", "Color", "DirectStops", "ReverseStops", "Geometry", });
internal_static_OsmAnd_OBF_TransportRouteStop_descriptor = internal_static_OsmAnd_OBF_TransportRouteStop_descriptor =
getDescriptor().getMessageTypes().get(17); getDescriptor().getMessageTypes().get(17);
internal_static_OsmAnd_OBF_TransportRouteStop_fieldAccessorTable = new internal_static_OsmAnd_OBF_TransportRouteStop_fieldAccessorTable = new

View file

@ -12,6 +12,7 @@ public class TransportRoute extends MapObject {
private String operator; private String operator;
private String type; private String type;
private Integer dist = null; private Integer dist = null;
private String color;
private List<Way> forwardWays; private List<Way> forwardWays;
public TransportRoute(){ public TransportRoute(){
@ -25,13 +26,15 @@ public class TransportRoute extends MapObject {
return forwardWays; return forwardWays;
} }
public String getColor() {
return color;
}
public void addWay(Way w) { public void addWay(Way w) {
if (forwardWays == null) { if (forwardWays == null) {
forwardWays = new ArrayList<>(); forwardWays = new ArrayList<>();
} }
forwardWays.add(w); forwardWays.add(w);
} }
public String getRef() { public String getRef() {
@ -69,6 +72,10 @@ public class TransportRoute extends MapObject {
this.dist = dist; this.dist = dist;
} }
public void setColor(String color) {
this.color = color;
}
public int getAvgBothDistance() { public int getAvgBothDistance() {
int d = 0; int d = 0;
int fSsize = forwardStops.size(); int fSsize = forwardStops.size();

View file

@ -76,7 +76,8 @@ public class OSMSettings {
ADMIN_LEVEL("admin_level"), //$NON-NLS-1$ ADMIN_LEVEL("admin_level"), //$NON-NLS-1$
PUBLIC_TRANSPORT("public_transport"), //$NON-NLS-1$ PUBLIC_TRANSPORT("public_transport"), //$NON-NLS-1$
ENTRANCE("entrance"), //$NON-NLS-1$ ENTRANCE("entrance"), //$NON-NLS-1$
; COLOUR("colour"); //$NON-NLS-1$
private final String value; private final String value;
private OSMTagKey(String value) { private OSMTagKey(String value) {

View file

@ -62,7 +62,6 @@ import net.osmand.plus.views.controls.SingleTapConfirm;
import net.osmand.util.Algorithms; import net.osmand.util.Algorithms;
import java.util.List; import java.util.List;
import java.util.Locale;
import static android.util.TypedValue.COMPLEX_UNIT_DIP; import static android.util.TypedValue.COMPLEX_UNIT_DIP;
import static net.osmand.plus.mapcontextmenu.MenuBuilder.SHADOW_HEIGHT_TOP_DP; import static net.osmand.plus.mapcontextmenu.MenuBuilder.SHADOW_HEIGHT_TOP_DP;
@ -1306,23 +1305,30 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo
} }
if (menuTopViewHeight != 0) { if (menuTopViewHeight != 0) {
int titleHeight = line1.getLineCount() * line1.getLineHeight() + line2LineCount * line2LineHeight + menuTitleTopBottomPadding; int titleHeight = line1.getLineCount() * line1.getLineHeight()
+ line2LineCount * line2LineHeight + menuTitleTopBottomPadding;
if (titleHeight < line1.getMeasuredHeight() + line2MeasuredHeight) { if (titleHeight < line1.getMeasuredHeight() + line2MeasuredHeight) {
titleHeight = line1.getMeasuredHeight() + line2MeasuredHeight; titleHeight = line1.getMeasuredHeight() + line2MeasuredHeight;
} }
newMenuTopViewHeight = menuTopViewHeightExcludingTitle + titleHeight + titleButtonHeight + downloadButtonsHeight + titleBottomButtonHeight + titleProgressHeight; newMenuTopViewHeight = menuTopViewHeightExcludingTitle + titleHeight
dy = Math.max(0, newMenuTopViewHeight - menuTopViewHeight - (newMenuTopShadowAllHeight - menuTopShadowAllHeight)); + titleButtonHeight + downloadButtonsHeight
+ titleBottomButtonHeight + titleProgressHeight;
dy = Math.max(0, newMenuTopViewHeight - menuTopViewHeight
- (newMenuTopShadowAllHeight - menuTopShadowAllHeight));
} else { } else {
menuTopViewHeightExcludingTitle = newMenuTopViewHeight - line1.getMeasuredHeight() - line2MeasuredHeight - titleButtonHeight - downloadButtonsHeight - titleBottomButtonHeight - titleProgressHeight; menuTopViewHeightExcludingTitle = newMenuTopViewHeight - line1.getMeasuredHeight() - line2MeasuredHeight
- titleButtonHeight - downloadButtonsHeight - titleBottomButtonHeight - titleProgressHeight;
menuTitleTopBottomPadding = (line1.getMeasuredHeight() - line1.getLineCount() * line1.getLineHeight()) menuTitleTopBottomPadding = (line1.getMeasuredHeight() - line1.getLineCount() * line1.getLineHeight())
+ (line2MeasuredHeight - line2LineCount * line2LineHeight); + (line2MeasuredHeight - line2LineCount * line2LineHeight);
menuButtonsHeight = view.findViewById(R.id.context_menu_bottom_buttons).getHeight()
+ view.findViewById(R.id.buttons_bottom_border).getHeight()
+ view.findViewById(R.id.context_menu_buttons).getHeight();
} }
} }
menuTopViewHeight = newMenuTopViewHeight; menuTopViewHeight = newMenuTopViewHeight;
menuTopShadowAllHeight = newMenuTopShadowAllHeight; menuTopShadowAllHeight = newMenuTopShadowAllHeight;
menuTitleHeight = menuTopShadowAllHeight + dy; menuTitleHeight = menuTopShadowAllHeight + dy;
menuBottomViewHeight = view.findViewById(R.id.context_menu_bottom_view).getHeight(); menuBottomViewHeight = view.findViewById(R.id.context_menu_bottom_view).getHeight();
menuButtonsHeight = view.findViewById(R.id.context_menu_bottom_buttons).getHeight() + view.findViewById(R.id.buttons_bottom_border).getHeight() + view.findViewById(R.id.context_menu_buttons).getHeight();
menuFullHeightMax = menuTitleHeight + menuBottomViewHeight; menuFullHeightMax = menuTitleHeight + menuBottomViewHeight;
@ -1603,6 +1609,7 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo
private void updateMainViewLayout(int posY) { private void updateMainViewLayout(int posY) {
if (view != null) { if (view != null) {
menuFullHeight = view.getHeight() - posY; menuFullHeight = view.getHeight() - posY;
menuTopShadowAllHeight = menuTitleHeight;
ViewGroup.LayoutParams lp = mainView.getLayoutParams(); ViewGroup.LayoutParams lp = mainView.getLayoutParams();
lp.height = Math.max(menuFullHeight, menuTitleHeight); lp.height = Math.max(menuFullHeight, menuTitleHeight);
mainView.setLayoutParams(lp); mainView.setLayoutParams(lp);

View file

@ -207,14 +207,16 @@ public class AmenityMenuController extends MenuController {
amenity.getLocation().getLongitude()); amenity.getLocation().getLongitude());
boolean useEnglishNames = getMapActivity().getMyApplication().getSettings().usingEnglishNames(); boolean useEnglishNames = getMapActivity().getMyApplication().getSettings().usingEnglishNames();
boolean isSubwayEntrance = amenity.getSubType().equals("subway_entrance");
for (TransportIndexRepository t : reps) { for (TransportIndexRepository t : reps) {
ArrayList<TransportStop> ls = new ArrayList<>(); ArrayList<TransportStop> ls = new ArrayList<>();
QuadRect ll = MapUtils.calculateLatLonBbox(amenity.getLocation().getLatitude(), amenity.getLocation().getLongitude(), 150); QuadRect ll = MapUtils.calculateLatLonBbox(amenity.getLocation().getLatitude(), amenity.getLocation().getLongitude(),
isSubwayEntrance ? 400 : 150);
t.searchTransportStops(ll.top, ll.left, ll.bottom, ll.right, -1, ls, null); t.searchTransportStops(ll.top, ll.left, ll.bottom, ll.right, -1, ls, null);
for (TransportStop tstop : ls) { for (TransportStop tstop : ls) {
addRoutes(useEnglishNames, t, tstop, addRoutes(useEnglishNames, t, tstop,
(int) MapUtils.getDistance(tstop.getLocation(), amenity.getLocation())); (int) MapUtils.getDistance(tstop.getLocation(), amenity.getLocation()), isSubwayEntrance);
} }
} }
Collections.sort(routes, new Comparator<TransportStopRoute>() { Collections.sort(routes, new Comparator<TransportStopRoute>() {
@ -236,12 +238,15 @@ public class AmenityMenuController extends MenuController {
builder.setRoutes(routes); builder.setRoutes(routes);
} }
private void addRoutes(boolean useEnglishNames, TransportIndexRepository t, TransportStop s, int dist) { private void addRoutes(boolean useEnglishNames, TransportIndexRepository t, TransportStop s, int dist, boolean isSubwayEntrance) {
Collection<TransportRoute> rts = t.getRouteForStop(s); Collection<TransportRoute> rts = t.getRouteForStop(s);
if (rts != null) { if (rts != null) {
for (TransportRoute rs : rts) { for (TransportRoute rs : rts) {
if (!containsRef(rs)) { if (!containsRef(rs)) {
TransportStopType type = TransportStopType.findType(rs.getType()); TransportStopType type = TransportStopType.findType(rs.getType());
if (isSubwayEntrance && type != TransportStopType.SUBWAY && dist > 150) {
continue;
}
TransportStopRoute r = new TransportStopRoute(); TransportStopRoute r = new TransportStopRoute();
r.type = type; r.type = type;
r.desc = useEnglishNames ? rs.getEnName(true) : rs.getName(); r.desc = useEnglishNames ? rs.getEnName(true) : rs.getName();

View file

@ -59,7 +59,8 @@ public class TransportStopRoute {
RenderingRulesStorage rrs = ctx.getRendererRegistry().getCurrentSelectedRenderer(); RenderingRulesStorage rrs = ctx.getRendererRegistry().getCurrentSelectedRenderer();
RenderingRuleSearchRequest req = new RenderingRuleSearchRequest(rrs); RenderingRuleSearchRequest req = new RenderingRuleSearchRequest(rrs);
req.setBooleanFilter(rrs.PROPS.R_NIGHT_MODE, nightMode); req.setBooleanFilter(rrs.PROPS.R_NIGHT_MODE, nightMode);
String typeStr = type.getRendeAttr(); String color = route.getColor();
String typeStr = color == null || color.isEmpty() ? type.getRendeAttr() : color;
if (req.searchRenderingAttribute(typeStr)) { if (req.searchRenderingAttribute(typeStr)) {
cachedColor = req.getIntPropertyValue(rrs.PROPS.R_ATTR_COLOR_VALUE); cachedColor = req.getIntPropertyValue(rrs.PROPS.R_ATTR_COLOR_VALUE);
} }