Merge branch 'master' into turn_screen_on_plugin
|
@ -1,6 +1,14 @@
|
||||||
|
|
||||||
package net.osmand;
|
package net.osmand;
|
||||||
|
|
||||||
|
import net.osmand.data.QuadRect;
|
||||||
|
import net.osmand.util.Algorithms;
|
||||||
|
|
||||||
|
import org.apache.commons.logging.Log;
|
||||||
|
import org.xmlpull.v1.XmlPullParser;
|
||||||
|
import org.xmlpull.v1.XmlPullParserException;
|
||||||
|
import org.xmlpull.v1.XmlSerializer;
|
||||||
|
|
||||||
import java.io.BufferedInputStream;
|
import java.io.BufferedInputStream;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
|
@ -32,14 +40,6 @@ import java.util.Set;
|
||||||
import java.util.Stack;
|
import java.util.Stack;
|
||||||
import java.util.TimeZone;
|
import java.util.TimeZone;
|
||||||
|
|
||||||
import net.osmand.data.QuadRect;
|
|
||||||
import net.osmand.util.Algorithms;
|
|
||||||
|
|
||||||
import org.apache.commons.logging.Log;
|
|
||||||
import org.xmlpull.v1.XmlPullParser;
|
|
||||||
import org.xmlpull.v1.XmlPullParserException;
|
|
||||||
import org.xmlpull.v1.XmlSerializer;
|
|
||||||
|
|
||||||
public class GPXUtilities {
|
public class GPXUtilities {
|
||||||
public final static Log log = PlatformUtil.getLog(GPXUtilities.class);
|
public final static Log log = PlatformUtil.getLog(GPXUtilities.class);
|
||||||
|
|
||||||
|
@ -315,7 +315,15 @@ public class GPXUtilities {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class Metadata extends GPXExtensions {
|
public static class Metadata extends GPXExtensions {
|
||||||
|
|
||||||
|
public String name;
|
||||||
public String desc;
|
public String desc;
|
||||||
|
public String link;
|
||||||
|
public String keywords;
|
||||||
|
public long time = 0;
|
||||||
|
public Author author = null;
|
||||||
|
public Copyright copyright = null;
|
||||||
|
public Bounds bounds = null;
|
||||||
|
|
||||||
public String getArticleTitle() {
|
public String getArticleTitle() {
|
||||||
return getExtensionsToRead().get("article_title");
|
return getExtensionsToRead().get("article_title");
|
||||||
|
@ -326,6 +334,25 @@ public class GPXUtilities {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static class Author extends GPXExtensions {
|
||||||
|
public String name;
|
||||||
|
public String email;
|
||||||
|
public String link;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class Copyright extends GPXExtensions {
|
||||||
|
public String author;
|
||||||
|
public String year;
|
||||||
|
public String license;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class Bounds extends GPXExtensions {
|
||||||
|
public double minlat;
|
||||||
|
public double minlon;
|
||||||
|
public double maxlat;
|
||||||
|
public double maxlon;
|
||||||
|
}
|
||||||
|
|
||||||
public static class GPXTrackAnalysis {
|
public static class GPXTrackAnalysis {
|
||||||
public float totalDistance = 0;
|
public float totalDistance = 0;
|
||||||
public int totalTracks = 0;
|
public int totalTracks = 0;
|
||||||
|
@ -1399,11 +1426,31 @@ public class GPXUtilities {
|
||||||
serializer.attribute(null, "xsi:schemaLocation",
|
serializer.attribute(null, "xsi:schemaLocation",
|
||||||
"http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd");
|
"http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd");
|
||||||
|
|
||||||
String trackName = getFilename(file.path);
|
String trackName = file.metadata != null ? file.metadata.name : getFilename(file.path);
|
||||||
serializer.startTag(null, "metadata");
|
serializer.startTag(null, "metadata");
|
||||||
writeNotNullText(serializer, "name", trackName);
|
writeNotNullText(serializer, "name", trackName);
|
||||||
if (file.metadata != null) {
|
if (file.metadata != null) {
|
||||||
writeNotNullText(serializer, "desc", file.metadata.desc);
|
writeNotNullText(serializer, "desc", file.metadata.desc);
|
||||||
|
if (file.metadata.author != null) {
|
||||||
|
serializer.startTag(null, "author");
|
||||||
|
writeAuthor(serializer, file.metadata.author);
|
||||||
|
serializer.endTag(null, "author");
|
||||||
|
}
|
||||||
|
if (file.metadata.copyright != null) {
|
||||||
|
serializer.startTag(null, "copyright");
|
||||||
|
writeCopyright(serializer, file.metadata.copyright);
|
||||||
|
serializer.endTag(null, "copyright");
|
||||||
|
}
|
||||||
|
writeNotNullTextWithAttribute(serializer, "link", "href", file.metadata.link);
|
||||||
|
if (file.metadata.time != 0) {
|
||||||
|
writeNotNullText(serializer, "time", format.format(new Date(file.metadata.time)));
|
||||||
|
}
|
||||||
|
writeNotNullText(serializer, "keywords", file.metadata.keywords);
|
||||||
|
if (file.metadata.bounds != null) {
|
||||||
|
serializer.startTag(null, "bounds");
|
||||||
|
writeBounds(serializer, file.metadata.bounds);
|
||||||
|
serializer.endTag(null, "bounds");
|
||||||
|
}
|
||||||
writeExtensions(serializer, file.metadata);
|
writeExtensions(serializer, file.metadata);
|
||||||
}
|
}
|
||||||
serializer.endTag(null, "metadata");
|
serializer.endTag(null, "metadata");
|
||||||
|
@ -1472,6 +1519,14 @@ public class GPXUtilities {
|
||||||
return path;
|
return path;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void writeNotNullTextWithAttribute(XmlSerializer serializer, String tag, String attribute, String value) throws IOException {
|
||||||
|
if (value != null) {
|
||||||
|
serializer.startTag(null, tag);
|
||||||
|
serializer.attribute(null, attribute, value);
|
||||||
|
serializer.endTag(null, tag);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static void writeNotNullText(XmlSerializer serializer, String tag, String value) throws IOException {
|
private static void writeNotNullText(XmlSerializer serializer, String tag, String value) throws IOException {
|
||||||
if (value != null) {
|
if (value != null) {
|
||||||
serializer.startTag(null, tag);
|
serializer.startTag(null, tag);
|
||||||
|
@ -1502,11 +1557,7 @@ public class GPXUtilities {
|
||||||
}
|
}
|
||||||
writeNotNullText(serializer, "name", p.name);
|
writeNotNullText(serializer, "name", p.name);
|
||||||
writeNotNullText(serializer, "desc", p.desc);
|
writeNotNullText(serializer, "desc", p.desc);
|
||||||
if (p.link != null) {
|
writeNotNullTextWithAttribute(serializer, "link", "href", p.link);
|
||||||
serializer.startTag(null, "link");
|
|
||||||
serializer.attribute(null, "href", p.link);
|
|
||||||
serializer.endTag(null, "link");
|
|
||||||
}
|
|
||||||
writeNotNullText(serializer, "type", p.category);
|
writeNotNullText(serializer, "type", p.category);
|
||||||
if (p.comment != null) {
|
if (p.comment != null) {
|
||||||
writeNotNullText(serializer, "cmt", p.comment);
|
writeNotNullText(serializer, "cmt", p.comment);
|
||||||
|
@ -1520,6 +1571,32 @@ public class GPXUtilities {
|
||||||
writeExtensions(serializer, p);
|
writeExtensions(serializer, p);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void writeAuthor(XmlSerializer serializer, Author author) throws IOException {
|
||||||
|
writeNotNullText(serializer, "name", author.name);
|
||||||
|
if (author.email != null && author.email.contains("@")) {
|
||||||
|
String[] idAndDomain = author.email.split("@");
|
||||||
|
if (idAndDomain.length == 2 && !idAndDomain[0].isEmpty() && !idAndDomain[1].isEmpty()) {
|
||||||
|
serializer.startTag(null, "email");
|
||||||
|
serializer.attribute(null, "id", idAndDomain[0]);
|
||||||
|
serializer.attribute(null, "domain", idAndDomain[1]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
writeNotNullTextWithAttribute(serializer, "link", "href", author.link);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void writeCopyright(XmlSerializer serializer, Copyright copyright) throws IOException {
|
||||||
|
serializer.attribute(null, "author", copyright.author);
|
||||||
|
writeNotNullText(serializer, "year", copyright.year);
|
||||||
|
writeNotNullText(serializer, "license", copyright.license);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void writeBounds(XmlSerializer serializer, Bounds bounds) throws IOException {
|
||||||
|
serializer.attribute(null, "minlat", latLonFormat.format(bounds.minlat));
|
||||||
|
serializer.attribute(null, "minlon", latLonFormat.format(bounds.minlon));
|
||||||
|
serializer.attribute(null, "maxlat", latLonFormat.format(bounds.maxlat));
|
||||||
|
serializer.attribute(null, "maxlon", latLonFormat.format(bounds.maxlon));
|
||||||
|
}
|
||||||
|
|
||||||
public static class GPXFileResult {
|
public static class GPXFileResult {
|
||||||
public ArrayList<List<Location>> locations = new ArrayList<List<Location>>();
|
public ArrayList<List<Location>> locations = new ArrayList<List<Location>>();
|
||||||
public ArrayList<WptPt> wayPoints = new ArrayList<>();
|
public ArrayList<WptPt> wayPoints = new ArrayList<>();
|
||||||
|
@ -1586,6 +1663,22 @@ public class GPXUtilities {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static long parseTime(String text,SimpleDateFormat format,SimpleDateFormat formatMillis) {
|
||||||
|
long time = 0;
|
||||||
|
if (text != null) {
|
||||||
|
try {
|
||||||
|
time = format.parse(text).getTime();
|
||||||
|
} catch (ParseException e1) {
|
||||||
|
try {
|
||||||
|
time = formatMillis.parse(text).getTime();
|
||||||
|
} catch (ParseException e2) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return time;
|
||||||
|
}
|
||||||
|
|
||||||
public static GPXFile loadGPXFile(File f) {
|
public static GPXFile loadGPXFile(File f) {
|
||||||
FileInputStream fis = null;
|
FileInputStream fis = null;
|
||||||
try {
|
try {
|
||||||
|
@ -1694,9 +1787,59 @@ public class GPXUtilities {
|
||||||
parserState.push(wptPt);
|
parserState.push(wptPt);
|
||||||
}
|
}
|
||||||
} else if (parse instanceof Metadata) {
|
} else if (parse instanceof Metadata) {
|
||||||
|
if (tag.equals("name")) {
|
||||||
|
((Metadata) parse).name = readText(parser, "name");
|
||||||
|
}
|
||||||
if (tag.equals("desc")) {
|
if (tag.equals("desc")) {
|
||||||
((Metadata) parse).desc = readText(parser, "desc");
|
((Metadata) parse).desc = readText(parser, "desc");
|
||||||
}
|
}
|
||||||
|
if (tag.equals("author")) {
|
||||||
|
Author author = new Author();
|
||||||
|
((Metadata) parse).author = author;
|
||||||
|
parserState.push(author);
|
||||||
|
}
|
||||||
|
if (tag.equals("copyright")) {
|
||||||
|
Copyright copyright = new Copyright();
|
||||||
|
copyright.author = parser.getAttributeValue("", "author");
|
||||||
|
((Metadata) parse).copyright = copyright;
|
||||||
|
parserState.push(copyright);
|
||||||
|
}
|
||||||
|
if (tag.equals("link")) {
|
||||||
|
((Metadata) parse).link = parser.getAttributeValue("", "href");
|
||||||
|
}
|
||||||
|
if (tag.equals("time")) {
|
||||||
|
String text = readText(parser, "time");
|
||||||
|
((Metadata) parse).time = parseTime(text, format, formatMillis);
|
||||||
|
}
|
||||||
|
if (tag.equals("keywords")) {
|
||||||
|
((Metadata) parse).keywords = readText(parser, "keywords");
|
||||||
|
}
|
||||||
|
if (tag.equals("bounds")) {
|
||||||
|
Bounds bounds = parseBoundsAttributes(parser);
|
||||||
|
((Metadata) parse).bounds = bounds;
|
||||||
|
parserState.push(bounds);
|
||||||
|
}
|
||||||
|
} else if (parse instanceof Author) {
|
||||||
|
if (tag.equals("name")) {
|
||||||
|
((Author) parse).name = readText(parser, "name");
|
||||||
|
}
|
||||||
|
if (tag.equals("email")) {
|
||||||
|
String id = parser.getAttributeValue("", "id");
|
||||||
|
String domain = parser.getAttributeValue("", "domain");
|
||||||
|
if (!Algorithms.isEmpty(id) && !Algorithms.isEmpty(domain)) {
|
||||||
|
((Author) parse).email = id + "@" + domain;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (tag.equals("link")) {
|
||||||
|
((Author) parse).link = parser.getAttributeValue("", "href");
|
||||||
|
}
|
||||||
|
} else if (parse instanceof Copyright) {
|
||||||
|
if (tag.equals("year")) {
|
||||||
|
((Copyright) parse).year = readText(parser, "year");
|
||||||
|
}
|
||||||
|
if (tag.equals("license")) {
|
||||||
|
((Copyright) parse).license = readText(parser, "license");
|
||||||
|
}
|
||||||
} else if (parse instanceof Route) {
|
} else if (parse instanceof Route) {
|
||||||
if (tag.equals("name")) {
|
if (tag.equals("name")) {
|
||||||
((Route) parse).name = readText(parser, "name");
|
((Route) parse).name = readText(parser, "name");
|
||||||
|
@ -1798,17 +1941,7 @@ public class GPXUtilities {
|
||||||
}
|
}
|
||||||
} else if (tag.equals("time")) {
|
} else if (tag.equals("time")) {
|
||||||
String text = readText(parser, "time");
|
String text = readText(parser, "time");
|
||||||
if (text != null) {
|
((WptPt) parse).time = parseTime(text, format, formatMillis);
|
||||||
try {
|
|
||||||
((WptPt) parse).time = format.parse(text).getTime();
|
|
||||||
} catch (ParseException e1) {
|
|
||||||
try {
|
|
||||||
((WptPt) parse).time = formatMillis.parse(text).getTime();
|
|
||||||
} catch (ParseException e2) {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else if (tag.toLowerCase().equals("subclass")) {
|
} else if (tag.toLowerCase().equals("subclass")) {
|
||||||
endOfTrkSegment = true;
|
endOfTrkSegment = true;
|
||||||
}
|
}
|
||||||
|
@ -1831,6 +1964,15 @@ public class GPXUtilities {
|
||||||
if (tag.equals("metadata")) {
|
if (tag.equals("metadata")) {
|
||||||
Object pop = parserState.pop();
|
Object pop = parserState.pop();
|
||||||
assert pop instanceof Metadata;
|
assert pop instanceof Metadata;
|
||||||
|
} else if (tag.equals("author")) {
|
||||||
|
Object pop = parserState.pop();
|
||||||
|
assert pop instanceof Author;
|
||||||
|
} else if (tag.equals("copyright")) {
|
||||||
|
Object pop = parserState.pop();
|
||||||
|
assert pop instanceof Copyright;
|
||||||
|
} else if (tag.equals("bounds")) {
|
||||||
|
Object pop = parserState.pop();
|
||||||
|
assert pop instanceof Bounds;
|
||||||
} else if (tag.equals("trkpt")) {
|
} else if (tag.equals("trkpt")) {
|
||||||
Object pop = parserState.pop();
|
Object pop = parserState.pop();
|
||||||
assert pop instanceof WptPt;
|
assert pop instanceof WptPt;
|
||||||
|
@ -1900,6 +2042,18 @@ public class GPXUtilities {
|
||||||
return wpt;
|
return wpt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static Bounds parseBoundsAttributes(XmlPullParser parser) {
|
||||||
|
Bounds bounds = new Bounds();
|
||||||
|
try {
|
||||||
|
bounds.minlat = Double.parseDouble(parser.getAttributeValue("", "minlat"));
|
||||||
|
bounds.minlon = Double.parseDouble(parser.getAttributeValue("", "minlon"));
|
||||||
|
bounds.maxlat = Double.parseDouble(parser.getAttributeValue("", "maxlat"));
|
||||||
|
bounds.maxlon = Double.parseDouble(parser.getAttributeValue("", "maxlon"));
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
}
|
||||||
|
return bounds;
|
||||||
|
}
|
||||||
|
|
||||||
public static void mergeGPXFileInto(GPXFile to, GPXFile from) {
|
public static void mergeGPXFileInto(GPXFile to, GPXFile from) {
|
||||||
if (from == null) {
|
if (from == null) {
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -41,6 +41,8 @@ public class Location {
|
||||||
private float mBearing = 0.0f;
|
private float mBearing = 0.0f;
|
||||||
private boolean mHasAccuracy = false;
|
private boolean mHasAccuracy = false;
|
||||||
private float mAccuracy = 0.0f;
|
private float mAccuracy = 0.0f;
|
||||||
|
private boolean mHasVerticalAccuracy = false;
|
||||||
|
private float mVerticalAccuracy = 0.0f;
|
||||||
|
|
||||||
// Cache the inputs and outputs of computeDistanceAndBearing
|
// Cache the inputs and outputs of computeDistanceAndBearing
|
||||||
// so calls to distanceTo() and bearingTo() can share work
|
// so calls to distanceTo() and bearingTo() can share work
|
||||||
|
@ -89,6 +91,8 @@ public class Location {
|
||||||
mBearing = l.mBearing;
|
mBearing = l.mBearing;
|
||||||
mHasAccuracy = l.mHasAccuracy;
|
mHasAccuracy = l.mHasAccuracy;
|
||||||
mAccuracy = l.mAccuracy;
|
mAccuracy = l.mAccuracy;
|
||||||
|
mHasVerticalAccuracy = l.mHasVerticalAccuracy;
|
||||||
|
mVerticalAccuracy = l.mVerticalAccuracy;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -494,6 +498,41 @@ public class Location {
|
||||||
mHasAccuracy = false;
|
mHasAccuracy = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns true if the provider is able to report vertical accuracy information,
|
||||||
|
* false otherwise. The default implementation returns false.
|
||||||
|
*/
|
||||||
|
public boolean hasVerticalAccuracy() {
|
||||||
|
return mHasVerticalAccuracy;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the accuracy of the fix in meters. If hasVerticalAccuracy() is false,
|
||||||
|
* 0.0 is returned.
|
||||||
|
*/
|
||||||
|
public float getVerticalAccuracy() {
|
||||||
|
return mVerticalAccuracy;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the accuracy of this fix. Following this call, hasVerticalAccuracy()
|
||||||
|
* will return true.
|
||||||
|
*/
|
||||||
|
public void setVerticalAccuracy(float verticalAccuracy) {
|
||||||
|
this.mVerticalAccuracy = verticalAccuracy;
|
||||||
|
mHasVerticalAccuracy = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clears the vertical accuracy of this fix. Following this call, hasVerticalAccuracy()
|
||||||
|
* will return false.
|
||||||
|
*/
|
||||||
|
public void removeVerticalAccuracy() {
|
||||||
|
mVerticalAccuracy = 0.0f;
|
||||||
|
mHasVerticalAccuracy = false;
|
||||||
|
}
|
||||||
|
|
||||||
@Override public String toString() {
|
@Override public String toString() {
|
||||||
return "Location[mProvider=" + mProvider +
|
return "Location[mProvider=" + mProvider +
|
||||||
",mTime=" + mTime +
|
",mTime=" + mTime +
|
||||||
|
@ -506,7 +545,9 @@ public class Location {
|
||||||
",mHasBearing=" + mHasBearing +
|
",mHasBearing=" + mHasBearing +
|
||||||
",mBearing=" + mBearing +
|
",mBearing=" + mBearing +
|
||||||
",mHasAccuracy=" + mHasAccuracy +
|
",mHasAccuracy=" + mHasAccuracy +
|
||||||
",mAccuracy=" + mAccuracy;
|
",mAccuracy=" + mAccuracy +
|
||||||
|
",mHasVerticalAccuracy=" + mHasVerticalAccuracy +
|
||||||
|
",mVerticalAccuracy=" + mVerticalAccuracy;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -28,6 +28,7 @@ public class Amenity extends MapObject {
|
||||||
|
|
||||||
public static final String WEBSITE = "website";
|
public static final String WEBSITE = "website";
|
||||||
public static final String PHONE = "phone";
|
public static final String PHONE = "phone";
|
||||||
|
public static final String MOBILE = "mobile";
|
||||||
public static final String DESCRIPTION = "description";
|
public static final String DESCRIPTION = "description";
|
||||||
public static final String ROUTE = "route";
|
public static final String ROUTE = "route";
|
||||||
public static final String OPENING_HOURS = "opening_hours";
|
public static final String OPENING_HOURS = "opening_hours";
|
||||||
|
|
|
@ -11,7 +11,7 @@ public class TransportStop extends MapObject {
|
||||||
private static final int DELETED_STOP = -1;
|
private static final int DELETED_STOP = -1;
|
||||||
|
|
||||||
private int[] referencesToRoutes = null;
|
private int[] referencesToRoutes = null;
|
||||||
private Amenity amenity;
|
private TransportStopAggregated transportStopAggregated;
|
||||||
public int distance;
|
public int distance;
|
||||||
public int x31;
|
public int x31;
|
||||||
public int y31;
|
public int y31;
|
||||||
|
@ -37,11 +37,53 @@ public class TransportStop extends MapObject {
|
||||||
}
|
}
|
||||||
|
|
||||||
public Amenity getAmenity() {
|
public Amenity getAmenity() {
|
||||||
return amenity;
|
if (transportStopAggregated != null) {
|
||||||
|
return transportStopAggregated.getAmenity();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setAmenity(Amenity amenity) {
|
public void setAmenity(Amenity amenity) {
|
||||||
this.amenity = amenity;
|
if (transportStopAggregated == null) {
|
||||||
|
transportStopAggregated = new TransportStopAggregated();
|
||||||
|
}
|
||||||
|
transportStopAggregated.setAmenity(amenity);
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<TransportStop> getLocalTransportStops() {
|
||||||
|
if (transportStopAggregated != null) {
|
||||||
|
return transportStopAggregated.getLocalTransportStops();
|
||||||
|
}
|
||||||
|
return Collections.emptyList();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addLocalTransportStop(TransportStop stop) {
|
||||||
|
if (transportStopAggregated == null) {
|
||||||
|
transportStopAggregated = new TransportStopAggregated();
|
||||||
|
}
|
||||||
|
transportStopAggregated.addLocalTransportStop(stop);
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<TransportStop> getNearbyTransportStops() {
|
||||||
|
if (transportStopAggregated != null) {
|
||||||
|
return transportStopAggregated.getNearbyTransportStops();
|
||||||
|
}
|
||||||
|
return Collections.emptyList();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addNearbyTransportStop(TransportStop stop) {
|
||||||
|
if (transportStopAggregated == null) {
|
||||||
|
transportStopAggregated = new TransportStopAggregated();
|
||||||
|
}
|
||||||
|
transportStopAggregated.addNearbyTransportStop(stop);
|
||||||
|
}
|
||||||
|
|
||||||
|
public TransportStopAggregated getTransportStopAggregated() {
|
||||||
|
return transportStopAggregated;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTransportStopAggregated(TransportStopAggregated stopAggregated) {
|
||||||
|
transportStopAggregated = stopAggregated;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -0,0 +1,65 @@
|
||||||
|
package net.osmand.data;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class TransportStopAggregated {
|
||||||
|
|
||||||
|
private Amenity amenity;
|
||||||
|
private List<TransportStop> localTransportStops;
|
||||||
|
private List<TransportStop> nearbyTransportStops;
|
||||||
|
|
||||||
|
public TransportStopAggregated() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public Amenity getAmenity() {
|
||||||
|
return amenity;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAmenity(Amenity amenity) {
|
||||||
|
this.amenity = amenity;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<TransportStop> getLocalTransportStops() {
|
||||||
|
if (localTransportStops == null) {
|
||||||
|
return Collections.emptyList();
|
||||||
|
}
|
||||||
|
return this.localTransportStops;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addLocalTransportStop(TransportStop stop) {
|
||||||
|
if (localTransportStops == null) {
|
||||||
|
localTransportStops = new ArrayList<>();
|
||||||
|
}
|
||||||
|
localTransportStops.add(stop);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addLocalTransportStops(List<TransportStop> stops) {
|
||||||
|
if (localTransportStops == null) {
|
||||||
|
localTransportStops = new ArrayList<>();
|
||||||
|
}
|
||||||
|
localTransportStops.addAll(stops);
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<TransportStop> getNearbyTransportStops() {
|
||||||
|
if (nearbyTransportStops == null) {
|
||||||
|
return Collections.emptyList();
|
||||||
|
}
|
||||||
|
return this.nearbyTransportStops;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addNearbyTransportStop(TransportStop stop) {
|
||||||
|
if (nearbyTransportStops == null) {
|
||||||
|
nearbyTransportStops = new ArrayList<>();
|
||||||
|
}
|
||||||
|
nearbyTransportStops.add(stop);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addNearbyTransportStops(List<TransportStop> stops) {
|
||||||
|
if (nearbyTransportStops == null) {
|
||||||
|
nearbyTransportStops = new ArrayList<>();
|
||||||
|
}
|
||||||
|
nearbyTransportStops.addAll(stops);
|
||||||
|
}
|
||||||
|
}
|
|
@ -48,6 +48,9 @@ public class PoiType extends AbstractPoiType {
|
||||||
if(isReference()) {
|
if(isReference()) {
|
||||||
return referenceType.getOsmTag();
|
return referenceType.getOsmTag();
|
||||||
}
|
}
|
||||||
|
if(editTag != null) {
|
||||||
|
return editTag;
|
||||||
|
}
|
||||||
if(osmTag != null && osmTag.startsWith("osmand_amenity")) {
|
if(osmTag != null && osmTag.startsWith("osmand_amenity")) {
|
||||||
return "amenity";
|
return "amenity";
|
||||||
}
|
}
|
||||||
|
|
|
@ -343,12 +343,12 @@ public class BinaryRoutePlanner {
|
||||||
private float estimatedDistance(final RoutingContext ctx, int targetEndX, int targetEndY,
|
private float estimatedDistance(final RoutingContext ctx, int targetEndX, int targetEndY,
|
||||||
int startX, int startY) {
|
int startX, int startY) {
|
||||||
double distance = squareRootDist(startX, startY, targetEndX, targetEndY);
|
double distance = squareRootDist(startX, startY, targetEndX, targetEndY);
|
||||||
return (float) (distance / ctx.getRouter().getMaxDefaultSpeed());
|
return (float) (distance / ctx.getRouter().getMaxSpeed());
|
||||||
}
|
}
|
||||||
|
|
||||||
protected static float h(RoutingContext ctx, int begX, int begY, int endX, int endY) {
|
protected static float h(RoutingContext ctx, int begX, int begY, int endX, int endY) {
|
||||||
double distToFinalPoint = squareRootDist(begX, begY, endX, endY);
|
double distToFinalPoint = squareRootDist(begX, begY, endX, endY);
|
||||||
double result = distToFinalPoint / ctx.getRouter().getMaxDefaultSpeed();
|
double result = distToFinalPoint / ctx.getRouter().getMaxSpeed();
|
||||||
if (ctx.precalculatedRouteDirection != null) {
|
if (ctx.precalculatedRouteDirection != null) {
|
||||||
float te = ctx.precalculatedRouteDirection.timeEstimate(begX, begY, endX, endY);
|
float te = ctx.precalculatedRouteDirection.timeEstimate(begX, begY, endX, endY);
|
||||||
if (te > 0) {
|
if (te > 0) {
|
||||||
|
@ -480,7 +480,7 @@ public class BinaryRoutePlanner {
|
||||||
// reset to f
|
// reset to f
|
||||||
// distStartObstacles = 0;
|
// distStartObstacles = 0;
|
||||||
// more precise but slower
|
// more precise but slower
|
||||||
distStartObstacles = ctx.precalculatedRouteDirection.getDeviationDistance(x, y) / ctx.getRouter().getMaxDefaultSpeed();
|
distStartObstacles = ctx.precalculatedRouteDirection.getDeviationDistance(x, y) / ctx.getRouter().getMaxSpeed();
|
||||||
}
|
}
|
||||||
|
|
||||||
// We don't check if there are outgoing connections
|
// We don't check if there are outgoing connections
|
||||||
|
@ -584,11 +584,11 @@ public class BinaryRoutePlanner {
|
||||||
float priority = ctx.getRouter().defineSpeedPriority(road);
|
float priority = ctx.getRouter().defineSpeedPriority(road);
|
||||||
float speed = (ctx.getRouter().defineRoutingSpeed(road) * priority);
|
float speed = (ctx.getRouter().defineRoutingSpeed(road) * priority);
|
||||||
if (speed == 0) {
|
if (speed == 0) {
|
||||||
speed = (ctx.getRouter().getMinDefaultSpeed() * priority);
|
speed = (ctx.getRouter().getDefaultSpeed() * priority);
|
||||||
}
|
}
|
||||||
// speed can not exceed max default speed according to A*
|
// speed can not exceed max default speed according to A*
|
||||||
if (speed > ctx.getRouter().getMaxDefaultSpeed()) {
|
if (speed > ctx.getRouter().getMaxSpeed()) {
|
||||||
speed = ctx.getRouter().getMaxDefaultSpeed();
|
speed = ctx.getRouter().getMaxSpeed();
|
||||||
}
|
}
|
||||||
return obstaclesTime + distOnRoadToPass / speed;
|
return obstaclesTime + distOnRoadToPass / speed;
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,6 +33,9 @@ public class GeneralRouter implements VehicleRouter {
|
||||||
public static final String PREFER_MOTORWAYS = "prefer_motorway";
|
public static final String PREFER_MOTORWAYS = "prefer_motorway";
|
||||||
public static final String ALLOW_PRIVATE = "allow_private";
|
public static final String ALLOW_PRIVATE = "allow_private";
|
||||||
public static final String ALLOW_MOTORWAYS = "allow_motorway";
|
public static final String ALLOW_MOTORWAYS = "allow_motorway";
|
||||||
|
public static final String DEFAULT_SPEED = "default_speed";
|
||||||
|
public static final String MIN_SPEED = "min_speed";
|
||||||
|
public static final String MAX_SPEED = "max_speed";
|
||||||
|
|
||||||
private final RouteAttributeContext[] objectAttributes;
|
private final RouteAttributeContext[] objectAttributes;
|
||||||
public final Map<String, String> attributes;
|
public final Map<String, String> attributes;
|
||||||
|
@ -55,9 +58,11 @@ public class GeneralRouter implements VehicleRouter {
|
||||||
private float roundaboutTurn;
|
private float roundaboutTurn;
|
||||||
private float rightTurn;
|
private float rightTurn;
|
||||||
// speed in m/s
|
// speed in m/s
|
||||||
private float minDefaultSpeed = 10;
|
private float minSpeed = 0.28f;
|
||||||
// speed in m/s
|
// speed in m/s
|
||||||
private float maxDefaultSpeed = 10;
|
private float defaultSpeed = 1f;
|
||||||
|
// speed in m/s
|
||||||
|
private float maxSpeed = 10f;
|
||||||
|
|
||||||
private TLongHashSet impassableRoads;
|
private TLongHashSet impassableRoads;
|
||||||
private GeneralRouterProfile profile;
|
private GeneralRouterProfile profile;
|
||||||
|
@ -161,9 +166,17 @@ public class GeneralRouter implements VehicleRouter {
|
||||||
shortestRoute = params.containsKey(USE_SHORTEST_WAY) && parseSilentBoolean(params.get(USE_SHORTEST_WAY), false);
|
shortestRoute = params.containsKey(USE_SHORTEST_WAY) && parseSilentBoolean(params.get(USE_SHORTEST_WAY), false);
|
||||||
heightObstacles = params.containsKey(USE_HEIGHT_OBSTACLES) && parseSilentBoolean(params.get(USE_HEIGHT_OBSTACLES), false);
|
heightObstacles = params.containsKey(USE_HEIGHT_OBSTACLES) && parseSilentBoolean(params.get(USE_HEIGHT_OBSTACLES), false);
|
||||||
if(shortestRoute) {
|
if(shortestRoute) {
|
||||||
maxDefaultSpeed = Math.min(CAR_SHORTEST_DEFAULT_SPEED, maxDefaultSpeed);
|
maxSpeed = Math.min(CAR_SHORTEST_DEFAULT_SPEED, maxSpeed);
|
||||||
|
}
|
||||||
|
if (params.containsKey(DEFAULT_SPEED)) {
|
||||||
|
defaultSpeed = parseSilentFloat(params.get(DEFAULT_SPEED), defaultSpeed);
|
||||||
|
}
|
||||||
|
if (params.containsKey(MIN_SPEED)) {
|
||||||
|
minSpeed = parseSilentFloat(params.get(MIN_SPEED), minSpeed);
|
||||||
|
}
|
||||||
|
if (params.containsKey(MAX_SPEED)) {
|
||||||
|
maxSpeed = parseSilentFloat(params.get(MAX_SPEED), maxSpeed);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public GeneralRouterProfile getProfile() {
|
public GeneralRouterProfile getProfile() {
|
||||||
|
@ -188,10 +201,12 @@ public class GeneralRouter implements VehicleRouter {
|
||||||
rightTurn = parseSilentFloat(v, rightTurn);
|
rightTurn = parseSilentFloat(v, rightTurn);
|
||||||
} else if(k.equals("roundaboutTurn")) {
|
} else if(k.equals("roundaboutTurn")) {
|
||||||
roundaboutTurn = parseSilentFloat(v, roundaboutTurn);
|
roundaboutTurn = parseSilentFloat(v, roundaboutTurn);
|
||||||
} else if(k.equals("minDefaultSpeed")) {
|
} else if(k.equals("minDefaultSpeed") || k.equals("defaultSpeed")) {
|
||||||
minDefaultSpeed = parseSilentFloat(v, minDefaultSpeed * 3.6f) / 3.6f;
|
defaultSpeed = parseSilentFloat(v, defaultSpeed * 3.6f) / 3.6f;
|
||||||
} else if(k.equals("maxDefaultSpeed")) {
|
} else if( k.equals("minSpeed")) {
|
||||||
maxDefaultSpeed = parseSilentFloat(v, maxDefaultSpeed * 3.6f) / 3.6f;
|
minSpeed = parseSilentFloat(v, minSpeed * 3.6f) / 3.6f;
|
||||||
|
} else if(k.equals("maxDefaultSpeed") || k.equals("maxSpeed")) {
|
||||||
|
maxSpeed = parseSilentFloat(v, maxSpeed * 3.6f) / 3.6f;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -377,13 +392,15 @@ public class GeneralRouter implements VehicleRouter {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public float defineRoutingSpeed(RouteDataObject road) {
|
public float defineRoutingSpeed(RouteDataObject road) {
|
||||||
return Math.min(defineVehicleSpeed(road), maxDefaultSpeed);
|
float spd = getObjContext(RouteDataObjectAttribute.ROAD_SPEED).evaluateFloat(road, defaultSpeed);
|
||||||
|
return spd;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public float defineVehicleSpeed(RouteDataObject road) {
|
public float defineVehicleSpeed(RouteDataObject road) {
|
||||||
return getObjContext(RouteDataObjectAttribute.ROAD_SPEED) .evaluateFloat(road, getMinDefaultSpeed());
|
float spd = getObjContext(RouteDataObjectAttribute.ROAD_SPEED).evaluateFloat(road, defaultSpeed);
|
||||||
|
return Math.max(Math.min(spd, maxSpeed), minSpeed);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -392,15 +409,19 @@ public class GeneralRouter implements VehicleRouter {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public float getMinDefaultSpeed() {
|
public float getDefaultSpeed() {
|
||||||
return minDefaultSpeed;
|
return defaultSpeed;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public float getMaxDefaultSpeed() {
|
public float getMinSpeed() {
|
||||||
return maxDefaultSpeed;
|
return minSpeed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getMaxSpeed() {
|
||||||
|
return maxSpeed;
|
||||||
|
}
|
||||||
|
|
||||||
public double getLeftTurn() {
|
public double getLeftTurn() {
|
||||||
return leftTurn;
|
return leftTurn;
|
||||||
|
|
|
@ -260,8 +260,8 @@ public class PrecalculatedRouteDirection {
|
||||||
public PrecalculatedRouteDirection adopt(RoutingContext ctx) {
|
public PrecalculatedRouteDirection adopt(RoutingContext ctx) {
|
||||||
int ind1 = getIndex(ctx.startX, ctx.startY);
|
int ind1 = getIndex(ctx.startX, ctx.startY);
|
||||||
int ind2 = getIndex(ctx.targetX, ctx.targetY);
|
int ind2 = getIndex(ctx.targetX, ctx.targetY);
|
||||||
minSpeed = ctx.getRouter().getMinDefaultSpeed();
|
minSpeed = ctx.getRouter().getDefaultSpeed();
|
||||||
maxSpeed = ctx.getRouter().getMaxDefaultSpeed();
|
maxSpeed = ctx.getRouter().getMaxSpeed();
|
||||||
if(ind1 == -1) {
|
if(ind1 == -1) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
|
@ -196,7 +196,7 @@ public class RoutePlannerFrontEnd {
|
||||||
RoutingContext nctx = buildRoutingContext(ctx.config, ctx.nativeLib, ctx.getMaps(), RouteCalculationMode.BASE);
|
RoutingContext nctx = buildRoutingContext(ctx.config, ctx.nativeLib, ctx.getMaps(), RouteCalculationMode.BASE);
|
||||||
nctx.calculationProgress = ctx.calculationProgress;
|
nctx.calculationProgress = ctx.calculationProgress;
|
||||||
List<RouteSegmentResult> ls = searchRoute(nctx, start, end, intermediates);
|
List<RouteSegmentResult> ls = searchRoute(nctx, start, end, intermediates);
|
||||||
routeDirection = PrecalculatedRouteDirection.build(ls, ctx.config.DEVIATION_RADIUS, ctx.getRouter().getMaxDefaultSpeed());
|
routeDirection = PrecalculatedRouteDirection.build(ls, ctx.config.DEVIATION_RADIUS, ctx.getRouter().getMaxSpeed());
|
||||||
}
|
}
|
||||||
if (intermediatesEmpty && ctx.nativeLib != null) {
|
if (intermediatesEmpty && ctx.nativeLib != null) {
|
||||||
ctx.startX = MapUtils.get31TileNumberX(start.getLongitude());
|
ctx.startX = MapUtils.get31TileNumberX(start.getLongitude());
|
||||||
|
@ -426,7 +426,7 @@ public class RoutePlannerFrontEnd {
|
||||||
ctx.calculationProgress.reverseSegmentQueueSize = 0;
|
ctx.calculationProgress.reverseSegmentQueueSize = 0;
|
||||||
ctx.calculationProgress.directSegmentQueueSize = 0;
|
ctx.calculationProgress.directSegmentQueueSize = 0;
|
||||||
float rd = (float) MapUtils.squareRootDist31(ctx.startX, ctx.startY, ctx.targetX, ctx.targetY);
|
float rd = (float) MapUtils.squareRootDist31(ctx.startX, ctx.startY, ctx.targetX, ctx.targetY);
|
||||||
float speed = 0.9f * ctx.config.router.getMaxDefaultSpeed();
|
float speed = 0.9f * ctx.config.router.getMaxSpeed();
|
||||||
ctx.calculationProgress.totalEstimatedDistance = (float) (rd / speed);
|
ctx.calculationProgress.totalEstimatedDistance = (float) (rd / speed);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -237,7 +237,7 @@ public class RouteResultPreparation {
|
||||||
double distOnRoadToPass = 0;
|
double distOnRoadToPass = 0;
|
||||||
double speed = ctx.getRouter().defineVehicleSpeed(road);
|
double speed = ctx.getRouter().defineVehicleSpeed(road);
|
||||||
if (speed == 0) {
|
if (speed == 0) {
|
||||||
speed = ctx.getRouter().getMinDefaultSpeed();
|
speed = ctx.getRouter().getDefaultSpeed();
|
||||||
} else {
|
} else {
|
||||||
if (speed > SLOW_DOWN_SPEED_THRESHOLD) {
|
if (speed > SLOW_DOWN_SPEED_THRESHOLD) {
|
||||||
speed = speed - (speed / SLOW_DOWN_SPEED_THRESHOLD - 1) * SLOW_DOWN_SPEED;
|
speed = speed - (speed / SLOW_DOWN_SPEED_THRESHOLD - 1) * SLOW_DOWN_SPEED;
|
||||||
|
|
|
@ -181,7 +181,11 @@ public class RouteStatistics {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getPropertyName(String attribute) {
|
public String getPropertyName(String attribute) {
|
||||||
return attribute;
|
if (attribute.equals(UNDEFINED_ATTR)) {
|
||||||
|
return UNDEFINED_ATTR;
|
||||||
|
} else {
|
||||||
|
return SURFACE_ATTR + "_" + attribute;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -222,7 +226,11 @@ public class RouteStatistics {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getPropertyName(String attribute) {
|
public String getPropertyName(String attribute) {
|
||||||
return attribute;
|
if (attribute.equals(UNDEFINED_ATTR)) {
|
||||||
|
return UNDEFINED_ATTR;
|
||||||
|
} else {
|
||||||
|
return SMOOTHNESS_ATTR + "_" + attribute;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -62,14 +62,21 @@ public interface VehicleRouter {
|
||||||
*
|
*
|
||||||
* @return minimal speed at road in m/s
|
* @return minimal speed at road in m/s
|
||||||
*/
|
*/
|
||||||
public float getMinDefaultSpeed();
|
public float getDefaultSpeed();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Used as minimal threshold of default speed
|
||||||
|
*
|
||||||
|
* @return minimal speed at road in m/s
|
||||||
|
*/
|
||||||
|
public float getMinSpeed();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Used for A* routing to predict h(x) : it should be great any g(x)
|
* Used for A* routing to predict h(x) : it should be great any g(x)
|
||||||
*
|
*
|
||||||
* @return maximum speed to calculate shortest distance
|
* @return maximum speed to calculate shortest distance
|
||||||
*/
|
*/
|
||||||
public float getMaxDefaultSpeed();
|
public float getMaxSpeed();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* aware of road restrictions
|
* aware of road restrictions
|
||||||
|
|
|
@ -1225,7 +1225,9 @@ public class SearchCoreFactory {
|
||||||
|
|
||||||
public static class SearchLocationAndUrlAPI extends SearchBaseAPI {
|
public static class SearchLocationAndUrlAPI extends SearchBaseAPI {
|
||||||
|
|
||||||
|
private static final int OLC_RECALC_DISTANCE_THRESHOLD = 100000; // 100 km
|
||||||
private int olcPhraseHash;
|
private int olcPhraseHash;
|
||||||
|
private LatLon olcPhraseLocation;
|
||||||
private ParsedOpenLocationCode cachedParsedCode;
|
private ParsedOpenLocationCode cachedParsedCode;
|
||||||
private final List<String> citySubTypes = Arrays.asList("city", "town", "village");
|
private final List<String> citySubTypes = Arrays.asList("city", "town", "village");
|
||||||
|
|
||||||
|
@ -1328,6 +1330,9 @@ public class SearchCoreFactory {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (latLon == null && !parsedCode.isFull()) {
|
||||||
|
latLon = parsedCode.recover(phrase.getSettings().getOriginalLocation());
|
||||||
|
}
|
||||||
if (latLon != null) {
|
if (latLon != null) {
|
||||||
publishLocation(phrase, resultMatcher, lw, latLon);
|
publishLocation(phrase, resultMatcher, lw, latLon);
|
||||||
}
|
}
|
||||||
|
@ -1386,8 +1391,15 @@ public class SearchCoreFactory {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
int olcPhraseHash = p.getUnknownSearchPhrase().hashCode();
|
int olcPhraseHash = p.getUnknownSearchPhrase().hashCode();
|
||||||
|
if (this.olcPhraseHash == olcPhraseHash && this.olcPhraseLocation != null) {
|
||||||
|
double distance = MapUtils.getDistance(p.getSettings().getOriginalLocation(), this.olcPhraseLocation);
|
||||||
|
if (distance > OLC_RECALC_DISTANCE_THRESHOLD) {
|
||||||
|
olcPhraseHash++;
|
||||||
|
}
|
||||||
|
}
|
||||||
if (this.olcPhraseHash != olcPhraseHash) {
|
if (this.olcPhraseHash != olcPhraseHash) {
|
||||||
this.olcPhraseHash = olcPhraseHash;
|
this.olcPhraseHash = olcPhraseHash;
|
||||||
|
this.olcPhraseLocation = p.getSettings().getOriginalLocation();
|
||||||
cachedParsedCode = LocationParser.parseOpenLocationCode(p.getUnknownSearchPhrase());
|
cachedParsedCode = LocationParser.parseOpenLocationCode(p.getUnknownSearchPhrase());
|
||||||
}
|
}
|
||||||
return cachedParsedCode == null ? SEARCH_LOCATION_PRIORITY : SEARCH_MAX_PRIORITY;
|
return cachedParsedCode == null ? SEARCH_LOCATION_PRIORITY : SEARCH_MAX_PRIORITY;
|
||||||
|
|
|
@ -234,4 +234,12 @@
|
||||||
<string name="proxy">Проксі</string>
|
<string name="proxy">Проксі</string>
|
||||||
<string name="privacy">Прыватнасць</string>
|
<string name="privacy">Прыватнасць</string>
|
||||||
<string name="bearing">Накірунак</string>
|
<string name="bearing">Накірунак</string>
|
||||||
|
<string name="shared_string_select">Абраць</string>
|
||||||
|
<string name="min_logging_distance">Мінімальная адлегласць для рэгістрацыі</string>
|
||||||
|
<string name="min_logging_distance_descr">Фільтр: мінімальная адлегласць для рэгістрацыі новай кропкі</string>
|
||||||
|
<string name="min_logging_accuracy">Мінімальная дакладнасць для рэгістрацыі</string>
|
||||||
|
<string name="min_logging_accuracy_descr">Фільтр: не рэгістраваць, калі дакладнасць не дасягнутая</string>
|
||||||
|
<string name="min_logging_speed">Мінімальная хуткасць для рэгістрацыі</string>
|
||||||
|
<string name="min_logging_speed_descr">Фільтр: не рэгістраваць пры хуткасці ніжэй за абраную</string>
|
||||||
|
<string name="gpx_settings">Налады GPX</string>
|
||||||
</resources>
|
</resources>
|
|
@ -234,4 +234,12 @@
|
||||||
<string name="proxy_settings">Configuració del servidor intermediari</string>
|
<string name="proxy_settings">Configuració del servidor intermediari</string>
|
||||||
<string name="proxy">Servidor intermediari</string>
|
<string name="proxy">Servidor intermediari</string>
|
||||||
<string name="privacy">Privacitat</string>
|
<string name="privacy">Privacitat</string>
|
||||||
|
<string name="shared_string_select">Selecciona</string>
|
||||||
|
<string name="min_logging_distance">Distància mínima d\'enregistrament</string>
|
||||||
|
<string name="min_logging_distance_descr">Filtre: distància mínima per enregistrar un punt nou</string>
|
||||||
|
<string name="min_logging_accuracy">Precisió mínima de registre</string>
|
||||||
|
<string name="min_logging_accuracy_descr">Filtre: no s\'enregistra sense assolir la precisió mínima</string>
|
||||||
|
<string name="min_logging_speed">Velocitat mínima de registre</string>
|
||||||
|
<string name="min_logging_speed_descr">Filtre: no s\'enregistra per sota de la velocitat seleccionada</string>
|
||||||
|
<string name="gpx_settings">Configuració GPX</string>
|
||||||
</resources>
|
</resources>
|
|
@ -2,7 +2,7 @@
|
||||||
<resources>
|
<resources>
|
||||||
<string name="background_work_description">Skift indstillinger for batterioptimering, for stabil deling af placering.</string>
|
<string name="background_work_description">Skift indstillinger for batterioptimering, for stabil deling af placering.</string>
|
||||||
<string name="background_work">Baggrundstilstand</string>
|
<string name="background_work">Baggrundstilstand</string>
|
||||||
<string name="battery_optimization_description">Sluk for batterioptimering af OsmAnd Tracker, så det ikke pludseligt bliver slukket, når det er i baggrunden.</string>
|
<string name="battery_optimization_description">Sluk for batterioptimering af OsmAnd Tracker, så den ikke pludseligt bliver slukket, når den er i baggrunden.</string>
|
||||||
<string name="sharing_in_background">Deling i baggrunden</string>
|
<string name="sharing_in_background">Deling i baggrunden</string>
|
||||||
<string name="go_to_settings">Gå til indstillinger</string>
|
<string name="go_to_settings">Gå til indstillinger</string>
|
||||||
<string name="shared_string_later">Senere</string>
|
<string name="shared_string_later">Senere</string>
|
||||||
|
@ -234,4 +234,12 @@
|
||||||
<string name="proxy">Proxy</string>
|
<string name="proxy">Proxy</string>
|
||||||
<string name="privacy">Privatliv</string>
|
<string name="privacy">Privatliv</string>
|
||||||
<string name="precision">Præcision</string>
|
<string name="precision">Præcision</string>
|
||||||
|
<string name="shared_string_select">Vælg</string>
|
||||||
|
<string name="min_logging_distance">Mindste logningsafstand</string>
|
||||||
|
<string name="min_logging_distance_descr">Filter: mindste afstand for at logge et nyt punkt</string>
|
||||||
|
<string name="min_logging_accuracy">Minimum logningsnøjagtighed</string>
|
||||||
|
<string name="min_logging_accuracy_descr">Filter: ingen logføring, medmindre nøjagtigheden er nået</string>
|
||||||
|
<string name="min_logging_speed">Minimum logningshastighed</string>
|
||||||
|
<string name="min_logging_speed_descr">Filter: ingen logning under den valgte hastighed</string>
|
||||||
|
<string name="gpx_settings">GPX-indstillinger</string>
|
||||||
</resources>
|
</resources>
|
|
@ -64,7 +64,7 @@
|
||||||
<string name="set_time">Zeit einstellen</string>
|
<string name="set_time">Zeit einstellen</string>
|
||||||
<string name="my_location_search_hint">Suche: Gruppe oder Kontakt</string>
|
<string name="my_location_search_hint">Suche: Gruppe oder Kontakt</string>
|
||||||
<string name="show_on_map">Auf Karte anzeigen</string>
|
<string name="show_on_map">Auf Karte anzeigen</string>
|
||||||
<string name="app_name">OsmAnd Online GPS Tracker</string>
|
<string name="app_name">OsmAnd Online GPS-Tracker</string>
|
||||||
<string name="phone_number_title">Telefonnummer</string>
|
<string name="phone_number_title">Telefonnummer</string>
|
||||||
<string name="phone_number_descr">Telefonnummer in internationalem Format</string>
|
<string name="phone_number_descr">Telefonnummer in internationalem Format</string>
|
||||||
<string name="shared_string_password">Passwort</string>
|
<string name="shared_string_password">Passwort</string>
|
||||||
|
@ -72,7 +72,7 @@
|
||||||
<string name="authentication_code">Authentifizierungscode</string>
|
<string name="authentication_code">Authentifizierungscode</string>
|
||||||
<string name="authentication_code_descr">Telegram hat Ihnen einen Code für OsmAnd zur Anmeldung an Ihrem Konto gesendet.</string>
|
<string name="authentication_code_descr">Telegram hat Ihnen einen Code für OsmAnd zur Anmeldung an Ihrem Konto gesendet.</string>
|
||||||
<string name="enter_password">Passwort eingeben</string>
|
<string name="enter_password">Passwort eingeben</string>
|
||||||
<string name="shared_string_login">Anmelden</string>
|
<string name="shared_string_login">Anmeldung</string>
|
||||||
<string name="shared_string_logout">Abmelden</string>
|
<string name="shared_string_logout">Abmelden</string>
|
||||||
<string name="not_logged_in">Sie sind nicht angemeldet</string>
|
<string name="not_logged_in">Sie sind nicht angemeldet</string>
|
||||||
<string name="shared_string_continue">Fortfahren</string>
|
<string name="shared_string_continue">Fortfahren</string>
|
||||||
|
@ -127,7 +127,7 @@
|
||||||
<string name="connecting_to_the_internet">Verbindung zum Internet</string>
|
<string name="connecting_to_the_internet">Verbindung zum Internet</string>
|
||||||
<string name="background_work_description">Akkuoptimierungseinstellungen, um die Standortfreigabe zu stabilisieren.</string>
|
<string name="background_work_description">Akkuoptimierungseinstellungen, um die Standortfreigabe zu stabilisieren.</string>
|
||||||
<string name="password_descr">Telegram-Passwort</string>
|
<string name="password_descr">Telegram-Passwort</string>
|
||||||
<string name="nm">kn</string>
|
<string name="nm">sm</string>
|
||||||
<string name="nm_h">kn/h</string>
|
<string name="nm_h">kn/h</string>
|
||||||
<string name="last_updated_location">Zuletzt aktualisierter Ort:</string>
|
<string name="last_updated_location">Zuletzt aktualisierter Ort:</string>
|
||||||
<string name="not_possible_to_send_to_telegram_chats">Es ist nicht möglich, an Telegram-Chats zu senden:</string>
|
<string name="not_possible_to_send_to_telegram_chats">Es ist nicht möglich, an Telegram-Chats zu senden:</string>
|
||||||
|
@ -234,4 +234,12 @@
|
||||||
<string name="proxy_settings">Proxy-Einstellungen</string>
|
<string name="proxy_settings">Proxy-Einstellungen</string>
|
||||||
<string name="proxy">Proxy</string>
|
<string name="proxy">Proxy</string>
|
||||||
<string name="privacy">Datenschutz</string>
|
<string name="privacy">Datenschutz</string>
|
||||||
|
<string name="shared_string_select">Auswählen</string>
|
||||||
|
<string name="min_logging_distance">Minimaler Protokollierungsabstand</string>
|
||||||
|
<string name="min_logging_distance_descr">Filter: Mindestabstand zum Protokollieren eines neuen Punktes</string>
|
||||||
|
<string name="min_logging_accuracy">Minimale Protokollierungsgenauigkeit</string>
|
||||||
|
<string name="min_logging_accuracy_descr">Filter: keine Protokollierung, es sei denn, die Genauigkeit wird erreicht</string>
|
||||||
|
<string name="min_logging_speed">Minimale Protokollierungsgeschwindigkeit</string>
|
||||||
|
<string name="min_logging_speed_descr">Filter: keine Protokollierung unter der gewählten Geschwindigkeit</string>
|
||||||
|
<string name="gpx_settings">GPX-Einstellungen</string>
|
||||||
</resources>
|
</resources>
|
|
@ -84,7 +84,7 @@
|
||||||
<string name="my_location_search_hint">Buscar: Grupo o contacto</string>
|
<string name="my_location_search_hint">Buscar: Grupo o contacto</string>
|
||||||
<string name="start_location_sharing">Compartir ubicación</string>
|
<string name="start_location_sharing">Compartir ubicación</string>
|
||||||
<string name="show_on_map">Mostrar en el mapa</string>
|
<string name="show_on_map">Mostrar en el mapa</string>
|
||||||
<string name="app_name">Rastreador GPS en línea de OsmAnd</string>
|
<string name="app_name">OsmAnd Online GPS Tracker</string>
|
||||||
<string name="phone_number_title">Número de teléfono</string>
|
<string name="phone_number_title">Número de teléfono</string>
|
||||||
<string name="phone_number_descr">Número de teléfono en formato internacional</string>
|
<string name="phone_number_descr">Número de teléfono en formato internacional</string>
|
||||||
<string name="shared_string_password">Contraseña</string>
|
<string name="shared_string_password">Contraseña</string>
|
||||||
|
@ -233,4 +233,12 @@
|
||||||
<string name="proxy_settings">Ajustes del proxy</string>
|
<string name="proxy_settings">Ajustes del proxy</string>
|
||||||
<string name="proxy">Proxy</string>
|
<string name="proxy">Proxy</string>
|
||||||
<string name="privacy">Privacidad</string>
|
<string name="privacy">Privacidad</string>
|
||||||
|
<string name="shared_string_select">Elegir</string>
|
||||||
|
<string name="min_logging_distance">Distancia mínima de registro</string>
|
||||||
|
<string name="min_logging_distance_descr">Filtro: distancia mínima para registrar un nuevo punto</string>
|
||||||
|
<string name="min_logging_accuracy">Precisión mínima de registro</string>
|
||||||
|
<string name="min_logging_accuracy_descr">Filtro: No registrar, a menos que se alcance esta precisión</string>
|
||||||
|
<string name="min_logging_speed">Velocidad mínima de registro</string>
|
||||||
|
<string name="min_logging_speed_descr">Filtro: sin registro por debajo de la velocidad elegida</string>
|
||||||
|
<string name="gpx_settings">Ajustes de GPX</string>
|
||||||
</resources>
|
</resources>
|
|
@ -83,7 +83,7 @@
|
||||||
<string name="my_location_search_hint">Buscar: Grupo o contacto</string>
|
<string name="my_location_search_hint">Buscar: Grupo o contacto</string>
|
||||||
<string name="start_location_sharing">Compartir ubicación</string>
|
<string name="start_location_sharing">Compartir ubicación</string>
|
||||||
<string name="show_on_map">Mostrar en el mapa</string>
|
<string name="show_on_map">Mostrar en el mapa</string>
|
||||||
<string name="app_name">Rastreador GPS en línea de OsmAnd</string>
|
<string name="app_name">OsmAnd Online GPS Tracker</string>
|
||||||
<string name="phone_number_title">Número de teléfono</string>
|
<string name="phone_number_title">Número de teléfono</string>
|
||||||
<string name="phone_number_descr">Número de teléfono en formato internacional</string>
|
<string name="phone_number_descr">Número de teléfono en formato internacional</string>
|
||||||
<string name="shared_string_password">Contraseña</string>
|
<string name="shared_string_password">Contraseña</string>
|
||||||
|
@ -233,4 +233,12 @@
|
||||||
<string name="proxy_settings">Ajustes del proxy</string>
|
<string name="proxy_settings">Ajustes del proxy</string>
|
||||||
<string name="proxy">Proxy</string>
|
<string name="proxy">Proxy</string>
|
||||||
<string name="privacy">Privacidad</string>
|
<string name="privacy">Privacidad</string>
|
||||||
|
<string name="shared_string_select">Elegir</string>
|
||||||
|
<string name="min_logging_distance">Distancia mínima de registro</string>
|
||||||
|
<string name="min_logging_distance_descr">Filtro: distancia mínima para registrar un nuevo punto</string>
|
||||||
|
<string name="min_logging_accuracy">Precisión mínima de registro</string>
|
||||||
|
<string name="min_logging_accuracy_descr">Filtro: no registrar, a menos que se alcance esta precisión</string>
|
||||||
|
<string name="min_logging_speed">Velocidad mínima de registro</string>
|
||||||
|
<string name="min_logging_speed_descr">Filtro: sin registro por debajo de la velocidad elegida</string>
|
||||||
|
<string name="gpx_settings">Ajustes de GPX</string>
|
||||||
</resources>
|
</resources>
|
|
@ -137,4 +137,20 @@
|
||||||
<string name="my_location">Nire kokapena</string>
|
<string name="my_location">Nire kokapena</string>
|
||||||
<string name="live_now">Zuzenean orain</string>
|
<string name="live_now">Zuzenean orain</string>
|
||||||
<string name="timeline">Denbora-eskala</string>
|
<string name="timeline">Denbora-eskala</string>
|
||||||
|
<string name="search_contacts_descr">Bilatu zure talde eta kontaktu guztien artean.</string>
|
||||||
|
<string name="timeline_available_for_free_now">Denbora-lerroa orain doan eskuragarri dagoen ezaugarri bat da.</string>
|
||||||
|
<string name="proxy_key">Gakoa</string>
|
||||||
|
<string name="proxy_password">Pasahitza</string>
|
||||||
|
<string name="proxy_username">Erabiltzaile-izena</string>
|
||||||
|
<string name="proxy_credentials">Kredentzialak</string>
|
||||||
|
<string name="proxy_port">Ataka</string>
|
||||||
|
<string name="proxy_server">Zerbitzaria</string>
|
||||||
|
<string name="shared_string_connection">Konexioa</string>
|
||||||
|
<string name="shared_string_enable">Gaitu</string>
|
||||||
|
<string name="proxy_type">Proxy mota</string>
|
||||||
|
<string name="proxy_connected">Konektatuta</string>
|
||||||
|
<string name="proxy_disconnected">Deskonektatuta</string>
|
||||||
|
<string name="proxy_settings">Proxyaren ezarpenak</string>
|
||||||
|
<string name="proxy">Proxya</string>
|
||||||
|
<string name="privacy">Pribatutasuna</string>
|
||||||
</resources>
|
</resources>
|
|
@ -1,5 +1,6 @@
|
||||||
<?xml version='1.0' encoding='UTF-8'?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources><string name="last_update_from_telegram">آخرین بهروزرسانی نسخهٔ تلگرام</string>
|
<resources>
|
||||||
|
<string name="last_update_from_telegram">آخرین بهروزرسانی نسخهٔ تلگرام</string>
|
||||||
<string name="device_added_successfully">%1$s اضافه شد.</string>
|
<string name="device_added_successfully">%1$s اضافه شد.</string>
|
||||||
<string name="shared_string_add">افزودن</string>
|
<string name="shared_string_add">افزودن</string>
|
||||||
<string name="error_adding_new_device">نمیتوان دستگاه جدید اضافه کرد</string>
|
<string name="error_adding_new_device">نمیتوان دستگاه جدید اضافه کرد</string>
|
||||||
|
@ -20,4 +21,49 @@
|
||||||
<string name="sharing_enabled">اشتراکگذاری: فعال</string>
|
<string name="sharing_enabled">اشتراکگذاری: فعال</string>
|
||||||
<string name="shared_string_status">وضعیت</string>
|
<string name="shared_string_status">وضعیت</string>
|
||||||
<string name="shared_string_close">بستن</string>
|
<string name="shared_string_close">بستن</string>
|
||||||
|
<string name="shared_string_hide">نشان نده</string>
|
||||||
|
<string name="shared_string_disable">غیرفعالکردن</string>
|
||||||
|
<string name="shared_string_save">ذخیره</string>
|
||||||
|
<string name="shared_string_name">نام</string>
|
||||||
|
<string name="shared_string_sort">مرتبسازی</string>
|
||||||
|
<string name="shared_string_exit">خروج</string>
|
||||||
|
<string name="shared_string_all">همه</string>
|
||||||
|
<string name="shared_string_off">خاموش</string>
|
||||||
|
<string name="shared_string_install">نصب</string>
|
||||||
|
<string name="shared_string_share">اشتراکگذاری</string>
|
||||||
|
<string name="shared_string_back">عقب</string>
|
||||||
|
<string name="shared_string_continue">ادامه</string>
|
||||||
|
<string name="shared_string_cancel">لغو</string>
|
||||||
|
<string name="shared_string_settings">تنظیمات</string>
|
||||||
|
<string name="osmand_service">حالت پسزمینه</string>
|
||||||
|
<string name="yard">yd</string>
|
||||||
|
<string name="foot">ft</string>
|
||||||
|
<string name="mile">mi</string>
|
||||||
|
<string name="km">km</string>
|
||||||
|
<string name="m">m</string>
|
||||||
|
<string name="nm">nmi</string>
|
||||||
|
<string name="min_mile">min/m</string>
|
||||||
|
<string name="min_km">min/km</string>
|
||||||
|
<string name="m_s">m/s</string>
|
||||||
|
<string name="km_h">km/h</string>
|
||||||
|
<string name="mile_per_hour">mph</string>
|
||||||
|
<string name="si_kmh">کیلومتر بر ساعت</string>
|
||||||
|
<string name="si_mph">مایل بر ساعت</string>
|
||||||
|
<string name="si_m_s">متر بر ثانیه</string>
|
||||||
|
<string name="si_min_km">دقیقه بر کیلومتر</string>
|
||||||
|
<string name="si_min_m">دقیقه بر مایل</string>
|
||||||
|
<string name="si_mi_feet">مایل/پا</string>
|
||||||
|
<string name="si_mi_yard">مایل/یارد</string>
|
||||||
|
<string name="si_km_m">کیلومتر/متر</string>
|
||||||
|
<string name="si_nm">مایل دریایی</string>
|
||||||
|
<string name="si_mi_meters">مایل/متر</string>
|
||||||
|
<string name="shared_string_map">نقشه</string>
|
||||||
|
<string name="average_altitude">میانگین ارتفاع</string>
|
||||||
|
<string name="average_speed">میانگین سرعت</string>
|
||||||
|
<string name="shared_string_update">بهروزرسانی</string>
|
||||||
|
<string name="shared_string_ok">خُب</string>
|
||||||
|
<string name="shared_string_search">جستوجو</string>
|
||||||
|
<string name="altitude">ارتفاع</string>
|
||||||
|
<string name="shared_string_enable">فعالکردن</string>
|
||||||
|
<string name="shared_string_select">انتخاب</string>
|
||||||
</resources>
|
</resources>
|
|
@ -44,9 +44,9 @@
|
||||||
<string name="add_device">הוספת מכשיר</string>
|
<string name="add_device">הוספת מכשיר</string>
|
||||||
<string name="share_location_as">שיתוף מיקום בתור</string>
|
<string name="share_location_as">שיתוף מיקום בתור</string>
|
||||||
<string name="live_now_description">אנשי קשר וקבוצות שמשתפים אתך מיקום.</string>
|
<string name="live_now_description">אנשי קשר וקבוצות שמשתפים אתך מיקום.</string>
|
||||||
<string name="battery_optimization_description">כיבוי מיטוב סוללה עבור טלגרם OsmAnd כדי שהשירות לא יכבה ברקע.</string>
|
<string name="battery_optimization_description">כיבוי מיטוב סוללה עבור עוקב OsmAnd כדי שהשירות לא יכבה ברקע.</string>
|
||||||
<string name="logout_from_osmand_telegram_descr">לצאת מטלגרם OsmAnd כדי לכבות את האפשרות לשתף מיקום או לצפות במיקום של אחרים\?</string>
|
<string name="logout_from_osmand_telegram_descr">לצאת מעוקב OsmAnd כדי לכבות את האפשרות לשתף מיקום או לצפות במיקום של אחרים\?</string>
|
||||||
<string name="logout_from_osmand_telegram">לצאת מטלגרם OsmAnd\?</string>
|
<string name="logout_from_osmand_telegram">לצאת מעוקב OsmAnd\?</string>
|
||||||
<string name="shared_string_name">שם</string>
|
<string name="shared_string_name">שם</string>
|
||||||
<string name="by_distance">לפי מרחק</string>
|
<string name="by_distance">לפי מרחק</string>
|
||||||
<string name="by_name">לפי שם</string>
|
<string name="by_name">לפי שם</string>
|
||||||
|
@ -72,12 +72,12 @@
|
||||||
<string name="open_in_osmand">הצגה ב־OsmAnd</string>
|
<string name="open_in_osmand">הצגה ב־OsmAnd</string>
|
||||||
<string name="end_date">מועד סיום</string>
|
<string name="end_date">מועד סיום</string>
|
||||||
<string name="start_date">מועד התחלה</string>
|
<string name="start_date">מועד התחלה</string>
|
||||||
<string name="disconnect_from_telegram_desc">כדי לשלול גישה לשיתוף המיקום. יש לפתוח את טלגרם, לגשת להגדרות ← פרטיות ← הפעלות ולסגור את הפעלת הטלגרם של OsmAnd.</string>
|
<string name="disconnect_from_telegram_desc">כדי לשלול גישה לשיתוף המיקום. יש לפתוח את טלגרם, לגשת להגדרות ← פרטיות ← הפעלות ולסגור את הפעלת העוקב של OsmAnd.</string>
|
||||||
<string name="disconnect_from_telegram">איך לכבות את העוקב של OsmAnd מטלגרם</string>
|
<string name="disconnect_from_telegram">איך לכבות את העוקב של OsmAnd מטלגרם</string>
|
||||||
<string name="logout_help_desc">איך לכבות את העוקב של OsmAnd מטלגרם</string>
|
<string name="logout_help_desc">איך לכבות את העוקב של OsmAnd מטלגרם</string>
|
||||||
<string name="connected_account">חשבון מחובר</string>
|
<string name="connected_account">חשבון מחובר</string>
|
||||||
<string name="in_time">בעוד %1$s</string>
|
<string name="in_time">בעוד %1$s</string>
|
||||||
<string name="osmand_connect_desc">נא לבחור את גרסת ה־OsmAnd בה יעשה שימוש OsmAnd טלגרם לטובת הצגת מיקומים.</string>
|
<string name="osmand_connect_desc">נא לבחור את גרסת ה־OsmAnd בה יעשה שימוש עוקב OsmAnd לטובת הצגת מיקומים.</string>
|
||||||
<string name="location_history_desc">להסתיר אנשי קשר שלא זזו במשך זה מסוים.</string>
|
<string name="location_history_desc">להסתיר אנשי קשר שלא זזו במשך זה מסוים.</string>
|
||||||
<string name="location_history">היסטוריית מיקום</string>
|
<string name="location_history">היסטוריית מיקום</string>
|
||||||
<string name="stale_location_desc">הפעם האחרונה שאיש קשר זז.</string>
|
<string name="stale_location_desc">הפעם האחרונה שאיש קשר זז.</string>
|
||||||
|
@ -115,7 +115,7 @@
|
||||||
<string name="my_location_search_hint">חיפוש: קבוצה או איש קשר</string>
|
<string name="my_location_search_hint">חיפוש: קבוצה או איש קשר</string>
|
||||||
<string name="start_location_sharing">שיתוף מיקום</string>
|
<string name="start_location_sharing">שיתוף מיקום</string>
|
||||||
<string name="show_on_map">הצגה במפה</string>
|
<string name="show_on_map">הצגה במפה</string>
|
||||||
<string name="app_name">OsmAnd Online GPS Tracker</string>
|
<string name="app_name">עוקב GPS מקוון של OsmAnd</string>
|
||||||
<string name="phone_number_title">מספר טלפון</string>
|
<string name="phone_number_title">מספר טלפון</string>
|
||||||
<string name="phone_number_descr">מספר טלפון בתצורה בינלאומית</string>
|
<string name="phone_number_descr">מספר טלפון בתצורה בינלאומית</string>
|
||||||
<string name="shared_string_password">ססמה</string>
|
<string name="shared_string_password">ססמה</string>
|
||||||
|
@ -138,11 +138,11 @@
|
||||||
<string name="gps_not_available">נא להפעיל את „מיקום” בהגדרות המערכת</string>
|
<string name="gps_not_available">נא להפעיל את „מיקום” בהגדרות המערכת</string>
|
||||||
<string name="location_service_no_gps_available">נא לבחור את אחד מספקי המיקום כדי לשתף את המיקום שלך.</string>
|
<string name="location_service_no_gps_available">נא לבחור את אחד מספקי המיקום כדי לשתף את המיקום שלך.</string>
|
||||||
<string name="osmand_service">מצב רקע</string>
|
<string name="osmand_service">מצב רקע</string>
|
||||||
<string name="osmand_service_descr">OsmAnd טלגרם פועל ברקע בזמן שהמסך כבוי.</string>
|
<string name="osmand_service_descr">עוקב OsmAnd פועל ברקע בזמן שהמסך כבוי.</string>
|
||||||
<string name="shared_string_distance">מרחק</string>
|
<string name="shared_string_distance">מרחק</string>
|
||||||
<string name="share_location">שיתוף מיקום</string>
|
<string name="share_location">שיתוף מיקום</string>
|
||||||
<string name="sharing_location">המיקום משותף</string>
|
<string name="sharing_location">המיקום משותף</string>
|
||||||
<string name="process_service">שירות OsmAnd טלגרם</string>
|
<string name="process_service">שירות עוקב OsmAnd</string>
|
||||||
<string name="osmand_logo">הלוגו של OsmAnd</string>
|
<string name="osmand_logo">הלוגו של OsmAnd</string>
|
||||||
<string name="install_osmand_dialog_message">עליך להתקין את הגרסה החופשית או את הגרסה בתשלום של OsmAnd תחילה</string>
|
<string name="install_osmand_dialog_message">עליך להתקין את הגרסה החופשית או את הגרסה בתשלום של OsmAnd תחילה</string>
|
||||||
<string name="install_osmand">התקנת OsmAnd</string>
|
<string name="install_osmand">התקנת OsmAnd</string>
|
||||||
|
@ -233,4 +233,12 @@
|
||||||
<string name="proxy_settings">הגדרות מתווך</string>
|
<string name="proxy_settings">הגדרות מתווך</string>
|
||||||
<string name="proxy">מתווך</string>
|
<string name="proxy">מתווך</string>
|
||||||
<string name="privacy">פרטיות</string>
|
<string name="privacy">פרטיות</string>
|
||||||
|
<string name="shared_string_select">בחירה</string>
|
||||||
|
<string name="min_logging_distance">מרחק תיעוד מזערי</string>
|
||||||
|
<string name="min_logging_distance_descr">מסנן: מרחק מזערי לתיעוד נקודה חדשה</string>
|
||||||
|
<string name="min_logging_accuracy">דיוק תיעוד מזערי</string>
|
||||||
|
<string name="min_logging_accuracy_descr">מסנן: אין תיעוד עד שרמת הדיוק הושגה</string>
|
||||||
|
<string name="min_logging_speed">מהירות תיעוד מזערית</string>
|
||||||
|
<string name="min_logging_speed_descr">מסנן: לא לתעד מתחת למהירות הנבחרת</string>
|
||||||
|
<string name="gpx_settings">הגדרות GPX</string>
|
||||||
</resources>
|
</resources>
|
|
@ -219,4 +219,18 @@
|
||||||
<string name="precision">Pontosság</string>
|
<string name="precision">Pontosság</string>
|
||||||
<string name="altitude">Magasság</string>
|
<string name="altitude">Magasság</string>
|
||||||
<string name="bearing">Tájolás</string>
|
<string name="bearing">Tájolás</string>
|
||||||
|
<string name="proxy_key">Kulcs</string>
|
||||||
|
<string name="proxy_password">Jelszó</string>
|
||||||
|
<string name="proxy_username">Felhasználónév</string>
|
||||||
|
<string name="proxy_credentials">Hitelesítő adatok</string>
|
||||||
|
<string name="proxy_port">Port</string>
|
||||||
|
<string name="proxy_server">Kiszolgáló</string>
|
||||||
|
<string name="shared_string_connection">Kapcsolat</string>
|
||||||
|
<string name="shared_string_enable">Engedélyezés</string>
|
||||||
|
<string name="proxy_type">Proxy típusa</string>
|
||||||
|
<string name="proxy_connected">Kapcsolódva</string>
|
||||||
|
<string name="proxy_disconnected">Kapcsolat bontva</string>
|
||||||
|
<string name="proxy_settings">Proxy beállításai</string>
|
||||||
|
<string name="proxy">Proxy</string>
|
||||||
|
<string name="privacy">Adatvédelem</string>
|
||||||
</resources>
|
</resources>
|
|
@ -212,4 +212,34 @@
|
||||||
<string name="shared_string_collected">Ricevuti</string>
|
<string name="shared_string_collected">Ricevuti</string>
|
||||||
<string name="gps_points">punti GPS</string>
|
<string name="gps_points">punti GPS</string>
|
||||||
<string name="shared_string_sent">Inviati</string>
|
<string name="shared_string_sent">Inviati</string>
|
||||||
|
<string name="search_contacts">Cerca nei contatti</string>
|
||||||
|
<string name="search_contacts_descr">Cerca in tutti i tuoi gruppi e contatti.</string>
|
||||||
|
<string name="type_contact_or_group_name">Inserisci il nome del gruppo o del contatto</string>
|
||||||
|
<string name="shared_string_search">Cerca</string>
|
||||||
|
<string name="direction">Direzione</string>
|
||||||
|
<string name="precision">Precisione</string>
|
||||||
|
<string name="altitude">Altitudine</string>
|
||||||
|
<string name="bearing">Orientamento</string>
|
||||||
|
<string name="proxy_key">Chiave</string>
|
||||||
|
<string name="proxy_password">Password</string>
|
||||||
|
<string name="proxy_username">Nome utente</string>
|
||||||
|
<string name="proxy_credentials">Credenziali</string>
|
||||||
|
<string name="proxy_port">Porta</string>
|
||||||
|
<string name="proxy_server">Server</string>
|
||||||
|
<string name="shared_string_connection">Connessione</string>
|
||||||
|
<string name="shared_string_enable">Abilita</string>
|
||||||
|
<string name="proxy_type">Tipo di Proxy</string>
|
||||||
|
<string name="proxy_connected">Connesso</string>
|
||||||
|
<string name="proxy_disconnected">Disconnesso</string>
|
||||||
|
<string name="proxy_settings">Impostazioni Proxy</string>
|
||||||
|
<string name="proxy">Proxy</string>
|
||||||
|
<string name="privacy">Privacy</string>
|
||||||
|
<string name="shared_string_select">Seleziona</string>
|
||||||
|
<string name="min_logging_distance">Distanza minima di registrazione</string>
|
||||||
|
<string name="min_logging_distance_descr">Filtra: distanza minima per registrare un nuovo punto</string>
|
||||||
|
<string name="min_logging_accuracy">Accuratezza di registrazione minima</string>
|
||||||
|
<string name="min_logging_accuracy_descr">Filtra: nessuna registrazione se l\'accuratezza non è raggiunta</string>
|
||||||
|
<string name="min_logging_speed">Velocità minima di registrazione</string>
|
||||||
|
<string name="min_logging_speed_descr">Filtra: nessuna registrazione al di sotto della velocità selezionata</string>
|
||||||
|
<string name="gpx_settings">Impostazioni GPX</string>
|
||||||
</resources>
|
</resources>
|
|
@ -234,4 +234,12 @@
|
||||||
<string name="proxy_settings">Mellomtjener-innstillinger</string>
|
<string name="proxy_settings">Mellomtjener-innstillinger</string>
|
||||||
<string name="proxy">Mellomtjener</string>
|
<string name="proxy">Mellomtjener</string>
|
||||||
<string name="privacy">Personvern</string>
|
<string name="privacy">Personvern</string>
|
||||||
|
<string name="shared_string_select">Velg</string>
|
||||||
|
<string name="min_logging_distance">Minste loggingsavstand</string>
|
||||||
|
<string name="min_logging_distance_descr">Filter: Minimumsdistanse til neste loggingspunkt</string>
|
||||||
|
<string name="min_logging_accuracy">Minimumsnøyaktighet for logging</string>
|
||||||
|
<string name="min_logging_accuracy_descr">Filter: Ingen logging med mindre nøyaktigheten nås</string>
|
||||||
|
<string name="min_logging_speed">Minimumshastighet ved logging</string>
|
||||||
|
<string name="min_logging_speed_descr">Filter: Ingen logging under valgt hastighet</string>
|
||||||
|
<string name="gpx_settings">GPX-innstillinger</string>
|
||||||
</resources>
|
</resources>
|
175
OsmAnd-telegram/res/values-oc/strings.xml
Normal file
|
@ -0,0 +1,175 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
<string name="shared_string_sort">Ordenar</string>
|
||||||
|
<string name="shared_string_back">Tornar</string>
|
||||||
|
<string name="shared_string_select">Seleccionar</string>
|
||||||
|
<string name="min_logging_distance">Distància minimala d\'enregistrament</string>
|
||||||
|
<string name="min_logging_distance_descr">Filtre: distància minimala per enregistrar un ponch nòu</string>
|
||||||
|
<string name="min_logging_accuracy">Precision minimala d\'enregistrament</string>
|
||||||
|
<string name="min_logging_accuracy_descr">Filtre: ges d\'enregistrament se la precision minimala es pas reglada</string>
|
||||||
|
<string name="min_logging_speed">Velocitat minimala d\'enregistrament</string>
|
||||||
|
<string name="min_logging_speed_descr">Filtre: ges d\'enregistrament en dessota de la velocitat seleccionada</string>
|
||||||
|
<string name="gpx_settings">Configuracion GPX</string>
|
||||||
|
<string name="proxy_key">Clau</string>
|
||||||
|
<string name="proxy_password">Senhau</string>
|
||||||
|
<string name="proxy_username">Nom d\'usancier</string>
|
||||||
|
<string name="proxy_port">Pòrt</string>
|
||||||
|
<string name="proxy_server">Servidor</string>
|
||||||
|
<string name="shared_string_connection">Connexion</string>
|
||||||
|
<string name="shared_string_enable">Activar</string>
|
||||||
|
<string name="proxy_type">Tipe de servidor intermediari</string>
|
||||||
|
<string name="proxy_connected">Connectat</string>
|
||||||
|
<string name="proxy_disconnected">Desconnectat</string>
|
||||||
|
<string name="proxy_settings">Configuracion dau servidor intermediari</string>
|
||||||
|
<string name="proxy">Servidor intermediari (Proxy)</string>
|
||||||
|
<string name="privacy">Vida privada</string>
|
||||||
|
<string name="direction">Adreiça</string>
|
||||||
|
<string name="precision">Precision</string>
|
||||||
|
<string name="altitude">Altitud</string>
|
||||||
|
<string name="bearing">Trajectòria</string>
|
||||||
|
<string name="search_contacts">Cercar dins lei contactes</string>
|
||||||
|
<string name="search_contacts_descr">Cercar per totei lei grops de contactes.</string>
|
||||||
|
<string name="type_contact_or_group_name">Escrivètz un nom de contacte ò de grop</string>
|
||||||
|
<string name="shared_string_search">Cercar</string>
|
||||||
|
<string name="shared_string_ok">D\'acòrd</string>
|
||||||
|
<string name="timeline_available_for_free_now">La foncion Cronologia es ara un opcion gratuita.</string>
|
||||||
|
<string name="disable_monitoring">Desactiva lo seguiment</string>
|
||||||
|
<string name="location_recording_enabled">L\'enregistrament de la localizacion es activa</string>
|
||||||
|
<string name="timeline_description">Activatz lo seguiment per sauvagardar l\'istoric de localizament.</string>
|
||||||
|
<string name="app_name_short">Traçador OsmAnd</string>
|
||||||
|
<string name="shared_string_telegram">Telegrama</string>
|
||||||
|
<string name="privacy_policy_use_telegram">Telegrama (l\'aplicacion de messatjariá) es emplegat per se connectar e comunicar amb lo monde.</string>
|
||||||
|
<string name="privacy_policy_telegram_client">Lo Traçador d\'OsmAnd es un dei clients qu\'utiliza la plataforma obèrta Telegrama. Vòstrei contactes se pòdon servir de tot autre client de messatjariá.</string>
|
||||||
|
<string name="privacy_policy_agree">Cliquant sus contunhar, acceptatz lei condicions de la Politica de la Vida Privada de Telegrama e aquelei d\'OsmAnd.</string>
|
||||||
|
<string name="shared_string_accept">D\'acòrd</string>
|
||||||
|
<string name="telegram_privacy_policy">Politica de la Vida Privada de Telegrama</string>
|
||||||
|
<string name="osmand_privacy_policy">Politica de la Vida Privada d\'OsmAnd</string>
|
||||||
|
<string name="how_it_works">Coma fonciona</string>
|
||||||
|
<string name="received_gps_points">Ponchs GPX recebuts: %1$s</string>
|
||||||
|
<string name="shared_string_appearance">Aparéncia</string>
|
||||||
|
<string name="show_gps_points">Mostrar lei ponchs GPS</string>
|
||||||
|
<string name="show_gps_points_descr">Mostrar lo nombre de ponchs GPS recampats e enviats.</string>
|
||||||
|
<string name="please_update_osmand">Actualizar OsmAnd per veire lei dadas sus la mapa</string>
|
||||||
|
<string name="shared_string_update">Actualizar</string>
|
||||||
|
<string name="gps_points_in_buffer">enviat ((%1$d en la memòria intermediària)</string>
|
||||||
|
<string name="points_size">%1$d ponchs</string>
|
||||||
|
<string name="shared_string_date">Data</string>
|
||||||
|
<string name="shared_string_collected">Recebut</string>
|
||||||
|
<string name="gps_points">Ponchs GPS</string>
|
||||||
|
<string name="shared_string_sent">Enviat</string>
|
||||||
|
<string name="monitoring_is_enabled">Lo monitoratge es actiu</string>
|
||||||
|
<string name="monitoring_is_disabled">Lo monitoratge es inactiu</string>
|
||||||
|
<string name="time_on_the_move">Temps de movement</string>
|
||||||
|
<string name="average_altitude">Altitud mejana</string>
|
||||||
|
<string name="average_speed">Velocitat mejana</string>
|
||||||
|
<string name="open_in_osmand">Mostrar en OsmAnd</string>
|
||||||
|
<string name="end_date">Data de fin</string>
|
||||||
|
<string name="start_date">Data de partença</string>
|
||||||
|
<string name="send_location_as">Enviar la localizacion per</string>
|
||||||
|
<string name="send_location_as_descr">Causir l\'aspècte dei messatges segon vòstra localizacion.</string>
|
||||||
|
<string name="shared_string_map">Mapa</string>
|
||||||
|
<string name="shared_string_text">Tèxte</string>
|
||||||
|
<string name="map_and_text">Mapa e tèxte</string>
|
||||||
|
<string name="last_update_from_telegram">Darriera actualizacion de Telegrama</string>
|
||||||
|
<string name="enter_another_device_name">Causissètz un nom que siegue pas encar estat emplegat</string>
|
||||||
|
<string name="device_added_successfully">Ajustat %1$s.</string>
|
||||||
|
<string name="shared_string_add">Ajustar</string>
|
||||||
|
<string name="error_adding_new_device">Impossible d\'ajustar un aparelh novèu</string>
|
||||||
|
<string name="enter_device_name_description">Donatz un nom a l\'aparelh novèu de 200 caractèrs lo mai.</string>
|
||||||
|
<string name="device_name_is_too_long">Lo nom de l\'aparelh es tròp lòng</string>
|
||||||
|
<string name="device_name_cannot_be_empty">Lo nom de l\'aparelh se pòt pas laissar vuege</string>
|
||||||
|
<string name="device_name">Nom de l\'aparelh</string>
|
||||||
|
<string name="shared_string_hide">Amagar</string>
|
||||||
|
<string name="share_location_as_description_second_line">Podètz crear e visualizar l\'ID de l\'aparelh dins lo client de Telegrama amb lo bòt %1$s. %2$s</string>
|
||||||
|
<string name="share_location_as_description">Se volètz connectar mai d\'un aparelh a un còmpte de Telegram, vos fau utilizar un aparelh diferent per partejar vòstra posicion.</string>
|
||||||
|
<string name="last_updated_location">Darriera actualizacion de la posicion:</string>
|
||||||
|
<string name="successfully_sent_and_updated">Enviat e actualizat correctament</string>
|
||||||
|
<string name="not_possible_to_send_to_telegram_chats">"Impossible d\'enviar vèrs lo charrador de Telegrama:"</string>
|
||||||
|
<string name="waiting_for_response_from_telegram">A l\'espèra de la respònsa de Telegrama</string>
|
||||||
|
<string name="sending_location_messages">La posicion es estada enviada</string>
|
||||||
|
<string name="initializing">Aviament</string>
|
||||||
|
<string name="searching_for_gps">Posicionament…</string>
|
||||||
|
<string name="connecting_to_the_internet">A se connectar amb l\'Internet</string>
|
||||||
|
<string name="background_work_description">Cambiatz la configuracion de l\'optimizacion de la batariá per estabilizar lo partatge dau posicionament.</string>
|
||||||
|
<string name="background_work">Foncionament en degond plan</string>
|
||||||
|
<string name="battery_optimization_description">Desactivatz l\'optimizacion de la batariá per OsmAnd Traçador de maniera que s\'amòrçe pas d\'un còp quand es en segond plan.</string>
|
||||||
|
<string name="sharing_in_background">Partatge en segond plan</string>
|
||||||
|
<string name="go_to_settings">Anar a la configuracion</string>
|
||||||
|
<string name="shared_string_later">Pus tard</string>
|
||||||
|
<string name="not_sent_yet">Pas encar enviat</string>
|
||||||
|
<string name="not_found_yet">Pas encar trobat</string>
|
||||||
|
<string name="re_send_location">Tornar enviar lo posicion</string>
|
||||||
|
<string name="last_available_location">Darriera posicion disponibla</string>
|
||||||
|
<string name="sharing_status">Estat dau partatge</string>
|
||||||
|
<string name="sharing_enabled">Partatge: activat</string>
|
||||||
|
<string name="shared_string_status">Estat</string>
|
||||||
|
<string name="no_gps_connection">Ges de connexion GPS</string>
|
||||||
|
<string name="no_internet_connection">Ges de connexion a l\'Internet</string>
|
||||||
|
<string name="shared_string_disable">Desactivar</string>
|
||||||
|
<string name="shared_string_save">Sauvagardar</string>
|
||||||
|
<string name="add_device">Ajustar un aparelh</string>
|
||||||
|
<string name="share_location_as">Partejar la posicion per</string>
|
||||||
|
<string name="live_now_description">Contactes e grops que partejan la posicion amb vos.</string>
|
||||||
|
<string name="logout_from_osmand_telegram_descr">Siatz segur que volètz desconnectar lo Traçador d\'OsmAnd que podretz pus partejar la posicion nimai veire aquela deis autres \?</string>
|
||||||
|
<string name="logout_from_osmand_telegram">Volètz desconnectar lo Traçador d\'OsmAnd \?</string>
|
||||||
|
<string name="shared_string_name">Nom</string>
|
||||||
|
<string name="by_distance">Per distància</string>
|
||||||
|
<string name="by_name">Per nom</string>
|
||||||
|
<string name="by_group">Per grop</string>
|
||||||
|
<string name="shared_string_sort_by">Ordena per</string>
|
||||||
|
<string name="choose_osmand_desc">Seleccionatz la version d\'OsmAnd que localiza lei contactes sus la mapa.</string>
|
||||||
|
<string name="choose_osmand">Seleccionatz la version d\'OsmAnd d\'emplegar</string>
|
||||||
|
<string name="disable_all_sharing_desc">Desactivar lo partatge de la posicion per totei lei conversacions seleccionadas (%1$d).</string>
|
||||||
|
<string name="disable_all_sharing">Desactivar lo partatge</string>
|
||||||
|
<string name="turn_off_all">Tot desactivar</string>
|
||||||
|
<string name="shared_string_exit">Sortir</string>
|
||||||
|
<string name="time_ago">Fach</string>
|
||||||
|
<string name="last_response">Darriera respònsa</string>
|
||||||
|
<string name="shared_string_group">Grop</string>
|
||||||
|
<string name="logout_no_internet_msg">Connectatz-vos a Internet per sortir correctament de Telegrama.</string>
|
||||||
|
<string name="shared_string_close">Plegar</string>
|
||||||
|
<string name="disconnect_from_telegram_desc">Per arrestar de partejar la posicion. Obrètz Telegrama, anatz a Configuracion → Seguretat e Vida Privada → Sessions, e arrestatz lo Traçador d\'OsmAnd.</string>
|
||||||
|
<string name="disconnect_from_telegram">Coma arrestar lo Traçador d\'OsmAnd partent de Telegrama</string>
|
||||||
|
<string name="logout_help_desc">Coma arrestar lo Traçador d\'OsmAnd partent de Telegrama</string>
|
||||||
|
<string name="connected_account">Còmpte connectat</string>
|
||||||
|
<string name="shared_string_account">Còmpte</string>
|
||||||
|
<string name="in_time">dins %@</string>
|
||||||
|
<string name="osmand_connect_desc">Seleccionatz la version d\'OsmAnd que lo Traçador emplegarà per indicar la posicion.</string>
|
||||||
|
<string name="osmand_connect">Connexion OsmAnd</string>
|
||||||
|
<string name="location_history_desc">Amagar lei contactes quiets d\'un bòn moment.</string>
|
||||||
|
<string name="location_history">Cronologia de la posicion</string>
|
||||||
|
<string name="stale_location_desc">Lo darriera còp qu\'un contacte s\'es desplaçat.</string>
|
||||||
|
<string name="stale_location">Arrestat</string>
|
||||||
|
<string name="send_my_location_desc">Indicatz la variacion minimala per partejar la posicion.</string>
|
||||||
|
<string name="send_my_location">Enviar ma posicion</string>
|
||||||
|
<string name="gps_and_location">Posicion</string>
|
||||||
|
<string name="sharing_time">Temps de partatge</string>
|
||||||
|
<string name="expire_at">Expiracion:</string>
|
||||||
|
<string name="stop_sharing_all">Lo partatge es estat activat (desactivar)</string>
|
||||||
|
<string name="turn_off_location_sharing">Desactivar lo partatge de la posicion</string>
|
||||||
|
<string name="open_osmand">Obrir OsmAnd</string>
|
||||||
|
<string name="shared_string_live">En dirècte</string>
|
||||||
|
<string name="shared_string_bot">Bòt</string>
|
||||||
|
<string name="get_telegram_title">Enregistrar Telegrama</string>
|
||||||
|
<string name="get_telegram_account_first">Vos fau un còmpte Telegrama per partejar la posicion.</string>
|
||||||
|
<string name="get_telegram_description_continue">Installatz Telegrama e creatz-vos un còmpte.</string>
|
||||||
|
<string name="get_telegram_after_creating_account">Podretz puei emplegar aquesta aplicacion.</string>
|
||||||
|
<string name="shared_string_all">Tot</string>
|
||||||
|
<string name="shared_string_off">Inactivar</string>
|
||||||
|
<string name="already_registered_in_telegram">Vos fau un còmpte enregistrat de Telegrama e un numèro de telefòn</string>
|
||||||
|
<string name="do_not_have_telegram">Ai ges de còmpte per Telegrama</string>
|
||||||
|
<string name="enter_phone_number">Intratz un numèro de telefòn</string>
|
||||||
|
<string name="enter_authentication_code">Intratz un còde d\'autentificacion</string>
|
||||||
|
<string name="set_visible_time_for_all">Indicatz un orari visible en totei</string>
|
||||||
|
<string name="hours_and_minutes_format">%1$d h %2$d min</string>
|
||||||
|
<string name="minutes_format">%1$d min</string>
|
||||||
|
<string name="hours_format">%1$d h</string>
|
||||||
|
<string name="shared_string_install">Installar</string>
|
||||||
|
<string name="shared_string_share">Partejar</string>
|
||||||
|
<string name="visible_time_for_all">Orari de visibilitat en totei</string>
|
||||||
|
<string name="set_time">Indicatz l\'orari</string>
|
||||||
|
<string name="location_sharing_description">Seleccionatz lei grops de contactes amb cu volètz partejar la posicion.</string>
|
||||||
|
<string name="my_location_search_hint">Recercar: Grop ò contacte</string>
|
||||||
|
<string name="start_location_sharing">Parteja la posicion</string>
|
||||||
|
<string name="show_on_map">Monstrar sus la mapa</string>
|
||||||
|
</resources>
|
|
@ -2,9 +2,7 @@
|
||||||
<resources>
|
<resources>
|
||||||
<string name="background_work_description">Zmień ustawienia optymalizacji baterii, aby zapewnić stabilną lokalizację.</string>
|
<string name="background_work_description">Zmień ustawienia optymalizacji baterii, aby zapewnić stabilną lokalizację.</string>
|
||||||
<string name="background_work">Praca w tle</string>
|
<string name="background_work">Praca w tle</string>
|
||||||
<string name="battery_optimization_description">Aby stabilnie udostępniać swoją pozycję w tle, zaleca się wyłączenie optymalizacji baterii dla Tracker OsmAnd.
|
<string name="battery_optimization_description">Wyłącz optymalizację baterii dla OsmAnd Tracker, aby nie została nagle wyłączona, gdy znajduje się w tle.</string>
|
||||||
\n
|
|
||||||
\nJeśli włączona jest optymalizacja, system może automatycznie wyłączyć aplikację działającą w tle (gdy ekran jest zablokowany i/lub aplikacja jest zminimalizowana). Dzieje się tak bez powiadomienia i powoduje zatrzymanie położenia geograficznego.</string>
|
|
||||||
<string name="sharing_in_background">Udostępnianie w tle</string>
|
<string name="sharing_in_background">Udostępnianie w tle</string>
|
||||||
<string name="go_to_settings">Przejdź do ustawień</string>
|
<string name="go_to_settings">Przejdź do ustawień</string>
|
||||||
<string name="shared_string_later">Później</string>
|
<string name="shared_string_later">Później</string>
|
||||||
|
@ -46,7 +44,7 @@
|
||||||
<string name="connected_account">Połączone konta</string>
|
<string name="connected_account">Połączone konta</string>
|
||||||
<string name="shared_string_account">Konto</string>
|
<string name="shared_string_account">Konto</string>
|
||||||
<string name="in_time">w %1$s</string>
|
<string name="in_time">w %1$s</string>
|
||||||
<string name="osmand_connect_desc">Wybierz wersję OsmAnd, którą Tracker OsmAnd będzie używał do wyświetlaniu pozycji.</string>
|
<string name="osmand_connect_desc">Wybierz wersję OsmAnd, której używa OsmAnd Tracker do wyświetlania pozycji.</string>
|
||||||
<string name="osmand_connect">Połącz OsmAnd</string>
|
<string name="osmand_connect">Połącz OsmAnd</string>
|
||||||
<string name="location_history_desc">Ukryj kontakty, które nie zostały przeniesione w określonym czasie.</string>
|
<string name="location_history_desc">Ukryj kontakty, które nie zostały przeniesione w określonym czasie.</string>
|
||||||
<string name="location_history">Historia lokalizacji</string>
|
<string name="location_history">Historia lokalizacji</string>
|
||||||
|
@ -236,4 +234,12 @@
|
||||||
<string name="proxy">Serwer proxy</string>
|
<string name="proxy">Serwer proxy</string>
|
||||||
<string name="privacy">Prywatność</string>
|
<string name="privacy">Prywatność</string>
|
||||||
<string name="bearing">Kierunek</string>
|
<string name="bearing">Kierunek</string>
|
||||||
|
<string name="shared_string_select">Wybierz</string>
|
||||||
|
<string name="min_logging_distance">Minimalna odległość rejestrowania</string>
|
||||||
|
<string name="min_logging_distance_descr">Filtr: minimalna odległość do zarejestrowania nowego punktu</string>
|
||||||
|
<string name="min_logging_accuracy">Minimalna dokładność rejestrowania</string>
|
||||||
|
<string name="min_logging_accuracy_descr">Filtr: brak rejestrowania, chyba że zostanie osiągnięta dokładność</string>
|
||||||
|
<string name="min_logging_speed">Minimalna szybkość rejestrowania</string>
|
||||||
|
<string name="min_logging_speed_descr">Filtr: brak rejestrowania poniżej wybranej prędkości</string>
|
||||||
|
<string name="gpx_settings">Ustawienia GPX</string>
|
||||||
</resources>
|
</resources>
|
|
@ -27,7 +27,7 @@
|
||||||
<string name="connecting_to_the_internet">Conectando-se à Internet</string>
|
<string name="connecting_to_the_internet">Conectando-se à Internet</string>
|
||||||
<string name="background_work_description">Altere as configurações de otimização da bateria para estabilizar o compartilhamento de local.</string>
|
<string name="background_work_description">Altere as configurações de otimização da bateria para estabilizar o compartilhamento de local.</string>
|
||||||
<string name="background_work">"Funcionamento em segundo plano "</string>
|
<string name="background_work">"Funcionamento em segundo plano "</string>
|
||||||
<string name="battery_optimization_description">Desative a otimização da bateria do OsmAnd Tracker para que não seja desligado repentinamente quando estiver em segundo plano.</string>
|
<string name="battery_optimization_description">Desative a otimização da bateria do OsmAnd Tracker para que ele não seja desligado repentinamente quando estiver em segundo plano.</string>
|
||||||
<string name="sharing_in_background">Compartilhando em segundo plano</string>
|
<string name="sharing_in_background">Compartilhando em segundo plano</string>
|
||||||
<string name="go_to_settings">Vá para as configurações</string>
|
<string name="go_to_settings">Vá para as configurações</string>
|
||||||
<string name="shared_string_later">Mais tarde</string>
|
<string name="shared_string_later">Mais tarde</string>
|
||||||
|
@ -45,7 +45,7 @@
|
||||||
<string name="add_device">Adicionar dispositivo</string>
|
<string name="add_device">Adicionar dispositivo</string>
|
||||||
<string name="share_location_as">Compartilhar localização como</string>
|
<string name="share_location_as">Compartilhar localização como</string>
|
||||||
<string name="live_now_description">Contatos e grupos compartilhando o local para você.</string>
|
<string name="live_now_description">Contatos e grupos compartilhando o local para você.</string>
|
||||||
<string name="logout_from_osmand_telegram_descr">Tem certeza de que deseja sair do OsmAnd Tracker para que você não possa compartilhar a localização ou ver a localização de outras pessoas\?</string>
|
<string name="logout_from_osmand_telegram_descr">Tem certeza de que deseja sair do OsmAnd Tracker para que você não possa compartilhar o local ou ver a localização de outras pessoas\?</string>
|
||||||
<string name="logout_from_osmand_telegram">Sair do OsmAnd Tracker\?</string>
|
<string name="logout_from_osmand_telegram">Sair do OsmAnd Tracker\?</string>
|
||||||
<string name="shared_string_name">Nome</string>
|
<string name="shared_string_name">Nome</string>
|
||||||
<string name="by_distance">Pela distância</string>
|
<string name="by_distance">Pela distância</string>
|
||||||
|
@ -234,4 +234,12 @@
|
||||||
<string name="proxy_settings">Configurações de proxy</string>
|
<string name="proxy_settings">Configurações de proxy</string>
|
||||||
<string name="proxy">Proxy</string>
|
<string name="proxy">Proxy</string>
|
||||||
<string name="privacy">Privacidade</string>
|
<string name="privacy">Privacidade</string>
|
||||||
|
<string name="shared_string_select">Selecionar</string>
|
||||||
|
<string name="min_logging_distance">Distância mínima de registro</string>
|
||||||
|
<string name="min_logging_distance_descr">Filtro: distância mínima para registrar um novo ponto</string>
|
||||||
|
<string name="min_logging_accuracy">Precisão mínima de registro</string>
|
||||||
|
<string name="min_logging_accuracy_descr">Filtro: sem registro, a menos que a precisão seja atingida</string>
|
||||||
|
<string name="min_logging_speed">Velocidade mínima de registro</string>
|
||||||
|
<string name="min_logging_speed_descr">Filtro: sem registro abaixo da velocidade selecionada</string>
|
||||||
|
<string name="gpx_settings">Configurações de GPX</string>
|
||||||
</resources>
|
</resources>
|
|
@ -192,7 +192,7 @@
|
||||||
<string name="foot">фут</string>
|
<string name="foot">фут</string>
|
||||||
<string name="km">км</string>
|
<string name="km">км</string>
|
||||||
<string name="m">м</string>
|
<string name="m">м</string>
|
||||||
<string name="nm">nmi</string>
|
<string name="nm">мор. мл</string>
|
||||||
<string name="min_mile">мин/м</string>
|
<string name="min_mile">мин/м</string>
|
||||||
<string name="min_km">мин/км</string>
|
<string name="min_km">мин/км</string>
|
||||||
<string name="nm_h">nmi/ч</string>
|
<string name="nm_h">nmi/ч</string>
|
||||||
|
|
|
@ -135,16 +135,16 @@
|
||||||
<string name="km_h">km/h</string>
|
<string name="km_h">km/h</string>
|
||||||
<string name="mile_per_hour">mph</string>
|
<string name="mile_per_hour">mph</string>
|
||||||
<string name="si_kmh">Chilòmetros a s\'ora</string>
|
<string name="si_kmh">Chilòmetros a s\'ora</string>
|
||||||
<string name="si_mph">Mìglios a s\'ora</string>
|
<string name="si_mph">Mìllias a s\'ora</string>
|
||||||
<string name="si_m_s">Metros a su segundu</string>
|
<string name="si_m_s">Metros a su segundu</string>
|
||||||
<string name="si_min_km">Minutos a su chilòmetru</string>
|
<string name="si_min_km">Minutos a su chilòmetru</string>
|
||||||
<string name="si_min_m">Minutos a su mìgliu</string>
|
<string name="si_min_m">Minutos a su mìlliu</string>
|
||||||
<string name="si_nm_h">Mìglios nàuticos a s\'ora (knot)</string>
|
<string name="si_nm_h">Mìglios nàuticos a s\'ora (knot)</string>
|
||||||
<string name="si_mi_feet">Mìglios/pedes</string>
|
<string name="si_mi_feet">Mìllias/pedes</string>
|
||||||
<string name="si_mi_yard">Mìglios/iardas</string>
|
<string name="si_mi_yard">Mìllias/iardas</string>
|
||||||
<string name="si_km_m">Chilòmetros/metros</string>
|
<string name="si_km_m">Chilòmetros/metros</string>
|
||||||
<string name="si_nm">Mìglios nàuticos</string>
|
<string name="si_nm">Mìllias nàuticas</string>
|
||||||
<string name="si_mi_meters">Mìglios/metros</string>
|
<string name="si_mi_meters">Mìllias/metros</string>
|
||||||
<string name="shared_string_hour_short">h</string>
|
<string name="shared_string_hour_short">h</string>
|
||||||
<string name="shared_string_minute_short">min</string>
|
<string name="shared_string_minute_short">min</string>
|
||||||
<string name="shared_string_second_short">seg</string>
|
<string name="shared_string_second_short">seg</string>
|
||||||
|
@ -233,4 +233,12 @@
|
||||||
<string name="proxy">Servidore intermediàriu (proxy)</string>
|
<string name="proxy">Servidore intermediàriu (proxy)</string>
|
||||||
<string name="privacy">Privadesa</string>
|
<string name="privacy">Privadesa</string>
|
||||||
<string name="bearing">Andamentu</string>
|
<string name="bearing">Andamentu</string>
|
||||||
|
<string name="shared_string_select">Seletziona</string>
|
||||||
|
<string name="min_logging_distance">Distàntzia mìnima de registratzione</string>
|
||||||
|
<string name="min_logging_distance_descr">FIltru: distàntzia mìnima pro registrare unu puntu nou</string>
|
||||||
|
<string name="min_logging_accuracy">Pretzisione mìnima de registratzione</string>
|
||||||
|
<string name="min_logging_accuracy_descr">Filtru: peruna registratzione si sa pretzisione no est istada retzida</string>
|
||||||
|
<string name="min_logging_speed">Lestresa mìnima de registratzione</string>
|
||||||
|
<string name="min_logging_speed_descr">Filtru: peruna registratzione in suta de sa lestresa isseberada</string>
|
||||||
|
<string name="gpx_settings">Impostatziones GPX</string>
|
||||||
</resources>
|
</resources>
|
|
@ -64,13 +64,13 @@
|
||||||
<string name="shared_string_group">群組</string>
|
<string name="shared_string_group">群組</string>
|
||||||
<string name="logout_no_internet_msg">連接到網路以正確登出 Telegram。</string>
|
<string name="logout_no_internet_msg">連接到網路以正確登出 Telegram。</string>
|
||||||
<string name="shared_string_close">關閉</string>
|
<string name="shared_string_close">關閉</string>
|
||||||
<string name="disconnect_from_telegram_desc">撤銷位置共用訪問。打開 Telegram,進入設定→隱私和安全→會話,並終 OsmAnd Tracker 會話。</string>
|
<string name="disconnect_from_telegram_desc">要撤銷位置分享的存取權。開啟 Telegram,然後到設定→安全與隱私→工作階段,然後將 OsmAnd Tracker 工作階段結束掉。</string>
|
||||||
<string name="disconnect_from_telegram">如何關閉 Telegram 中的 OsmAnd 追蹤器</string>
|
<string name="disconnect_from_telegram">如何關閉 Telegram 中的 OsmAnd 追蹤器</string>
|
||||||
<string name="logout_help_desc">如何關閉 Telegram 中的 OsmAnd 追蹤器</string>
|
<string name="logout_help_desc">如何關閉 Telegram 中的 OsmAnd 追蹤器</string>
|
||||||
<string name="connected_account">已連接帳戶</string>
|
<string name="connected_account">已連接帳戶</string>
|
||||||
<string name="shared_string_account">帳戶</string>
|
<string name="shared_string_account">帳戶</string>
|
||||||
<string name="in_time">在 %1$s</string>
|
<string name="in_time">在 %1$s</string>
|
||||||
<string name="osmand_connect_desc">選擇 OsmAnd 和版本的 OsmAnd Tracker 用於顯示位置。</string>
|
<string name="osmand_connect_desc">選擇 OsmAnd 版本 OsmAnd Tracker 用於顯示位置。</string>
|
||||||
<string name="osmand_connect">OsMand 連接</string>
|
<string name="osmand_connect">OsMand 連接</string>
|
||||||
<string name="location_history_desc">隱藏在給定時間內未移動的連絡人。</string>
|
<string name="location_history_desc">隱藏在給定時間內未移動的連絡人。</string>
|
||||||
<string name="location_history">位置歷史記錄</string>
|
<string name="location_history">位置歷史記錄</string>
|
||||||
|
@ -111,7 +111,7 @@
|
||||||
<string name="my_location_search_hint">搜尋:群組或連絡人</string>
|
<string name="my_location_search_hint">搜尋:群組或連絡人</string>
|
||||||
<string name="start_location_sharing">共用位置</string>
|
<string name="start_location_sharing">共用位置</string>
|
||||||
<string name="show_on_map">在地圖上顯示</string>
|
<string name="show_on_map">在地圖上顯示</string>
|
||||||
<string name="app_name">OsmAnd Online GPS Tracker</string>
|
<string name="app_name">OsmAnd 線上 GPS 追蹤程式</string>
|
||||||
<string name="phone_number_title">電話號碼</string>
|
<string name="phone_number_title">電話號碼</string>
|
||||||
<string name="phone_number_descr">國際格式的電話號碼</string>
|
<string name="phone_number_descr">國際格式的電話號碼</string>
|
||||||
<string name="shared_string_password">密碼</string>
|
<string name="shared_string_password">密碼</string>
|
||||||
|
@ -134,11 +134,11 @@
|
||||||
<string name="gps_not_available">請在系統設置中打開“位置”</string>
|
<string name="gps_not_available">請在系統設置中打開“位置”</string>
|
||||||
<string name="location_service_no_gps_available">選擇一個位置提供商來共享您的位置。</string>
|
<string name="location_service_no_gps_available">選擇一個位置提供商來共享您的位置。</string>
|
||||||
<string name="osmand_service">背景模式</string>
|
<string name="osmand_service">背景模式</string>
|
||||||
<string name="osmand_service_descr">當螢幕關閉後,讓 OsmAnd 在背景運行。</string>
|
<string name="osmand_service_descr">當螢幕關閉後,讓 OsmAnd Tracker 在背景執行。</string>
|
||||||
<string name="shared_string_distance">距離</string>
|
<string name="shared_string_distance">距離</string>
|
||||||
<string name="share_location">共用位置</string>
|
<string name="share_location">共用位置</string>
|
||||||
<string name="sharing_location">共用位置</string>
|
<string name="sharing_location">共用位置</string>
|
||||||
<string name="process_service">OsmAnd Tracker 伺服器</string>
|
<string name="process_service">OsmAnd Tracker 服務</string>
|
||||||
<string name="osmand_logo">OsmAnd 圖示</string>
|
<string name="osmand_logo">OsmAnd 圖示</string>
|
||||||
<string name="install_osmand_dialog_message">您需要先安裝免費或付費版本的 OsmAnd</string>
|
<string name="install_osmand_dialog_message">您需要先安裝免費或付費版本的 OsmAnd</string>
|
||||||
<string name="install_osmand">安裝 OsMand</string>
|
<string name="install_osmand">安裝 OsMand</string>
|
||||||
|
@ -235,4 +235,12 @@
|
||||||
<string name="proxy_settings">代理伺服器設定</string>
|
<string name="proxy_settings">代理伺服器設定</string>
|
||||||
<string name="proxy">代理伺服器</string>
|
<string name="proxy">代理伺服器</string>
|
||||||
<string name="privacy">隱私</string>
|
<string name="privacy">隱私</string>
|
||||||
|
<string name="shared_string_select">選取</string>
|
||||||
|
<string name="min_logging_distance">最小記錄距離</string>
|
||||||
|
<string name="min_logging_distance_descr">過濾:記錄新點的最小距離</string>
|
||||||
|
<string name="min_logging_accuracy">最低記錄精度</string>
|
||||||
|
<string name="min_logging_accuracy_descr">過濾:除非達到一定的精度否則不記錄</string>
|
||||||
|
<string name="min_logging_speed">最小記錄速度</string>
|
||||||
|
<string name="min_logging_speed_descr">過濾:在選定的速度以下不記錄</string>
|
||||||
|
<string name="gpx_settings">GPX 設定</string>
|
||||||
</resources>
|
</resources>
|
|
@ -19,7 +19,7 @@ public class ContextMenuButtonsParams implements Parcelable {
|
||||||
|
|
||||||
private List<String> pointsIds = new ArrayList<>();
|
private List<String> pointsIds = new ArrayList<>();
|
||||||
|
|
||||||
public ContextMenuButtonsParams(AContextMenuButton leftButton, AContextMenuButton rightButton, String id, String appPackage, String layerId, boolean followOpenedPoint, long callbackId, List<String> pointsIds) {
|
public ContextMenuButtonsParams(AContextMenuButton leftButton, AContextMenuButton rightButton, String id, String appPackage, String layerId, long callbackId, List<String> pointsIds) {
|
||||||
this.leftButton = leftButton;
|
this.leftButton = leftButton;
|
||||||
this.rightButton = rightButton;
|
this.rightButton = rightButton;
|
||||||
this.id = id;
|
this.id = id;
|
||||||
|
|
|
@ -1173,7 +1173,7 @@ class OsmandAidlHelper(private val app: TelegramApplication) {
|
||||||
if (mIOsmAndAidlInterface != null) {
|
if (mIOsmAndAidlInterface != null) {
|
||||||
try {
|
try {
|
||||||
val leftButton = AContextMenuButton(buttonId, leftTextCaption, rightTextCaption, leftIconName, rightIconName, needColorizeIcon, enabled)
|
val leftButton = AContextMenuButton(buttonId, leftTextCaption, rightTextCaption, leftIconName, rightIconName, needColorizeIcon, enabled)
|
||||||
val params = ContextMenuButtonsParams(leftButton, null, paramsId, appPackage, MAP_LAYER_ID, true, osmandContextMenuCallbackId, mutableListOf())
|
val params = ContextMenuButtonsParams(leftButton, null, paramsId, appPackage, MAP_LAYER_ID, osmandContextMenuCallbackId, mutableListOf())
|
||||||
osmandContextMenuCallbackId = mIOsmAndAidlInterface!!.addContextMenuButtons(params, mIOsmAndAidlCallback)
|
osmandContextMenuCallbackId = mIOsmAndAidlInterface!!.addContextMenuButtons(params, mIOsmAndAidlCallback)
|
||||||
return osmandContextMenuCallbackId >= 0
|
return osmandContextMenuCallbackId >= 0
|
||||||
} catch (e: RemoteException) {
|
} catch (e: RemoteException) {
|
||||||
|
|
|
@ -866,6 +866,11 @@
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
</service>
|
</service>
|
||||||
|
|
||||||
|
<service
|
||||||
|
android:name="net.osmand.plus.download.DownloadService"
|
||||||
|
android:label="@string/process_downloading_service"
|
||||||
|
android:stopWithTask="false" />
|
||||||
|
|
||||||
<receiver android:name="net.osmand.plus.OnNavigationServiceAlarmReceiver" />
|
<receiver android:name="net.osmand.plus.OnNavigationServiceAlarmReceiver" />
|
||||||
<receiver android:name="net.osmand.plus.notifications.NotificationDismissReceiver" />
|
<receiver android:name="net.osmand.plus.notifications.NotificationDismissReceiver" />
|
||||||
|
|
||||||
|
|
|
@ -46,10 +46,10 @@ android {
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
minSdkVersion System.getenv("MIN_SDK_VERSION") ? System.getenv("MIN_SDK_VERSION").toInteger() : 14
|
minSdkVersion System.getenv("MIN_SDK_VERSION") ? System.getenv("MIN_SDK_VERSION").toInteger() : 14
|
||||||
targetSdkVersion 26
|
targetSdkVersion 26
|
||||||
versionCode 330
|
versionCode 340
|
||||||
versionCode System.getenv("APK_NUMBER_VERSION") ? System.getenv("APK_NUMBER_VERSION").toInteger() : versionCode
|
versionCode System.getenv("APK_NUMBER_VERSION") ? System.getenv("APK_NUMBER_VERSION").toInteger() : versionCode
|
||||||
multiDexEnabled true
|
multiDexEnabled true
|
||||||
versionName "3.3.0"
|
versionName "3.4.0"
|
||||||
versionName System.getenv("APK_VERSION")? System.getenv("APK_VERSION").toString(): versionName
|
versionName System.getenv("APK_VERSION")? System.getenv("APK_VERSION").toString(): versionName
|
||||||
versionName System.getenv("APK_VERSION_SUFFIX")? versionName + System.getenv("APK_VERSION_SUFFIX").toString(): versionName
|
versionName System.getenv("APK_VERSION_SUFFIX")? versionName + System.getenv("APK_VERSION_SUFFIX").toString(): versionName
|
||||||
}
|
}
|
||||||
|
@ -236,8 +236,8 @@ task validateTranslate {
|
||||||
if (line.contains("\$ s") || line.contains("\$ d") || line.contains("\$ f") ||
|
if (line.contains("\$ s") || line.contains("\$ d") || line.contains("\$ f") ||
|
||||||
line.contains(" \$s") || line.contains(" \$d") || line.contains(" \$f") ||
|
line.contains(" \$s") || line.contains(" \$d") || line.contains(" \$f") ||
|
||||||
line.contains("1\$ ") || line.contains("2\$ ") || line.contains("3\$ ") ||
|
line.contains("1\$ ") || line.contains("2\$ ") || line.contains("3\$ ") ||
|
||||||
(line.contains("% \$") || line.contains("% 1") ||
|
(line.contains("% \$") || line.contains("% 1") || line.contains("% 2") ||
|
||||||
line.contains("% 2") || line.contains("% 3"))) {
|
line.contains("% 3") || line.contains("% s"))) {
|
||||||
throw new GradleException("Incorrect translation " + it.getAbsolutePath() + " " + line);
|
throw new GradleException("Incorrect translation " + it.getAbsolutePath() + " " + line);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<item android:color="@color/active_buttons_and_links_text_disabled_dark" android:state_enabled="false" />
|
<item android:color="@color/active_buttons_and_links_text_disabled_dark" android:state_enabled="false" />
|
||||||
<item android:color="@color/active_buttons_and_links_dark" />
|
<item android:color="@color/active_color_primary_dark" />
|
||||||
</selector>
|
</selector>
|
|
@ -1,4 +1,4 @@
|
||||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<item android:color="@color/active_buttons_and_links_text_disabled_light" android:state_enabled="false" />
|
<item android:color="@color/active_buttons_and_links_text_disabled_light" android:state_enabled="false" />
|
||||||
<item android:color="@color/active_buttons_and_links_light" />
|
<item android:color="@color/active_color_primary_light" />
|
||||||
</selector>
|
</selector>
|
|
@ -1,5 +1,5 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<item android:color="@color/color_dialog_buttons_dark" android:state_checked="true"/>
|
<item android:color="@color/active_color_primary_dark" android:state_checked="true"/>
|
||||||
<item android:color="@color/ctx_menu_info_text_dark" android:state_checked="false"/>
|
<item android:color="@color/text_color_primary_dark" android:state_checked="false"/>
|
||||||
</selector>
|
</selector>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<item android:color="@color/dashboard_blue" android:state_checked="true"/>
|
<item android:color="@color/active_color_primary_light" android:state_checked="true"/>
|
||||||
<item android:color="@color/icon_color" android:state_checked="false"/>
|
<item android:color="@color/icon_color_default_light" android:state_checked="false"/>
|
||||||
</selector>
|
</selector>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<item android:color="@color/active_buttons_and_links_text_dark" android:state_pressed="true" />
|
<item android:color="@color/active_buttons_and_links_text_dark" android:state_pressed="true" />
|
||||||
<item android:color="@color/active_buttons_and_links_text_disabled_dark" android:state_enabled="false" />
|
<item android:color="@color/active_buttons_and_links_text_disabled_dark" android:state_enabled="false" />
|
||||||
<item android:color="@color/active_buttons_and_links_dark" />
|
<item android:color="@color/active_color_primary_dark" />
|
||||||
</selector>
|
</selector>
|
|
@ -1,5 +1,5 @@
|
||||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<item android:color="@color/active_buttons_and_links_text_light" android:state_pressed="true" />
|
<item android:color="@color/active_buttons_and_links_text_light" android:state_pressed="true" />
|
||||||
<item android:color="@color/active_buttons_and_links_text_disabled_light" android:state_enabled="false" />
|
<item android:color="@color/active_buttons_and_links_text_disabled_light" android:state_enabled="false" />
|
||||||
<item android:color="@color/active_buttons_and_links_light" />
|
<item android:color="@color/active_color_primary_light" />
|
||||||
</selector>
|
</selector>
|
Before Width: | Height: | Size: 412 B After Width: | Height: | Size: 424 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 551 B |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 439 B |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 445 B |
Before Width: | Height: | Size: 370 B After Width: | Height: | Size: 370 B |
Before Width: | Height: | Size: 504 B After Width: | Height: | Size: 522 B |
BIN
OsmAnd/res/drawable-hdpi/ic_action_monowheel.png
Normal file
After Width: | Height: | Size: 384 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 449 B |
BIN
OsmAnd/res/drawable-hdpi/ic_action_offroad.png
Normal file
After Width: | Height: | Size: 402 B |
Before Width: | Height: | Size: 503 B After Width: | Height: | Size: 503 B |
BIN
OsmAnd/res/drawable-hdpi/ic_action_personal_transporter.png
Normal file
After Width: | Height: | Size: 404 B |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 568 B |
BIN
OsmAnd/res/drawable-hdpi/ic_action_scooter.png
Normal file
After Width: | Height: | Size: 484 B |
Before Width: | Height: | Size: 465 B After Width: | Height: | Size: 385 B |
BIN
OsmAnd/res/drawable-hdpi/ic_action_skiing.png
Normal file
After Width: | Height: | Size: 550 B |
BIN
OsmAnd/res/drawable-hdpi/ic_action_social_instagram.png
Normal file
After Width: | Height: | Size: 664 B |
Before Width: | Height: | Size: 498 B After Width: | Height: | Size: 488 B |
Before Width: | Height: | Size: 521 B After Width: | Height: | Size: 521 B |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 558 B |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 401 B |
BIN
OsmAnd/res/drawable-hdpi/ic_action_ufo.png
Normal file
After Width: | Height: | Size: 626 B |
Before Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 412 B After Width: | Height: | Size: 425 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 553 B |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 443 B |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 446 B |
BIN
OsmAnd/res/drawable-hdpi/map_action_helicopter.png
Normal file
After Width: | Height: | Size: 373 B |
BIN
OsmAnd/res/drawable-hdpi/map_action_horse.png
Normal file
After Width: | Height: | Size: 525 B |
BIN
OsmAnd/res/drawable-hdpi/map_action_monowheel.png
Normal file
After Width: | Height: | Size: 384 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 452 B |
BIN
OsmAnd/res/drawable-hdpi/map_action_offroad.png
Normal file
After Width: | Height: | Size: 402 B |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 503 B |
BIN
OsmAnd/res/drawable-hdpi/map_action_personal_transporter.png
Normal file
After Width: | Height: | Size: 406 B |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 572 B |
BIN
OsmAnd/res/drawable-hdpi/map_action_scooter.png
Normal file
After Width: | Height: | Size: 484 B |
BIN
OsmAnd/res/drawable-hdpi/map_action_shuttle_bus.png
Normal file
After Width: | Height: | Size: 385 B |
BIN
OsmAnd/res/drawable-hdpi/map_action_skiing.png
Normal file
After Width: | Height: | Size: 550 B |
BIN
OsmAnd/res/drawable-hdpi/map_action_subway.png
Normal file
After Width: | Height: | Size: 490 B |
BIN
OsmAnd/res/drawable-hdpi/map_action_taxi.png
Normal file
After Width: | Height: | Size: 523 B |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 564 B |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 400 B |
BIN
OsmAnd/res/drawable-hdpi/map_action_ufo.png
Normal file
After Width: | Height: | Size: 635 B |
Before Width: | Height: | Size: 450 B After Width: | Height: | Size: 489 B |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 713 B |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 463 B |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 453 B |
BIN
OsmAnd/res/drawable-large-hdpi/map_action_helicopter.png
Normal file
After Width: | Height: | Size: 391 B |
BIN
OsmAnd/res/drawable-large-hdpi/map_action_horse.png
Normal file
After Width: | Height: | Size: 590 B |
BIN
OsmAnd/res/drawable-large-hdpi/map_action_monowheel.png
Normal file
After Width: | Height: | Size: 437 B |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 495 B |
BIN
OsmAnd/res/drawable-large-hdpi/map_action_offroad.png
Normal file
After Width: | Height: | Size: 437 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 568 B |
After Width: | Height: | Size: 469 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 637 B |
BIN
OsmAnd/res/drawable-large-hdpi/map_action_scooter.png
Normal file
After Width: | Height: | Size: 464 B |
BIN
OsmAnd/res/drawable-large-hdpi/map_action_shuttle_bus.png
Normal file
After Width: | Height: | Size: 388 B |
BIN
OsmAnd/res/drawable-large-hdpi/map_action_skiing.png
Normal file
After Width: | Height: | Size: 705 B |
BIN
OsmAnd/res/drawable-large-hdpi/map_action_subway.png
Normal file
After Width: | Height: | Size: 572 B |