Merge remote-tracking branch 'origin/master' into exp_imp_profile_with_features

This commit is contained in:
veliymolfar 2020-02-10 10:31:38 +02:00
commit 99a64eaa7b
98 changed files with 1545 additions and 690 deletions

View file

@ -1785,28 +1785,25 @@ public class GPXUtilities {
try {
XmlPullParser parser = PlatformUtil.newXMLPullParser();
parser.setInput(getUTF8Reader(f));
Track routeTrack = new Track();
TrkSegment routeTrackSegment = new TrkSegment();
routeTrack.segments.add(routeTrackSegment);
Stack<GPXExtensions> parserState = new Stack<>();
boolean extensionReadMode = false;
boolean parseExtension = false;
boolean endOfTrkSegment = false;
boolean routePointExtension = false;
parserState.push(res);
int tok;
while ((tok = parser.next()) != XmlPullParser.END_DOCUMENT) {
if (tok == XmlPullParser.START_TAG) {
GPXExtensions parse = parserState.peek();
String tag = parser.getName();
if (extensionReadMode && parse != null && !parseExtension) {
if (extensionReadMode && parse != null && !routePointExtension) {
switch (tag.toLowerCase()) {
case "routepointextension":
parseExtension = true;
Track track = new Track();
res.tracks.add(track);
GPXExtensions parent = parserState.size() > 1 ? parserState.get(parserState.size() - 2) : null;
if (parse instanceof WptPt && parent instanceof Route) {
track.getExtensionsToWrite().putAll(parent.getExtensionsToRead());
track.getExtensionsToWrite().putAll(parse.getExtensionsToRead());
routePointExtension = true;
if (parse instanceof WptPt) {
parse.getExtensionsToWrite().put("offset", routeTrackSegment.points.size() + "");
}
parserState.push(track);
break;
default:
@ -1829,6 +1826,12 @@ public class GPXUtilities {
}
} else if (parse != null && tag.equals("extensions")) {
extensionReadMode = true;
} else if (routePointExtension) {
if (tag.equals("rpt")) {
WptPt wptPt = parseWptAttributes(parser);
routeTrackSegment.points.add(wptPt);
parserState.push(wptPt);
}
} else {
if (parse instanceof GPXFile) {
if (tag.equals("gpx")) {
@ -1934,16 +1937,6 @@ public class GPXUtilities {
((Track) parse).segments.add(trkSeg);
parserState.push(trkSeg);
}
if (tag.equals("rpt")) {
endOfTrkSegment = false;
TrkSegment trkSeg = new TrkSegment();
((Track) parse).segments.add(trkSeg);
parserState.push(trkSeg);
WptPt wptPt = parseWptAttributes(parser);
parse = parserState.peek();
((TrkSegment) parse).points.add(wptPt);
parserState.push(wptPt);
}
} else if (parse instanceof TrkSegment) {
if (tag.equals("trkpt") || tag.equals("rpt")) {
WptPt wptPt = parseWptAttributes(parser);
@ -2012,8 +2005,6 @@ public class GPXUtilities {
} else if (tag.equals("time")) {
String text = readText(parser, "time");
((WptPt) parse).time = parseTime(text, format, formatMillis);
} else if (tag.toLowerCase().equals("subclass")) {
endOfTrkSegment = true;
}
}
}
@ -2023,9 +2014,7 @@ public class GPXUtilities {
String tag = parser.getName();
if (tag.toLowerCase().equals("routepointextension")) {
parseExtension = false;
Object pop = parserState.pop();
assert pop instanceof Track;
routePointExtension = false;
}
if (parse != null && tag.equals("extensions")) {
extensionReadMode = false;
@ -2067,25 +2056,16 @@ public class GPXUtilities {
} else if (tag.equals("rpt")) {
Object pop = parserState.pop();
assert pop instanceof WptPt;
if (endOfTrkSegment) {
Object popSegment = parserState.pop();
if (popSegment instanceof TrkSegment) {
List<TrkSegment> segments = res.tracks.get(res.tracks.size() - 1).segments;
int last = segments.size() - 1;
if (!Algorithms.isEmpty(segments) && segments.get(last).points.size() < 2) {
segments.remove(last);
}
}
endOfTrkSegment = false;
}
}
}
if (!routeTrackSegment.points.isEmpty()) {
res.tracks.add(routeTrack);
}
} catch (Exception e) {
res.error = e;
log.error("Error reading gpx", e); //$NON-NLS-1$
}
return res;
}

View file

@ -200,19 +200,20 @@ public class LocationConvert {
private static String formatDegrees(double coordinate, int outputType, StringBuilder sb) {
if (outputType == FORMAT_DEGREES) {
sb.append(new DecimalFormat("##0.0000", new DecimalFormatSymbols(Locale.US)).format(coordinate));
sb.append(new DecimalFormat("##0.00000", new DecimalFormatSymbols(Locale.US)).format(coordinate));
sb.append(DELIMITER_DEGREES);
} else if (outputType == FORMAT_MINUTES) {
coordinate = formatCoordinate(coordinate, sb, DELIMITER_DEGREES);
sb.append(DELIMITER_SPACE);
sb.append(new DecimalFormat("##0.00", new DecimalFormatSymbols(Locale.US)).format(coordinate));
sb.append(new DecimalFormat("00.000", new DecimalFormatSymbols(Locale.US)).format(coordinate));
sb.append(DELIMITER_MINUTES);
} else if (outputType == FORMAT_SECONDS) {
coordinate = formatCoordinate(coordinate, sb, DELIMITER_DEGREES);
sb.append(DELIMITER_SPACE);
coordinate = formatCoordinate(coordinate, sb, DELIMITER_MINUTES);
sb.append(DELIMITER_SPACE);
formatCoordinate(coordinate, sb, DELIMITER_SECONDS);
sb.append(new DecimalFormat("00.0", new DecimalFormatSymbols(Locale.US)).format(coordinate));
sb.append(DELIMITER_SECONDS);
}
return sb.toString();
}

View file

@ -29,6 +29,7 @@ import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
@ -54,6 +55,8 @@ public class OsmandRegions {
private BinaryMapIndexReader reader;
private String locale = "en";
// locale including region
private String locale2 = null;
private static final org.apache.commons.logging.Log LOG = PlatformUtil.getLog(OsmandRegions.class);
WorldRegion worldRegion = new WorldRegion(WorldRegion.WORLD);
@ -73,6 +76,7 @@ public class OsmandRegions {
Integer nameEnType = null;
Integer nameType = null;
Integer nameLocaleType = null;
Integer nameLocale2Type = null;
Integer langType = null;
Integer metricType = null;
Integer leftHandDrivingType = null;
@ -374,7 +378,19 @@ public class OsmandRegions {
}
public void setLocale(String locale) {
setLocale(locale, null);
}
public void setLocale(String locale, String country) {
this.locale = locale;
// Check locale and give 2 locale names
if("zh".equals(locale)) {
if("TW".equalsIgnoreCase(country)) {
this.locale2 = "zh-hant";
} else {
this.locale2 = "zh-hans";
}
}
}
@ -427,7 +443,12 @@ public class OsmandRegions {
parentRelations.put(rd.regionFullName, rd.regionParentFullName);
}
rd.regionName = mapIndexFields.get(mapIndexFields.nameType, object);
if(mapIndexFields.nameLocale2Type != null) {
rd.regionNameLocale = mapIndexFields.get(mapIndexFields.nameLocale2Type, object);
}
if (rd.regionNameLocale == null) {
rd.regionNameLocale = mapIndexFields.get(mapIndexFields.nameLocaleType, object);
}
rd.regionNameEn = mapIndexFields.get(mapIndexFields.nameEnType, object);
rd.params.regionLang = mapIndexFields.get(mapIndexFields.langType, object);
rd.params.regionLeftHandDriving = mapIndexFields.get(mapIndexFields.leftHandDrivingType, object);
@ -543,6 +564,9 @@ public class OsmandRegions {
mapIndexFields.nameType = object.getMapIndex().getRule(FIELD_NAME, null);
mapIndexFields.nameEnType = object.getMapIndex().getRule(FIELD_NAME_EN, null);
mapIndexFields.nameLocaleType = object.getMapIndex().getRule(FIELD_NAME + ":" + locale, null);
if(locale2 != null) {
mapIndexFields.nameLocale2Type = object.getMapIndex().getRule(FIELD_NAME + ":" + locale2, null);
}
mapIndexFields.parentFullName = object.getMapIndex().getRule(FIELD_REGION_PARENT_NAME, null);
mapIndexFields.fullNameType = object.getMapIndex().getRule(FIELD_REGION_FULL_NAME, null);
mapIndexFields.langType = object.getMapIndex().getRule(FIELD_LANG, null);
@ -565,9 +589,15 @@ public class OsmandRegions {
String nm = b.getNameByType(or.mapIndexFields.nameEnType);
if (nm == null) {
nm = b.getName();
System.out.println(or.getLocaleName(or.getDownloadName(b), false));
}
if (or.isDownloadOfType(b, MAP_TYPE)) {
found.add(nm.toLowerCase());
String localName = b.getNameByType(or.mapIndexFields.nameLocaleType);
if(or.mapIndexFields.nameLocale2Type != null) {
localName = b.getNameByType(or.mapIndexFields.nameLocale2Type);
}
System.out.println(String.format("Region %s %s", b.getName(), localName));
}
}
@ -580,6 +610,8 @@ public class OsmandRegions {
public static void main(String[] args) throws IOException {
OsmandRegions or = new OsmandRegions();
Locale tw = Locale.CHINA;
or.setLocale(tw.getLanguage(), tw.getCountry());
or.prepareFile("/Users/victorshcherb/osmand/repos/resources/countries-info/regions.ocbf");
LinkedList<WorldRegion> lst = new LinkedList<WorldRegion>();
lst.add(or.getWorldRegion());
@ -598,14 +630,14 @@ public class OsmandRegions {
// or.cacheAllCountries();
// System.out.println("Init " + (System.currentTimeMillis() - t));
//testCountry(or, 15.8, 23.09, "chad");
testCountry(or, 52.10, 4.92, "the netherlands", "utrecht");
testCountry(or, 52.15, 7.50, "north rhine-westphalia");
testCountry(or, 28.8056, 29.9858, "egypt");
testCountry(or, 53.8820, 27.5726, "belarus", "minsk");
// testCountry(or, 52.10, 4.92, "the netherlands", "utrecht");
// testCountry(or, 52.15, 7.50, "north rhine-westphalia");
// testCountry(or, 28.8056, 29.9858, "egypt");
// testCountry(or, 40.0760, 9.2807, "italy", "sardinia");
testCountry(or, 35.7521, 139.7887, "japan");
testCountry(or, 46.5145, 102.2580, "mongolia");
testCountry(or, 62.54, 43.36, "arkhangelsk oblast", "northwestern federal district");
// testCountry(or, 35.7521, 139.7887, "japan");
// testCountry(or, 46.5145, 102.2580, "mongolia");
// testCountry(or, 62.54, 43.36, "arkhangelsk oblast", "northwestern federal district");
}

View file

@ -26,7 +26,7 @@ public abstract class MapRenderingTypes {
private static final Log log = PlatformUtil.getLog(MapRenderingTypes.class);
public static final String[] langs = new String[] { "af", "als", "ar", "az", "be", "bg", "bn", "bpy", "br", "bs", "ca", "ceb", "cs", "cy", "da", "de", "el", "eo", "es", "et", "eu", "fa", "fi", "fr", "fy", "ga", "gl", "he", "hi", "hsb",
"hr", "ht", "hu", "hy", "id", "is", "it", "ja", "ka", "ko", "ku", "la", "lb", "lo", "lt", "lv", "mk", "ml", "mr", "ms", "nds", "new", "nl", "nn", "no", "nv", "os", "pl", "pms", "pt", "ro", "ru", "sc", "sh", "sk", "sl", "sq", "sr", "sv", "sw", "ta", "te", "th", "tl", "tr", "uk", "vi", "vo", "zh" };
"hr", "ht", "hu", "hy", "id", "is", "it", "ja", "ka", "ko", "ku", "la", "lb", "lo", "lt", "lv", "mk", "ml", "mr", "ms", "nds", "new", "nl", "nn", "no", "nv", "os", "pl", "pms", "pt", "ro", "ru", "sc", "sh", "sk", "sl", "sq", "sr", "sv", "sw", "ta", "te", "th", "tl", "tr", "uk", "vi", "vo", "zh", "zh-hans", "zh-hant", };
public final static byte RESTRICTION_NO_RIGHT_TURN = 1;

View file

@ -463,7 +463,7 @@ public class RoutePlannerFrontEnd {
ctx.routingTime = ctx.calculationProgress.routingCalculatedTime;
ctx.visitedSegments = ctx.calculationProgress.visitedSegments;
ctx.loadedTiles = ctx.calculationProgress.loadedTiles;
return new RouteResultPreparation().prepareResult(ctx, result);
return new RouteResultPreparation().prepareResult(ctx, result, recalculationEnd != null);
}

View file

@ -49,7 +49,7 @@ public class RouteResultPreparation {
*/
List<RouteSegmentResult> prepareResult(RoutingContext ctx, FinalRouteSegment finalSegment) throws IOException {
List<RouteSegmentResult> result = convertFinalSegmentToResults(ctx, finalSegment);
prepareResult(ctx, result);
prepareResult(ctx, result, false);
return result;
}
@ -164,13 +164,13 @@ public class RouteResultPreparation {
return intersections % 2 == 1;
}
List<RouteSegmentResult> prepareResult(RoutingContext ctx, List<RouteSegmentResult> result) throws IOException {
List<RouteSegmentResult> prepareResult(RoutingContext ctx, List<RouteSegmentResult> result, boolean recalculation) throws IOException {
for(int i = 0; i < result.size(); i++) {
checkAndInitRouteRegion(ctx, result.get(i).getObject());
}
combineWayPointsForAreaRouting(ctx, result);
validateAllPointsConnected(result);
splitRoadsAndAttachRoadSegments(ctx, result);
splitRoadsAndAttachRoadSegments(ctx, result, recalculation);
calculateTimeSpeed(ctx, result);
for (int i = 0; i < result.size(); i ++) {
@ -298,7 +298,7 @@ public class RouteResultPreparation {
}
}
private void splitRoadsAndAttachRoadSegments(RoutingContext ctx, List<RouteSegmentResult> result) throws IOException {
private void splitRoadsAndAttachRoadSegments(RoutingContext ctx, List<RouteSegmentResult> result, boolean recalculation) throws IOException {
for (int i = 0; i < result.size(); i++) {
if (ctx.checkIfMemoryLimitCritical(ctx.config.memoryLimitation)) {
ctx.unloadUnusedTiles(ctx.config.memoryLimitation);
@ -309,10 +309,10 @@ public class RouteResultPreparation {
for (int j = rr.getStartPointIndex(); j != rr.getEndPointIndex(); j = next) {
next = plus ? j + 1 : j - 1;
if (j == rr.getStartPointIndex()) {
attachRoadSegments(ctx, result, i, j, plus);
attachRoadSegments(ctx, result, i, j, plus, recalculation);
}
if (next != rr.getEndPointIndex()) {
attachRoadSegments(ctx, result, i, next, plus);
attachRoadSegments(ctx, result, i, next, plus, recalculation);
}
List<RouteSegmentResult> attachedRoutes = rr.getAttachedRoutes(next);
boolean tryToSplit = next != rr.getEndPointIndex() && !rr.getObject().roundabout() && attachedRoutes != null;
@ -1256,7 +1256,7 @@ public class RouteResultPreparation {
if (turn == TurnType.TU || sturn == TurnType.TU || tturn == TurnType.TU) {
possiblyLeftTurn = true;
}
if (turn == TurnType.TRU || sturn == TurnType.TRU || sturn == TurnType.TRU) {
if (turn == TurnType.TRU || sturn == TurnType.TRU || tturn == TurnType.TRU) {
possiblyRightTurn = true;
}
}
@ -1694,7 +1694,7 @@ public class RouteResultPreparation {
}
private void attachRoadSegments(RoutingContext ctx, List<RouteSegmentResult> result, int routeInd, int pointInd, boolean plus) throws IOException {
private void attachRoadSegments(RoutingContext ctx, List<RouteSegmentResult> result, int routeInd, int pointInd, boolean plus, boolean recalculation) throws IOException {
RouteSegmentResult rr = result.get(routeInd);
RouteDataObject road = rr.getObject();
long nextL = pointInd < road.getPointsLength() - 1 ? getPoint(road, pointInd + 1) : 0;
@ -1739,11 +1739,12 @@ public class RouteResultPreparation {
public void remove() {
}
};
} else if (recalculation) {
RouteSegment rt = ctx.loadRouteSegment(road.getPoint31XTile(pointInd), road.getPoint31YTile(pointInd), ctx.config.memoryLimitation);
it = rt == null ? null : rt.getIterator();
} else {
// Here we assume that all segments should be attached by native
it = null;
// RouteSegment rt = ctx.loadRouteSegment(road.getPoint31XTile(pointInd), road.getPoint31YTile(pointInd), ctx.config.memoryLimitation);
// it = rt == null ? null : rt.getIterator();
}
// try to attach all segments except with current id
while (it != null && it.hasNext()) {

View file

@ -362,24 +362,27 @@ public class RouteStatisticsHelper {
RenderingRulesStorage rrs, RenderingRuleSearchRequest req, RouteSegmentWithIncline segment,
int slopeClass) {
//String additional = attrName + "=" + attribute;
boolean mainTagAdded = false;
StringBuilder additional = new StringBuilder(slopeClass >= 0 ? (BOUNDARIES_CLASS[slopeClass] + ";") : "");
RouteDataObject obj = segment.obj;
int[] tps = obj.getTypes();
String additional = slopeClass >= 0 ? (BOUNDARIES_CLASS[slopeClass] + ";") : "";
for (int k = 0; k < tps.length; k++) {
BinaryMapRouteReaderAdapter.RouteTypeRule tp = obj.region.quickGetEncodingRule(tps[k]);
for (int type : obj.getTypes()) {
BinaryMapRouteReaderAdapter.RouteTypeRule tp = obj.region.quickGetEncodingRule(type);
if (tp.getTag().equals("highway") || tp.getTag().equals("route") ||
tp.getTag().equals("railway") || tp.getTag().equals("aeroway") || tp.getTag().equals("aerialway")) {
if (!mainTagAdded) {
req.setStringFilter(rrs.PROPS.R_TAG, tp.getTag());
req.setStringFilter(rrs.PROPS.R_VALUE, tp.getValue());
mainTagAdded = true;
}
} else {
additional += tp.getTag() + "=" + tp.getValue() + ";";
additional.append(tp.getTag()).append("=").append(tp.getValue()).append(";");
}
}
req.setStringFilter(rrs.PROPS.R_ADDITIONAL, additional);
req.setStringFilter(rrs.PROPS.R_ADDITIONAL, additional.toString());
return req.searchRenderingAttribute(attribute);
}
}
}
}
public static class RouteSegmentAttribute {
private final int color;

View file

@ -6,13 +6,10 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;
import org.apache.commons.logging.Log;
@ -21,7 +18,6 @@ import gnu.trove.iterator.TIntObjectIterator;
import gnu.trove.iterator.TLongIterator;
import gnu.trove.map.TLongObjectMap;
import gnu.trove.map.hash.TLongObjectHashMap;
import gnu.trove.set.TLongSet;
import gnu.trove.set.hash.TLongHashSet;
import net.osmand.NativeLibrary;
import net.osmand.NativeLibrary.NativeRouteSearchResult;
@ -36,7 +32,6 @@ import net.osmand.router.BinaryRoutePlanner.FinalRouteSegment;
import net.osmand.router.BinaryRoutePlanner.RouteSegment;
import net.osmand.router.BinaryRoutePlanner.RouteSegmentVisitor;
import net.osmand.router.RoutePlannerFrontEnd.RouteCalculationMode;
import net.osmand.util.Algorithms;
public class RoutingContext {
@ -45,9 +40,6 @@ public class RoutingContext {
private final static Log log = PlatformUtil.getLog(RoutingContext.class);
public static final int OPTION_NO_LOAD = 0;
public static final int OPTION_SMART_LOAD = 1;
public static final int OPTION_IN_MEMORY_LOAD = 2;
@ -272,8 +264,9 @@ public class RoutingContext {
public RouteSegment loadRouteSegment(int x31, int y31, int memoryLimit) {
long tileId = getRoutingTile(x31, y31, memoryLimit, OPTION_SMART_LOAD);
long tileId = getRoutingTile(x31, y31, memoryLimit);
TLongObjectHashMap<RouteDataObject> excludeDuplications = new TLongObjectHashMap<RouteDataObject>();
RouteSegment original = null;
List<RoutingSubregionTile> subregions = indexedSubregions.get(tileId);
@ -438,7 +431,7 @@ public class RoutingContext {
long now = System.nanoTime();
for(int i = -t; i <= t; i++) {
for(int j = -t; j <= t; j++) {
ts.add(getRoutingTile(x31 +i*coordinatesShift, y31 + j*coordinatesShift, 0, OPTION_IN_MEMORY_LOAD));
ts.add(getRoutingTile(x31 +i*coordinatesShift, y31 + j*coordinatesShift, 0));
}
}
TLongIterator it = ts.iterator();
@ -450,13 +443,12 @@ public class RoutingContext {
}
@SuppressWarnings("unused")
private long getRoutingTile(int x31, int y31, int memoryLimit, int loadOptions){
// long now = System.nanoTime();
private long getRoutingTile(int x31, int y31, int memoryLimit) {
// long now = System.nanoTime();
long xloc = x31 >> (31 - config.ZOOM_TO_LOAD_TILES);
long yloc = y31 >> (31 - config.ZOOM_TO_LOAD_TILES);
long tileId = (xloc << config.ZOOM_TO_LOAD_TILES) + yloc;
if (loadOptions != OPTION_NO_LOAD) {
if( memoryLimit == 0){
if (memoryLimit == 0) {
memoryLimit = config.memoryLimitation;
}
if (getCurrentEstimatedSize() > 0.9 * memoryLimit) {
@ -480,8 +472,8 @@ public class RoutingContext {
} else {
float mb = (1 << 20);
int sz2 = getCurrentEstimatedSize();
log.warn("Unload tiles : occupied before " + sz1 / mb + " Mb - now " + sz2 / mb + "MB " +
memoryLimit/mb + " limit MB " + config.memoryLimitation/mb);
log.warn("Unload tiles : occupied before " + sz1 / mb + " Mb - now " + sz2 / mb + "MB "
+ memoryLimit / mb + " limit MB " + config.memoryLimitation / mb);
long us2 = (Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory());
log.warn("Used memory before " + us1 / mb + "after " + us1 / mb + " of max " + maxMemory() / mb);
}
@ -502,16 +494,15 @@ public class RoutingContext {
TLongHashSet excludeIds = new TLongHashSet();
for (RoutingSubregionTile ts : subregions) {
if (!ts.isLoaded()) {
loadSubregionTile(ts, loadOptions == OPTION_IN_MEMORY_LOAD, null, excludeIds);
loadSubregionTile(ts, true, null, excludeIds);
} else {
if(ts.excludedIds != null) {
if (ts.excludedIds != null) {
excludeIds.addAll(ts.excludedIds);
}
}
}
}
}
}
// timeToLoad += (System.nanoTime() - now);
return tileId;
}

View file

@ -263,4 +263,9 @@
<string name="shared_string_suggested">Прапанавана</string>
<string name="status_widget_title">Статус OsmAnd Tracker</string>
<string name="back_to_osmand">Вярнуцца ў OsmAnd</string>
<string name="last_update_from_telegram_date">Апошняе абнаўленне з Telegram: %1$s</string>
<string name="last_response_date">Апошні адказ: %1$s</string>
<string name="last_update_from_telegram_duration">Апошняе абнаўленне з Telegram: %1$s таму</string>
<string name="last_response_duration">Апошні адказ: %1$s таму</string>
<string name="duration_ago">%1$s таму</string>
</resources>

View file

@ -104,7 +104,7 @@
<string name="last_available_location">Última ubicació disponible</string>
<string name="sharing_status">Estat de la compartició</string>
<string name="location_sharing_status">Compartició: %1$s</string>
<string name="shared_string_enabled">activada</string>
<string name="shared_string_enabled">Activat</string>
<string name="shared_string_status">Estat</string>
<string name="no_gps_connection">No hi ha connexió GPS</string>
<string name="no_internet_connection">No hi ha connexió a internet</string>
@ -214,9 +214,7 @@
<string name="nm_h">nusos</string>
<string name="mile_per_hour">mph</string>
<string name="shared_string_second_short">seg</string>
<string name="welcome_descr">
<b>OsmAnd Tracker</b> us permet compartir la vostra posició i veure la dels altres a OsmAnd.<br/>
<br/>L\'aplicació utilitza l\'API de Telegram, per tant us cal un compte de Telegram.</string>
<string name="welcome_descr"><b>OsmAnd Tracker</b> us permet compartir la vostra posició i veure la dels altres a OsmAnd.<br/> <br/>L\'aplicació utilitza l\'API de Telegram, per tant us cal un compte de Telegram.</string>
<string name="direction">Adreça</string>
<string name="precision">Precisió</string>
<string name="altitude">Altitud</string>
@ -263,4 +261,9 @@
<string name="shared_string_suggested">Suggeriment</string>
<string name="status_widget_title">Estat de l\'enregistrador d\'OsmAnd</string>
<string name="back_to_osmand">Torna a OsmAnd</string>
<string name="last_update_from_telegram_date">Darrera actualització des de Telegram: %1$s</string>
<string name="last_response_date">Darrera resposta: %1$s</string>
<string name="last_update_from_telegram_duration">Darrera actualització des de Telegram: fa %1$s</string>
<string name="last_response_duration">Darrera resposta: fa %1$s</string>
<string name="duration_ago">fa %1$s</string>
</resources>

View file

@ -172,7 +172,7 @@
<string name="closing">Schliesst</string>
<string name="gps_network_not_enabled">\"Standort\" einschalten\?</string>
<string name="live_now">Jetzt live</string>
<string name="last_update_from_telegram">Letztes Update von Telegram</string>
<string name="last_update_from_telegram">Letzte Aktualisierung von Telegram</string>
<string name="send_location_as">Senden Standort als</string>
<string name="send_location_as_descr">Wählen Sie, wie Nachrichten mit Ihrem Standort aussehen sollen.</string>
<string name="shared_string_map">Karte</string>
@ -263,4 +263,9 @@
<string name="shared_string_suggested">Empfohlen</string>
<string name="status_widget_title">OsmAnd Tracker-Status</string>
<string name="back_to_osmand">Zurück zu OsmAnd</string>
<string name="last_update_from_telegram_date">Letzte Aktualisierung von Telegram: %1$s</string>
<string name="last_response_date">Letzte Antwort: %1$s</string>
<string name="last_update_from_telegram_duration">Letzte Aktualisierung von Telegram: vor %1$s</string>
<string name="last_response_duration">Letzte Antwort: vor %1$s</string>
<string name="duration_ago">vor %1$s</string>
</resources>

View file

@ -43,4 +43,14 @@
<string name="shared_string_settings">Επιλογές</string>
<string name="shared_string_enabled">Ενεργοποιημένο</string>
<string name="units_and_formats">Μονάδες μέτρησης &amp; φορμά</string>
<string name="shared_string_exit">Έξοδος</string>
<string name="yard">γδ</string>
<string name="foot">πδ</string>
<string name="mile">μλ</string>
<string name="mile_per_hour">μαω</string>
<string name="si_mi_feet">Μίλια/πόδια</string>
<string name="si_mi_yard">Μίλια/γιάρδες</string>
<string name="si_km_m">Χιλιόμετρα/μέτρα</string>
<string name="unit_of_length_descr">Αλλαγή απόστασης που μετριέται.</string>
<string name="unit_of_length">Μονάδες μήκους</string>
</resources>

View file

@ -12,4 +12,5 @@
android:textColor="?android:textColorSecondary"
android:textSize="@dimen/default_desc_text_size"
android:linksClickable="true"
android:lineSpacingMultiplier="@dimen/bottom_sheet_text_spacing_multiplier"
tools:text="Some long description"/>

View file

@ -121,7 +121,7 @@
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:text="@string/update"
android:text="@string/shared_string_update"
android:textColor="?android:attr/textColorPrimary"
android:textSize="16sp"/>

View file

@ -16,7 +16,6 @@
android:id="@+id/MapViewWithLayers"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:keepScreenOn="true"
android:orientation="vertical">
<ViewStub

View file

@ -11,20 +11,18 @@
<LinearLayout
android:id="@+id/selectable_list_item"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/content_padding_half"
android:paddingBottom="@dimen/content_padding_half"
android:layout_height="match_parent"
android:orientation="horizontal"
tools:background="?android:attr/selectableItemBackground">
<ImageButton
<ImageView
android:id="@+id/action_icon"
style="@style/Widget.AppCompat.ActionButton"
android:layout_width="@dimen/standard_icon_size"
android:layout_height="@dimen/standard_icon_size"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="@dimen/content_padding"
android:layout_marginRight="@dimen/content_padding"
android:paddingLeft="@dimen/content_padding"
android:paddingRight="@dimen/content_padding"
android:minHeight="@dimen/bottom_sheet_list_item_height"
tools:src="@drawable/ic_action_remove"
tools:tint="@color/icon_color_default_light" />
@ -47,6 +45,8 @@
android:ellipsize="marquee"
android:paddingLeft="@dimen/content_padding"
android:paddingRight="@dimen/content_padding"
android:paddingTop="@dimen/content_padding_half"
android:paddingBottom="@dimen/content_padding_half"
android:singleLine="true"
android:textColor="?android:textColorPrimary"
android:textSize="@dimen/default_list_text_size"
@ -56,7 +56,7 @@
<ImageView
android:id="@+id/move_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center"
android:paddingLeft="@dimen/content_padding"
android:paddingRight="@dimen/content_padding"

View file

@ -2785,7 +2785,7 @@
<string name="touring_view_render_descr">أسلوب الملاحة مع التباين العالي والحد الأعلى من التفاصيل. يتضمن كل خيارات النمط الافتراضي OsmAnd ، مع عرض أكبر قدر ممكن من التفاصيل ، ولا سيما الطرق والمسارات وطرق السفر الأخرى. التمييز الواضح بين \"جولة الأطلس\" بين أنواع الطرق. مناسبة للاستخدام النهاري والليلي وفي الهواء الطلق.</string>
<string name="default_render_descr">أسلوب الغرض العام. تقديم نظافة مبسطة في المدن المكتظة بالسكان. الملامح الرئيسية: خطوط الكنتور ، والطرق ، وجودة السطح ، والقيود المفروضة على الوصول ، ودروع الطريق ، والمسارات التي تظهر وفقًا لمقياس SAC ، وميزات رياضة الماء الأبيض.</string>
<string name="travel_card_download_descr">قم بتنزيل أدلة السفر هذه من ويكي الرحلات لعرض مقالات حول الأماكن في العالم بدون إنترنت.</string>
<string name="welcome_to_open_beta_description">دليل السفر حاليا على أساس wikivoyage.اختبار كافة الميزات أثناء اختبار بيتا المفتوحة مجانا.بعد ذلك، وأدلة السفر ستكون متاحة للمشتركين في osmand محدود و اصحاب osmand +.</string>
<string name="welcome_to_open_beta_description">دليل السفر حاليا على أساس Wikivoyage. اختبار كافة الميزات أثناء اختبار بيتا المفتوحة مجانا.بعد ذلك، وأدلة السفر ستكون متاحة للمشتركين في osmand غير المحدود و اصحاب +osmand.</string>
<string name="av_locations_selected_desc">ملف GPX مع الإحداثيات والبيانات من الملاحظات المحددة.</string>
<string name="av_locations_all_desc">ملف GPX مع الإحداثيات والبيانات من كافة الملاحظات.</string>
<!--string name="release_3_0">• جديد: دعم للسفر دون اتصال عالمية وأدلة. وترتبط المواقع المشار إليها على الخريطة. الحصول على البيانات الأولية من ويكيفوياجي.
@ -3352,7 +3352,7 @@
<string name="osm_editing">تعديل OpenStreetMap</string>
<string name="app_mode_osm">OSM</string>
<string name="select_nav_icon_descr">سترى الأيقونة فقط أثناء الملاحة أو أثناء التحرك.</string>
<string name="button_rate">معدل</string>
<string name="button_rate">قيم</string>
<string name="select_map_icon_descr">تظهر أيقونة الخريطة فقط على الخريطة ، وتتغير أثناء التنقل إلى أيقونة التنقل.</string>
<string name="logcat_buffer_descr">تحقق وتبادل سجلات مفصلة من التطبيق</string>
<string name="search_offline_geo_error">تعذر تحليل الهدف الجغرافي \'%s\'.</string>
@ -3387,4 +3387,16 @@
<string name="multimedia_use_system_camera">استخدام تطبيق النظام</string>
<string name="multimedia_photo_play_sound">صوت الكاميرا</string>
<string name="osm_authorization_success">التفويض ناجح</string>
<string name="rearrange_categories">إعادة ترتيب الفئات</string>
<string name="create_custom_categories_list_promo">يمكنك إضافة فئات مخصصة للإخفاء التي لا تجدها ضرورية وتغيير ترتيب الفرز في القائمة. يمكن استيراد القائمة وتصديرها مع الملفات الشخصية.</string>
<string name="add_new_custom_category_button_promo">يمكنك إضافة فئة مخصصة جديدة عن طريق تحديد فئة أو بضع فئات مطلوبة.</string>
<string name="shared_string_available">متاح</string>
<string name="add_custom_category">إضافة فئة مخصصة</string>
<string name="rendering_attr_streetLightingNight_name">اظهر في الليل فقط</string>
<string name="plugin_prefs_reset_successful">استعادة جميع إعدادات البرنامج المساعد plugin إلى الحالة الافتراضية.</string>
<string name="profile_prefs_reset_successful">تمت استعادة جميع إعدادات الملف الشخصي إلى الحالة الافتراضية.</string>
<string name="ltr_or_rtl_combine_via_slash">%1$s/%2$s</string>
<string name="sunset_at">غروب الشمس على %1$s</string>
<string name="sunrise_at">شروق الشمس على %1$s</string>
<string name="accessibility_mode_disabled">تم تعطيل وضع إمكانية الوصول في النظام الخاص بك.</string>
</resources>

View file

@ -1601,7 +1601,7 @@
<string name="local_recordings_delete_all_confirm">Сапраўды хочаце выдаліць %1$d нататак\?</string>
<string name="shared_string_import2osmand">Імпартаваць у OsmAnd</string>
<string name="disable_recording_once_app_killed">Прадухіліць аўтаномны запіс</string>
<string name="disable_recording_once_app_killed_descrp">Запіс GPX прыпыніцца, калі дадатак будзе забіты (праз надаўнія праграмы). (Апавяшчэнне ў вобласці падказак Android пра фонавы рэжым OsmAnd знікне.)</string>
<string name="disable_recording_once_app_killed_descrp">Запіс GPX прыпыніцца, калі дадатак будзе забіты (праз надаўнія дадаткі). (Апавяшчэнне ў вобласці падказак Android пра фонавы рэжым OsmAnd знікне.)</string>
<string name="gps_network_not_enabled">Служба вызначэння месцазнаходжання выключаная. Уключыць яе\?</string>
<string name="archive_wikipedia_data">Даныя Вікіпедыі састарэлі і больш непрыдатныя. Заархіваваць іх\?</string>
<string name="download_wikipedia_files">Спампаваць дадатковыя даныя Вікіпедыі (%1$s МБ)\?</string>
@ -2292,7 +2292,7 @@
<string name="quick_action_add_first_intermediate_desc">Гэтай кнопкай можна зрабіць пункт у цэнтры экрана першым прамежкавым пунктам.</string>
<string name="no_overlay">Накладка адсутнічае</string>
<string name="no_underlay">Няма падкладкі</string>
<string name="subscribe_email_desc">Падпішыцеся на нашу паштовую рассылку аб зніжках на праграму і атрымайце 3 дадатковыя мапы!</string>
<string name="subscribe_email_desc">Падпішыцеся на нашу паштовую рассылку аб зніжках і атрымайце 3 дадатковыя мапы!</string>
<string name="depth_contour_descr">Контурныя лініі марскіх глыбінь і марскія знакі.</string>
<string name="sea_depth_thanks">Дзякуй за пакупку «Контураў марскіх глыбінь»</string>
<string name="index_item_depth_contours_osmand_ext">Контуры марскіх глыбінь</string>
@ -2407,7 +2407,7 @@
\n • Падтрымка прамежкавых пунктаў маршруту
\n • Запіс уласнага GPX-следу або спампоўванне гатовага
\n</string>
<string name="osmand_extended_description_part8">OsmAnd — адкрытае праграмнае забяспячэнне з актыўным развіццём. Кожны можа ўнесць свой уклад паведамляючы аб памылках, паляпшаючы пераклад ці распрацоўваючы навыя функцыі. Ход праекта таксама залежыць ад фінансавых унёскаў для забяспячэння працэса кадавання і тэставання новай функцыянальнасці.
<string name="osmand_extended_description_part8">OsmAnd — адкрытае праграмнае забяспячэнне з актыўным развіццём. Кожны можа ўнесці свой уклад паведамляючы аб памылках, паляпшаючы пераклад ці распрацоўваючы навыя функцыі. Ход праекта таксама залежыць ад фінансавых унёскаў для забяспячэння працэса кадавання і тэставання новай функцыянальнасці.
\n Прыблізнае ахапленне мап ды якасць:
\n • Заходняя Еўропа: ****
\n • Усходняя Еўропа: ***
@ -2419,11 +2419,11 @@
\n • Сярэдні Усход: **
\n • Афрыка: **
\n • Антарктыда:
\n Большасць краін свету даступныя да спампоўвання!
\n Атрымайце надзейны навігатар у вашай краіне — будзь то Беларусь, Францыя, Германія, Мексіка, Вялікабрытанія, Гіспанія, Нідэрланды, ЗША, Расія, Бразілія ці якая іншая.</string>
\n Большасць краін свету даступная да спампоўвання!
\n Атрымайце надзейны навігатар у вашай краіне — будзь то Беларусь, Францыя, Германія, Мексіка, Вялікабрытанія, Іспанія, Нідэрланды, ЗША, Расія, Бразілія ці якая іншая.</string>
<string name="osmand_plus_extended_description_part1">OsmAnd+ (OSM Automated Navigation Directions) — мапа і навігацыйны дадатак з доступам да бясплатных, сусветных і высокаякасных даных OpenStreetMap (OSM).
\n Атрымоўвайце асалоду ад галасавой і візуальная навігацыі, праглядайце пукты цікавасцяў (POI), запісвайце GPX-сляды, выкарыстоўвайце візуалізацыю контурных ліній ды даных вышыні, пераключайцеся паміж рэжымамі кіравання, яздой на ровары ды шпацырамі, рэдагуйце OSM-даныя і шмат іншага.
\n OsmAnd+ — платная версія праграмы. Пры набыцці, вы падтрымоўваеце праект, фінансуеце распрацоўку новых магчымасцяў ды атрымоўваце апошнія абнаўленні.
\n Атрымлівайце асалоду ад галасавой і візуальная навігацыі, праглядайце пукты цікавасцяў (POI), запісвайце GPX-сляды, выкарыстоўвайце візуалізацыю контурных ліній ды даных вышыні, пераключайцеся паміж рэжымамі кіравання, яздой на ровары ды шпацырамі, рэдагуйце OSM-даныя і шмат іншага.
\n OsmAnd+ — платная версія. Пры набыцці вы падтрымліваеце праект, фінансуеце распрацоўку новых магчымасцяў ды атрымліваеце апошнія абнаўленні.
\nНекаторыя з галоўных магчымасцяў:</string>
<string name="osmand_plus_extended_description_part3">Прагляд мапы
\n
@ -2481,7 +2481,7 @@
\n • Заявы аб памылках у даных
\n • Запампоўванне GPX-слядоў у OSM проста з дадатку
\n • Даданне пунктаў цікавасцяў (POI) і непасрэдная запампоўка іх у OSM (ці пазней, па-за сецівам)
\n • Магчымасць запісу падарожжа ў фонавым рэжыме (у той час, як прылада знаходзіцца ў спячым рэжыме)
\n • Магчымасць запісу падарожжа ў фонавым рэжыме (у той час, як прылада знаходзіцца ў рэжыме сну)
\n OsmAnd — адкрытае праграмнае забяспячэнне ў актыўнай распрацоўцы. Кожны можа ўнесці ўклад паведамляючы аб памылках, паляпшаючы пераклад ці распрацоўваючы новыя магчымасці. Ход праекта залежыць таксама ад фінансавых унёскаў для забяспячэння кадавання і тэставання новай функцыянальнасці.
\n</string>
<string name="shared_string_install">Усталяваць</string>
@ -2805,7 +2805,7 @@
<string name="wiki_article_search_text">Пошук адпаведнага артыкула вікіпедыі</string>
<string name="wiki_article_not_found">Артыкул не знойдзены</string>
<string name="how_to_open_wiki_title">Як адкрыць артыкулы Вікіпедыі?</string>
<string name="shared_string_restart">Перазапуск праграмы</string>
<string name="shared_string_restart">Перазапуск дадатку</string>
<string name="purchase_cancelled_dialog_title">Вы анулявалі падпіску OsmAnd Live</string>
<string name="purchase_cancelled_dialog_descr">Прадоўжыць падпіску, каб і далей карыстацца ўсімі функцыямі:</string>
<string name="maps_you_need_descr">На падставе закладзеных вамі артыкулаў рэкамендуецца спампаваць наступныя мапы:</string>

View file

@ -200,7 +200,7 @@
<string name="poi_antiques">Hendraour</string>
<string name="poi_volcano_type">Seurt</string>
<string name="poi_volcano_status">Statud</string>
<string name="poi_art">Palier arz</string>
<string name="poi_art">Stal dafaroù arz</string>
<string name="poi_baby_goods">Stal evit ar poupiged</string>
<string name="poi_bag">Marokinerezh</string>
<string name="poi_bathroom_furnishing">Stal evit ar salioù-dour</string>
@ -253,4 +253,20 @@
<string name="poi_newsagent">Stal-gazetennoù</string>
<string name="poi_optician">Stal-lunedoù</string>
<string name="poi_organic">Boued biologel</string>
<string name="poi_outdoor">Stal obererezhioù dindan an amzer</string>
<string name="poi_paint">Stal livadurioù</string>
<string name="poi_pet">Stal loened</string>
<string name="poi_photo">Stal luc\'hskeudenniñ</string>
<string name="poi_radiotechnics">Stal dafaroù elektronek</string>
<string name="poi_second_hand">Stal prenañ eil-dorn</string>
<string name="poi_scuba_diving_shop">Stal dafaroù splujañ er mor</string>
<string name="poi_ship_chandler">Stal sternajoù</string>
<string name="poi_sports">Stal rikoù sport</string>
<string name="poi_stationery">Stal-baper</string>
<string name="poi_tableware">Stal listri</string>
<string name="poi_ticket">Bilhederezh</string>
<string name="poi_tobacco">Stal-vutun</string>
<string name="poi_toys">Stal c\'hoarielloù</string>
<string name="poi_trade">Braswerzher</string>
<string name="poi_tyres">Stal-vandennoù rod</string>
</resources>

View file

@ -3460,4 +3460,11 @@ Abasta l\'àrea: %1$s x %2$s</string>
<string name="select_nav_icon_descr">Només veureu la icona mentre navegueu o us mogueu.</string>
<string name="select_map_icon_descr">La icona de mapa només es mostra al mapa i es canvia a la icona de navegació quan durant aquesta.</string>
<string name="logcat_buffer_descr">Valida i comparteix enregistraments detallats de l\'aplicació</string>
<string name="rearrange_categories">Reorganitza les categories</string>
<string name="create_custom_categories_list_promo">Podeu afegir categories personalitzades, amagar categories que considereu innecessàries i canviar l\'ordenació de la llista. La llista es pot importar i exportar amb perfils.</string>
<string name="add_new_custom_category_button_promo">Podeu afegir una nova categoria personalitzada seleccionant-ne una o, si cal, alguna categoria més.</string>
<string name="shared_string_available">Disponible</string>
<string name="add_custom_category">Afegeix una categoria personalitzada</string>
<string name="rendering_attr_streetLightingNight_name">Mostra només de nit</string>
<string name="plugin_prefs_reset_successful">Tots els ajustaments dels connectors s\'han restaurat a l\'estat predeterminat.</string>
</resources>

View file

@ -3794,4 +3794,9 @@
<string name="poi_volcano_number_of_eruptions">Antal udbrud</string>
<string name="poi_memorial_ghost_bike">Spøgelsescykel</string>
<string name="poi_paintball">Paintball</string>
<string name="poi_mountain_rescue">Bjergredning</string>
<string name="poi_shop_security">Sikkerhedsforretning</string>
<string name="poi_bowling_alley">Bowlingcenter</string>
<string name="poi_piste_ref">Piste-referencenummer</string>
<string name="poi_resort_hunting">Jagtbase</string>
</resources>

View file

@ -3458,4 +3458,27 @@ Repræsenterer område: %1$s x %2$s</string>
<string name="select_map_icon_descr">Kortikon vises kun på kortet og skifter under navigation til navigationsikon.</string>
<string name="logcat_buffer_descr">Kontroller og del detaljerede logfiler for programmet</string>
<string name="permission_is_required">Tilladelse kræves for at bruge denne mulighed.</string>
<string name="monitoring_min_speed_descr">Et lavhastighedsafskæringsfilter der ikke registrerer punkter under en bestemt hastighed. Kan få optagne spor til at se jævnere ud, når de ses på kortet.</string>
<string name="live_monitoring_time_buffer">Tidsbuffer</string>
<string name="live_monitoring_tracking_interval">Sporingsinterval</string>
<string name="live_monitoring_adress">Webadresse</string>
<string name="monitoring_notification">Meddelelse</string>
<string name="monitoring_min_speed">Min. hastighed</string>
<string name="monitoring_min_accuracy">Min. nøjagtighed</string>
<string name="monitoring_min_distance">Min. forskydning</string>
<string name="reset_plugin_to_default">Nulstil indstillingerne for udvidelser til standard</string>
<string name="multimedia_rec_split_title">Optagelse automatisk opdelt</string>
<string name="multimedia_use_system_camera">Brug systemprogram</string>
<string name="osm_authorization_success">Autorisationen lykkes</string>
<string name="rearrange_categories">Omarrangere kategorier</string>
<string name="create_custom_categories_list_promo">Tilføj brugerdefinerede kategorier, skjul kategorier, som ikke er nødvendige, og ændre sorteringsrækkefølgen på listen. Listen kan importeres og eksporteres med profiler.</string>
<string name="add_new_custom_category_button_promo">Tilføj en ny brugerdefineret kategori ved at vælge en eller nogle få nødvendige kategorier.</string>
<string name="shared_string_available">Tilgængelig</string>
<string name="add_custom_category">Tilføje brugerdefineret kategori</string>
<string name="rendering_attr_streetLightingNight_name">Vis kun om natten</string>
<string name="plugin_prefs_reset_successful">Alle indstillinger for udvidelser gendannes til standardtilstand.</string>
<string name="profile_prefs_reset_successful">Alle profilindstillinger gendannes til standardtilstand.</string>
<string name="ltr_or_rtl_combine_via_slash">%1$s/%2$s</string>
<string name="sunset_at">Solnedgang kl. %1$s</string>
<string name="sunrise_at">Solopgang kl. %1$s</string>
</resources>

View file

@ -336,7 +336,7 @@
<string name="poi_optician">Optiker</string>
<string name="poi_optometrist">Optiker</string>
<string name="poi_orchard">Obstplantage</string>
<string name="poi_organic">Biolebensmittel</string>
<string name="poi_organic">Bioprodukte</string>
<string name="poi_orienteering">Orientierungslauf</string>
<string name="poi_outdoor">Outdoor-Geschäft</string>
<string name="poi_paddle_tennis">Padel-Tennis</string>
@ -896,7 +896,7 @@
<string name="poi_recycling_plastic_packaging">Kunststoffverpackungen</string>
<string name="poi_recycling_newspaper">Zeitungen</string>
<string name="poi_recycling_cartons">Kartons</string>
<string name="poi_recycling_cardboard">Karton</string>
<string name="poi_recycling_cardboard">Pappe</string>
<string name="poi_recycling_magazines">Zeitschriften</string>
<string name="poi_recycling_paper_packaging">Papierverpackungen</string>
<string name="poi_recycling_wood">Altholz</string>
@ -1593,7 +1593,7 @@
<string name="poi_wetland_marsh">Marsch</string>
<string name="poi_wetland_reedbed">Schilf</string>
<string name="poi_recycling_hardcore">Bauschutt</string>
<string name="poi_brownfield">Bauland</string>
<string name="poi_brownfield">Brachfläche</string>
<string name="poi_religion_unitarian_universalist">Unitarischer Universalismus</string>
<string name="poi_religion_multifaith">Multikonfessionell</string>
<string name="poi_religion_scientologist">Scientology</string>
@ -2200,27 +2200,27 @@
<string name="poi_historic_period_bronze_age">Historisches Zeitalter: Bronzezeit</string>
<string name="poi_historic_period_principate">Historisches Zeitalter: Prinzipat (27 v. Chr. - 284 n. Chr.)</string>
<string name="poi_historic_period_classical_greece">Historisches Zeitalter: klassisches Griechenland (5. - 4. Jhd. v. Chr.)</string>
<string name="poi_historic_period_archaic_greece">Historisches Zeitalter: Archaisches Griechenland</string>
<string name="poi_historic_period_archaic_greece">Historisches Zeitalter: archaisches Griechenland</string>
<string name="poi_historic_period_iron_age">Historisches Zeitalter: Eisenzeit</string>
<string name="poi_historic_period_roman_republic">Historisches Zeitalter: römische Republik (508 - 27 v. Chr.)</string>
<string name="poi_historic_period_hellenistic_greece">Historisches Zeitalter: Hellenistisches Griechenland</string>
<string name="poi_historic_period_hellenistic_greece">Historisches Zeitalter: hellenistisches Griechenland</string>
<string name="poi_historic_period_new_kingdom">Historisches Zeitalter: Pharaonen, neues Reich (1550 - 1068 v. Chr.)</string>
<string name="poi_historic_period_middle_kingdom">Historisches Zeitalter: Pharaonen, mittleres Reich (2055 - 1650 v. Chr.)</string>
<string name="poi_historic_period_predynastic_egypt">Historisches Zeitalter: Vordynastisches Ägypten</string>
<string name="poi_historic_period_predynastic_egypt">Historisches Zeitalter: vordynastisches Ägypten</string>
<string name="poi_historic_period_early_dynastic_period">Historisches Zeitalter: Pharaonen, frühdynastische Zeit (3100 2686 v. Chr.)</string>
<string name="poi_historic_period_old_kingdom">Historisches Zeitalter: Pharaonen, altes Reich (2686 - 2181 v. Chr.)</string>
<string name="poi_historic_period_first_intermediate_period">Historisches Zeitalter: Pharaonen, erste Zwischenzeit (2181 2055 v. Chr.)</string>
<string name="poi_historic_period_second_intermediate_period">Historisches Zeitalter: Pharaonen, zweite Zwischenzeit (1650 1550 v. Chr.)</string>
<string name="poi_historic_period_third_intermediate_period">Historisches Zeitalter: Pharaonen, dritte Zwischenzeit (1069 664 v. Chr.)</string>
<string name="poi_historic_period_first_persian_period">Historisches Zeitalter: Erstes persisches Zeitalter</string>
<string name="poi_historic_period_first_persian_period">Historisches Zeitalter: erstes persisches Zeitalter</string>
<string name="poi_historic_period_late_period">Historisches Zeitalter: altägyptische Spätzeit (664 - 332 v. Chr.)</string>
<string name="poi_historic_period_second_persian_period">Historisches Zeitalter: Zweites persisches Zeitalter</string>
<string name="poi_historic_period_second_persian_period">Historisches Zeitalter: zweites persisches Zeitalter</string>
<string name="poi_historic_period_alexander_the_great">Historisches Zeitalter: Alexander der Große</string>
<string name="poi_resource_bauxite">Bauxit</string>
<string name="poi_architecture_postconstructivism">Architektur: Postkonstruktivismus</string>
<string name="poi_historic_period_christian_egypt">Historisches Zeitalter: Christliches Ägypten</string>
<string name="poi_historic_period_christian_egypt">Historisches Zeitalter: christliches Ägypten</string>
<string name="poi_historic_period_byzantine_egypt">Historisches Zeitalter: byzantinisches Ägypten (30 v. Chr. - 641 n. Chr.)</string>
<string name="poi_historic_period_persian_occupation">Historisches Zeitalter: Persische Besetzung</string>
<string name="poi_historic_period_persian_occupation">Historisches Zeitalter: persische Besetzung</string>
<string name="poi_historic_period_greek_dark_ages">Historisches Zeitalter: dunkle Jahrhunderte (Antike) (1100 - 800 v. Chr.)</string>
<string name="poi_historic_period_roman_greece">Historisches Zeitalter: römisches Griechenland (146 v. Chr - 330 n. Chr.)</string>
<string name="poi_historic_period_roman_kingdom">Historisches Zeitalter: römische Königszeit (756 - 509 v. Chr.)</string>
@ -2639,7 +2639,7 @@
<string name="poi_street_cabinet_street_lighting">Kasten-Typ: Straßenbeleutung</string>
<string name="poi_military_checkpoint">Militärischer Kontrollpunkt</string>
<string name="poi_bicycle_parking_lockers">Schließfächer</string>
<string name="poi_bicycle_parking_tree">Fahrrad-Baum</string>
<string name="poi_bicycle_parking_tree">Baum</string>
<string name="poi_bicycle_parking_streetpod">Straßenunterstand</string>
<string name="poi_salt_yes">Salz</string>
<string name="poi_salt_no">Salz: nein</string>
@ -2775,27 +2775,27 @@
<string name="poi_fuel_avia_type">Kraftstoffart (avia)</string>
<string name="poi_payment_fuel_type">Tankkarten</string>
<string name="poi_internet_access_type">Internet-Zugangsart</string>
<string name="poi_clothes_type">Typ</string>
<string name="poi_shoes_type">Typ</string>
<string name="poi_fire_hydrant_type">Typ</string>
<string name="poi_clothes_type">Kleidungsart</string>
<string name="poi_shoes_type">Schuhart</string>
<string name="poi_fire_hydrant_type">Feuerhydranttyp</string>
<string name="poi_fire_hydrant_position">Position</string>
<string name="poi_fire_hydrant_water_source">Wasserquelle</string>
<string name="poi_payment_toll_type">Zahlungsart</string>
<string name="poi_highway_crossing_type">Typ</string>
<string name="poi_highway_crossing_type">Art des Fußgängerübergangs</string>
<string name="poi_tactile_paving">Ertastbares Pflaster</string>
<string name="poi_brushless">Bürstenlos</string>
<string name="poi_automated">Automatisiert</string>
<string name="poi_parking_type">Typ</string>
<string name="poi_parking_type">Parkplatztyp</string>
<string name="poi_covered">Überdacht</string>
<string name="poi_ferry_terminal_cargo">Fracht</string>
<string name="poi_bicycle_parking_type">Typ</string>
<string name="poi_bicycle_parking_type">Art des Fahrradparkens</string>
<string name="poi_aerialway_bicycle">Fahrradtransport</string>
<string name="poi_aerialway_heating">Heizung</string>
<string name="poi_pump">Pumpe</string>
<string name="poi_observatory_designation">Bezeichnung</string>
<string name="poi_telescope_type">Typ</string>
<string name="poi_animal_training_type">Typ</string>
<string name="poi_embassy_type">Typ</string>
<string name="poi_telescope_type">Teleskoptyp</string>
<string name="poi_animal_training_type">Tierausbildungsart</string>
<string name="poi_embassy_type">Botschaftsart</string>
<string name="poi_city_capital">Hauptstadt</string>
<string name="poi_traffic_signals_sound">Signalton</string>
<string name="poi_subway_station_filter">U-Bahnstation</string>
@ -2822,10 +2822,10 @@
<string name="poi_beach_surface_type">Oberfläche</string>
<string name="poi_nudism">FKK</string>
<string name="poi_wheelchair_accessibility">Rollstuhlgerecht</string>
<string name="poi_resort_type">Typ</string>
<string name="poi_resort_type">Art des Urlaubsortes</string>
<string name="poi_piste_grooming">Pistenpflege</string>
<string name="poi_recycling_type">Typ</string>
<string name="poi_shelter_type">Typ</string>
<string name="poi_recycling_type">Recyclingtyp</string>
<string name="poi_shelter_type">Unterkunftsart</string>
<string name="poi_xmas">Weihnachten</string>
<string name="poi_xmas_event">Weihnachtsveranstaltung</string>
<string name="poi_xmas_market">Weihnachtsmarkt</string>
@ -2843,10 +2843,10 @@
<string name="poi_service_general">Dienstleistung</string>
<string name="poi_self_service">Selbstbedienung</string>
<string name="poi_pharmacy_dispensing">Nach Rezept</string>
<string name="poi_archaeological_site_type">Typ</string>
<string name="poi_archaeological_site_type">Art der archäologischen Fundstätte</string>
<string name="poi_star_rating">Bewertung in Sternen</string>
<string name="poi_denomination">Konfession</string>
<string name="poi_information_type">Typ</string>
<string name="poi_information_type">Informationsart</string>
<string name="poi_drive_in">Drive-in</string>
<string name="poi_drive_through">Durchfahrschalter</string>
<string name="poi_beauty_salon_service">Dienstleistung</string>
@ -3034,7 +3034,7 @@
<string name="poi_cuisine_doner">Döner Kebab (Schawarma)</string>
<string name="poi_cuisine_shawarma">Schawarma</string>
<string name="poi_diet">Speisen</string>
<string name="poi_social_facility_type">Typ</string>
<string name="poi_social_facility_type">Art der Sozialeinrichtung</string>
<string name="poi_cuisine_sagardotegia">Apfelweinhaus</string>
<string name="poi_cuisine_sub">Baguetterie</string>
<string name="poi_cuisine_pastel">Pastel</string>
@ -3049,7 +3049,7 @@
<string name="poi_lighting">Leuchten</string>
<string name="poi_lottery">Lotteriescheine</string>
<string name="poi_gambling">Spielbank</string>
<string name="poi_gambling_type">Typ</string>
<string name="poi_gambling_type">Glücksspielart</string>
<string name="poi_gambling_lottery">Lotterie</string>
<string name="poi_gambling_pachinko">Pachinko</string>
<string name="poi_gambling_slot_machines">Spielautomaten</string>
@ -3095,7 +3095,7 @@
<string name="poi_zoo_aviary">Voliere</string>
<string name="poi_zoo_falconry">Falknerei</string>
<string name="poi_zoo_reptile">Reptilien</string>
<string name="poi_zoo_type">Typ</string>
<string name="poi_zoo_type">Zootyp</string>
<string name="poi_zoo_birds">Vögel</string>
<string name="poi_motorcycle_services">Kundendienst</string>
<string name="poi_motorcycle_type">Motorradtyp</string>
@ -3518,7 +3518,7 @@
<string name="poi_atm">Geldautomat</string>
<string name="poi_shoe_repair">Schuhreparatur</string>
<string name="poi_bulk_purchase">Verpackungsfreie Waren</string>
<string name="poi_substation_type">Typ</string>
<string name="poi_substation_type">Umspannwerkstyp</string>
<string name="poi_bulk_purchase_yes">ja</string>
<string name="poi_bulk_purchase_only">Nur verpackungsfrei</string>
<string name="poi_substation_transmission">Umspannwerk</string>
@ -3749,7 +3749,7 @@
<string name="poi_cash_withdrawal_postbank">Postbank</string>
<string name="poi_cash_withdrawal_postfinance_card">PostFinance Card</string>
<string name="poi_cash_withdrawal_migros_bank">Migros Bank</string>
<string name="poi_bath_type">Typ</string>
<string name="poi_bath_type">Badtyp</string>
<string name="poi_bath_type_hot_spring">Heiße Quelle</string>
<string name="poi_bath_type_onsen">Onsen</string>
<string name="poi_bath_type_hammam">Hammam</string>
@ -3772,7 +3772,7 @@
<string name="poi_grave">Grab</string>
<string name="poi_parking_space">Parkplatz</string>
<string name="poi_url">URL</string>
<string name="poi_volcano_type">Typ</string>
<string name="poi_volcano_type">Vulkanart</string>
<string name="poi_volcano_status">Status</string>
<string name="poi_volcano_type_scoria">Schlacke</string>
<string name="poi_volcano_type_stratovolcano">Schichtvulkan</string>
@ -3787,6 +3787,11 @@
<string name="poi_volcano_status_active">Aktiv</string>
<string name="poi_volcano_status_inactive">Inaktiv</string>
<string name="poi_volcano_number_of_eruptions">Anzahl der Ausbrüche</string>
<string name="poi_memorial_ghost_bike">Geisterfahrrad</string>
<string name="poi_memorial_ghost_bike">Gedenk-Geisterfahrrad</string>
<string name="poi_paintball">Paintball</string>
<string name="poi_mountain_rescue">Bergrettung</string>
<string name="poi_shop_security">Sicherheitsgeschäft</string>
<string name="poi_bowling_alley">Bow­ling­cen­ter</string>
<string name="poi_piste_ref">Pistenreferenznummer</string>
<string name="poi_resort_hunting">Jagdbasis</string>
</resources>

View file

@ -131,7 +131,7 @@
<string name="osmand_plus_short_description_80_chars">Globale Landkarten- und Navigationsanwendung für Offline- und Online-OSM-Karten</string>
<string name="osmand_plus_long_description_1000_chars">OsmAnd+ (OSM Automated Navigation Directions)
\n
\nOsmAnd+ ist die Kaufversion der Open-Source Software Navigationsapp OsmAnd (OSM Automated Navigation Directions) mit Zugriff auf eine Vielzahl öffentlich zugänglicher, weltweit verfügbarer Daten von OpenStreetMap (OSM). Alle Karten (Vektor- oder Kachelformate) können lokal auf der Speicherkarte abgelegt und offline verwendet werden. Offline- und Online-Routing-Funktionalität wird ebenfalls angeboten, einschließlich einer Schritt-für-Schritt-Sprachführung.
\nOsmAnd+ ist die Kaufversion der Open-Source Software Navigationsapp OsmAnd mit Zugriff auf eine Vielzahl öffentlich zugänglicher, weltweit verfügbarer OSM-Daten. Alle Karten (Vektor- oder Kachelformate) können lokal auf der Speicherkarte abgelegt und offline verwendet werden. Offline- und Online-Routing-Funktionalität wird ebenfalls angeboten, einschließlich einer Schritt-für-Schritt-Sprachführung.
\n
\nMit dem Kauf der kostenpflichtigen Version OsmAnd+ unterstützen Sie das Projekt, fördern seine Weiterentwicklung und erhalten stets die aktuellsten Daten.
\n
@ -187,7 +187,7 @@
<string name="debugging_and_development">OsmAnd-Entwicklung</string>
<string name="native_rendering">Natives Rendern</string>
<string name="test_voice_prompts">Sprachansagen testen</string>
<string name="switch_to_raster_map_to_see">Offline-Vektorkarte für diese Position herunterladen (über \'Einstellungen\'\'Kartenverwaltung\') oder schalten Sie auf die Erweiterung \'Online-Karten\' um.</string>
<string name="switch_to_raster_map_to_see">Offline-Vektorkarte für diese Position herunterladen (über \'Einstellungen → Kartenverwaltung\') oder schalten Sie auf die Erweiterung \'Online-Karten\' um.</string>
<string name="send_files_to_osm">GPX-Dateien an OSM senden?</string>
<string name="validate_gpx_upload_name_pwd">Bitte tragen Sie Ihren OSM-Benutzernamen und Ihr Passwort ein, um GPX-Dateien hochzuladen.</string>
<string name="default_buttons_support">Unterstütze OsmAnd</string>
@ -262,7 +262,7 @@
<string name="local_openstreetmap_settings_descr">In der Gerätedatenbank vermerkte OSM-POIs/-Notizen anzeigen und verwalten.</string>
<string name="live_monitoring_m">Online-Aufzeichnung (benötigt GPX)</string>
<string name="live_monitoring_m_descr">Track-Daten zu einem festgelegten Internetdienst senden, wenn die GPX-Aufzeichnung aktiviert ist.</string>
<string name="live_monitoring_url">Internetadresse zur Aufzeichnung</string>
<string name="live_monitoring_url">Webadresse zur Aufzeichnung</string>
<string name="live_monitoring_url_descr">Spezifikation der Internetadresse zur Aufzeichnung mit Parametern: lat={0}, lon={1}, timestamp={2}, hdop={3}, altitude={4}, speed={5}, bearing={6}.</string>
<string name="live_monitoring_interval">Online-Aufzeichnungsintervall</string>
<string name="live_monitoring_interval_descr">Angabe des Intervalls für die Online-Aufzeichnung.</string>
@ -420,7 +420,7 @@
<string name="tts_missing_language_data">Gewählte Sprache aus dem Market installieren?</string>
<string name="switch_to_vector_map_to_see">Es gibt eine Offline-Vektorkarte für diesen Ort.
\n\t
\n\tWählen Sie \'Menü\'\'Karte konfigurieren\'\'Kartenquelle…\'\'Offline-Vektorkarten\', um sie zu verwenden.</string>
\n\tWählen Sie \'Menü → Karte konfigurieren → Kartenquelle… → Offline-Vektorkarten\', um sie zu verwenden.</string>
<string name="choose_audio_stream">Navi-Sprachausgabe</string>
<string name="choose_audio_stream_descr">Lautsprecher für Sprachansagen auswählen.</string>
<string name="voice_stream_voice_call">Wie Anrufe (unterbricht Bluetooth-Verbindung zum Autoradio)</string>
@ -639,7 +639,7 @@
<string name="route_head">Geradeaus</string>
<string name="first_time_continue">Weiter</string>
<string name="first_time_download">Offline-Daten herunterladen</string>
<string name="first_time_msg">Danke, dass Sie OsmAnd verwenden. Laden Sie regionale Daten für die Offline-Verwendung über \'Einstellungen\'\'Kartenverwaltung\' herunter, um Landkarten anzusehen, Adressen, POIs und öffentliche Verkehrsmittel zu finden.</string>
<string name="first_time_msg">Danke, dass Sie OsmAnd verwenden. Laden Sie regionale Daten für die Offline-Verwendung über \'Einstellungen → Kartenverwaltung\' herunter, um Landkarten anzusehen, Adressen, POIs und öffentliche Verkehrsmittel zu finden.</string>
<string name="search_poi_location">Warte auf Signal…</string>
<string name="search_near_map">Suche in der Nähe</string>
<string name="search_nearby">Suche um Aufenthaltsort</string>
@ -1823,7 +1823,6 @@ Lon %2$s</string>
<string name="av_audio_bitrate">Audio-Bitrate</string>
<string name="av_audio_bitrate_descr">Audio-Bitrate wählen.</string>
<string name="rendering_attr_horseRoutes_name">Reitwege</string>
<string name="update">Aktualisieren</string>
<string name="only_download_over_wifi">Nur über WLAN herunterladen</string>
<string name="live_update">Live-Aktualisierung</string>
<string name="update_now">Jetzt aktualisieren</string>
@ -2366,8 +2365,8 @@ Lon %2$s</string>
<string name="quick_action_add_destination">Ziel festlegen</string>
<string name="quick_action_replace_destination">Ziel ersetzen</string>
<string name="quick_action_add_first_intermediate">Ersten Zwischenstopp hinzufügen</string>
<string name="quick_action_add_destination_desc">Eine Schaltfläche, um den Bildschirmmittelpunkt zum Routenziel zu machen. Jedes zuvor gewählte Ziel wird zum letzten Zwischenziel.</string>
<string name="quick_action_replace_destination_desc">Drücken dieser Aktionstaste ersetzt das zuvor gewählte Routenziel (falls vohanden) durch die dem Bildschirmmittelpunkt entsprechende Position.</string>
<string name="quick_action_add_destination_desc">Eine Schaltfläche, um den Bildschirmmittelpunkt zum Routenziel zu machen. Ein zuvor gewähltes Ziel würde zum letzten Zwischenziel werden.</string>
<string name="quick_action_replace_destination_desc">Eine Schaltfläche, um die Bildschirmmitte zum neuen Routenziel zu machen und das zuvor ausgewählte Ziel (falls vorhanden) zu ersetzen.</string>
<string name="quick_action_add_first_intermediate_desc">Eine Schaltfläche, um den Bildschirmmittelpunkt zum ersten Zwischenziel zu machen.</string>
<string name="subscribe_email_error">Fehler</string>
<string name="subscribe_email_desc">Abonnieren Sie unsere Mailingliste zu App-Angeboten und erhalten Sie dafür 3 zusätzliche Karten-Downloads!</string>
@ -2716,7 +2715,7 @@ Lon %2$s</string>
<string name="shared_string_contents">Inhalte</string>
<string name="wikivoyage_download_pics">Bilder herunterladen</string>
<string name="wikivoyage_download_pics_descr">Artikelbilder können für den Offline-Einsatz heruntergeladen werden.
\nImmer verfügbar unter \'Durchsuchen\'\'Optionen\'.</string>
\nImmer verfügbar unter \'Durchsuchen → Optionen\'.</string>
<string name="online_webpage_warning">Seite ist nur online abrufbar. Im Webbrowser öffnen?</string>
<string name="delete_search_history">Suchverlauf löschen</string>
<string name="purchase_dialog_travel_description">Für die Offline-Reiseführerfunktionalität kaufen Sie einen der folgenden Artikel:</string>
@ -3043,7 +3042,7 @@ Lon %2$s</string>
<string name="help_us_make_osmand_better">Helfen Sie uns, OsmAnd besser zu machen</string>
<string name="make_osmand_better_descr">Gestatten Sie OsmAnd, anonyme App-Nutzungsdaten zu sammeln und zu verarbeiten. Wir sammeln keine Daten zu Ihrem Standort oder zu irgendwelchen Orten, die Sie sich auf der Karte ansehen.
\n
\nÄndern Sie diese Konfiguration jederzeit unter \'Einstellungen\'\'Datenschutz und Sicherheit\'.</string>
\nÄndern Sie diese Konfiguration jederzeit unter \'Einstellungen → Datenschutz und Sicherheit\'.</string>
<string name="choose_data_to_share">Wählen Sie, welche Art Daten Sie freigeben möchten:</string>
<string name="downloaded_maps">Heruntergeladene Karten</string>
<string name="visited_screens">Besuchte Bildschirme</string>
@ -3339,7 +3338,7 @@ Lon %2$s</string>
<string name="routing_attr_prefer_unpaved_description">Unbefestigte Straßen bevorzugen.</string>
<string name="update_all_maps">Alle Karten aktualisieren</string>
<string name="update_all_maps_q">Sind Sie sicher, dass Sie alle (%1$d) Karten aktualisieren möchten\?</string>
<string name="release_3_5">• Verbesserte Anwendungs- und Profileinstellungen. Die Einstellungen sind nun nach Typ geordnet. Jedes Profil kann separat angepasst werden.
<string name="release_3_5">• Verbesserte Anwendungs- und Profil-Einstellungen. Die Einstellungen sind nun nach Typ geordnet. Jedes Profil kann separat angepasst werden.
\n
\n • Neuer Karten-Download-Dialog, der während des Stöberns eine Karte zum Download vorschlägt
\n
@ -3361,24 +3360,24 @@ Lon %2$s</string>
<string name="routing_attr_driving_style_prefer_unpaved_name">Unbefestigte Straßen bevorzugen</string>
<string name="routing_attr_driving_style_prefer_unpaved_description">Bei der Navigation unbefestigte Straßen gegenüber befestigten bevorzugen.</string>
<string name="layer_osm_edits">OSM-Bearbeitungen</string>
<string name="quick_action_contour_lines_descr">Ein Umschalter zum Ein- und Ausblenden von Höhenlinien auf der Karte.</string>
<string name="quick_action_contour_lines_descr">Schaltfläche zum Ein- und Ausblenden von Höhenlinien auf der Karte.</string>
<string name="quick_action_contour_lines_show">Höhenlinien anzeigen</string>
<string name="quick_action_contour_lines_hide">Höhenlinien ausblenden</string>
<string name="quick_action_show_hide_contour_lines">Höhenlinien ein-/ausblenden</string>
<string name="quick_action_hillshade_descr">Ein Umschalter zum Ein- oder Ausblenden der Reliefdarstellung.</string>
<string name="quick_action_hillshade_descr">Schaltfläche zum Ein- oder Ausblenden der Reliefdarstellung.</string>
<string name="quick_action_hillshade_show">Relief anzeigen</string>
<string name="quick_action_hillshade_hide">Relief ausblenden</string>
<string name="quick_action_show_hide_hillshade">Relief ein-/ausblenden</string>
<string name="tts_initialization_error">Text-to-Speech-Engine kann nicht gestartet werden</string>
<string name="tts_initialization_error">Text-to-Speech-Engine kann nicht gestartet werden.</string>
<string name="simulate_your_location_gpx_descr">Simulation Ihrer Position mit einem aufgezeichneten GPX-Track.</string>
<string name="export_profile">Profil exportieren</string>
<string name="exported_osmand_profile">OsmAnd-Profil: %1$s</string>
<string name="overwrite_profile_q">Das Profil \'%1$s\' existiert bereits. Überschreiben\?</string>
<string name="overwrite_profile_q">\'%1$s\' existiert bereits. Überschreiben\?</string>
<string name="export_profile_failed">Das Profil konnte nicht exportiert werden.</string>
<string name="profile_import">Profilimport</string>
<string name="profile_import_descr">Um ein Profil zu importieren, wählen Sie die Profildatei auf dem Gerät aus und öffnen Sie diese mit OsmAnd.</string>
<string name="profile_import">Profil importieren</string>
<string name="profile_import_descr">Fügen Sie ein Profil hinzu, indem Sie die Profildatei mit OsmAnd öffnen.</string>
<string name="file_import_error">%1$s Importfehler: %2$s</string>
<string name="file_imported_successfully">%1$s erfolgreich importiert.</string>
<string name="file_imported_successfully">%1$s importiert.</string>
<string name="rendering_value_white_name">Weiß</string>
<string name="swap_two_places">%1$s und %2$s tauschen</string>
<string name="route_start_point">Startpunkt</string>
@ -3389,18 +3388,18 @@ Lon %2$s</string>
<string name="clear_confirmation_msg">%1$s löschen\?</string>
<string name="suggested_maps">Vorgeschlagene Karten</string>
<string name="added_profiles">Profile hinzugefügt</string>
<string name="added_profiles_descr">Plugin fügt OsmAnd ein neues Profil hinzu</string>
<string name="added_profiles_descr">Vom Plugin hinzugefügte Profile</string>
<string name="shared_string_turn_off">Ausschalten</string>
<string name="new_plugin_added">Neues Plugin hinzugefügt</string>
<string name="quick_action_directions_from_desc">Eine Schaltfläche, um die Bildschirmmitte zum Ausgangspunkt zu machen und die Route zum Ziel zu berechnen oder einen Dialog zur Auswahl des Ziels zu öffnen, wenn sich der Zielmarker nicht auf der Karte befindet.</string>
<string name="quick_action_directions_from_desc">Eine Schaltfläche, um die Bildschirmmitte zum Ausgangspunkt zu machen. Sie werden dann aufgefordert, ein Ziel festzulegen oder die Routenberechnung auszulösen.</string>
<string name="rendering_attr_showCycleNodeNetworkRoutes_name">Radroutennetzknoten anzeigen</string>
<string name="download_map_dialog">Dialog zum Herunterladen der Karte</string>
<string name="dialogs_and_notifications_title">Dialoge und Benachrichtigungen</string>
<string name="dialogs_and_notifications_descr">Steuern Sie Popups, Dialoge und Benachrichtigungen, die OsmAnd während der Nutzung anzeigt.</string>
<string name="dialogs_and_notifications_descr">Steuern Sie Popups, Dialoge und Benachrichtigungen.</string>
<string name="rendering_value_walkingRoutesOSMCNodes_name">Knotennetzwerke</string>
<string name="suggested_maps_descr">Diese Karten sind für die Verwendung mit dem Plugin erforderlich</string>
<string name="suggested_maps_descr">Diese Karten werden für das Plugin benötigt.</string>
<string name="join_segments">Segmente verbinden</string>
<string name="add_new_profile_q">Neues Profil \'%1$s\' hinzufügen\?</string>
<string name="add_new_profile_q">Das neue Profil \'%1$s\' hinzufügen\?</string>
<string name="save_heading">Richtung einbeziehen</string>
<string name="save_heading_descr">Richtung zu jedem Trackpunkt während der Aufnahme speichern.</string>
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
@ -3408,22 +3407,22 @@ Lon %2$s</string>
<string name="personal_category_name">Persönlich</string>
<string name="shared_string_downloading_formatted">%s herunterladen</string>
<string name="rendering_value_thick_name">Fett</string>
<string name="desert_render_descr">Für Wüsten und andere dünn besiedelte Gebiete. Zeigt mehr Details in einer Ansichtsskala an.</string>
<string name="select_navigation_icon">Navigationssymbol wählen</string>
<string name="select_map_icon">Kartensymbol wählen</string>
<string name="delete_profiles_descr">Nachdem Sie auf Anwenden geklickt haben, gehen gelöschte Profile vollständig verloren.</string>
<string name="desert_render_descr">Für Wüsten und andere dünn besiedelte Gebiete. Umfangreicher.</string>
<string name="select_navigation_icon">Positionssymbol während der Bewegung</string>
<string name="select_map_icon">Positionssymbol im Ruhezustand</string>
<string name="delete_profiles_descr">Durch Tippen auf \'Anwenden\' werden entfernte Profile dauerhaft gelöscht.</string>
<string name="master_profile">Hauptprofil</string>
<string name="select_color">Farbe wählen</string>
<string name="edit_profiles_descr">Sie können voreingestellte OsmAnd-Profile nicht löschen, aber im vorherigen Bildschirm deaktivieren oder nach unten verschieben.</string>
<string name="edit_profiles_descr">OsmAnd-Standardprofile können nicht gelöscht, aber (auf dem vorherigen Bildschirm) deaktiviert oder nach unten verschoben werden.</string>
<string name="edit_profiles">Profile bearbeiten</string>
<string name="select_nav_profile_dialog_message">Der Navigationstyp beeinflusst die Regeln für Routenberechnungen.</string>
<string name="select_nav_profile_dialog_message">Der \'Navigationstyp\' bestimmt, wie die Routen berechnet werden.</string>
<string name="profile_appearance">Profildarstellung</string>
<string name="choose_icon_color_name">Symbol, Farbe und Namen wählen</string>
<string name="choose_icon_color_name">Symbol, Farbe und Namen</string>
<string name="reorder_profiles">Profilliste bearbeiten</string>
<string name="selected_profile">Ausgewähltes Profil</string>
<string name="reset_confirmation_descr">Durch das Auswählen von %1$s werden alle Änderungen verlorengehen.</string>
<string name="reset_all_profile_settings_descr">Alle Profil-Einstellungen werden auf den Ausgangszustand nach App-Installation zurückgesetzt.</string>
<string name="reset_all_profile_settings">Alle Profil-Einstellungen auf den Standard zurücksetzen\?</string>
<string name="reset_confirmation_descr">Durch Tippen auf %1$s werden alle Ihre Änderungen verworfen.</string>
<string name="reset_all_profile_settings_descr">Alle Profil-Einstellungen auf den Ausgangszustand zurücksetzen.</string>
<string name="reset_all_profile_settings">Alle Profil-Einstellungen zurücksetzen\?</string>
<string name="ltr_or_rtl_combine_via_colon">%1$s: %2$s</string>
<string name="ltr_or_rtl_combine_via_space">%1$s %2$s</string>
<string name="not_support_file_type_with_ext">Sie müssen eine Datei mit der Erweiterung %1$s auswählen.</string>
@ -3434,20 +3433,39 @@ Lon %2$s</string>
<string name="multimedia_notes_prefs_descr">Bildgröße, Audio- und Videoqualität</string>
<string name="osm_editing_prefs_descr">Anmeldung, Passwort, Offline-Bearbeitung</string>
<string name="accessibility_prefs_descr">Symbol, Farbe und Namen wählen</string>
<string name="live_monitoring_descr">Ermöglicht Ihnen die gemeinsame Nutzung des aktuellen Standorts mit Hilfe der Fahrtenaufzeichnung.</string>
<string name="live_monitoring_descr">Ermöglicht die gemeinsame Nutzung des aktuellen Standorts mit Hilfe der Fahrtenaufzeichnung.</string>
<string name="save_track_logging_accuracy">Genauigkeit der Protokollierung</string>
<string name="video_notes">Video-Notizen</string>
<string name="photo_notes">Foto-Notizen</string>
<string name="route_recalculation">Neuberechnung der Route</string>
<string name="login_and_pass">Benutzername und Passwort</string>
<string name="osm_editing">OpenStreetMap-Bearbeitung</string>
<string name="osm_editing">OSM-Bearbeitung</string>
<string name="app_mode_osm">OSM</string>
<string name="select_nav_icon_descr">Sie sehen das Symbol nur während der Navigation oder während der Bewegung.</string>
<string name="multimedia_notes_view_descr">Sie finden all Ihre Notizen im Menü unter Meine Orte — Notizen.</string>
<string name="select_nav_icon_descr">Symbol, das beim Navigieren oder Bewegen angezeigt wird.</string>
<string name="multimedia_notes_view_descr">Ihre OSM-Notizen sind in %1$s.</string>
<string name="button_rate">Bewerten</string>
<string name="logcat_buffer_descr">Protokolle der Anwendung sehen und freigeben</string>
<string name="permission_is_required">Für die Verwendung dieser Option ist eine Berechtigung erforderlich.</string>
<string name="file_does_not_contain_routing_rules">Die Datei \'%1$s\' enthält keine Routing-Regeln. Bitte eine andere Datei wählen.</string>
<string name="monitoring_min_speed_descr">Dies ist ein Filter, welcher Punkte unter einer gewissen Geschwindigkeit nicht aufzeichnet. Dadurch können aufgezeichnete Tracks auf der Karte gleichmäßiger aussehen.</string>
<string name="monitoring_min_speed_descr_side_effect">Nebeneffekt: Auf Ihrer Strecke fehlen alle Abschnitte, in denen das Mindestgeschwindigkeitskriterium nicht erfüllt wurde (z.B. wenn Sie Ihr Fahrrad einen steilen Hügel hinaufschieben). Außerdem wird es keine Informationen über Ruhezeiten wie Pausen geben. Dies hat Auswirkungen auf jede Analyse oder Nachbearbeitung, z. B. wenn Sie versuchen, die Gesamtlänge Ihrer Reise, die Zeit in Bewegung oder Ihre Durchschnittsgeschwindigkeit zu bestimmen.</string>
<string name="monitoring_min_speed_descr_side_effect">Nebeneffekt: Auf Ihrer Strecke fehlen alle Abschnitte, in denen das Mindestgeschwindigkeitskriterium nicht erfüllt wurde (z. B., wenn Sie Ihr Fahrrad einen steilen Hügel hinaufschieben). Außerdem wird es keine Informationen über Ruhezeiten wie Pausen geben. Dies hat Auswirkungen auf jede Analyse oder Nachbearbeitung, z. B., wenn Sie versuchen, die Gesamtlänge Ihrer Reise, die Zeit in Bewegung oder Ihre Durchschnittsgeschwindigkeit zu bestimmen.</string>
<string name="plugin_global_prefs_info">Diese Einstellungen gelten für alle Profile.</string>
<string name="live_monitoring_time_buffer">Zeitpuffer</string>
<string name="live_monitoring_tracking_interval">Aufzeichnungsintervall</string>
<string name="live_monitoring_adress">Webadresse</string>
<string name="live_monitoring_adress_descr">Webadresse angeben mit der Parametersyntax: lat={0}, lon={1}, timestamp={2}, hdop={3}, altitude={4}, speed={5}, bearing={6}.</string>
<string name="monitoring_notification">Benachrichtigung</string>
<string name="monitoring_min_speed">Mindesttempo</string>
<string name="monitoring_min_accuracy">Minimale Genauigkeit</string>
<string name="monitoring_min_distance">Minimale Verschiebung</string>
<string name="tracks_view_path">\'Menü → Meine Orte → Tracks\'</string>
<string name="multimedia_notes_view_path">\'Menü → Meine Orte → Notizen\'</string>
<string name="osm_edits_view_path">\'Menü → Meine Orte → OSM-Änderungen\'</string>
<string name="reset_plugin_to_default">Plugin-Einstellungen auf Voreinstellung zurücksetzen</string>
<string name="osm_authorization_success">Autorisierung ist erfolgreich</string>
<string name="shared_string_available">Verfügbar</string>
<string name="add_custom_category">Benutzerdefinierte Kategorie hinzufügen</string>
<string name="ltr_or_rtl_combine_via_slash">%1$s/%2$s</string>
<string name="sunset_at">Sonnenuntergang um %1$s</string>
<string name="sunrise_at">Sonnenaufgang um %1$s</string>
</resources>

View file

@ -226,7 +226,7 @@
<string name="poi_musical_instrument">Μουσικά όργανα</string>
<string name="poi_newsagent">Εφημερίδες</string>
<string name="poi_optician">Οπτικός</string>
<string name="poi_organic">Βιολογικά τρόφιμα</string>
<string name="poi_organic">Βιολογικά προϊόντα</string>
<string name="poi_outdoor">Υπαίθριο κατάστημα</string>
<string name="poi_paint">Χρωματοπωλείο</string>
<string name="poi_pet">Κατάστημα κατοικιδίων</string>
@ -2001,7 +2001,7 @@
<string name="poi_service_bicycle_cleaning_no">Καθαρισμός ποδηλάτου: όχι</string>
<string name="poi_service_bicycle_second_hand_yes">Λιανική πώληση μεταχειρισμένων ποδηλάτων</string>
<string name="poi_service_bicycle_second_hand_no">Λιανική πώληση μεταχειρισμένων ποδηλάτων: όχι</string>
<string name="poi_bicycle_repair_station">Σταθμός ιδιοεπισκευής ποδηλάτου</string>
<string name="poi_bicycle_repair_station">Σταθμός επισκευής ποδαλάτων·Σταθμός ιδιοεπισκευής ποδηλάτων</string>
<string name="poi_wildlife_hide">Θέση παρακολούθησης άγριας ζωής</string>
<string name="poi_training_language">Εκπαίδευση: γλώσσα</string>
<string name="poi_training_music">Εκπαίδευση: μουσική</string>
@ -3556,4 +3556,13 @@
<string name="poi_denotation_landmark">Διακριτό σημείο</string>
<string name="poi_park_ride_yes">Ναι</string>
<string name="poi_park_ride_train">Τρένο</string>
<string name="poi_park_ride_bus">Λεωφορείο</string>
<string name="poi_park_ride_metro">Μετρό</string>
<string name="poi_park_ride_tram">Τραμ</string>
<string name="poi_park_ride_ferry">Πλοίο</string>
<string name="poi_atm_yes">ATM: Ναι</string>
<string name="poi_cash_withdrawal_bank_card">Ανάληψη μετρητών</string>
<string name="poi_bath_type">Πληκτρολογήστε</string>
<string name="poi_volcano_type">Πληκτρολογήστε</string>
<string name="poi_volcano_status">Κατάσταση</string>
</resources>

View file

@ -23,41 +23,27 @@
<string name="snap_to_road_descr">Προσανατολισμός στους δρόμους κατά τη διάρκεια της πλοήγησης.</string>
<string name="snap_to_road">Προσανατολισμός στο δρόμο</string>
<string name="osmand_short_description_80_chars">Προβολή φορητού παγκόσμιου χάρτη &amp; πλοήγηση για χάρτες OSM χωρίς και με διαδίκτυο</string>
<string name="osmand_long_description_1000_chars">"OsmAnd (OSM Αυτοματοποιημένες Οδηγίες Πλοήγησης
<string name="osmand_long_description_1000_chars">OsmAnd (OSM Αυτοματοποιημένες Οδηγίες Πλοήγησης)
\n
\n Το OsmAnd είναι μια εφαρμογή πλοήγησης ανοικτού κώδικα με πρόσβαση σε μεγάλη ποικιλία από παγκόσμια δεδομένα του OSM. Όλα τα δεδομένα χάρτη (διανυσματικά ή πλακίδια χάρτη) μπορούν να αποθηκευτούν στην κάρτα μνήμης του τηλεφώνου για χρήση χωρίς σύνδεση. Προσφέρεται επίσης λειτουργία δρομολόγησης με και χωρίς διαδικτυακή σύνδεση συμπεριλαμβανομένων φωνητικών οδηγιών βήμα προς βήμα.
\n
\n
\n
\n Μερικά από τα βασικά χαρακτηριστικά:
\n
\n - Πλήρης λειτουργικότητα εκτός σύνδεσης (αποθήκευση των λαμβανόμενων διανυσμάτων ή πλακιδίων χάρτη στον αποθηκευτικό χώρο της συσκευής)
\n
\n - Συμπαγείς διανυσματικοί χάρτες χωρίς σύνδεση για όλον τον κόσμο
\n
\n - Λήψη χαρτών χωρών ή περιοχών κατευθείαν από την εφαρμογή
\n
\n - Δυνατότητα επίστρωσης από αρκετές στρώσεις χάρτη, όπως GPX ή ίχνη πλοήγησης, Σημεία Ενδιαφέροντος, αγαπημένα, ισοϋψείς γραμμές, στάσεις Μ.Μ. Μεταφοράς, πρόσθετους χάρτες με προσαρμόσιμη διαφάνεια
\n
\n - Εκτός σύνδεσης αναζήτηση για διευθύνσεις και μέρη (ΣΕ)
\n
\n - Εκτός σύνδεσης δρομολόγηση για μέσες αποστάσεις
\n
\n - Κατάσταση αυτοκινήτου, ποδηλάτου και πεζού με:
\n
\n - προαιρετική αυτόματη εναλλαγή όψης ημέρας/νύχτας - προαιρετική εστίαση χάρτη βάσει ταχύτητας
\n
\n - προαιρετικός προσανατολισμός χάρτη βάσει της πυξίδας ή της κατεύθυνσης κίνησης
\n
\n - προαιρετική καθοδήγηση με λωρίδες, εμφάνιση ορίου ταχύτητας, καταγεγραμμένες και φωνές κειμένου σε λόγο.
\n
\n Περιορισμοί αυτής της ελεύθερης έκδοσης του OsmAnd:
\n
\n - Περιορισμένος αριθμός λήψης χαρτών
\n
\n - Όχι πρόσβαση στα εκτός σύνδεσης ΣΕ της βικιπαίδειας.
\n
\n Το OsmAnd είναι ενεργά στο στάδιο της ανάπτυξης και το εγχείρημά μας και η περαιτέρω ανάπτυξή του επαφίεται στις οικονομικές προσφορές για την χρηματοδότηση της ανάπτυξης και τις δοκιμές νέων λειτουργιών. Παρακαλούμε σκεφτείτε την αγορά του OsmAnd+, ή χρηματοδοτήστε συγκεκριμένες νέες λειτουργίες ή κάντε μια γενική δωρεά στο https://osmand.net."</string>
\n Το OsmAnd είναι ενεργά στο στάδιο της ανάπτυξης και το εγχείρημά μας και η περαιτέρω ανάπτυξή του επαφίεται στις οικονομικές προσφορές για την χρηματοδότηση της ανάπτυξης και τις δοκιμές νέων λειτουργιών. Παρακαλούμε σκεφτείτε την αγορά του OsmAnd+, ή χρηματοδοτήστε συγκεκριμένες νέες λειτουργίες ή κάντε μια γενική δωρεά στο https://osmand.net.</string>
<string name="osmand_plus_short_description_80_chars">Προβολή παγκόσμιου χάρτη &amp; πλοήγηση για χάρτες OSM χωρίς και με σύνδεση</string>
<string name="osmand_plus_long_description_1000_chars">OsmAnd+ (OSM Αυτοματοποιημένες Οδηγίες Πλοήγησης)
\n
@ -199,11 +185,11 @@
<string name="map_online_data_descr">Χρήση χαρτών με διαδίκτυο (λήψη και αποθήκευση πλακιδίων σε κάρτα μνήμης).</string>
<string name="shared_string_online_maps">Χάρτες με σύνδεση</string>
<string name="online_map_settings_descr">Επιλέξτε τους παρόχους των χαρτών με διαδίκτυο ή με αποθηκευμένα πλακίδια.</string>
<string name="osmand_rastermaps_plugin_description">"Προσπελάσετε πολλούς τύπους χαρτών με σύνδεση (τους αποκαλούμενους χάρτες πλακιδίων ή εικονογραφιών), από προκαθορισμένα πλακίδια του OSM (όπως το Mapnik) μέχρι δορυφορικές εικόνες και στρώσεις ειδικού σκοπού όπως μετεωρολογικούς χάρτες, κλιματολογικούς χάρτες, γεωλογικούς χάρτες, στρώσεις σκίασης ανάγλυφου κλπ.
<string name="osmand_rastermaps_plugin_description">Προσπελάσετε πολλούς τύπους χαρτών με σύνδεση (τους αποκαλούμενους χάρτες πλακιδίων ή εικονογραφιών), από προκαθορισμένα πλακίδια του OSM (όπως το Mapnik) μέχρι και δορυφορικές εικόνες και στρώσεις ειδικού σκοπού όπως μετεωρολογικούς χάρτες, κλιματολογικούς χάρτες, γεωλογικούς χάρτες, στρώσεις σκίασης ανάγλυφου κλπ.
\n
\nΟποιοσδήποτε από αυτούς τους χάρτες μπορεί να χρησιμοποιηθεί είτε ως ο κύριος (βασικός) χάρτης που θα εμφανίζεται στον χάρτη του OsmAnd, είτε ως επίστρωμα ή υπόστρωμα σε έναν άλλο βασικό χάρτη (όπως στους τυπικούς χωρίς σύνδεση χάρτες του OsmAnd). Για να γίνει οποιοσδήποτε χάρτης υποστρώματος πιο ορατός, συγκεκριμένα στοιχεία των διανυσματικών χαρτών του OsmAnd μπορούν να κρυφτούν μέσω του μενού \'Διαμόρφωση χάρτη\'.
\nΟποιοσδήποτε από αυτούς τους χάρτες μπορεί να χρησιμοποιηθεί είτε ως ο κύριος (βασικός) χάρτης που θα εμφανίζεται, είτε ως επίστρωμα ή υπόστρωμα σε έναν άλλο βασικό χάρτη (όπως στους τυπικούς χωρίς σύνδεση χάρτες του OsmAnd). Για να γίνει οποιοσδήποτε χάρτης υποστρώματος πιο ορατός, συγκεκριμένα στοιχεία των διανυσματικών χαρτών του OsmAnd μπορούν να αποκρυφθούν μέσω του μενού \'Διαμόρφωση χάρτη\'.
\n
\nΟι χάρτες πλακιδίων μπορούν να ληφθούν μέσω διαδικτυακών πηγών, ή να προετοιμαστούν για χρήση χωρίς σύνδεση (και να αντιγραφούν χειροκίνητα στον φάκελο δεδομένων του OsmAnd) ως βάση δεδομένων του SQLite που μπορεί να παραχθεί από διάφορα εργαλεία προετοιμασίας χαρτών τρίτων."</string>
\nΟι χάρτες πλακιδίων μπορούν να ληφθούν μέσω διαδικτυακών πηγών, ή να προετοιμαστούν για χρήση χωρίς σύνδεση (μέσω χειροκίνητης αντιγραφής στον φάκελο δεδομένων του OsmAnd) ως μία βάση δεδομένων SQLite που μπορεί να παραχθεί από διάφορα εργαλεία προετοιμασίας χαρτών τρίτων.</string>
<string name="osmand_background_plugin_description">Εμφάνιση των ρυθμίσεων για ενεργοποίηση ιχνογράφησης και πλοήγησης παρασκηνίου μέσω περιοδικής αφύπνισης της συσκευής GPS (με την οθόνη σβηστή).</string>
<string name="osmand_accessibility_description">Κάνει τα χαρακτηριστικά προσβασιμότητας της συσκευής διαθέσιμα απευθείας στο OsmAnd. Διευκολύνει π.χ. τη ρύθμιση του ρυθμού ομιλίας για φωνές κειμένου σε λόγο, διαμορφώνοντας πλοήγηση οθόνης του κατευθυντήρα, χρήση ιχνόσφαιρας για έλεγχο εστίασης, ή ανατροφοδότηση κειμένου σε ομιλία, π.χ. για αυτόματη ανακοίνωση της θέσης σας.</string>
<string name="osmand_development_plugin_description">Ρυθμίσεις για τα χαρακτηριστικά ανάπτυξης και αποσφαλμάτωσης όπως απόδοση απεικόνισης, ή η φωνητική καθοδήγηση. Αυτές οι ρυθμίσεις προορίζονται για τους προγραμματιστές και δεν χρειάζονται στην κανονική χρήση της εφαρμογής.</string>
@ -527,7 +513,7 @@
<string name="select_build_to_install">Επιλέξτε το OsmAnd build προς εγκατάσταση</string>
<string name="contribution_activity">Εγκατάσταση έκδοσης</string>
<string name="gps_status_app_not_found">Η εφαρμογή κατάστασης GPS δεν είναι εγκατεστημένη. Αναζήτηση στην αγορά ;</string>
<string name="voice_is_not_available_msg">"Δεν υπάρχει διαθέσιμη φωνητική καθοδήγηση, παρακαλούμε μεταβείτε στο \'Ρυθμίσεις\' → \'Ρυθμίσεις πλοήγησης\' → \'Φωνητική καθοδήγηση\' και επιλέξτε ή κατεβάστε ένα πακέτο φωνητικών οδηγιών."</string>
<string name="voice_is_not_available_msg">Δεν υπάρχει διαθέσιμη φωνητική καθοδήγηση, παρακαλούμε μεταβείτε στο \'Ρυθμίσεις\' → \'Ρυθμίσεις πλοήγησης\' → \'Φωνητική καθοδήγηση\' και επιλέξτε ή κατεβάστε ένα πακέτο φωνητικών οδηγιών.</string>
<string name="voice_is_not_available_title">Επιλέξτε ένα πακέτο φωνητικής καθοδήγησης</string>
<string name="daynight_mode_day">Ημέρα</string>
<string name="daynight_mode_night">Νύχτα</string>
@ -547,12 +533,12 @@
<string name="maps_could_not_be_downloaded">Αυτός ο χάρτης δεν μπορεί να ληφθεί</string>
<string name="continuous_rendering">Συνεχής απεικόνιση</string>
<string name="continuous_rendering_descr">Εμφάνιση συνεχούς απεικόνισης αντί για εικόνα με τη μία.</string>
<string name="rendering_exception">Αδυναμία σχεδίασης της επιλεγμένης περιοχής</string>
<string name="rendering_exception">Αδυναμία σχεδίασης της επιλεγμένης περιοχής.</string>
<string name="show_point_options">Χρήση τοποθεσίας …</string>
<string name="renderer_load_sucess">Ο απεικονιστής φορτώθηκε</string>
<string name="renderer_load_exception">Αδυναμία φόρτωσης απεικονιστή</string>
<string name="renderer_load_exception">Αδυναμία φόρτωσης απεικονιστή.</string>
<string name="renderers">Απεικονιστής διανυσμάτων</string>
<string name="renderers_descr">Επιλέξτε εμφάνιση απεικόνισης.</string>
<string name="renderers_descr">Επιλέξτε εμφάνιση απεικόνισης</string>
<string name="poi_context_menu_website">Εμφάνιση ιστοσελίδας ΣΕ</string>
<string name="poi_context_menu_call">Εμφάνιση τηλεφώνου ΣΕ</string>
<string name="website">Ιστότοπος</string>
@ -568,7 +554,7 @@
<string name="no_vector_map_loaded">Οι διανυσματικοί χάρτες δεν φορτώθηκαν</string>
<string name="gpx_files_not_found">Δεν βρέθηκαν αρχεία GPX στον κατάλογο ιχνών</string>
<string name="layer_gpx_layer">Αρχεία GPX…</string>
<string name="error_reading_gpx">Αδυναμία ανάγνωσης δεδομένων GPX</string>
<string name="error_reading_gpx">Αδυναμία ανάγνωσης δεδομένων GPX.</string>
<string name="vector_data">Διανυσματικοί χάρτες χωρίς σύνδεση</string>
<string name="transport_context_menu">Αναζήτηση ΜΜΜ στη στάση</string>
<string name="poi_context_menu_modify">Τροποποίηση ΣΕ</string>
@ -583,7 +569,7 @@
<string name="fav_file_to_load_not_found">Δεν βρέθηκε αρχείο GPX που να περιέχει αγαπημένα στο {0}</string>
<string name="fav_saved_sucessfully">Τα αγαπημένα αποθηκεύτηκαν στο {0}</string>
<string name="no_fav_to_save">Δεν υπάρχουν αγαπημένα σημεία προς αποθήκευση</string>
<string name="error_occurred_loading_gpx">Αδυναμία φόρτωσης του GPX</string>
<string name="error_occurred_loading_gpx">Αδυναμία φόρτωσης του GPX.</string>
<string name="send_report">Αποστολή αναφοράς</string>
<string name="none_region_found">Αδυναμία εύρεσης κατεβασμένων χαρτών στην κάρτα μνήμης.</string>
<string name="poi_namefinder_query_empty">Πληκτρολογήστε για να βρείτε ΣΕ</string>
@ -1405,7 +1391,7 @@
<string name="days_behind">ημέρες πίσω</string>
<string name="back_to_map">Πίσω στο χάρτη</string>
<string name="share_note">Κοινή χρήση σημείωσης</string>
<string name="notes">Σημειώσεις OSM</string>
<string name="notes">Σημειώσεις A/V</string>
<string name="roads_only">Μόνο δρόμοι</string>
<string name="free">"Ελεύθερο %1$s "</string>
<string name="device_memory">Μνήμη συσκευής</string>
@ -2115,8 +2101,8 @@
<string name="download_files_error_not_enough_space">Δεν υπάρχει αρκετός χώρος!
\n {3} MB απαιτούνται προσωρινά, {1} MB μόνιμα.
\n (Μόνο {2} MB είναι διαθέσιμα.)</string>
<string name="download_files_question_space_with_temp">"Λήψη {0} αρχείου(ων);
\n {3} MB χρησιμοποιούνται προσωρινά, {1} MB μόνιμα. (Από τα {2} MB.)"</string>
<string name="download_files_question_space_with_temp">Λήψη {0} αρχείου(ων);
\n{3} MB χρησιμοποιούνται προσωρινά, {1} MB μόνιμα. (Από τα {2} MB.)</string>
<string name="upload_osm_note">Ανέβασμα σημείωσης OSM</string>
<string name="map_marker_1st">Πρώτος δείκτης χάρτη</string>
<string name="map_marker_2nd">Δεύτερος δείκτης χάρτη</string>
@ -2133,7 +2119,7 @@
<string name="map_markers">Δείκτες χάρτη</string>
<string name="map_marker">Δείκτης χάρτη</string>
<string name="consider_turning_polygons_off">Συνιστάται η απενεργοποίηση απόδοσης πολυγώνου.</string>
<string name="rendering_attr_showMtbRoutes_name">Να εμφανίζονται οι διαδρομές ορεινής ποδηλασίας;</string>
<string name="rendering_attr_showMtbRoutes_name">Εμφάνιση μονοπατιών ποδηλασίας βουνού</string>
<string name="show_polygons">Να εμφανίζονται τα πολύγωνα</string>
<string name="find_parking">Εύρεση χώρου στάθμευσης</string>
<string name="shared_string_status">Κατάσταση</string>
@ -2531,7 +2517,7 @@
<string name="av_camera_focus_hiperfocal">Υπερεστιακή εστίαση</string>
<string name="av_camera_focus_macro">Κατάσταση μακροεστίασης (κοντινής)</string>
<string name="av_camera_pic_size">Μέγεθος εικόνας κάμερας</string>
<string name="av_camera_pic_size_descr">Ορίστε μέγεθος εικόνας κάμερας.</string>
<string name="av_camera_pic_size_descr">Ορίστε μέγεθος εικόνας κάμερας</string>
<string name="plugin_install_needs_network">Χρειάζεται να συνδεθείτε με το διαδίκτυο για να εγκαταστήσετε αυτό το πρόσθετο.</string>
<string name="get_plugin">Λήψη</string>
<string name="use_fast_recalculation">Επανυπολογισμός έξυπνης διαδρομής</string>
@ -2711,7 +2697,7 @@
<string name="quick_action_btn_tutorial_title">Αλλαγή θέσης πλήκτρου</string>
<string name="quick_action_btn_tutorial_descr">Πιέζοντας και μετακινώντας το πλήκτρο, αλλάζετε τη θέση του στην οθόνη.</string>
<string name="shared_string_action_name">Όνομα ενέργειας</string>
<string name="mappilary_no_internet_desc">Οι φωτογραφίες του Mapillary είναι διαθέσιμος μόνο όταν είσαστε σε σύνδεση</string>
<string name="mappilary_no_internet_desc">Οι φωτογραφίες του Mapillary είναι διαθέσιμες μόνο όταν είσαστε σε σύνδεση.</string>
<string name="retry">Ξαναπροσπαθήστε</string>
<string name="add_route_points">Προσθήκη σημείων διαδρομής</string>
<string name="add_waypoint">Προσθήκη σημείου διαδρομής</string>
@ -3244,7 +3230,7 @@
<string name="routing_attr_difficulty_preference_name">Προτιμώμενη δυσκολία</string>
<string name="routing_attr_difficulty_preference_description">Προτιμήστε διαδρομές αυτής της δυσκολίας, αν και η διαδρομή σε πιο δύσκολες ή εύκολες πίστες είναι ακόμα εφικτές, εάν είναι πιο σύντομες.</string>
<string name="routing_attr_freeride_policy_name">Εκτός πίστας</string>
<string name="routing_attr_freeride_policy_description">"\'Ελεύθερες\' καθώς και \'εκτός πίστας\' είναι ανεπίσημες διαδρομές και περάσματα. Συνήθως ακαθάριστες, ασυντήρητες και μη ελεγμένες το πρωί. Μπαίνετε με δικό σας κίνδυνο."</string>
<string name="routing_attr_freeride_policy_description">\'Ελεύθερες\' καθώς και \'εκτός πίστας\' είναι ανεπίσημες διαδρομές και περάσματα. Συνήθως ακαθάριστες, ασυντήρητες και μη ελεγμένες το πρωί. Μπαίνετε με δικό σας κίνδυνο.</string>
<string name="configure_profile_info">Ρυθμίσεις για την κατατομή (προφίλ):</string>
<string name="utm_format_descr">Το OsmAnd χρησιμοποιεί το πρότυπο UTM, το οποίο είναι παρόμοιο αλλά όχι ίδιο με τη μορφή UTM NATO.</string>
<string name="shared_string_example">Παράδειγμα</string>
@ -3399,7 +3385,7 @@
<string name="track_saved">Αποθηκεύτηκε το ίχνος</string>
<string name="empty_filename">Το όνομα του αρχείου είναι κενό</string>
<string name="shared_string_revert">Επαναφορά</string>
<string name="quick_action_directions_from_desc">"Πλήκτρο που ορίζει το κέντρο της οθόνης ως σημείο εκκίνησης. Θα σας ζητηθεί να ορίσετε προορισμό ή να ξεκινήσετε υπολογισμό διαδρομής."</string>
<string name="quick_action_directions_from_desc">Πλήκτρο που ορίζει το κέντρο της οθόνης ως σημείο εκκίνησης. Θα σας ζητηθεί να ορίσετε προορισμό ή να ξεκινήσετε υπολογισμό διαδρομής.</string>
<string name="rendering_attr_showCycleNodeNetworkRoutes_name">Εμφάνιση δικτύου κόμβων διαδρομών ποδηλάτων</string>
<string name="clear_confirmation_msg">Καθαρισμός του %1$s;</string>
<string name="download_map_dialog">Ερώτημα λήψης χάρτη</string>
@ -3495,4 +3481,17 @@
<string name="live_monitoring_time_buffer">Ενδιάμεσος χρόνος</string>
<string name="live_monitoring_tracking_interval">Διάστημα παρακολούθησης</string>
<string name="search_offline_geo_error">Αδυναμία ανάλυσης γεωγραφικού στόχου \'%s\'.</string>
<string name="rearrange_categories">Αναδιάταξη κατηγοριών</string>
<string name="create_custom_categories_list_promo">Μπορείτε να προσθέσετε προσαρμοσμένες κατηγορίες να απόκρυψεται κατηγορίες που δεν βρίσκεται απαραίτητες και να αλλάξετε τη σειρά ταξινόμησης του καταλόγου. Ο κατάλογος μπορεί να εισαχθεί και να εξαχθεί με προφίλ.</string>
<string name="add_new_custom_category_button_promo">Μπορείτε να προσθέσετε μια νέα προσαρμοσμένη κατηγορία επιλέγοντας μία ή μερικές απαιτούμενες κατηγορίες.</string>
<string name="reset_to_default_category_button_promo">Επαναφορά στην προεπιλογή θα διαγράψει όλες τις προσαρμοσμένες κατηγορίες και θα επαναφέρει τη σειρά ταξινόμησης στην προεπιλεγμένη κατάσταση μετά την εγκατάσταση.</string>
<string name="shared_string_available">Διαθέσιμα</string>
<string name="add_custom_category">Προσθήκη προσαρμοσμένης κατηγορίας</string>
<string name="rendering_attr_streetLightingNight_name">Εμφάνιση μόνο τη νύχτα</string>
<string name="plugin_prefs_reset_successful">Όλες οι ρυθμίσεις πρόσθετων επαναφέρθηκαν στην προεπιλεγμένη κατάσταση.</string>
<string name="profile_prefs_reset_successful">Όλες οι ρυθμίσεις προφίλ επαναφέρθηκαν στην προεπιλεγμένη κατάσταση.</string>
<string name="ltr_or_rtl_combine_via_slash">%1$s/%2$s</string>
<string name="sunset_at">Ηλιοβασίλεμα στις %1$s</string>
<string name="sunrise_at">Ανατολή του ηλίου στις %1$s</string>
<string name="accessibility_mode_disabled">Η λειτουργία προσβασιμότητας απενεργοποιήθηκε στο σύστημά σας.</string>
</resources>

View file

@ -477,7 +477,7 @@ Lon: %2$s</string>
<string name="share_note">Kunhavigi noton</string>
<string name="location_on_map">Loko:\nLat %1$s\nLon %2$s</string>
<string name="watch">Montri</string>
<string name="notes">Notoj</string>
<string name="notes">Sonaj/videaj notoj</string>
<string name="online_map">Enreta mapo</string>
<string name="roads_only">Nur vojoj</string>
<string name="rendering_attr_pisteRoutes_name">Descendejoj</string>
@ -495,8 +495,8 @@ Lon: %2$s</string>
<string name="edit_group">Redakti grupon</string>
<string name="parking_place">Parkumejo</string>
<string name="rendering_attr_pisteGrooming_name">Skivoja prepar-speco</string>
<string name="world_ski_missing">Por montri skiadajn mapojn, speciala eksterreta mapo devas esti elŝutita</string>
<string name="nautical_maps_missing">Por montri ŝipveturadajn mapojn, speciala eksterreta mapo devas esti elŝutita</string>
<string name="world_ski_missing">Elŝutu la specialan eksterretan mapon por vidigi skiadajn objektojn.</string>
<string name="nautical_maps_missing">Elŝutu la specialan eksterretan mapon por vidigi ŝipveturadajn objektojn.</string>
<string name="remove_the_tag">FORIGI LA ETIKEDON</string>
<string name="version_settings">Kompilaĵoj</string>
<string name="version_settings_descr">Elŝuti antaŭ-alfajn versiojn.</string>
@ -819,7 +819,7 @@ Lon: %2$s</string>
<string name="routing_attr_height_description">Agordi maksimuman permesan alton de veturilo.</string>
<string name="android_19_location_disabled">Ekde la versio 4.4 (KitKat) de Android, la antaŭa dosierujo (%s) estas evitinda. Ĉu kopii ĉiujn dosierojn de OsmAnd al la nova dosierujo\?
\n Rimarko 1: viaj malnovaj dosieroj ne estos ŝanĝitaj (tamen vi povos forigi ilin permane).
\n Rimarko 2: dosieroj en la nova loko ne povos esti uzitaj ambaŭ per OsmAnd kaj OsmAnd+.</string>
\n Rimarko 2: dosieroj en la nova loko ne povos esti uzataj ambaŭ fare de OsmAnd kaj OsmAnd+.</string>
<string name="copying_osmand_one_file_descr">Kopiado de dosiero (%s) al la nova loko…</string>
<string name="copying_osmand_files_descr">Kopiado de datum-dosieroj de OsmAnd al la nova dosierujo (%s)…</string>
<string name="copying_osmand_files">Kopiado de datum-dosieroj de OsmAnd…</string>
@ -869,7 +869,7 @@ Lon: %2$s</string>
<string name="driving_region">Trafika regiono</string>
<string name="driving_region_descr">Elekti trafikan regionon: Usono, Eŭropo, Britujo, Azio kaj aliaj.</string>
<string name="speak_title">Anoncado…</string>
<string name="speak_descr">Agordi anoncojn pri strataj nomoj, trafikaj avertoj (devigaj haltejoj, strat-ĝiboj), rapid-kontroliloj, rapidlimoj.</string>
<string name="speak_descr">Agordi anoncojn pri strataj nomoj, trafikaj avertoj (devigaj haltejoj, stratĝiboj), rapidkontroliloj kaj rapidlimoj.</string>
<string name="speak_street_names">Nomoj de stratoj (parolsintezitaj)</string>
<string name="speak_speed_limit">Rapidlimoj</string>
<string name="speak_cameras">Rapid-kontroliloj</string>
@ -935,7 +935,7 @@ Lon: %2$s</string>
<string name="osmand_background_plugin_description">Montras agordojn pri aktivigi spuradon kaj navigadon fone per periode aktivigi GPS (ĉe malŝaltita ekrano).</string>
<string name="contribution_activity">Instaleblaj versioj</string>
<string name="accessibility_options">Alireblecaj agordoj</string>
<string name="osmand_accessibility_description">Tiu ĉi kromprogramo ebligas uzi alireblecajn ilojn senpere en OsmAnd. Ĝi plifaciligas ekz. agordi rapidon de parolsintezitaj dialogaj helpoj, uzi montril-butonojn por navigado sur ekrano, uzi stirglobon por skalado, aŭ uzi tekst-al-voĉajn sciigojn ekz. por aŭtomate anonci vian pozicion.</string>
<string name="osmand_accessibility_description">Ebligas uzi alireblecajn eblaĵojn senpere en OsmAnd. Ĝi plifaciligas ekz. agordi rapidon de parolsintezitaj dialogaj helpoj, uzi montrilbutonojn por navigado sur ekrano, uzi stirglobon por skalado, aŭ uzi voĉajn sciigojn ekz. por aŭtomate anonci vian pozicion.</string>
<string name="select_address_activity">Enigu adreson</string>
<string name="favourites_list_activity">Elekti ŝatatan</string>
<string name="local_openstreetmap_act_title">Modifoj de OSM</string>
@ -960,7 +960,7 @@ Lon: %2$s</string>
<string name="recording_photo_description">Foto %1$s %2$s</string>
<string name="av_def_action_picture">Fari foton</string>
<string name="recording_context_menu_precord">Fari foton</string>
<string name="dropbox_plugin_description">La kromprogramo Dropbox ebligas al vi samtempigi kursojn kaj sonajn/videajn notojn kun via konto ĉe Dropbox.</string>
<string name="dropbox_plugin_description">Samtempigi kursojn kaj sonajn/videajn notojn kun via konto ĉe Dropbox.</string>
<string name="dropbox_plugin_name">Dropbox kromprogramo</string>
<string name="intermediate_points_change_order">Ŝanĝi ordon</string>
<string name="srtm_paid_version_msg">Bonvolu konsideri aĉeti la kromprogramon “nivelkurboj” en la vendejo por subteni ĝian pluan evoluigon.</string>
@ -1517,13 +1517,14 @@ Proporcia memoro %4$s MB (limito de Android %5$s MB, Dalvik %6$s MB).</string>
\n
\nAktivigo de tiu ĉi map-vido ŝanĝas map-aspekton al vintro kaj skiado, montranta ĉiun terenon kovritan de neĝo. La vidon oni povas malaktivigi, per malaktivigi la kromprogramon tie ĉi, aŭ per ŝanĝi de map-aspekto en la menuo agordi mapon.</string>
<string name="osmand_parking_plugin_name">Parkumeja pozicio</string>
<string name="osmand_parking_plugin_description">Tiu ĉi kromprogramo plifaciligas al vi registri kie via aŭto estas parkumata kaj kiom da parkumeja tempo restas (se ĝi estas limigita). Ambaŭ loko kaj tempo estas montrataj en la stirpanelo de OsmAnd kaj sur la fenestraĵo sur la mapekrano. Memorigo povas esti aldonita al la Androida kalendaro.</string>
<string name="osmand_parking_plugin_description">Ebligas al vi registri kie via aŭto estas parkumata kaj kiom da parkumeja tempo restas.
\n Ambaŭ loko kaj tempo estas montrataj en la stirpanelo de kaj sur la fenestraĵo sur la mapekrano. Memorigo povas esti aldonita al la Androida kalendaro.</string>
<string name="osmand_distance_planning_plugin_name">Kalkulilo de distanco kaj planilo</string>
<string name="osmand_distance_planning_plugin_description">Tiu ĉi kromprogramo liveras fenestraĵon por krei kursojn per tuŝi sur la mapo aŭ per uzi aŭ modifi ekzistajn GPX-dosierojn kaj por por plani vojaĝon kaj mezuri distancon inter punktoj. Rezultoj povas esti konservitaj kiel GPX-dosierojn, kiujn oni povas estonte uzi por gvidado.</string>
<string name="osmand_distance_planning_plugin_description">Ebligas difini kursojn per frapeti la mapon kaj modifi ekzistajn GPXdosierojn por plani vojaĝon kaj mezuri distancon inter punktoj. Rezultoj povas esti konservitaj kiel GPXdosierojn, kiujn oni povas estonte uzi por gvidado.</string>
<string name="osm_settings">OpenStreetMap-redaktilo</string>
<string name="osm_editing_plugin_description">Per tiu ĉi kromprogramo OsmAnd povas esti uzata por kontribui al OSM per krei aŭ redakti OSM-interesejojn, per raporti aŭ komenti OSM-rimarkojn, per aldoni registritajn GPX-dosierojn. OSM estas komunuma, tutmonda, publika map-projekto. Por detaloj, legu: https://openstreetmap.org. Aktiva kontribuado estas laŭdinda, kaj vi povas kontribui senpere per OsmAnd, se vi entajpos viajn OSM-ajn ensalutilojn en la aplikaĵo.</string>
<string name="osm_editing_plugin_description">Kontribuu al OSM per krei aŭ modifi punktojn (ekz. vendejojn, vidindaĵojn, hidrantojn), malfermi aŭ komenti rimarkojn kaj alŝuti registritajn GPXspurojn per OsmAnd. OpenStreetMap (OSM) estas komunuma, tutmonda kaj publika mapprojekto. Necesas krei konton ĉe OpenStreetMap.org por kontribui.</string>
<string name="debugging_and_development">OsmAnd-programistilo</string>
<string name="osmand_development_plugin_description">Montras agordojn por programado kaj senerarigado kiel testado aŭ simulado de kurso, efikeco de ekranbildigado, aŭ voĉaj anoncoj. Tiuj ĉi agordoj taŭgas por programistoj kaj ne estas bezonataj por norma uzanto.</string>
<string name="osmand_development_plugin_description">Agordoj pri evoluigo kaj senerarigado de OsmAnd: simuladi kurson, efikeco de ekranbildigado, voĉaj anoncoj. Destinitaj por programistoj, ne bezonataj por kutimaj uzantoj.</string>
<string name="lang_en_gb">Angla (Brita)</string>
<string name="level_to_switch_vector_raster_descr">Uzi kahelajn mapojn de tiu ĉi pligrandigo.</string>
<string name="level_to_switch_vector_raster">Minimuma vektora skal-nivelo</string>
@ -3455,4 +3456,19 @@ Indikas lokon: %1$s x %2$s"</string>
<string name="multimedia_photo_play_sound">Sono de fotilo</string>
<string name="osm_authorization_success">Rajtigo sukcesis</string>
<string name="monitoring_min_speed_descr_recommendation">Konsilo: provu unue uzi la movsentilon per agordi la filtrilon “minimuma delokiĝo” (B) por ebla pli bona rezulto kaj malplia perdo de datumoj. Se viaj spuroj plue estos bruaj je malalta rapido, provu enigi tien ĉi malnulajn valorojn. Bonvolu rimarki, ke iuj mezuroj povas tute ne enhavi rapidojn (uzante retbazitajn pozicitrovajn servojn), do via spuro estos malplena.</string>
<string name="monitoring_min_speed_descr_remark">Rimarko: kontrolo pri rapido &gt; 0: plejparto de GPScirkvitaroj raportas valoron de rapido nur kiam la algoritmo determinas ke vi moviĝas, kaj raportas neniun valoron alie. Per uzi la valoron &gt; 0 en tiu ĉi filtrilo, la movsentilo de la GPScirkvitaro estos uzata. Sed eĉ kiam ĝi ne estos filtrita tie ĉi, tiu ĉi funkcio plue estos uzata por analizi GPXspuron por kalkuli la valoron “korektita distanco” distanco registrita dum moviĝo.</string>
<string name="monitoring_min_accuracy_descr">Registritaj estos nur punktoj mezuritaj kun la minimuma precizo (en metroj kiel raportitaj fare de Androido per la GPScirkvitaro). Precizo rilatas al disiĝo de valoro dum ripetaj mezuroj kaj ne ĉiam rilatas al ekzakteco, kiu determinas proksimecon de mezuroj al via vera pozicio.</string>
<string name="monitoring_min_accuracy_descr_side_effect">Kromefiko: pro filtri laŭ precizo, iuj punktoj mezuritaj ekz. sub pontoj aŭ arboj, inter altaj konstruaĵoj, aŭ dum malbonaj veteraj kondiĉoj povos manki.</string>
<string name="monitoring_min_accuracy_descr_recommendation">Konsilo: estas malfacile antaŭscii pri kio estos registra kaj kio estos filtrita, do estus bone ne aktivigi tiun ĉi filtrilon.</string>
<string name="shared_string_available">Disponebla</string>
<string name="add_custom_category">Aldoni propran kategorion</string>
<string name="rendering_attr_streetLightingNight_name">Montri nur dum nokto</string>
<string name="plugin_prefs_reset_successful">Rekomencigis ĉiujn agordojn pri kromprogramoj.</string>
<string name="profile_prefs_reset_successful">Rekomencigis ĉiujn agordojn pri profiloj.</string>
<string name="ltr_or_rtl_combine_via_slash">%1$s/%2$s</string>
<string name="sunset_at">Sunsubiro je %1$s</string>
<string name="sunrise_at">Sunleviĝo je %1$s</string>
<string name="monitoring_min_distance_descr_recommendation">Konsilo: provu agordi ĝin al 5 metroj se vi ne bezonas registri pli detalajn movojn kaj ne volas registri datumojn dum restado.</string>
<string name="live_monitoring_time_buffer">Tempbufro</string>
<string name="live_monitoring_tracking_interval">Registrada intertempo</string>
</resources>

View file

@ -3482,4 +3482,15 @@ Lon %2$s</string>
<string name="multimedia_use_system_camera">Usar la aplicación del sistema</string>
<string name="multimedia_photo_play_sound">Reproducir sonido al fotografiar</string>
<string name="osm_authorization_success">Autorización exitosa</string>
<string name="rearrange_categories">Reordenar categorías</string>
<string name="create_custom_categories_list_promo">Puedes añadir categorías personalizadas, ocultar las categorías que no parezcan necesarias y cambiar el orden de clasificación de la lista. La lista puede ser importada y exportada con perfiles.</string>
<string name="add_new_custom_category_button_promo">Puedes añadir una nueva categoría personalizada marcando una o varias categorías necesarias.</string>
<string name="shared_string_available">Disponible</string>
<string name="add_custom_category">Añadir categoría personalizada</string>
<string name="rendering_attr_streetLightingNight_name">Mostrar solo de noche</string>
<string name="plugin_prefs_reset_successful">Todos los ajustes del complemento se restauraron al estado predefinido.</string>
<string name="profile_prefs_reset_successful">Todos los ajustes del perfil se restauraron al estado predefinido.</string>
<string name="ltr_or_rtl_combine_via_slash">%1$s/%2$s</string>
<string name="sunset_at">Atardecer a las %1$s</string>
<string name="sunrise_at">Amanecer a las %1$s</string>
</resources>

View file

@ -3453,4 +3453,16 @@ représentant la zone : %1$s x %2$s</string>
<string name="osm_edits_view_path">Menu &gt; Mes lieux favoris &gt; Modifications OSM</string>
<string name="monitoring_min_speed_descr_remark">Remarque : vérification de vitesse &gt; 0. La plupart des puces GPS fournissent une vitesse uniquement lorsque vous êtes en mouvement. Par conséquent, l\'indication du paramètre &gt; 0 pour ce filtre utilise la détection de mouvement par la puce GPS. Mais même s\'il n\'est pas filtré ici au moment de l\'enregistrement, nous utilisons toujours cette fonctionnalité dans notre analyse des traces GPX pour déterminer la distance corrigée, c\'est-à-dire que la valeur affichée dans ce champ est la distance enregistrée en déplacement.</string>
<string name="monitoring_min_distance_descr_side_effect">Effet secondaire : les périodes de repos ne seront pas enregistrées ou seulement par un point. De petits mouvements, comme des pas sur le côté, pourront être ignorés. Votre fichier contiendra moins d\'informations exploitables en post-traitement et aura des statistiques moins exactes (éliminant les points redondants mais conservant les erreurs de position dues à une mauvaise réception ou aux artefacts de la puce GPS).</string>
<string name="shared_string_available">Disponible</string>
<string name="add_custom_category">Ajouter une catégorie personnelle</string>
<string name="rendering_attr_streetLightingNight_name">Afficher seulement de nuit</string>
<string name="plugin_prefs_reset_successful">Tous les paramètres du greffon ont été restaurés à leurs valeurs par défaut.</string>
<string name="profile_prefs_reset_successful">Tous les paramètres du profile ont été restaurés à leurs valeurs par défaut.</string>
<string name="ltr_or_rtl_combine_via_slash">%1$s/%2$s</string>
<string name="sunset_at">Coucher de soleil à %1$s</string>
<string name="sunrise_at">Lever de soleil à %1$s</string>
<string name="rearrange_categories">Réorganiser les catégories</string>
<string name="create_custom_categories_list_promo">Vous pouvez ajouter des catégories personnelles, masquer les catégories que vous ne souhaitez pas utiliser et les trier. La liste des catégories peut être importée et exportée grâce aux profils.</string>
<string name="reset_to_default_category_button_promo">Réinitialiser supprimera toutes les catégories personnelles et réinitialisera le tri.</string>
<string name="accessibility_mode_disabled">Le mode d\'accessibilité est désactivé dans votre système.</string>
</resources>

View file

@ -3437,4 +3437,17 @@
<string name="button_rate">דירוג</string>
<string name="logcat_buffer_descr">כאן ניתן לצפות ולשתף את תיעוד יומני היישומון</string>
<string name="permission_is_required">נדרשת הרשאה כדי להשתמש באפשרות הזו.</string>
<string name="rearrange_categories">סידור הקטגוריות מחדש</string>
<string name="create_custom_categories_list_promo">ניתן להוסיף קטגוריות מותאמות אישית, להסתיר קטגוריות שאינן נחוצות לך ולשנות את סדר הרשימה. ניתן לייבא את הרשימה ולייצא אותה עם פרופילים.</string>
<string name="add_new_custom_category_button_promo">ניתן להוסיף קטגוריה חדשה מותאמת אישית על ידי בחירה בקטגוריה נחוצה אחת או יותר.</string>
<string name="reset_to_default_category_button_promo">איפוס לבררת מחדל ימחק קטגוריות מותאמות אישית ויאפס את הסדר למצב בררת המחדל כמו לאחר ההתקנה.</string>
<string name="shared_string_available">זמין</string>
<string name="add_custom_category">הוספת קטגוריה מותאמת אישית</string>
<string name="rendering_attr_streetLightingNight_name">הצגה רק בלילה</string>
<string name="plugin_prefs_reset_successful">כל הגדרות התוסף שוחזרו למצב בררת המחדל.</string>
<string name="profile_prefs_reset_successful">כל הגדרות הפרופיל אופסו למצב בררת המחדל.</string>
<string name="ltr_or_rtl_combine_via_slash">%1$s/%2$s</string>
<string name="sunset_at">שקיעה ב־%1$s</string>
<string name="sunrise_at">זריחה ב־%1$s</string>
<string name="accessibility_mode_disabled">מצב נגישות מושבת במערכת שלך.</string>
</resources>

View file

@ -3448,4 +3448,15 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük
<string name="select_nav_icon_descr">Az ikon csak navigáció vagy mozgás közben lesz látható.</string>
<string name="select_map_icon_descr">A térképikon csak a térképen jelenik meg, navigáció közben pedig navigációs ikonra vált.</string>
<string name="logcat_buffer_descr">Az alkalmazás részletes naplóinak ellenőrzése és megosztása</string>
<string name="permission_is_required">A beállítás használatához engedélyre van szükség.</string>
<string name="rearrange_categories">Kategóriák átrendezése</string>
<string name="create_custom_categories_list_promo">Hozzáadhat egyedi kategóriát, elrejtheti a fölöslegesnek ítélt kategóriákat, és módosíthatja a lista sorrendjét. A lista a profilokkal importálható és exportálható.</string>
<string name="add_new_custom_category_button_promo">Egy vagy több szükséges kategória kijelölésével hozzáadhat egy egyedi kategóriát.</string>
<string name="shared_string_available">Rendelkezésre áll</string>
<string name="add_custom_category">Egyedi kategória hozzáadása</string>
<string name="rendering_attr_streetLightingNight_name">Csak éjszaka jelenjék meg</string>
<string name="plugin_prefs_reset_successful">Minden bővítménybeállítás visszaállt az alapértelmezett helyzetbe.</string>
<string name="profile_prefs_reset_successful">Minden profilbeállítás visszaállt az alapértelmezett helyzetbe.</string>
<string name="sunset_at">Napnyugta: %1$s</string>
<string name="sunrise_at">Napkelte: %1$s</string>
</resources>

View file

@ -247,7 +247,7 @@
<string name="poi_music">Tónlistarverslun</string>
<string name="poi_musical_instrument">Hljóðfæri</string>
<string name="poi_newsagent">Blaðasali</string>
<string name="poi_organic">Lífrænt fæði</string>
<string name="poi_organic">Lífrænar vörur</string>
<string name="poi_outdoor">Útivistarverslun</string>
<string name="poi_photo">Ljósmyndavöruverslun</string>
<string name="poi_ticket">Miðasala</string>
@ -3765,4 +3765,10 @@
<string name="poi_volcano_number_of_eruptions">Fjöldi gosa</string>
<string name="poi_memorial_ghost_bike">Draugahjól (minnismerki um látinn hjólreiðamann)</string>
<string name="poi_paintball">Litbolti</string>
<string name="poi_volcano_type_mud">Leirgígur</string>
<string name="poi_mountain_rescue">Fjallabjörgun</string>
<string name="poi_bowling_alley">Keiluhöll</string>
<string name="poi_piste_ref">Viðmiðunarnúmer leiðar</string>
<string name="poi_resort_hunting">Grunnbúðir veiðimanna</string>
<string name="poi_shop_security">Öryggisvöruverslun</string>
</resources>

View file

@ -3492,4 +3492,17 @@ Stendur fyrir svæði: %1$s x %2$s</string>
<string name="monitoring_min_distance_descr">Þessi sía kemur í veg fyrir að tvíteknir punktar séu skráðir ef of lítil raunveruleg hreyfing hefur átt sér stað, þetta gerir ferla áferðarfallegri ef ekki á að eftirvinna þá.</string>
<string name="monitoring_min_distance_descr_side_effect">Aukaverkanir: Tímabil í hvíld eru alls ekki skráð eða þá með aðeins einum punkti. Litlar (raunverulegar) hreyfingar (t.d. til hliðar, til að merkja mögulega hliðarleiðir leiðar) gætu síast í burtu. Skráin þín inniheldur minni upplýsingar til eftirvinnslu, og er með verri tölfræði þar sem umframpunktar eru síaðir út á meðan skráningu stendur, á meðan mögulega er verið að geyma skemmdar upplýsingar vegna lélegrar móttöku eða truflana í GPS kubbasetti.</string>
<string name="monitoring_min_distance_descr_recommendation">Ábending: Stilling upp á 5 metra gæti virkað vel ef þú hefur ekki þörf fyrir meiri nákvæmni og ef þú vilt koma í veg fyrir að verið sé að skrá gögn á meðan staldrað er við.</string>
<string name="rearrange_categories">Endurraða flokkum</string>
<string name="create_custom_categories_list_promo">Þú getur bætt við sérsniðnum flokkum, falið flokka sem þér finnast ekki nauðsynlegir og breytt röðun listans. Listann má flytja inn og út með forsniðum.</string>
<string name="add_new_custom_category_button_promo">Þú getur bætt við nýjum sérsniðnum flokki með því að velja einn eða nokkra nauðsynlega flokka.</string>
<string name="shared_string_available">Tiltækt</string>
<string name="add_custom_category">Bæta við sérsniðnum flokki</string>
<string name="rendering_attr_streetLightingNight_name">Sýna aðeins á nóttunni</string>
<string name="plugin_prefs_reset_successful">Allar viðbótarstillingar aftur á sjálfgefna stöðu.</string>
<string name="profile_prefs_reset_successful">Allar stillingar sniðs endurheimtar í sjálfgefina stöðu.</string>
<string name="ltr_or_rtl_combine_via_slash">%1$s/%2$s</string>
<string name="sunset_at">Sólsetur kl. %1$s</string>
<string name="sunrise_at">Sólarupprás kl. %1$s</string>
<string name="reset_to_default_category_button_promo">Endurstilling á sjálfgefið mun eyða öllum sérsniðnum flokkum og setja röðun í upprunalega stöðu eftir uppsetningu.</string>
<string name="accessibility_mode_disabled">Altækur aðgangur er óvirkur á kerfinu þínu.</string>
</resources>

View file

@ -3421,8 +3421,8 @@ Rappresenta l\'area: %1$s x %2$s</string>
<string name="ltr_or_rtl_combine">%1$s: %2$s</string>
<string name="ltr_or_rtl_combine_via_space">%1$s %2$s</string>
<string name="ltr_or_rtl_combine_via_colon">%1$s: %2$s</string>
<string name="file_does_not_contain_routing_rules">Il file \'%1$s\' non contiene regole di routing, si prega di scegliere un altro file.</string>
<string name="not_support_file_type_with_ext">Tipo di file non supportato. È necessario selezionare un file con estensione %1$s.</string>
<string name="file_does_not_contain_routing_rules">Il file \'%1$s\' non contiene regole di routing. Si prega di scegliere un altro file.</string>
<string name="not_support_file_type_with_ext">Seleziona un file con estensione %1$s supportata.</string>
<string name="import_from_file">Importa da file</string>
<string name="import_routing_file">Importa file di routing</string>
<string name="import_profile">Importa profilo</string>
@ -3443,5 +3443,17 @@ Rappresenta l\'area: %1$s x %2$s</string>
<string name="osm_edits_view_descr">È possibile visualizzare tutte le modifiche non caricate o le note OSM in Menu - I miei luoghi - Modifiche OSM. I punti caricati non vengono visualizzati in OsmAnd.</string>
<string name="app_mode_osm">OSM</string>
<string name="select_nav_icon_descr">L\'icona viene visualizzata solo durante la navigazione o in movimento.</string>
<string name="logcat_buffer_descr">Qui puoi vedere e condividere i log dell\'applicazione</string>
<string name="logcat_buffer_descr">Controlla e condividi i log dettagliati dell\'applicazione</string>
<string name="permission_is_required">Un permesso è richiesto per usare questa opzione.</string>
<string name="rearrange_categories">Sistema categorie</string>
<string name="create_custom_categories_list_promo">Puoi aggiungere categorie personalizzate, nascondere quelle che non trovi necessarie e cambiarne l\'ordine nell\'elenco. La lista può essere importata ed esportata con i profili.</string>
<string name="add_new_custom_category_button_promo">Puoi aggiugere una nuova categoria personalizzata selezionandone una o alcune altre.</string>
<string name="shared_string_available">Disponibile</string>
<string name="add_custom_category">Aggiungi categoria personalizzata</string>
<string name="rendering_attr_streetLightingNight_name">Mostra solo di notte</string>
<string name="plugin_prefs_reset_successful">Tutte le impostazioni dei plugin sono state riportate allo stato predefinito.</string>
<string name="profile_prefs_reset_successful">Tutte le impostazioni dei profili sono state riportate allo stato iniziale.</string>
<string name="ltr_or_rtl_combine_via_slash">%1$s/%2$s</string>
<string name="sunset_at">Tramonto alle %1$s</string>
<string name="sunrise_at">Alba alle %1$s</string>
</resources>

View file

@ -129,7 +129,7 @@ OsmAnd バージョンがインストールされています。全てのオフ
<string name="trace_rendering">レンダリング速度を表示</string>
<string name="daynight_mode_day">昼固定</string>
<string name="daynight_mode_night">夜固定</string>
<string name="daynight_mode_auto">の出/日の入</string>
<string name="daynight_mode_auto">出/日没</string>
<string name="daynight_mode_sensor">ライトセンサー</string>
<string name="daynight_descr">昼/夜モード切替ルールを選択します</string>
<string name="daynight">昼/夜モード切替</string>
@ -701,7 +701,8 @@ POIの更新は利用できません</string>
<string name="osmand_plus_short_description_80_chars">OSMオフライン、オンライン両対応、グローバルモバイルマップナビゲーション</string>
<string name="filterpoi_activity">POIフィルタを作成</string>
<string name="select_navigation_mode">トランスポートモードの選択:</string>
<string name="day_night_info_description">日の出: %1$s \n日の入: %2$s</string>
<string name="day_night_info_description">日出時刻: %1$s
\n日没時刻: %2$s</string>
<string name="day_night_info">昼/夜判別情報</string>
<string name="map_widget_vector_attributes">描画方法の属性</string>
<string name="map_widget_renderer">マップスタイル</string>
@ -951,9 +952,8 @@ POIの更新は利用できません</string>
<string name="global_settings">グローバル設定</string>
<string name="global_app_settings">アプリケーション全般の設定</string>
<string name="download_files_not_enough_space">ダウンロードするのに十分な空き領域がありません。%1$sMB(空き容量:%2$s)</string>
<string name="download_files_question_space">{0}個のファイルをダウンロード
必要なストレージ容量{1}MB
現在の空き容量{2}MB</string>
<string name="download_files_question_space">{0}個のファイルをダウンロードしますか?
\n必要なストレージ容量{1}MB 現在の空き容量{2}MB</string>
<string name="use_transparent_map_theme">透明なテーマ</string>
<string name="native_library_not_supported">ネイティブライブラリは、このデバイスでサポートされていません。</string>
<string name="init_native_library">ネイティブライブラリを初期化しています…</string>
@ -1831,11 +1831,11 @@ POIの更新は利用できません</string>
<string name="shared_string_move_down">下に移動</string>
<string name="finish_navigation">ナビゲーションの終了</string>
<string name="avoid_road">使用しない道路として指定</string>
<string name="storage_directory_readonly_desc">現在選択されているデータ保存フォルダーは読み取り専用です。保存フォルダーは一時的に内部メモリに設定されました。書き込み可能なストレージのフォルダを選択してください。</string>
<string name="storage_directory_readonly_desc">選択したデータ保存フォルダーが書き込み保護されているため、内部メモリに切り替えました。書き込み可能な保存用ディレクトリを選択してください。</string>
<string name="storage_directory_shared">共有記憶域</string>
<string name="full_report">より詳細なレポートは以下サイトにて</string>
<string name="recalculate_route">ルートの再計算</string>
<string name="open_street_map_login_and_pass">OpenStreetMapのログイン名とパスワード</string>
<string name="open_street_map_login_and_pass">OSMのログイン名とパスワード</string>
<string name="donations">寄付額</string>
<string name="osm_user_stat">編集数 %1$s, ランク %2$s, 総編集数 %3$s</string>
<string name="osm_editors_ranking">OSM編集者ランキング</string>
@ -1855,8 +1855,11 @@ POIの更新は利用できません</string>
<string name="map_markers_other">その他マーカー</string>
<string name="upload_anonymously">匿名でアップロード</string>
<string name="show_transparency_seekbar">透過タイプシークバーを表示</string>
<string name="download_files_error_not_enough_space">空き容量が足りません! 一時ファイルの置き場に {3}MB、保存のため {1}MBが必要です。(利用可能領域 {2}MB)</string>
<string name="download_files_question_space_with_temp">{0}個のファイルをダウンロードしますか? 一時的に {3}MBの空き容量が必要で、最終的には {1}MB使用します。 (利用可能領域 {2}MB)</string>
<string name="download_files_error_not_enough_space">空き容量が足りません!
\n一時ファイルの置き場に {3}MB、保存のため {1}MBが必要です。
\n(利用可能領域 {2}MB)</string>
<string name="download_files_question_space_with_temp">{0}個のファイルをダウンロードしますか?
\n一時的に {3}MBの空き容量が必要で、最終的には {1}MB使用します。 (利用可能領域 {2}MB)</string>
<string name="upload_osm_note_description">OSMメモのアップロードには、匿名またはあなたのOpenStreetMap.orgプロファイルを使用することが可能です。</string>
<string name="upload_osm_note">OSMメモをアップロード</string>
<string name="map_marker_1st">1番目のマップマーカー</string>
@ -1934,7 +1937,9 @@ POIの更新は利用できません</string>
<string name="osm_live_subscribe_btn">サブスクリプション契約をする</string>
<string name="osm_live_subscription_settings">サブスクリプションの設定</string>
<string name="osm_live_ask_for_purchase">最初にOsmAnd Liveのサブスクリプション登録(定期有料契約)をしてください</string>
<string name="osm_live_header">このサブスクリプション(定期有料契約)により世界中のマップを時間毎更新することが可能です。 サブスクリプション収入の一部はOSMコミュニティに還元され、OSMに貢献した各ユーザーにも支払われます。 あなたがOsmAndとOSMを愛用し、サポートを受けたり支援を行いたいと思うのであれば、サブスクリプションはそのための最適解です。</string>
<string name="osm_live_header">このサブスクリプション(定期有料契約)により世界中のマップを時間毎更新することが可能です。
\n サブスクリプション収入の一部はOSMコミュニティに還元され、OSMに貢献した各ユーザーにも支払われます。
\nあなたがOsmAndとOSMを愛用し、サポートを受けたり支援を行いたいと思うのであれば、サブスクリプションはそのための最適解です。</string>
<string name="no_address_found">住所が未定義</string>
<string name="number_of_contributors">貢献者数</string>
<string name="number_of_edits">編集数</string>
@ -2041,8 +2046,8 @@ POIの更新は利用できません</string>
<string name="new_filter">新しいフィルター</string>
<string name="new_filter_desc">新しいフィルターの名前を入力してください、作成したフィルターは[カテゴリー]タブに追加されます。</string>
<string name="osm_live_payment_desc">サブスクリプションには月額料金がかかります。キャンセルはGoogle Playにていつでも可能です。</string>
<string name="donation_to_osm">OpenStreetMapコミュニティへの寄付</string>
<string name="donation_to_osm_desc">寄付金の一部は、OSMユーザー(OpenStreetMapの更新に貢献した人達)に送られます。サブスクリプション(定期有料契約)の値段は変わりません。</string>
<string name="donation_to_osm">OSMコミュニティへの寄付</string>
<string name="donation_to_osm_desc">寄付金の一部はOSMへの貢献者に送られます。サブスクリプション(定期有料契約)の値段は変わりません。</string>
<string name="osm_live_subscription_desc">サブスクリプションにより、毎時、毎日、毎週更新されたマップの利用と、世界中のマップを無制限にダウンロードすることが可能になります。</string>
<string name="get_it">入手する</string>
<string name="si_mi_meters">マイル/メートル</string>
@ -2216,15 +2221,15 @@ POIの更新は利用できません</string>
<string name="select_city">市町村名を選択</string>
<string name="select_postcode">郵便番号検索</string>
<string name="quick_action_auto_zoom">マップの自動ズームをON/OFF</string>
<string name="quick_action_auto_zoom_desc">移動速度に応じたマップの自動ズーム機能のON/OFFを切り替えす。</string>
<string name="quick_action_auto_zoom_on">マップの自動ズーム有効化</string>
<string name="quick_action_auto_zoom_off">マップの自動ズーム無効化</string>
<string name="quick_action_auto_zoom_desc">移動速度に応じたマップの自動ズーム機能のON/OFFを切り替えるボタンです。</string>
<string name="quick_action_auto_zoom_on">マップの自動ズームをONにする</string>
<string name="quick_action_auto_zoom_off">マップの自動ズームをOFFにする</string>
<string name="quick_action_add_destination">目的地を設定</string>
<string name="quick_action_replace_destination">目的地を置き換え</string>
<string name="quick_action_add_first_intermediate">最初の中間地点を追加</string>
<string name="quick_action_add_destination_desc">画面の中心を目的地として設定します。以前の目的地は最後に寄る経由地点として置き換わります。</string>
<string name="quick_action_add_destination_desc">画面の中心を目的地として設定するボタンです。以前の目的地は最後に寄る経由地点として置き換わります。</string>
<string name="quick_action_replace_destination_desc">アクションボタンをタップすると、画面中央アイコンの地点を新しい目的地として置き換えます。</string>
<string name="quick_action_add_first_intermediate_desc">画面中央アイコンの地点を最初の経由地点として追加します。</string>
<string name="quick_action_add_first_intermediate_desc">画面中央アイコンの地点を最初の経由地点として追加するボタンです。</string>
<string name="no_overlay">オーバーレイ無し</string>
<string name="no_underlay">アンダーレイ無し</string>
<string name="subscribe_email_error">エラー</string>
@ -2372,7 +2377,7 @@ POIの更新は利用できません</string>
<string name="quick_action_showhide_osmbugs_title">OSMメモの表示/非表示</string>
<string name="quick_action_osmbugs_show">OSMメモを表示</string>
<string name="quick_action_osmbugs_hide">OSMメモを非表示</string>
<string name="quick_action_showhide_osmbugs_descr">マップ画面でのOSMメモの表示と非表示を切り替えます。</string>
<string name="quick_action_showhide_osmbugs_descr">マップ画面でのOSMメモの表示/非表示を切り替えるボタンです。</string>
<string name="sorted_by_distance">距離順で並べ替え</string>
<string name="search_favorites">お気に入りで検索</string>
<string name="hillshade_menu_download_descr">標高の高低をグラデーション表示するには、陰影起伏図(Hillshade Overlay)マップのダウンロードが必要です。</string>
@ -2391,7 +2396,7 @@ POIの更新は利用できません</string>
<string name="translit_name_if_miss">%1$sの名前が欠落している場合、(他の文字で)翻字します</string>
<string name="translit_names">名称を翻字</string>
<string name="private_access_routing_req">目的地が専有エリア(私有地)内にあります。専有道路あるいは私道を通ることを許可しますか?</string>
<string name="quick_action_page_list_descr">作成したリスト順にマップスタイルを変更します。</string>
<string name="quick_action_page_list_descr">作成したリスト順にマップスタイルを変更するボタンです。</string>
<string name="nothing_found">見つかりませんでした</string>
<string name="nothing_found_descr">検索単語を変更したり、検索の距離を広げてみてください。</string>
<string name="increase_search_radius">検索範囲を拡大</string>
@ -2495,7 +2500,7 @@ POIの更新は利用できません</string>
<string name="order_by">並び順:</string>
<string name="marker_show_distance_descr">マップ画面でマーカーへの方向と距離を示す方法を選択します:</string>
<string name="do_not_use_animations">描画処理の省略</string>
<string name="do_not_use_animations_descr">アプリ内画面のアニメーション描写(各モーション)を無効化します。</string>
<string name="do_not_use_animations_descr">マップアニメーションをオフにします。</string>
<string name="map_orientation_change_in_accordance_with_speed">マップ向きのしきい値</string>
<string name="map_orientation_change_in_accordance_with_speed_descr">マップの向きが「移動方向」から「方位」に切り替わる速度を選択します。</string>
<string name="all_markers_moved_to_history">すべてのマップマーカーを履歴に移動</string>
@ -2536,10 +2541,10 @@ POIの更新は利用できません</string>
<string name="measurement_tool_action_bar">閲覧マップから計測したい各地点を選択</string>
<string name="measurement_tool">距離測定</string>
<string name="quick_action_resume_pause_navigation">ナビゲーションの再開/一時停止</string>
<string name="quick_action_resume_pause_navigation_descr">このボタンをタップすることでナビゲーションを一時停止または再開できます。</string>
<string name="quick_action_resume_pause_navigation_descr">ナビゲーションを一時停止または再開するボタンです。</string>
<string name="quick_action_show_navigation_finish_dialog">ナビゲーション終了の確認ダイアログを表示</string>
<string name="quick_action_start_stop_navigation">ナビゲーションの開始/停止</string>
<string name="quick_action_start_stop_navigation_descr">このボタンをタップするとナビゲーションを開始または終了します。</string>
<string name="quick_action_start_stop_navigation_descr">ナビゲーションを開始または終了するボタンです。</string>
<string name="access_map_linked_to_location">マップの場所にリンクされています</string>
<string name="rendering_value_darkyellow_name">ダークイエロー</string>
<string name="rendering_value_translucent_pink_name">半透明ピンク</string>
@ -2602,7 +2607,7 @@ POIの更新は利用できません</string>
<string name="shared_string_deleted">削除しました</string>
<string name="shared_string_edited">編集されました</string>
<string name="shared_string_added">追加しました</string>
<string name="notes_by_date">日付別の注釈</string>
<string name="notes_by_date">日付別OSMメモ</string>
<string name="add_group">グループの追加</string>
<string name="empty_state_osm_edits_descr">OSMで用いられるPOIの作成や変更、OSMメモを開いたり注釈を加えたり、記録したGPXファイルの提供などがおこなえます。</string>
<string name="mark_passed">通過済みにする</string>
@ -2764,11 +2769,11 @@ POIの更新は利用できません</string>
<string name="show_closed_notes">閉じたメモの表示</string>
<string name="switch_osm_notes_visibility_desc">マップ上にあるOSMメモの表示非表示を切り替えます。</string>
<string name="gpx_file_desc">GPX - JOSMまたは他のOSMエディタへ適したエクスポート形式です。</string>
<string name="osc_file_desc">OSC - OpenStreetMapの利用に適したエクスポート形式です。</string>
<string name="osc_file_desc">OSC - OSMの利用に適したエクスポート形式です。</string>
<string name="shared_string_gpx_file">GPXファイル</string>
<string name="osc_file">OSCファイル</string>
<string name="choose_file_type">ファイルタイプを選択</string>
<string name="osm_edits_export_desc">エクスポートタイプを選択します:OSMメモ、POI、またはその両方。</string>
<string name="osm_edits_export_desc">OSMメモ、POI、またはその両方用にエクスポートします</string>
<string name="all_data">全てのデータ</string>
<string name="osm_notes">OSMメモ</string>
<string name="will_open_tomorrow_at">明日開く</string>
@ -2874,7 +2879,7 @@ POIの更新は利用できません</string>
<string name="show_more">詳細を見る</string>
<string name="tracks_on_map">マップ上の経路</string>
<string name="quick_action_show_hide_gpx_tracks">GPX経路の表示非表示</string>
<string name="quick_action_show_hide_gpx_tracks_descr">マップ上GPX経路の表示と非表示を切り替えます</string>
<string name="quick_action_show_hide_gpx_tracks_descr">マップ上にある選択したGPX経路の表示非表示を切り替えるボタンです。</string>
<string name="quick_action_gpx_tracks_hide">GPX経路の非表示</string>
<string name="quick_action_gpx_tracks_show">GPX経路の表示</string>
<string name="add_destination_query">最初に目的地を設定して下さい</string>
@ -2915,7 +2920,7 @@ POIの更新は利用できません</string>
<string name="osm_live_payment_renews_annually">毎年更新</string>
<string name="default_price_currency_format">%1$.2f %2$s</string>
<string name="osm_live_payment_header">支払い方法の選択:</string>
<string name="osm_live_payment_contribute_descr">寄付金はOpenStreetMapの地図製作に役立てられます。</string>
<string name="osm_live_payment_contribute_descr">寄付金はOSMの地図製作に役立てられます。</string>
<string name="mapillary_menu_title_pano">360°イメージのみ表示</string>
<string name="osm_recipient_stat">編集 %1$s, 合計 %2$s mBTC</string>
<string name="shared_string_launch">起動</string>
@ -3127,7 +3132,7 @@ POIの更新は利用できません</string>
<string name="base_profile_descr_car">乗用車,トラック,オートバイ</string>
<string name="base_profile_descr_bicycle">マウンテンバイク、モペッド(ペダル付き原動機付自転車)、馬</string>
<string name="base_profile_descr_pedestrian">徒歩,ハイキング,ランニング</string>
<string name="base_profile_descr_public_transport">すべての公共交通機関</string>
<string name="base_profile_descr_public_transport">公共交通機関の種類</string>
<string name="base_profile_descr_boat">エンジン付き船舶,漕ぎボート,帆船</string>
<string name="base_profile_descr_aircraft">航空機,グライダー</string>
<string name="routing_profile_geocoding">ジオコーディング</string>
@ -3203,7 +3208,7 @@ POIの更新は利用できません</string>
<string name="routing_attr_freeride_policy_description">\'フリーライド\'や\'ゲレンデ外\'は非公式のルートです。通常は手入れされていないうえ、職員によってメンテナンスされておらずクローズ時間にもチェックされません。マップデータは自己責任で利用し、禁止されている場所には決して入らないでください。</string>
<string name="routeInfo_roadClass_name">道路種別</string>
<string name="configure_profile_info">設定プロファイル:</string>
<string name="utm_format_descr">OsmAndは座標形式の一つとしてUTM標準形式を使用します。これはUTM NATO形式と似ていますが異なるものなのでご注意ください。</string>
<string name="utm_format_descr">OsmAndは座標形式の一つとしてUTM標準形式を使用します。これはUTM NATO(※訳注 おそらくMGRS)形式と似ていますが異なるものなのでご注意ください。</string>
<string name="shared_string_example"></string>
<string name="navigate_point_format_utm">UTM標準</string>
<string name="navigate_point_format_olc">オープンロケーションコード(OLC)</string>
@ -3220,7 +3225,7 @@ POIの更新は利用できません</string>
<string name="wake_time">画面を表示する時間</string>
<string name="units_and_formats">単位と形式</string>
<string name="appearance">外観</string>
<string name="map_look_descr">マップの見た目に関する設定です</string>
<string name="map_look_descr">マップの見た目に関する設定</string>
<string name="map_look">マップ外観</string>
<string name="list_of_installed_plugins">インストール済みプラグインリスト</string>
<string name="configure_navigation">ナビゲーション設定</string>
@ -3241,8 +3246,8 @@ POIの更新は利用できません</string>
<string name="paste_Osmand_data_folder_path">OsmAndデータのあるフォルダーへのパスを貼りつけ</string>
<string name="change_osmand_data_folder_question">OsmAndデータフォルダーを変更しますか</string>
<string name="move_maps_to_new_destination">新しい保存場所に移動する</string>
<string name="internal_app_storage_description">OsmAndのみがアクセス可能な、ユーザーおよびその他のアプリからは見えない内部ストレージ</string>
<string name="change_data_storage_folder">データ保存フォルダーを変更</string>
<string name="internal_app_storage_description">OsmAnd用内部ストレージ(ユーザーや他アプリから隔離された場所)</string>
<string name="change_data_storage_folder">保存フォルダーを変更</string>
<string name="rendering_attr_piste_type_snow_park_name">雪遊び広場</string>
<string name="rendering_attr_piste_type_sleigh_name">牽引式そり乗り場</string>
<string name="rendering_attr_piste_type_sled_name">そり専用ゲレンデ</string>
@ -3266,7 +3271,7 @@ POIの更新は利用できません</string>
<string name="rendering_attr_piste_difficulty_aerialway_name">索道(リフトやロープウェイなど)</string>
<string name="rendering_attr_piste_difficulty_connection_name">リフト間接続</string>
<string name="shared_string_calculate">計算</string>
<string name="shared_string_osmand_usage">OsmAndの使い方</string>
<string name="shared_string_osmand_usage">OsmAndの合計使用容量</string>
<string name="shared_sting_tiles">タイル</string>
<string name="shared_string_maps">マップ</string>
<string name="shared_string_memory_tb_desc">%1$s TB</string>
@ -3291,7 +3296,7 @@ POIの更新は利用できません</string>
\n
\n• ブラウジング中にダウンロードすべきマップを提案する新しいマップダウンロードダイアログの採用
\n
\n• 夜間テーマの修正
\n• 暗色テーマの修正
\n
\n• 各国においていくつかのルーティングに関する問題の修正
\n
@ -3317,7 +3322,7 @@ POIの更新は利用できません</string>
<string name="years_2_4"></string>
<string name="months_3">3ヶ月</string>
<string name="price_free">無料</string>
<string name="screen_alerts_descr">アラート(警告、注意)は、ナビゲーション中に画面左下に表示されます。</string>
<string name="screen_alerts_descr">ナビゲーション中に左下に表示されるアラート(警告アイコン)を指します。</string>
<string name="language_and_output">言語と出力</string>
<string name="reset_to_default">標準設定に戻す</string>
<string name="manage_profiles_descr">プロファイルの作成、インポート、編集</string>
@ -3342,10 +3347,10 @@ POIの更新は利用できません</string>
<string name="app_mode_pickup_truck">ピックアップトラック</string>
<string name="years_5"></string>
<string name="cancel_subscription">サブスクリプションの解除</string>
<string name="apply_preference_to_all_profiles">ここでの変更はすべてのプロファイルに適用することも、現在選択されているプロファイルにのみ適用することもできます。</string>
<string name="apply_preference_to_all_profiles">ここでの変更は選択したものはもちろん、すべてのプロファイルにも適用できます。</string>
<string name="shared_preference">現在の設定</string>
<string name="routing_attr_driving_style_prefer_unpaved_name">未舗装道路を優先</string>
<string name="routing_attr_driving_style_prefer_unpaved_description">未舗装道路を優先してルートを検索します。</string>
<string name="routing_attr_driving_style_prefer_unpaved_description">ルート検索時に、舗装道路よりも未舗装道路を優先します。</string>
<string name="osm_recipients_label">OSM受信者</string>
<string name="new_route_calculated_dist_dbg">ルート: 距離 %s、検索時間 %s
\n検索時間: %.1f秒、道 %d、タイル %d</string>
@ -3356,11 +3361,11 @@ POIの更新は利用できません</string>
<string name="sit_on_the_stop">停留所標識</string>
<string name="lang_oc">オック語</string>
<string name="layer_osm_edits">OSMの編集</string>
<string name="quick_action_contour_lines_descr">マップ上の等高線の表示/非表示を切り替えられす。</string>
<string name="quick_action_contour_lines_descr">マップ上の等高線の表示/非表示を切り替えられるボタンです。</string>
<string name="quick_action_contour_lines_show">等高線を表示</string>
<string name="quick_action_contour_lines_hide">等高線を非表示</string>
<string name="quick_action_show_hide_contour_lines">等高線を表示/非表示</string>
<string name="quick_action_hillshade_descr">マップ上の陰影起伏図の表示/非表示を切り替えられす。</string>
<string name="quick_action_hillshade_descr">マップ上の陰影起伏図の表示/非表示を切り替えられるボタンです。</string>
<string name="quick_action_hillshade_show">陰影起伏図を表示</string>
<string name="quick_action_hillshade_hide">陰影起伏図を非表示</string>
<string name="quick_action_show_hide_hillshade">陰影起伏図の表示/非表示</string>
@ -3394,7 +3399,7 @@ POIの更新は利用できません</string>
<string name="shared_string_turn_off">OFFに</string>
<string name="new_plugin_added">新しいプラグインが追加されました</string>
<string name="join_segments">セグメント同士の接続</string>
<string name="quick_action_directions_from_desc">画面の中心を出発点にし目的地までのルートを計算、または目的地マーカーがマップ上にない場合に目的地を選択するダイアログを開くボタンです。</string>
<string name="quick_action_directions_from_desc">画面の中心を出発点にするボタンです。その後目的地を設定しルート検索を別途おこなう必要があります。</string>
<string name="add_new_profile_q">新しいプロファイルとして\'%1$s\'を追加しますか?</string>
<string name="save_heading">見出しを含める</string>
<string name="save_heading_descr">記録中の各トラックポイントに見出しも保存します。</string>
@ -3475,4 +3480,15 @@ POIの更新は利用できません</string>
<string name="multimedia_use_system_camera">システムアプリを使用</string>
<string name="multimedia_photo_play_sound">カメラシャッター音</string>
<string name="osm_authorization_success">認証に成功しました</string>
<string name="rearrange_categories">カテゴリーの並べ替え</string>
<string name="create_custom_categories_list_promo">カスタムカテゴリーを含め、不要なカテゴリーを非表示にしたりリストの順序を変更できます。リストはプロファイルと同様インポート&エクスポートができます。</string>
<string name="add_new_custom_category_button_promo">一つあるいは複数のカテゴリーを選択して、新しいカスタムカテゴリーを追加できます。</string>
<string name="shared_string_available">利用可</string>
<string name="add_custom_category">カスタムカテゴリーを追加</string>
<string name="rendering_attr_streetLightingNight_name">夜にのみ表示</string>
<string name="plugin_prefs_reset_successful">すべてのプラグイン設定が初期状態に戻りました。</string>
<string name="profile_prefs_reset_successful">すべてのプロファイル設定が初期状態に戻りました。</string>
<string name="sunset_at">日出時刻</string>
<string name="sunrise_at">日没時刻</string>
<string name="accessibility_mode_disabled">端末本体のアクセシビリティモードが無効になっています。</string>
</resources>

View file

@ -3447,7 +3447,7 @@ Reprezentuje obszar: %1$s x %2$s</string>
<string name="select_nav_icon_descr">Ikona wyświetlana tylko podczas nawigacji lub ruchu.</string>
<string name="select_map_icon_descr">Ikona mapy wyświetlana tylko na mapie.</string>
<string name="logcat_buffer_descr">Sprawdź i udostępnij szczegółowe dzienniki aplikacji</string>
<string name="file_does_not_contain_routing_rules">Brak reguł routingu w \'%1$s\'. Wybierz inny plik.</string>
<string name="file_does_not_contain_routing_rules">Brak reguł wyznaczania trasy w \'%1$s\'. Wybierz inny plik.</string>
<string name="permission_is_required">Wymagane jest zezwolenie na korzystanie z tej opcji.</string>
<string name="not_support_file_type_with_ext">Zamiast tego wybierz obsługiwany plik z rozszerzeniem %1$s.</string>
<string name="monitoring_min_speed_descr_remark">Uwaga: kontrola prędkości &gt; 0: większość zestawów GPS zgłasza wartość prędkości tylko wtedy, gdy algorytm określa, że jesteś w ruchu, a żadna, jeśli nie jesteś. Dlatego użycie ustawienia &gt; 0 w tym filtrze w pewnym sensie wykorzystuje wykrywanie ruchu chipsetu GPS. Ale nawet jeśli nie zostanie przefiltrowane tutaj w czasie nagrywania, nadal używamy tej funkcji w naszej analizie GPX do określenia skorygowanej odległości, tj. wartość wyświetlana w tym polu to odległość zarejestrowana podczas ruchu.</string>
@ -3460,4 +3460,16 @@ Reprezentuje obszar: %1$s x %2$s</string>
<string name="multimedia_notes_view_path">Menu — Miejsca — Uwagi</string>
<string name="osm_edits_view_path">Menu — Miejsca — Edycje OSM</string>
<string name="osm_authorization_success">Autoryzacja zakończyła się pomyślnie</string>
<string name="monitoring_min_speed_descr_side_effect">Efekt uboczny: Twoja trasa nie będzie zawierać sekcji, w których nie zostało spełnione kryterium minimalnej prędkości (np. gdy pchałeś rower pod strome wzgórze). Również nie będzie informacji o okresach odpoczynku, np. przerwach. Ma to efekt na analizy i przetwarzanie końcowe, np. przy próbie określenia całkowitej długości wycieczki, czasu w ruchu lub średniej prędkości.</string>
<string name="rearrange_categories">Zmień układ kategorii</string>
<string name="create_custom_categories_list_promo">Możesz dodać niestandardowe kategorie, ukryć kategorie, które uważasz za niepotrzebne i zmienić kolejność sortowania listy. Listę można importować i eksportować wraz z profilami.</string>
<string name="add_new_custom_category_button_promo">Możesz dodać nową niestandardową kategorię wybierając jedną lub kilka potrzebnych kategorii.</string>
<string name="shared_string_available">Dostępne</string>
<string name="add_custom_category">Dodaj niestandardową kategorię</string>
<string name="rendering_attr_streetLightingNight_name">Wyświetlaj tylko w nocy</string>
<string name="plugin_prefs_reset_successful">Ustawienia wtyczek przywrócone do stanu domyślnego.</string>
<string name="profile_prefs_reset_successful">Ustawienia profili przywrócone do stanu domyślnego.</string>
<string name="ltr_or_rtl_combine_via_slash">%1$s/%2$s</string>
<string name="sunset_at">Zachód słońca o %1$s</string>
<string name="sunrise_at">Wschód słońca o %1$s</string>
</resources>

View file

@ -3786,4 +3786,9 @@
<string name="poi_volcano_number_of_eruptions">Número de erupções</string>
<string name="poi_memorial_ghost_bike">Bicicleta fantasma</string>
<string name="poi_paintball">Paintball</string>
<string name="poi_mountain_rescue">Resgate na montanha</string>
<string name="poi_shop_security">Loja de segurança</string>
<string name="poi_bowling_alley">Centro de boliche</string>
<string name="poi_piste_ref">Número de referência da pista</string>
<string name="poi_resort_hunting">Base de caça</string>
</resources>

View file

@ -189,7 +189,7 @@
<string name="back_to_map">Voltar ao mapa</string>
<string name="share_note">Compartilhar nota</string>
<string name="location_on_map">Posição:\n Lat %1$s\n Lon %2$s</string>
<string name="notes">Notas do OSM</string>
<string name="notes">Notas A/V</string>
<string name="online_map">Mapa on-line</string>
<string name="roads_only">Apenas estradas</string>
<string name="rendering_attr_pisteRoutes_name">Pistas de esqui</string>
@ -2086,7 +2086,7 @@ Pôr do Sol: %2$s</string>
<string name="srtm_color_scheme">Esquema de cores</string>
<string name="make_round_trip">Fazer viagem de ida e volta</string>
<string name="routing_attr_avoid_ice_roads_fords_name">Sem estradas de gelo ou vaus</string>
<string name="routing_attr_avoid_ice_roads_fords_description">Evita estradas de gelo e vaus.</string>
<string name="routing_attr_avoid_ice_roads_fords_description">Evitar estradas de gelo e vaus.</string>
<string name="map_orientation_change_in_accordance_with_speed">Limite para orientação do mapa</string>
<string name="quick_action_show_navigation_finish_dialog">Exibir \'Navegação finalizada\'</string>
<string name="mapillary_menu_title_tile_cache">Cache de quadrícula</string>
@ -2983,7 +2983,7 @@ Pôr do Sol: %2$s</string>
<string name="avoid_pt_types">Evite os tipos de transporte…</string>
<string name="quick_action_day_night_mode">Modo %s</string>
<string name="routing_attr_avoid_sett_name">Sem pedras irregulares ou paralelepípedo</string>
<string name="routing_attr_avoid_sett_description">Evita pavimento de pedras irregulares e paralelepípedo</string>
<string name="routing_attr_avoid_sett_description">Evitar pavimento de pedras irregulares e paralelepípedo</string>
<string name="shared_string_degrees">Graus</string>
<string name="shared_string_milliradians">Milirradianos</string>
<string name="angular_measeurement">Unidade angular</string>
@ -3090,7 +3090,7 @@ Pôr do Sol: %2$s</string>
<string name="application_profiles">Perfis de aplicação</string>
<string name="zoom_by_wunderlinq_descr">Altere o zoom do mapa rolando a roda para cima e para baixo. Escape retorna para o aplicativo WunderLINQ.</string>
<string name="zoom_by_wunderlinq">Use o WunderLINQ para controle</string>
<string name="quick_action_need_to_add_item_to_list">Adicione ao menos um item à lista nas configurações de \'Ação rápida\'</string>
<string name="quick_action_need_to_add_item_to_list">Adicionar ao menos um item à lista nas configurações de \'Ação rápida\'</string>
<string name="routing_attr_piste_type_downhill_name">Esqui alpino/de declínio</string>
<string name="routing_attr_piste_type_downhill_description">Pistas de esqui alpino ou de declínio e acesso a teleféricos.</string>
<string name="routing_attr_piste_type_nordic_name">Cross country/esqui nórdico</string>
@ -3470,4 +3470,16 @@ Pôr do Sol: %2$s</string>
<string name="multimedia_use_system_camera">Usar aplicativo do sistema</string>
<string name="multimedia_photo_play_sound">Som do obturador da câmera</string>
<string name="osm_authorization_success">Autorização bem sucedida</string>
<string name="rearrange_categories">Reorganizar categorias</string>
<string name="create_custom_categories_list_promo">Você pode adicionar categorias personalizadas, ocultar categorias que não considera necessárias e alterar a ordem de classificação da lista. A lista pode ser importada e exportada com perfis.</string>
<string name="add_new_custom_category_button_promo">Você pode adicionar uma nova categoria personalizada selecionando uma ou algumas categorias necessárias.</string>
<string name="shared_string_available">Disponível</string>
<string name="add_custom_category">Adicionar categoria personalizada</string>
<string name="rendering_attr_streetLightingNight_name">Mostrar apenas à noite</string>
<string name="plugin_prefs_reset_successful">Todas as configurações de plug-in restauradas para o estado padrão.</string>
<string name="profile_prefs_reset_successful">Todas as configurações de perfil restauradas para o estado padrão.</string>
<string name="ltr_or_rtl_combine_via_slash">%1$s/%2$s</string>
<string name="sunset_at">Pôr do sol em %1$s</string>
<string name="sunrise_at">Nascer do sol em %1$s</string>
<string name="accessibility_mode_disabled">Modo de acessibilidade desativado em seu sistema.</string>
</resources>

View file

@ -3783,4 +3783,10 @@
<string name="poi_volcano_status_inactive">Inativu</string>
<string name="poi_volcano_number_of_eruptions">Nùmeru de erutziones</string>
<string name="poi_memorial_ghost_bike">Bitzicleta pantasma</string>
<string name="poi_paintball">Paintball</string>
<string name="poi_mountain_rescue">Agiudu montanu (sucursu alpinu)</string>
<string name="poi_shop_security">Butega de artìculos pro sa seguresa</string>
<string name="poi_bowling_alley">Tzentru pro su bowling</string>
<string name="poi_piste_ref">Nùmeru de referèntzia de sa pista</string>
<string name="poi_resort_hunting">Base pro sa cassa</string>
</resources>

View file

@ -3469,4 +3469,15 @@ Pro praghere iscrie su còdighe intreu</string>
<string name="monitoring_min_speed_descr_recommendation">Impòsitu: Proa a impreare, in antis, su rilevamentu de movimentu pro mèdiu de sul filtru de movimentu mìnimu (B). Diat pòdere produire risultados mègius, e tue dias pòdere pèrdere datos de mancu. Si sas rastas tuas abarrant burdellosas a lestresas bassas, proa a impreare inoghe valores diferentes dae zero. Pro praghere ammenta·ti chi carchi mèdida diat pòdere non rilevare perunu valore de lestresa (unas àteras maneras basadas in subra de sa retza), e chi in custu casu non dias registrare nudda.</string>
<string name="monitoring_min_accuracy_descr_recommendation">Impòsitu: est prus difìtzile a intzertare ite at a èssere registradu e ite nono. Diat èssere mègius a istudare custu filtru.</string>
<string name="live_monitoring_time_buffer">Intervallu tampone (buffer)</string>
<string name="rearrange_categories">Torra a ordinare sas categorias</string>
<string name="create_custom_categories_list_promo">Podes importare categorias personalizadas, cuare categorias chi non pensas chi ti serbant e mudare s\'òrdine de sa lista. Sa lista podet èssere importada e esportada cun sos profilos.</string>
<string name="add_new_custom_category_button_promo">Podes annànghere una categoria personalizada noa ischertende·nde una o unas cantas pagas chi ti serbint.</string>
<string name="shared_string_available">Disponìbile</string>
<string name="add_custom_category">Annanghe una categoria personalizada</string>
<string name="rendering_attr_streetLightingNight_name">Ammustra a de note ebbia</string>
<string name="plugin_prefs_reset_successful">As torradu totu sas impostatziones de sas estensiones a s\'istadu predefinidu.</string>
<string name="profile_prefs_reset_successful">Totu sas impostatziones de sos profilos sunt torradas a s\'istadu predefinidu.</string>
<string name="ltr_or_rtl_combine_via_slash">%1$s/%2$s</string>
<string name="sunset_at">Intrinada a sas %1$s</string>
<string name="sunrise_at">Arbèschida a sas %1$s</string>
</resources>

View file

@ -2349,9 +2349,9 @@ Zodpovedá oblasti: %1$s x %2$s</string>
<string name="analyze_on_map">Analyzovať na mape</string>
<string name="shared_string_visible">Viditeľné</string>
<string name="quick_action_auto_zoom">Automatické priblíženie mapy zap/vyp</string>
<string name="quick_action_auto_zoom_desc">Prepínač pre zapnutie/vypnutie automatického priblíženia mapy podľa vašej rýchlosti.</string>
<string name="quick_action_auto_zoom_on">Zapnúť automatické priblíženie mapy</string>
<string name="quick_action_auto_zoom_off">Vypnúť automatické priblíženie mapy</string>
<string name="quick_action_auto_zoom_desc">Tlačidlo pre zapnutie alebo vypnutie automatického priblíženia mapy podľa vašej rýchlosti.</string>
<string name="quick_action_auto_zoom_on">Zapnúť automatické približovanie</string>
<string name="quick_action_auto_zoom_off">Vypnúť automatické približovanie</string>
<string name="quick_action_add_destination">Zadať cieľ</string>
<string name="quick_action_replace_destination">Nahradiť cieľ</string>
<string name="quick_action_add_first_intermediate">Pridať prvý prechodný bod</string>
@ -2392,10 +2392,10 @@ Zodpovedá oblasti: %1$s x %2$s</string>
<string name="srtm_menu_download_descr">Stiahnite mapu \"Vrstevnice\" pre tento región.</string>
<string name="sorted_by_distance">Zoradené podľa vzdialenosti</string>
<string name="search_favorites">Hľadať v Obľúbených bodoch</string>
<string name="quick_action_showhide_osmbugs_title">Prepnúť OSM poznámky</string>
<string name="quick_action_showhide_osmbugs_title">Zobraziť alebo skryť OSM poznámky</string>
<string name="quick_action_osmbugs_show">Zobraziť OSM poznámky</string>
<string name="quick_action_osmbugs_hide">Skryť OSM poznámky</string>
<string name="quick_action_showhide_osmbugs_descr">Prepínač zobrazenia alebo skrytia OSM Poznámok na mape.</string>
<string name="quick_action_showhide_osmbugs_descr">Tlačidlo pre zobrazenie alebo skrytie OSM poznámok na mape.</string>
<string name="private_access_routing_req">Váš cieľ je v oblasti so súkromným prístupom. Povoliť vstup na súkromné cesty pre tento výlet\?</string>
<string name="restart_search">Znovu začať hľadanie</string>
<string name="increase_search_radius">Zväčšiť okruh hľadania</string>
@ -2440,10 +2440,10 @@ Zodpovedá oblasti: %1$s x %2$s</string>
<string name="moving_time">Trvanie presunu</string>
<string name="max_min">Max/Min</string>
<string name="quick_action_resume_pause_navigation">Pozastaviť/pokračovať navigáciu</string>
<string name="quick_action_resume_pause_navigation_descr">Použite toto tlačidlo pre pozastavenie alebo obnovenie navigácie.</string>
<string name="quick_action_resume_pause_navigation_descr">Tlačidlo pre pozastavenie alebo pokračovanie navigácie.</string>
<string name="quick_action_show_navigation_finish_dialog">Zobraziť správu \"Navigácia ukončená\"</string>
<string name="quick_action_start_stop_navigation">Spustiť/Ukončiť navigáciu</string>
<string name="quick_action_start_stop_navigation_descr">Použite toto tlačidlo pre spustenie alebo ukončenie navigácie.</string>
<string name="quick_action_start_stop_navigation_descr">Tlačidlo pre spustenie alebo ukončenie navigácie.</string>
<string name="rendering_value_translucent_pink_name">Priehľadná ružová</string>
<string name="min_max">Min/Max</string>
<string name="live_monitoring_max_interval_to_send">Časový zásobník pre online sledovanie</string>
@ -2482,7 +2482,7 @@ Zodpovedá oblasti: %1$s x %2$s</string>
<string name="move_point">Presunúť bod</string>
<string name="add_segment_to_the_track">Pridať do súboru GPX</string>
<string name="do_not_use_animations">Žiadne animácie</string>
<string name="do_not_use_animations_descr">Vypnúť animácie v aplikácii.</string>
<string name="do_not_use_animations_descr">Vypne animácie mapy.</string>
<string name="keep_showing_on_map">Zobrazovať ďalej na mape</string>
<string name="exit_without_saving">Ukončiť bez uloženia?</string>
<string name="move_all_to_history">Presunúť všetko do histórie</string>
@ -2589,7 +2589,7 @@ Zodpovedá oblasti: %1$s x %2$s</string>
<string name="one_tap_active_descr">Potlačte značku na mape na jej presunutie na prvé miesto v aktívnych značkách bez otvárania kontextového menu.</string>
<string name="empty_state_av_notes">Urobte poznámky!</string>
<string name="empty_state_av_notes_desc">Pridajte zvukové, video alebo fotografické poznámky ku každému bodu na mape, pomocou nástroja alebo kontextového menu.</string>
<string name="notes_by_date">Poznámky podľa dátumu</string>
<string name="notes_by_date">OSM poznámky podľa dátumu</string>
<string name="by_date">Podľa dátumu</string>
<string name="by_type">Podľa typu</string>
<string name="one_tap_active">\"Jedno stlačenie\" aktívne</string>
@ -2637,11 +2637,11 @@ Zodpovedá oblasti: %1$s x %2$s</string>
<string name="show_closed_notes">Zobraziť uzavreté poznámky</string>
<string name="switch_osm_notes_visibility_desc">Zobraziť/skryť OSM poznámky na mape.</string>
<string name="gpx_file_desc">GPX - vhodné na export do JOSM a iných editorov OSM.</string>
<string name="osc_file_desc">OSC - vhodné na export do OpenStreetMap.</string>
<string name="osc_file_desc">OSC - vhodné na export do OSM.</string>
<string name="shared_string_gpx_file">Súbor GPX</string>
<string name="osc_file">Súbor OSC</string>
<string name="choose_file_type">Zvoľte typ súboru</string>
<string name="osm_edits_export_desc">Vyberte typ exportu: OSM poznámky, body záujmu alebo obe.</string>
<string name="osm_edits_export_desc">Exportovať ako OSM poznámky, body záujmu alebo obe.</string>
<string name="all_data">Všetky údaje</string>
<string name="osm_notes">OSM poznámky</string>
<string name="tunnel_warning">Blíži sa tunel</string>
@ -2841,7 +2841,7 @@ Zodpovedá oblasti: %1$s x %2$s</string>
<string name="osm_live_payment_renews_annually">Obnovuje sa ročne</string>
<string name="default_price_currency_format">%1$.2f %2$s</string>
<string name="osm_live_payment_header">Interval platieb:</string>
<string name="osm_live_payment_contribute_descr">Príspevky pomáhajú financovať tvorbu máp OpenStreetMap.</string>
<string name="osm_live_payment_contribute_descr">Príspevky pomáhajú financovať tvorbu máp OSM.</string>
<string name="osm_live_subscriptions">Predplatné</string>
<string name="mapillary_menu_title_pano">Zobraziť iba 360° obrázky</string>
<string name="powered_by_osmand">Od OsmAnd</string>
@ -2913,7 +2913,7 @@ Zodpovedá oblasti: %1$s x %2$s</string>
<string name="exit_at">Vystúpte na</string>
<string name="sit_on_the_stop">Nastúpte na zastávke</string>
<string name="quick_action_show_hide_gpx_tracks">Zobraziť/skryť GPX stopy</string>
<string name="quick_action_show_hide_gpx_tracks_descr">Prepínač na zobrazenie alebo skrytie zvolených stôp GPX na mape.</string>
<string name="quick_action_show_hide_gpx_tracks_descr">Tlačidlo pre zobrazenie alebo skrytie zvolených stôp GPX na mape.</string>
<string name="quick_action_gpx_tracks_hide">Skryť GPX stopy</string>
<string name="quick_action_gpx_tracks_show">Zobraziť GPX stopy</string>
<string name="transfers_size">%1$d prestup(y)</string>
@ -3234,7 +3234,7 @@ Zodpovedá oblasti: %1$s x %2$s</string>
<string name="configure_navigation">Nastaviť navigáciu</string>
<string name="general_settings_profile_descr">Vzhľad aplikácie, jednotky, oblasť</string>
<string name="configure_profile">Nastaviť profil</string>
<string name="screen_alerts_descr">Varovania zobrazené počas navigácie v ľavom dolnom rohu obrazovky.</string>
<string name="screen_alerts_descr">Varovania zobrazené počas navigácie v ľavom dolnom rohu obrazovky.</string>
<string name="switch_profile">Prepnúť profil</string>
<string name="language_and_output">Jazyk a výstup</string>
<string name="reset_to_default">Obnoviť do základného nastavenia</string>
@ -3267,7 +3267,7 @@ Zodpovedá oblasti: %1$s x %2$s</string>
<string name="paste_Osmand_data_folder_path">Vložte cestu k priečinku s dátami OsmAnd</string>
<string name="change_osmand_data_folder_question">Zmeniť dátový priečinok OsmAnd\?</string>
<string name="move_maps_to_new_destination">Presunúť do nového umiestnenia</string>
<string name="internal_app_storage_description">Interné úložisko, skryté pred používateľom a inými aplikáciami, prístupné len OsmAndu</string>
<string name="internal_app_storage_description">Interné úložisko pre OsmAnd (skryté pred používateľom a inými aplikáciami).</string>
<string name="change_data_storage_folder">Zmeniť priečinok na ukladanie dát</string>
<string name="rendering_attr_piste_type_snow_park_name">Snežný terénny areál</string>
<string name="rendering_attr_piste_type_sleigh_name">Sane v záprahu</string>
@ -3321,7 +3321,7 @@ Zodpovedá oblasti: %1$s x %2$s</string>
\n
\n • Nový dialóg sťahovania máp, ktorý navrhuje mapy na stiahnutie počas prehliadania
\n
\n • Opravy nočného vzhľadu
\n • Opravy tmavého vzhľadu
\n
\n • Opravené niektoré chyby navigácie
\n
@ -3334,13 +3334,13 @@ Zodpovedá oblasti: %1$s x %2$s</string>
\n • Opravy iných chýb
\n
\n</string>
<string name="apply_preference_to_all_profiles">Túto zmenu môžete aplikovať na na všetky profily alebo na práve zvolený.</string>
<string name="apply_preference_to_all_profiles">Túto zmenu môžete aplikovať na všetky alebo len práve zvolený profil.</string>
<string name="shared_preference">Zdieľané</string>
<string name="routing_attr_driving_style_prefer_unpaved_name">Preferovať nespevnené cesty</string>
<string name="routing_attr_driving_style_prefer_unpaved_description">Preferovať cesty s nespevneným povrchom.</string>
<string name="routing_attr_driving_style_prefer_unpaved_description">Preferovať pri navigácii cesty s nespevneným povrchom nad spevnenými.</string>
<string name="export_profile">Exportovať profil</string>
<string name="exported_osmand_profile">OsmAnd profil: %1$s</string>
<string name="overwrite_profile_q">Profil \'%1$s\' už existuje. Prepísať\?</string>
<string name="overwrite_profile_q">\'%1$s\' už existuje. Prepísať\?</string>
<string name="export_profile_failed">Nepodarilo sa exportovať profil.</string>
<string name="rendering_value_white_name">Biela</string>
<string name="swap_two_places">Zameniť %1$s a %2$s</string>
@ -3352,30 +3352,30 @@ Zodpovedá oblasti: %1$s x %2$s</string>
<string name="clear_confirmation_msg">Vymazať %1$s\?</string>
<string name="swap_start_and_destination">Zameniť štart a cieľ</string>
<string name="layer_osm_edits">Úpravy OSM</string>
<string name="quick_action_contour_lines_descr">Prepínač zobrazovania vrstevníc na mape.</string>
<string name="quick_action_contour_lines_descr">Tlačidlo pre zobrazenie alebo skrytie vrstevníc na mape.</string>
<string name="quick_action_contour_lines_show">Zobraziť vrstevnice</string>
<string name="quick_action_contour_lines_hide">Skryť vrstevnice</string>
<string name="quick_action_show_hide_contour_lines">Zobraziť/skryť vrstevnice</string>
<string name="quick_action_hillshade_descr">Prepínač zobrazovania tieňovaných svahov.</string>
<string name="quick_action_hillshade_descr">Tlačidlo pre zobrazenie alebo skrytie tieňovaných svahov na mape.</string>
<string name="quick_action_hillshade_show">Zobraziť tieňované svahy</string>
<string name="quick_action_hillshade_hide">Skryť tieňované svahy</string>
<string name="quick_action_show_hide_hillshade">Zobraziť/skryť tieňované svahy</string>
<string name="tts_initialization_error">Nepodarilo sa spustiť modul prevodu textu na reč</string>
<string name="tts_initialization_error">Nepodarilo sa spustiť modul prevodu textu na reč.</string>
<string name="simulate_your_location_gpx_descr">Simulovať polohu pomocou zaznamenanej stopy GPX.</string>
<string name="profile_import">Import profilu</string>
<string name="profile_import_descr">Pre importovanie profilu zvoľte jeho súbor v zariadení a otvorte ho v OsmAnd.</string>
<string name="profile_import">Importovať profil</string>
<string name="profile_import_descr">Pridajte profil otvorením jeho súboru v OsmAnd.</string>
<string name="file_import_error">Chyba pri importovaní %1$s: %2$s</string>
<string name="file_imported_successfully">%1$s úspešne importované.</string>
<string name="file_imported_successfully">%1$s importovaný.</string>
<string name="quick_action_directions_from_desc">Tlačidlo pre nastavenie východzieho bodu do stredu obrazovky a výpočet trasy do cieľa alebo otvorenie dialógu na výber cieľa, ak značka pre cieľ nie je ešte na mape.</string>
<string name="download_map_dialog">Okno sťahovania máp</string>
<string name="dialogs_and_notifications_title">Okná a upozornenia</string>
<string name="dialogs_and_notifications_descr">Ovládať okná a upozornenia, ktoré OsmAnd zobrazuje počas behu.</string>
<string name="default_speed_dialog_msg">Používa sa pre odhad času na cestách neznámeho typu a obmedzenie rýchlosti na všetkých cestách (môže ovplyvniť trasu)</string>
<string name="dialogs_and_notifications_descr">Ovládať okná a upozornenia.</string>
<string name="default_speed_dialog_msg">Odhaduje čas na cestách neznámeho typu a obmedzuje rýchlosť na všetkých cestách (môže ovplyvniť trasu)</string>
<string name="rendering_value_walkingRoutesOSMCNodes_name">Siete bodov</string>
<string name="suggested_maps">Navrhované mapy</string>
<string name="suggested_maps_descr">Tieto mapy sa musia používať so zásuvným modulom</string>
<string name="suggested_maps_descr">Tieto mapy sú potrebné pre zásuvný modul.</string>
<string name="added_profiles">Pridané profily</string>
<string name="added_profiles_descr">Modul pridá do OsmAnd nový profil</string>
<string name="added_profiles_descr">Profily pridané modulom</string>
<string name="shared_string_turn_off">Vypnúť</string>
<string name="new_plugin_added">Nový modul pridaný</string>
<string name="join_segments">Spojiť úseky</string>
@ -3387,22 +3387,22 @@ Zodpovedá oblasti: %1$s x %2$s</string>
<string name="personal_category_name">Osobné</string>
<string name="shared_string_downloading_formatted">Sťahujem %s</string>
<string name="rendering_value_thick_name">Hrubé</string>
<string name="desert_render_descr">Pre púšte a iné riedko osídlené oblasti. Zobrazuje viac detailov pri väčšej mierke.</string>
<string name="select_navigation_icon">Zvoľte ikonu navigácie</string>
<string name="select_map_icon">Zvoľte ikonu mapy</string>
<string name="delete_profiles_descr">Keď zvolíte Použiť, vymazané profily budú natrvalo odstránené.</string>
<string name="desert_render_descr">Pre púšte a iné riedko osídlené oblasti. Viac detailov.</string>
<string name="select_navigation_icon">Ikona polohy pri pohybe</string>
<string name="select_map_icon">Ikona polohy v pokoji</string>
<string name="delete_profiles_descr">Stlačením \'Použiť\' odstránite vymazané profily natrvalo.</string>
<string name="master_profile">Hlavný profil</string>
<string name="select_color">Zvoľte farbu</string>
<string name="edit_profiles_descr">Nemôžete vymazať predvolené profily OsmAndu, ale môžete ich vypnúť na prechádzajúcej obrazovke, alebo ich presunúť na koniec zoznamu.</string>
<string name="edit_profiles_descr">Predvolené profily OsmAndu sa nedajú vymazať, ale dajú sa vypnúť (na prechádzajúcej obrazovke) alebo presunúť na koniec zoznamu.</string>
<string name="edit_profiles">Upraviť profily</string>
<string name="select_nav_profile_dialog_message">Typ navigácie ovplyvňuje pravidlá pre výpočet trasy.</string>
<string name="select_nav_profile_dialog_message">\'Typ navigácie\' ovplyvňuje pravidlá pre výpočet trasy.</string>
<string name="profile_appearance">Vzhľad profilu</string>
<string name="choose_icon_color_name">Zvoľte ikonu, farbu a názov</string>
<string name="choose_icon_color_name">Ikona, farba a názov</string>
<string name="reorder_profiles">Upraviť zoznam profilov</string>
<string name="selected_profile">Zvolený profil</string>
<string name="reset_confirmation_descr">Stlačením %1$s stratíte všetky zmeny.</string>
<string name="reset_all_profile_settings_descr">Všetky nastavenia profilu budú vrátené do východzieho stavu.</string>
<string name="reset_all_profile_settings">Resetovať nastavenia profilu na predvolené hodnoty\?</string>
<string name="reset_confirmation_descr">Stlačením %1$s zahodíte všetky vaše zmeny.</string>
<string name="reset_all_profile_settings_descr">Resetovať všetky nastavenia profilu do východzieho stavu.</string>
<string name="reset_all_profile_settings">Resetovať všetky nastavenia profilu\?</string>
<string name="ltr_or_rtl_combine_via_colon">%1$s: %2$s</string>
<string name="ltr_or_rtl_combine_via_space">%1$s %2$s</string>
<string name="button_rate">Ohodnotiť</string>
@ -3419,7 +3419,7 @@ Zodpovedá oblasti: %1$s x %2$s</string>
<string name="live_monitoring">Sledovanie online</string>
<string name="save_track_logging_accuracy">Presnosť záznamu</string>
<string name="tracks_view_descr">Všetky vaše zaznamenané stopy sú v %1$s, alebo v priečinku OsmAnd.</string>
<string name="multimedia_notes_view_descr">Všetky vaše OSM poznámky sú v \'Menu\' → \'Moje miesta\' → \'Zmeny v OSM\'.</string>
<string name="multimedia_notes_view_descr">Vaše OSM poznámky sú v %1$s.</string>
<string name="video_notes">Video-poznámky</string>
<string name="photo_notes">Foto-poznámky</string>
<string name="route_recalculation">Prepočítanie trasy</string>
@ -3427,13 +3427,43 @@ Zodpovedá oblasti: %1$s x %2$s</string>
<string name="login_and_pass">Prihlasovacie meno a heslo</string>
<string name="plugin_global_prefs_info">Tieto nastavenia platia pre všetky profily.</string>
<string name="osm_editing">OSM upravovanie</string>
<string name="osm_edits_view_descr">Zobrazte všetky vaše neodoslané zmeny alebo chyby v OSM cez \'Menu\' → \'Moje miesta\' — \'Zmeny v OSM\'. Odoslané body sa už v OsmAnd nezobrazujú.</string>
<string name="osm_edits_view_descr">Zobrazte vaše neodoslané zmeny alebo chyby v OSM cez %1$s. Odoslané body sa už nezobrazujú.</string>
<string name="app_mode_osm">OSM</string>
<string name="select_nav_icon_descr">Ikony sa zobrazujú len pri navigácii alebo pohybe.</string>
<string name="select_map_icon_descr">Mapová ikona zobrazená len na mape.</string>
<string name="select_nav_icon_descr">Ikona zobrazená pri navigácii alebo pohybe.</string>
<string name="select_map_icon_descr">Ikona zobrazená v pokoji.</string>
<string name="logcat_buffer_descr">Skontrolovať a zdieľať podrobné záznamy aplikácie</string>
<string name="search_offline_geo_error">Nepodarilo sa prečítať geo správu \'%s\'.</string>
<string name="permission_is_required">Pre použitie tejto možnosti je potrebné oprávnenie.</string>
<string name="monitoring_min_speed_descr">Tento filter spôsobí nezaznamenávanie bodov pri pohybe pomalšie ako daná rýchlosť. Toto môže zabezpečiť plynulejšie zaznamenané stopy pri zobrazení na mape.</string>
<string name="monitoring_min_speed_descr_side_effect">Vedľajší efekt: Vaša stopa nebude obsahovať úseky kde nebola dosiahnutá minimálna rýchlosť (napr. kde ste tlačili bicykel do kopca). Taktiež nebudú obsahovať informáciu o obdobiach bez pohybu, napr. prestávkach. Toto má vplyv na následnú analýzu alebo spracovanie, napr. pri zisťovaní celkovej dĺžky výletu, času v pohybe alebo priemernej rýchlosti.</string>
<string name="monitoring_min_speed_descr_recommendation">Odporúčanie: Skúste najprv použiť detekciu pohybu filtrom minimálneho posunu (B), čo môže vytvoriť lepší výsledok a stratíte menej dát. Ak vaše stopy budú roztrasené aj pri nízkej rýchlosti, skúste tu nenulovú hodnotu. Nezabudnite, že niektoré merania nemusia hlásiť žiadnu rýchlosť (niektoré metódy založené na sieti) a vtedy by sa nič nezaznamenalo.</string>
<string name="live_monitoring_time_buffer">Časový zásobník</string>
<string name="live_monitoring_tracking_interval">Interval stopovania</string>
<string name="live_monitoring_adress">Webová adresa</string>
<string name="live_monitoring_adress_descr">Zadajte webovú adresu so syntaxom parametrov: lat={0}, lon={1}, timestamp={2}, hdop={3}, altitude={4}, speed={5}, bearing={6}.</string>
<string name="monitoring_notification">Oznámenie</string>
<string name="monitoring_min_speed">Minimálna rýchlosť</string>
<string name="monitoring_min_accuracy">Minimálna presnosť</string>
<string name="monitoring_min_distance">Minimálny posun</string>
<string name="tracks_view_path">Menu — Moje miesta — Stopy</string>
<string name="multimedia_notes_view_path">Menu — Moje miesta — Poznámky</string>
<string name="osm_edits_view_path">Menu — Moje miesta — Zmeny v OSM</string>
<string name="reset_plugin_to_default">Resetovať modul do východzieho stavu</string>
<string name="multimedia_rec_split_title">Rozdelenie nahrávania</string>
<string name="multimedia_use_system_camera">Použiť systémovú aplikáciu</string>
<string name="multimedia_photo_play_sound">Zvuk spúšte fotoaparátu</string>
<string name="osm_authorization_success">Prihlásenie je úspešné</string>
<string name="rearrange_categories">Usporiadať kategórie</string>
<string name="create_custom_categories_list_promo">Môžete pridať vlastné kategórie a skryť kategórie, ktoré nepotrebujete a zmeniť poradie triedenia v zozname. Zozname môže byť importovaný a exportovaný s profilmi.</string>
<string name="add_new_custom_category_button_promo">Môžete pridať novú kategóriu zvolením jednej alebo viacerých existujúcich.</string>
<string name="reset_to_default_category_button_promo">Obnovenie do východzieho nastavenia vymaže vaše vlastné kategórie a poradie triedenia ako po novej inštalácii.</string>
<string name="shared_string_available">Dostupné</string>
<string name="add_custom_category">Pridať vlastnú kategóriu</string>
<string name="rendering_attr_streetLightingNight_name">Zobraziť iba v noci</string>
<string name="plugin_prefs_reset_successful">Všetky nastavenia modulov obnovené do východzieho stavu.</string>
<string name="profile_prefs_reset_successful">Všetky nastavenia profilov obnovené do východzieho stavu.</string>
<string name="ltr_or_rtl_combine_via_slash">%1$s/%2$s</string>
<string name="sunset_at">Západ slnka o %1$s</string>
<string name="sunrise_at">Východ slnka o %1$s</string>
<string name="accessibility_mode_disabled">Režim uľahčenia prístupu je na tomto systéme vypnutý.</string>
</resources>

View file

@ -123,7 +123,7 @@
<string name="poi_musical_instrument">Müzik aletleri</string>
<string name="poi_newsagent">Gazete bayii</string>
<string name="poi_optician">Göz doktoru</string>
<string name="poi_organic">Organik gıda</string>
<string name="poi_organic">Organik ürünler</string>
<string name="poi_outdoor">ık hava mağazası</string>
<string name="poi_paint">Boya dükkanı</string>
<string name="poi_pet">Evcil hayvan dükkanı</string>

View file

@ -1112,7 +1112,7 @@
<string name="back_to_map">Haritaya dön</string>
<string name="share_note">Not paylaş</string>
<string name="watch">İzle</string>
<string name="notes">OSM notları</string>
<string name="notes">A/V notları</string>
<string name="online_map">Çevrim içi harita</string>
<string name="roads_only">Sadece yollar</string>
<string name="device_memory">Aygıt belleği</string>
@ -3438,4 +3438,16 @@
<string name="multimedia_use_system_camera">Sistem uygulamasını kullan</string>
<string name="multimedia_photo_play_sound">Kamera deklanşör sesi</string>
<string name="osm_authorization_success">Yetkilendirme başarılı</string>
<string name="rearrange_categories">Kategorileri yeniden düzenle</string>
<string name="create_custom_categories_list_promo">Özel kategoriler ekleyebilir, gerekli bulmadığınız kategorileri gizleyebilir ve listenin sıralama düzenini değiştirebilirsiniz. Liste, profillerle içe ve dışa aktarılabilir.</string>
<string name="add_new_custom_category_button_promo">Bir veya birkaç gerekli kategori seçerek yeni bir özel kategori ekleyebilirsiniz.</string>
<string name="shared_string_available">Mevcut</string>
<string name="add_custom_category">Özel kategori ekle</string>
<string name="rendering_attr_streetLightingNight_name">Sadece geceleri göster</string>
<string name="plugin_prefs_reset_successful">Tüm eklenti ayarları varsayılan durumuna geri yüklendi.</string>
<string name="profile_prefs_reset_successful">Tüm profil ayarları varsayılan durumuna geri yüklendi.</string>
<string name="ltr_or_rtl_combine_via_slash">%1$s/%2$s</string>
<string name="sunset_at">%1$s\'de gün batımı</string>
<string name="sunrise_at">%1$s\'de gün doğumu</string>
<string name="accessibility_mode_disabled">Sisteminizde erişilebilirlik modu devre dışı.</string>
</resources>

View file

@ -64,7 +64,7 @@
<string name="poi_musical_instrument">Музичні інструменти</string>
<string name="poi_newsagent">Газети та журнали</string>
<string name="poi_optician">Окуліст</string>
<string name="poi_organic">Органічні продукти харчування</string>
<string name="poi_organic">Органічні вироби</string>
<string name="poi_outdoor">Товари для активного відпочинку</string>
<string name="poi_paint">Фарби</string>
<string name="poi_pet">Зоомагазин, товари для тварин</string>
@ -3774,4 +3774,9 @@
<string name="poi_volcano_number_of_eruptions">Кількість вивержень</string>
<string name="poi_memorial_ghost_bike">Велосипед Ghost</string>
<string name="poi_paintball">Пейнтбол</string>
<string name="poi_mountain_rescue">Гірський порятунок</string>
<string name="poi_shop_security">Крамниця охорони</string>
<string name="poi_bowling_alley">Осередок бовлінгу</string>
<string name="poi_piste_ref">Довідковий номер траси</string>
<string name="poi_resort_hunting">Мисливська база</string>
</resources>

View file

@ -159,7 +159,7 @@
<string name="amenity_type_user_defined">Користувацькі</string>
<string name="fav_export_confirmation">Файл з раніше імпортованими Закладками вже існує. Замінити його?</string>
<string name="profile_settings">Налаштування профілю</string>
<string name="settings_preset">Типовий профіль</string>
<string name="settings_preset">Усталений профіль</string>
<string name="settings_preset_descr">Вид мапи й налаштування навігації зберігаються для кожного окремого профілю. Встановіть Ваш типовий профіль.</string>
<string name="routing_settings">Навігація</string>
<string name="routing_settings_descr">Визначити налаштування навігації.</string>
@ -617,7 +617,7 @@
<string name="map_view_3d">3D вид</string>
<string name="show_poi_over_map_description">Відображати останні вибрані POI на мапі.</string>
<string name="show_poi_over_map">Відображати POI</string>
<string name="map_tile_source_descr">Виберіть джерело мережевих або кешованих плиток мап</string>
<string name="map_tile_source_descr">Оберіть джерело мережевих або кешованих плиток мап</string>
<string name="map_tile_source">Джерело растрових мап</string>
<string name="map_source">Джерело мапи</string>
<string name="use_internet">Використовувати Інтернет</string>
@ -796,8 +796,8 @@
<string name="precise_routing_mode">Точний маршрут (alpha)</string>
<string name="av_video_format_descr">Формат відео:</string>
<string name="av_video_format">Формат відео</string>
<string name="av_use_external_recorder_descr">Використовувати системну програму для запису відео.</string>
<string name="av_use_external_recorder">Використовувати системну програму</string>
<string name="av_use_external_recorder_descr">Використовувати системний записувач відео.</string>
<string name="av_use_external_recorder">Використовувати системний записувач</string>
<string name="av_use_external_camera_descr">Використовувати системний застосунок для світлин.</string>
<string name="recording_unavailable">недоступно</string>
<string name="shared_string_control_stop">Стоп</string>
@ -1280,8 +1280,7 @@
<string name="keep_informing_never">Тільки вручну (натискати на стрілку)</string>
<string name="keep_informing_descr">Повторювати навігаційні інструкції через регулярні проміжки часу.</string>
<string name="keep_informing">Повторювати навігаційні інструкції</string>
<string name="create_poi_link_to_osm_doc">
<u>Online OSM</u> класифікація мап із зображеннями.</string>
<string name="create_poi_link_to_osm_doc"> string name=\"lat_lon_pattern\"&gt;Шир: %1$.5f Дов: %2$.5f&lt;/string </string>
<string name="import_file_favourites">Зберегти дані як GPX-файл чи імпортувати маршрутні точки в \'Закладки\'?</string>
<string name="shared_string_share">Поділитися</string>
<string name="share_fav_subject">Закладки, якими поділились через OsmAnd</string>
@ -1406,7 +1405,7 @@
<string name="avoid_roads_msg">Прокласти альтернативний маршрут, вибравши дороги, яких варто уникати</string>
<string name="speak_pedestrian">Пішохідні переходи</string>
<string name="rendering_attr_roadStyle_name">Стиль доріг</string>
<string name="rendering_value_default_name">Типово</string>
<string name="rendering_value_default_name">Усталено</string>
<string name="rendering_value_orange_name">Помаранчевий</string>
<string name="rendering_value_germanRoadAtlas_name">Атлас доріг Німеччини</string>
<string name="traffic_warning_railways">Залізничний переїзд</string>
@ -1615,7 +1614,7 @@
<string name="local_recordings_delete_all_confirm">Ви збираєтеся видалити %1$d приміток. Ви впевнені\?</string>
<string name="download_wikipedia_maps">Вікіпедія</string>
<string name="rendering_value_default13_name">Усталено (13)</string>
<string name="rendering_value_defaultTranslucentCyan_name">Типово (напівпрозорий блакитний)</string>
<string name="rendering_value_defaultTranslucentCyan_name">Усталено (напівпрозорий блакитний)</string>
<string name="rendering_value_translucent_orange_name">Напівпрозорий помаранчевий</string>
<string name="shared_string_update">Оновити</string>
<string name="rendering_attr_horseRoutes_name">Кінні маршрути</string>
@ -1917,7 +1916,7 @@
<string name="access_smart_autoannounce_descr">Сповіщати лише, коли змінюється напрямок до цільової точки.</string>
<string name="access_autoannounce_period">Період сповіщеннь</string>
<string name="access_autoannounce_period_descr">Мінімальний час між оголошеннями.</string>
<string name="access_default_color">Типовий колір</string>
<string name="access_default_color">Усталений колір</string>
<string name="access_category_choice">Оберіть категорію</string>
<string name="access_hint_enter_name">Додайте назву</string>
<string name="access_hint_enter_category">Додайте категорію</string>
@ -2265,7 +2264,7 @@
<string name="select_city">Виберіть місто</string>
<string name="select_postcode">Виберіть поштовий індекс</string>
<string name="quick_action_auto_zoom">Автомасштаб мапи вкл/викл</string>
<string name="quick_action_auto_zoom_desc">Кнопка для увімкнення або вимкнення самочинного наближення при збільшеній швидкості</string>
<string name="quick_action_auto_zoom_desc">Кнопка для перемикання самочинного наближення при збільшеній швидкості</string>
<string name="quick_action_auto_zoom_on">Увімкнути самомасштабування мапи</string>
<string name="quick_action_auto_zoom_off">Вимкнути самомасштабування мапи</string>
<string name="quick_action_add_destination">Установити місце призначення</string>
@ -2545,7 +2544,7 @@
<string name="hide_passed">Приховати проходження</string>
<string name="shared_string_markers">Маркери</string>
<string name="coordinates_format">Формат координат</string>
<string name="use_system_keyboard">Використовувати системну клавіатуру</string>
<string name="use_system_keyboard">Використовувати системну набірницю</string>
<string name="fast_coordinates_input_descr">Виберіть формат введення координат. Ви завжди можете змінити його, натиснувши „Параметри“.</string>
<string name="fast_coordinates_input">Швидке введення координат</string>
<string name="routing_attr_avoid_ice_roads_fords_name">Уникати льодових доріг і бродів</string>
@ -3199,7 +3198,7 @@
<string name="rendering_attr_showLez_description">Показати на мапі зони низьких викидів. Не впливає на маршрутизацію.</string>
<string name="rendering_attr_showLez_name">Показати зони низьких викидів</string>
<string name="temporary_conditional_routing">Враховувати тимчасові обмеження</string>
<string name="shared_string_default">Типовий</string>
<string name="shared_string_default">Усталений</string>
<string name="new_route_calculated_dist_dbg">Маршрут: відстань %s, час навігації %s
\nРозрахунок: %.1f с, %d доріг, %d тайлів)</string>
<string name="lang_oc">Окситанська</string>
@ -3432,7 +3431,7 @@
<string name="live_monitoring">Мережеве відстеження</string>
<string name="save_track_logging_accuracy">Точність часопису</string>
<string name="tracks_view_descr">Ви можете знайти всі записи в %1$s або в теці OsmAnd за допомогою файлового провідника.</string>
<string name="multimedia_notes_view_descr">Ви можете знайти всі свої примітки в %1$s</string>
<string name="multimedia_notes_view_descr">Ваші примітки OSM знаходяться в %1$s.</string>
<string name="video_notes">Відеопримітки</string>
<string name="photo_notes">Світлинопримітки</string>
<string name="route_recalculation">Перерахунок маршруту</string>
@ -3474,4 +3473,16 @@
<string name="multimedia_use_system_camera">Використовувати системний застосунок</string>
<string name="multimedia_photo_play_sound">Звук затвору камери</string>
<string name="osm_authorization_success">Авторизація пройшла успішно</string>
<string name="rearrange_categories">Перевпорядкувати категорії</string>
<string name="create_custom_categories_list_promo">Ви можете додати особливі приховані категорії, які вам не здаються потрібними, і змінити упорядкування списку. Список можна імпортувати та експортувати за допомогою профілів.</string>
<string name="add_new_custom_category_button_promo">Ви можете додати нову власну категорію, вибравши одну або кілька необхідних категорій.</string>
<string name="shared_string_available">Доступні</string>
<string name="add_custom_category">Додати власну категорію</string>
<string name="rendering_attr_streetLightingNight_name">Показувати лише вночі</string>
<string name="plugin_prefs_reset_successful">Усі налаштування втулка відновлено до усталеного стану.</string>
<string name="profile_prefs_reset_successful">Усі налаштування профілю відновлено до усталеного стану.</string>
<string name="ltr_or_rtl_combine_via_slash">%1$s/%2$s</string>
<string name="sunset_at">Захід сонця о %1$s</string>
<string name="sunrise_at">Схід сонця о %1$s</string>
<string name="accessibility_mode_disabled">У вашій системі вимкнено режим доступності.</string>
</resources>

View file

@ -107,7 +107,7 @@
<string name="poi_musical_instrument">樂器行</string>
<string name="poi_newsagent">書報攤</string>
<string name="poi_optician">驗光師</string>
<string name="poi_organic">有機</string>
<string name="poi_organic">有機</string>
<string name="poi_outdoor">戶外用品店</string>
<string name="poi_paint">油漆店</string>
<string name="poi_pet">寵物店</string>
@ -3785,4 +3785,9 @@
<string name="poi_volcano_number_of_eruptions">噴發次數</string>
<string name="poi_memorial_ghost_bike">幽靈單車</string>
<string name="poi_paintball">漆彈</string>
<string name="poi_mountain_rescue">山區救援</string>
<string name="poi_shop_security">安全商店</string>
<string name="poi_bowling_alley">保齡球館</string>
<string name="poi_piste_ref">滑雪道參考編號</string>
<string name="poi_resort_hunting">狩獵基地</string>
</resources>

View file

@ -3473,4 +3473,16 @@
<string name="multimedia_use_system_camera">使用系統應用程式</string>
<string name="multimedia_photo_play_sound">相機快門聲</string>
<string name="osm_authorization_success">驗證成功</string>
<string name="rearrange_categories">重新排列分類</string>
<string name="create_custom_categories_list_promo">您可以新增自訂的分類,隱藏您不需要的分類並變更清單順序。清單可與設定檔一起匯入與匯出。</string>
<string name="add_new_custom_category_button_promo">您可以透過選取一個或多個需要的分類來新增自訂的分類。</string>
<string name="shared_string_available">可用</string>
<string name="add_custom_category">新增自訂分類</string>
<string name="rendering_attr_streetLightingNight_name">僅在夜間顯示</string>
<string name="plugin_prefs_reset_successful">所有外掛程式設定都已恢復為預設狀態。</string>
<string name="profile_prefs_reset_successful">所有設定檔的設定都已恢復為預設狀態。</string>
<string name="ltr_or_rtl_combine_via_slash">%1$s/%2$s</string>
<string name="sunset_at">日落於 %1$s</string>
<string name="sunrise_at">日出於 %1$s</string>
<string name="accessibility_mode_disabled">您的系統停用了無障礙模式。</string>
</resources>

View file

@ -256,6 +256,7 @@
<dimen name="bottom_sheet_divider_margin_start">64dp</dimen>
<dimen name="bottom_sheet_image_text_margin_start">10dp</dimen>
<dimen name="bottom_sheet_selected_item_title_height">56dp</dimen>
<dimen name="bottom_sheet_text_spacing_multiplier" format="float">1.25</dimen>
<dimen name="action_bar_image_width_land">236dp</dimen>
<dimen name="action_bar_image_top_margin_land">68dp</dimen>

View file

@ -11,11 +11,13 @@
Thx - Hardy
-->
<string name="reset_to_default_category_button_promo">Reset to default will reset sort order to the default state after installation.</string>
<string name="use_system_screen_timeout">Use system screen timeout</string>
<string name="use_system_screen_timeout_promo">Disabled by default, if OsmAnd running on foreground, the screen doesnt time out.\n\nIf enabled OsmAnd will use system timeout settings.</string>
<string name="accessibility_mode_disabled">Accessibility mode disabled in your system.</string>
<string name="rearrange_categories">Rearrange categories</string>
<string name="create_custom_categories_list_promo">You can add custom categories hide categories that you dont find necessary and change the sort order of the list. The list can be imported and exported with profiles.</string>
<string name="add_new_custom_category_button_promo">You can add a new custom category by selecting one or a few needed categories.</string>
<string name="reset_to_default_category_button_promo">Reset to default will delete or custom categories and reset sort order to the default state after installation.</string>
<string name="shared_string_available">Available</string>
<string name="add_custom_category">Add custom category</string>
<string name="rendering_attr_streetLightingNight_name">Show only at night</string>
@ -3383,7 +3385,6 @@
<string name="use_drawer_btn">Use menu</string>
<string name="dashboard_or_drawer_title">Dashboard or menu control</string>
<string name="dashboard_or_drawer_description">A choice is offered to primarily control the app via the flexible dashboard or a static menu. Your choice can always be changed in the dashboard settings.</string>
<string name="update">Update</string>
<string name="only_download_over_wifi">Only download on Wi-Fi</string>
<string name="live_update">Live update</string>
<string name="update_now">Update now</string>

View file

@ -60,4 +60,15 @@
app:fragment="net.osmand.plus.settings.ProxySettingsFragment"
tools:icon="@drawable/ic_action_proxy" />
<Preference
android:layout="@layout/simple_divider_item"
android:selectable="false" />
<net.osmand.plus.settings.preferences.SwitchPreferenceEx
android:key="use_system_screen_timeout"
android:layout="@layout/preference_with_descr_dialog_and_switch"
android:summaryOff="@string/shared_string_disabled"
android:summaryOn="@string/shared_string_enabled"
android:title="@string/use_system_screen_timeout" />
</PreferenceScreen>

View file

@ -37,6 +37,7 @@
android:key="save_global_track_interval"
android:layout="@layout/preference_with_descr"
android:title="@string/save_global_track_interval"
android:persistent="false"
tools:icon="@drawable/ic_action_time_span"
tools:summary="3 seconds" />

View file

@ -56,7 +56,6 @@ import android.widget.TextView;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.R;
import net.osmand.plus.download.DownloadActivity;
import net.osmand.util.Algorithms;
import java.io.File;
@ -264,6 +263,17 @@ public class AndroidUtils {
lightNormal, lightChecked, darkNormal, darkChecked);
}
public static ColorStateList createEnabledColorStateList(Context ctx, @ColorRes int normal, @ColorRes int pressed) {
return createEnabledColorStateList(ctx, false, normal, pressed, 0, 0);
}
public static ColorStateList createEnabledColorStateList(Context ctx, boolean night,
@ColorRes int lightNormal, @ColorRes int lightPressed,
@ColorRes int darkNormal, @ColorRes int darkPressed) {
return createColorStateList(ctx, night, android.R.attr.state_enabled,
lightNormal, lightPressed, darkNormal, darkPressed);
}
public static ColorStateList createPressedColorStateList(Context ctx, @ColorRes int normal, @ColorRes int pressed) {
return createPressedColorStateList(ctx, false, normal, pressed, 0, 0);
}
@ -298,6 +308,10 @@ public class AndroidUtils {
return createStateListDrawable(normal, pressed, android.R.attr.state_pressed);
}
public static StateListDrawable createEnabledStateListDrawable(Drawable disabled, Drawable enabled) {
return createStateListDrawable(disabled, enabled, android.R.attr.state_enabled);
}
private static StateListDrawable createStateListDrawable(Drawable normal, Drawable stateDrawable, int state) {
StateListDrawable res = new StateListDrawable();
res.addState(new int[]{state}, stateDrawable);

View file

@ -184,6 +184,13 @@ public class ConnectedApp implements Comparable<ConnectedApp> {
TextInfoWidget createWidgetControl(final MapActivity mapActivity, final String widgetId) {
TextInfoWidget control = new TextInfoWidget(mapActivity) {
private boolean init = true;
private String cachedTxt;
private String cachedSubtext;
private Boolean cachedNight;
private Integer cachedIcon;
@Override
public boolean updateInfo(OsmandMapLayer.DrawSettings drawSettings) {
AidlMapWidgetWrapper widget = widgets.get(widgetId);
@ -192,6 +199,14 @@ public class ConnectedApp implements Comparable<ConnectedApp> {
String subtext = widget.getDescription();
boolean night = drawSettings != null && drawSettings.isNightMode();
int icon = AndroidUtils.getDrawableId(mapActivity.getMyApplication(), night ? widget.getDarkIconName() : widget.getLightIconName());
if (init || !Algorithms.objectEquals(txt, cachedTxt) || !Algorithms.objectEquals(subtext, cachedSubtext)
|| !Algorithms.objectEquals(night, cachedNight) || !Algorithms.objectEquals(icon, cachedIcon)) {
init = false;
cachedTxt = txt;
cachedSubtext = subtext;
cachedNight = night;
cachedIcon = icon;
setText(txt, subtext);
if (icon != 0) {
setImageDrawable(icon);
@ -201,6 +216,11 @@ public class ConnectedApp implements Comparable<ConnectedApp> {
return true;
}
return false;
} else {
setText(null, null);
setImageDrawable(null);
return true;
}
}
};
control.updateInfo(null);

View file

@ -12,7 +12,6 @@ public class WptLocationPoint implements LocationPoint {
this.pt = p;
}
@Override
public double getLatitude() {
return pt.lat;
@ -36,4 +35,8 @@ public class WptLocationPoint implements LocationPoint {
public PointDescription getPointDescription(Context ctx) {
return new PointDescription(PointDescription.POINT_TYPE_WPT, pt.name);
}
public GPXUtilities.WptPt getPt() {
return pt;
}
}

View file

@ -567,7 +567,7 @@ public class AppInitializer implements IProgress {
return null;
}
});
app.regions.setLocale(app.getLanguage());
app.regions.setLocale(app.getLanguage(), app.getCountry());
}

View file

@ -1,16 +1,32 @@
package net.osmand.plus;
import android.Manifest;
import android.app.Activity;
import android.location.GnssNavigationMessage;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.hardware.GeomagneticField;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.location.GnssStatus;
import android.location.GpsSatellite;
import android.location.GpsStatus;
import android.location.GpsStatus.Listener;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Build;
import android.os.Build.VERSION;
import android.os.Build.VERSION_CODES;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
import android.os.Bundle;
import android.provider.Settings;
import android.support.annotation.Nullable;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AlertDialog;
import android.util.Log;
import net.osmand.GeoidAltitudeCorrection;
import net.osmand.PlatformUtil;
@ -22,31 +38,16 @@ import net.osmand.data.LatLon;
import net.osmand.data.QuadPoint;
import net.osmand.plus.TargetPointsHelper.TargetPoint;
import net.osmand.plus.routing.RoutingHelper;
import net.osmand.plus.routing.RoutingHelper.RouteSegmentSearchResult;
import net.osmand.router.RouteSegmentResult;
import net.osmand.util.MapUtils;
import android.Manifest;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.hardware.GeomagneticField;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.location.GpsSatellite;
import android.location.GpsStatus;
import android.location.GpsStatus.Listener;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Build;
import android.os.Bundle;
import android.provider.Settings;
import android.support.annotation.Nullable;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AlertDialog;
import android.util.Log;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
public class OsmAndLocationProvider implements SensorEventListener {
@ -146,30 +147,17 @@ public class OsmAndLocationProvider implements SensorEventListener {
this.roads = roads;
startLocation = new net.osmand.Location(currentLocation);
long ms = System.currentTimeMillis();
if (ms - startLocation.getTime() > 5000 ||
ms < startLocation.getTime()) {
if (ms - startLocation.getTime() > 5000 || ms < startLocation.getTime()) {
startLocation.setTime(ms);
}
RouteSegmentSearchResult searchResult =
RoutingHelper.searchRouteSegment(currentLocation.getLatitude(), currentLocation.getLongitude(), -1, roads);
if (searchResult != null) {
currentRoad = searchResult.getRoadIndex();
currentSegment = searchResult.getSegmentIndex();
currentPoint = searchResult.getPoint();
} else {
currentRoad = -1;
int px = MapUtils.get31TileNumberX(currentLocation.getLongitude());
int py = MapUtils.get31TileNumberY(currentLocation.getLatitude());
double dist = 1000;
for (int i = 0; i < roads.size(); i++) {
RouteSegmentResult road = roads.get(i);
boolean plus = road.getStartPointIndex() < road.getEndPointIndex();
for (int j = road.getStartPointIndex() + 1; j <= road.getEndPointIndex(); ) {
RouteDataObject obj = road.getObject();
QuadPoint proj = MapUtils.getProjectionPoint31(px, py, obj.getPoint31XTile(j - 1), obj.getPoint31YTile(j - 1),
obj.getPoint31XTile(j), obj.getPoint31YTile(j));
double dd = MapUtils.squareRootDist31((int) proj.x, (int) proj.y, px, py);
if (dd < dist) {
dist = dd;
currentRoad = i;
currentSegment = j;
currentPoint = proj;
}
j += plus ? 1 : -1;
}
}
}

View file

@ -148,8 +148,6 @@ public class OsmandApplication extends MultiDexApplication {
private File externalStorageDirectory;
private boolean externalStorageDirectoryReadOnly;
private String firstSelectedVoiceProvider;
// Typeface
@Override
@ -466,68 +464,15 @@ public class OsmandApplication extends MultiDexApplication {
String voiceProvider = osmandSettings.VOICE_PROVIDER.getModeValue(applicationMode);
if (voiceProvider == null || OsmandSettings.VOICE_PROVIDER_NOT_USE.equals(voiceProvider)) {
if (warningNoneProvider && voiceProvider == null) {
boolean nightMode = daynightHelper.isNightModeForMapControls();
final AlertDialog.Builder builder = new AlertDialog.Builder(UiUtilities.getThemedContext(uiContext, nightMode));
View view = UiUtilities.getInflater(uiContext, nightMode).inflate(R.layout.select_voice_first, null);
((ImageView) view.findViewById(R.id.icon))
.setImageDrawable(getUIUtilities().getIcon(R.drawable.ic_action_volume_up, getSettings().isLightContent()));
view.findViewById(R.id.spinner).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View v) {
routingOptionsHelper.selectVoiceGuidance((MapActivity) uiContext, new CallbackWithObject<String>() {
@Override
public boolean processResult(String result) {
boolean acceptableValue = !RoutePreferencesMenu.MORE_VALUE.equals(firstSelectedVoiceProvider);
if (acceptableValue) {
((TextView) v.findViewById(R.id.selectText))
.setText(routingOptionsHelper.getVoiceProviderName(uiContext, result));
firstSelectedVoiceProvider = result;
}
return acceptableValue;
}
});
}
});
((ImageView) view.findViewById(R.id.dropDownIcon))
.setImageDrawable(getUIUtilities().getIcon(R.drawable.ic_action_arrow_drop_down, getSettings().isLightContent()));
builder.setCancelable(true);
builder.setNegativeButton(R.string.shared_string_cancel, null);
builder.setPositiveButton(R.string.shared_string_apply, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (!Algorithms.isEmpty(firstSelectedVoiceProvider)) {
routingOptionsHelper.applyVoiceProvider((MapActivity) uiContext, firstSelectedVoiceProvider, applyAllModes);
if (uiContext instanceof MapActivity) {
((MapActivity) uiContext).showVoiceProviderDialog(applicationMode, applyAllModes);
}
}
});
builder.setNeutralButton(R.string.shared_string_do_not_use, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
if (applyAllModes) {
for (ApplicationMode mode : ApplicationMode.allPossibleValues()) {
osmandSettings.VOICE_PROVIDER.setModeValue(mode, OsmandSettings.VOICE_PROVIDER_NOT_USE);
}
} else {
osmandSettings.VOICE_PROVIDER.setModeValue(applicationMode, OsmandSettings.VOICE_PROVIDER_NOT_USE);
}
}
});
builder.setView(view);
builder.show();
}
} else {
if (player == null || !Algorithms.objectEquals(voiceProvider, player.getCurrentVoice()) || force) {
appInitializer.initVoiceDataInDifferentThread(uiContext, applicationMode, voiceProvider, run, showDialog);
}
}
}
public NavigationService getNavigationService() {
@ -831,6 +776,16 @@ public class OsmandApplication extends MultiDexApplication {
}
}
public String getCountry() {
String country;
if (preferredLocale != null) {
country = preferredLocale.getCountry();
} else {
country = Locale.getDefault().getCountry();
}
return country;
}
public String getLanguage() {
String lang;
if (preferredLocale != null) {

View file

@ -1767,6 +1767,8 @@ public class OsmandSettings {
public final CommonPreference<Integer> PROXY_PORT = new IntPreference("proxy_port", 8118).makeGlobal();
public final CommonPreference<String> USER_ANDROID_ID = new StringPreference("user_android_id", "").makeGlobal();
public final CommonPreference<Boolean> USE_SYSTEM_SCREEN_TIMEOUT = new BooleanPreference("use_system_screen_timeout", false).makeGlobal();
// this value string is synchronized with settings_pref.xml preference name
public static final String SAVE_CURRENT_TRACK = "save_current_track"; //$NON-NLS-1$

View file

@ -144,6 +144,10 @@ public class UiUtilities {
return drawable;
}
public static Drawable createTintedDrawable(Context context, @DrawableRes int resId, int color) {
return tintDrawable(ContextCompat.getDrawable(context, resId), color);
}
public static Drawable tintDrawable(Drawable drawable, int color) {
Drawable coloredDrawable = null;
if (drawable != null) {

View file

@ -26,6 +26,7 @@ import android.support.v4.app.ActivityCompat.OnRequestPermissionsResultCallback;
import android.support.v4.app.DialogFragment;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentManager.BackStackEntry;
import android.support.v4.content.ContextCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AlertDialog;
@ -39,11 +40,13 @@ import android.view.View;
import android.view.ViewStub;
import android.view.Window;
import android.view.WindowManager;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;
import net.osmand.AndroidUtils;
import net.osmand.CallbackWithObject;
import net.osmand.Location;
import net.osmand.PlatformUtil;
import net.osmand.SecondSplashScreenFragment;
@ -81,6 +84,7 @@ import net.osmand.plus.OsmandSettings;
import net.osmand.plus.R;
import net.osmand.plus.TargetPointsHelper;
import net.osmand.plus.TargetPointsHelper.TargetPoint;
import net.osmand.plus.UiUtilities;
import net.osmand.plus.Version;
import net.osmand.plus.activities.search.SearchActivity;
import net.osmand.plus.base.BaseOsmAndFragment;
@ -110,6 +114,7 @@ import net.osmand.plus.mapcontextmenu.MapContextMenu;
import net.osmand.plus.mapcontextmenu.MenuController.MenuState;
import net.osmand.plus.mapcontextmenu.builders.cards.dialogs.ContextMenuCardDialogFragment;
import net.osmand.plus.mapcontextmenu.other.DestinationReachedMenu;
import net.osmand.plus.mapcontextmenu.other.RoutePreferencesMenu;
import net.osmand.plus.mapcontextmenu.other.TrackDetailsMenu;
import net.osmand.plus.mapmarkers.MapMarkersDialogFragment;
import net.osmand.plus.mapmarkers.PlanRouteFragment;
@ -122,6 +127,7 @@ import net.osmand.plus.resources.ResourceManager;
import net.osmand.plus.routepreparationmenu.ChooseRouteFragment;
import net.osmand.plus.routepreparationmenu.MapRouteInfoMenu;
import net.osmand.plus.routepreparationmenu.MapRouteInfoMenuFragment;
import net.osmand.plus.routepreparationmenu.RoutingOptionsHelper;
import net.osmand.plus.routing.IRouteInformationListener;
import net.osmand.plus.routing.RoutingHelper;
import net.osmand.plus.routing.RoutingHelper.RouteCalculationProgressCallback;
@ -131,6 +137,7 @@ import net.osmand.plus.search.QuickSearchDialogFragment.QuickSearchTab;
import net.osmand.plus.search.QuickSearchDialogFragment.QuickSearchType;
import net.osmand.plus.settings.BaseSettingsFragment;
import net.osmand.plus.settings.BaseSettingsFragment.SettingsScreenType;
import net.osmand.plus.settings.ConfigureProfileFragment;
import net.osmand.plus.settings.DataStorageFragment;
import net.osmand.plus.settings.ProfileAppearanceFragment;
import net.osmand.plus.views.AddGpxPointBottomSheetHelper.NewGpxPoint;
@ -248,6 +255,13 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven
}
};
private StateChangedListener<Boolean> useSystemScreenTimeoutListener = new StateChangedListener<Boolean>() {
@Override
public void stateChanged(Boolean change) {
changeKeyguardFlags();
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
setRequestedOrientation(AndroidUiHelper.getScreenOrientation(this));
@ -973,6 +987,7 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven
}
settings.MAP_SCREEN_ORIENTATION.addListener(mapScreenOrientationSettingListener);
settings.USE_SYSTEM_SCREEN_TIMEOUT.addListener(useSystemScreenTimeoutListener);
}
public void applyScreenOrientation() {
@ -1075,6 +1090,76 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven
new XMasDialogFragment().show(getSupportFragmentManager(), XMasDialogFragment.TAG);
}
public void showVoiceProviderDialog(final ApplicationMode applicationMode, final boolean applyAllModes) {
boolean nightMode = app.getDaynightHelper().isNightModeForMapControls();
final RoutingOptionsHelper routingOptionsHelper = app.getRoutingOptionsHelper();
final AlertDialog.Builder builder = new AlertDialog.Builder(UiUtilities.getThemedContext(this, nightMode));
final String[] firstSelectedVoiceProvider = new String[1];
View view = UiUtilities.getInflater(this, nightMode).inflate(R.layout.select_voice_first, null);
((ImageView) view.findViewById(R.id.icon))
.setImageDrawable(app.getUIUtilities().getIcon(R.drawable.ic_action_volume_up, settings.isLightContent()));
view.findViewById(R.id.spinner).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View v) {
routingOptionsHelper.selectVoiceGuidance(MapActivity.this, new CallbackWithObject<String>() {
@Override
public boolean processResult(String result) {
boolean acceptableValue = !RoutePreferencesMenu.MORE_VALUE.equals(firstSelectedVoiceProvider[0]);
if (acceptableValue) {
((TextView) v.findViewById(R.id.selectText))
.setText(routingOptionsHelper.getVoiceProviderName(v.getContext(), result));
firstSelectedVoiceProvider[0] = result;
}
return acceptableValue;
}
}, applicationMode);
}
});
((ImageView) view.findViewById(R.id.dropDownIcon))
.setImageDrawable(app.getUIUtilities().getIcon(R.drawable.ic_action_arrow_drop_down, settings.isLightContent()));
builder.setCancelable(true);
builder.setNegativeButton(R.string.shared_string_cancel, null);
builder.setPositiveButton(R.string.shared_string_apply, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (!Algorithms.isEmpty(firstSelectedVoiceProvider[0])) {
routingOptionsHelper.applyVoiceProvider(MapActivity.this, firstSelectedVoiceProvider[0], applyAllModes);
if (OsmandSettings.VOICE_PROVIDER_NOT_USE.equals(firstSelectedVoiceProvider[0])) {
settings.VOICE_MUTE.setModeValue(applicationMode, true);
} else {
settings.VOICE_MUTE.setModeValue(applicationMode, false);
}
}
}
});
builder.setNeutralButton(R.string.shared_string_do_not_use, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
if (applyAllModes) {
muteVoiceForAllProfiles();
} else {
settings.VOICE_PROVIDER.setModeValue(applicationMode, OsmandSettings.VOICE_PROVIDER_NOT_USE);
settings.VOICE_MUTE.setModeValue(applicationMode, true);
}
}
});
builder.setView(view);
builder.show();
}
private void muteVoiceForAllProfiles() {
for (ApplicationMode mode : ApplicationMode.allPossibleValues()) {
settings.VOICE_PROVIDER.setModeValue(mode, OsmandSettings.VOICE_PROVIDER_NOT_USE);
settings.VOICE_MUTE.setModeValue(mode, true);
}
}
private void dismissSecondSplashScreen() {
if (SecondSplashScreenFragment.VISIBLE) {
SecondSplashScreenFragment.VISIBLE = false;
@ -1222,6 +1307,9 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven
boolean editToShow = settings.getAndClearEditObjectToShow();
int status = settings.isRouteToPointNavigateAndClear();
String searchRequestToShow = settings.getAndClearSearchRequestToShow();
if (status != 0 || searchRequestToShow != null || latLonToShow != null) {
dismissSettingsScreens();
}
if (status != 0) {
// always enable and follow and let calculate it (i.e.GPS is not accessible in a garage)
Location loc = new Location("map");
@ -1460,6 +1548,7 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven
private void onPauseActivity() {
settings.MAP_SCREEN_ORIENTATION.removeListener(mapScreenOrientationSettingListener);
settings.USE_SYSTEM_SCREEN_TIMEOUT.removeListener(useSystemScreenTimeoutListener);
if (!app.getRoutingHelper().isRouteWasFinished()) {
DestinationReachedMenu.resetShownState();
}
@ -2099,7 +2188,9 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven
}
public void changeKeyguardFlags() {
changeKeyguardFlags(settings.TURN_SCREEN_ON_TIME_INT.get() > 0, true);
boolean enabled = settings.TURN_SCREEN_ON_ENABLED.get() && settings.TURN_SCREEN_ON_TIME_INT.get() > 0;
boolean keepScreenOn = !settings.USE_SYSTEM_SCREEN_TIMEOUT.get();
changeKeyguardFlags(enabled, keepScreenOn);
}
private void changeKeyguardFlags(boolean enable, boolean forceKeepScreenOn) {
@ -2420,6 +2511,17 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven
return getFragment(QuickActionListFragment.TAG);
}
public void backToConfigureProfileFragment() {
FragmentManager fragmentManager = getSupportFragmentManager();
int backStackEntryCount = fragmentManager.getBackStackEntryCount();
if (backStackEntryCount > 0) {
BackStackEntry entry = fragmentManager.getBackStackEntryAt(backStackEntryCount - 1);
if (ConfigureProfileFragment.TAG.equals(entry.getName())) {
fragmentManager.popBackStack();
}
}
}
<T> T getFragment(String fragmentTag){
Fragment fragment = getSupportFragmentManager().findFragmentByTag(fragmentTag);
return fragment != null && !fragment.isDetached() && !fragment.isRemoving() ? (T) fragment : null;

View file

@ -11,6 +11,7 @@ import android.hardware.Camera;
import android.media.CamcorderProfile;
import android.media.MediaRecorder;
import android.os.Build;
import android.os.Bundle;
import android.os.StatFs;
import android.support.annotation.NonNull;
import android.support.v4.app.ActivityCompat;
@ -27,6 +28,7 @@ import net.osmand.plus.OsmAndAppCustomization;
import net.osmand.plus.OsmandPlugin;
import net.osmand.plus.R;
import net.osmand.plus.UiUtilities;
import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.helpers.FontCache;
import net.osmand.plus.profiles.SelectCopyAppModeBottomSheet;
import net.osmand.plus.profiles.SelectCopyAppModeBottomSheet.CopyAppModePrefsListener;
@ -52,6 +54,7 @@ import static net.osmand.plus.audionotes.AudioVideoNotesPlugin.AV_CAMERA_FOCUS_I
import static net.osmand.plus.audionotes.AudioVideoNotesPlugin.AV_CAMERA_FOCUS_MACRO;
import static net.osmand.plus.audionotes.AudioVideoNotesPlugin.NOTES_TAB;
import static net.osmand.plus.audionotes.AudioVideoNotesPlugin.cameraPictureSizeDefault;
import static net.osmand.plus.myplaces.FavoritesActivity.TAB_ID;
public class MultimediaNotesFragment extends BaseSettingsFragment implements CopyAppModePrefsListener, ResetAppModePrefsListener {
@ -113,14 +116,14 @@ public class MultimediaNotesFragment extends BaseSettingsFragment implements Cop
private void setupExternalPhotoCamPref(Camera cam, AudioVideoNotesPlugin plugin) {
SwitchPreferenceEx externalPhotoCam = (SwitchPreferenceEx) findPreference(plugin.AV_EXTERNAL_PHOTO_CAM.getId());
externalPhotoCam.setDescription(getString(R.string.av_use_external_camera_descr));
externalPhotoCam.setIcon(getActiveIcon(R.drawable.ic_action_photo_dark));
externalPhotoCam.setIcon(getPersistentPrefIcon(R.drawable.ic_action_photo_dark));
externalPhotoCam.setEnabled(cam != null);
}
private void setupCameraPictureSizePref(Camera cam, AudioVideoNotesPlugin plugin) {
ListPreferenceEx cameraPictureSize = (ListPreferenceEx) findPreference(plugin.AV_CAMERA_PICTURE_SIZE.getId());
cameraPictureSize.setDescription(R.string.av_camera_pic_size_descr);
cameraPictureSize.setIcon(getActiveIcon(R.drawable.ic_action_picture_size));
cameraPictureSize.setIcon(getPersistentPrefIcon(R.drawable.ic_action_picture_size));
if (cam == null) {
cameraPictureSize.setEnabled(false);
@ -192,7 +195,7 @@ public class MultimediaNotesFragment extends BaseSettingsFragment implements Cop
private void setupCameraFocusTypePref(Camera cam, AudioVideoNotesPlugin plugin) {
ListPreferenceEx cameraFocusType = (ListPreferenceEx) findPreference(plugin.AV_CAMERA_FOCUS_TYPE.getId());
cameraFocusType.setDescription(R.string.av_camera_focus_descr);
cameraFocusType.setIcon(getActiveIcon(R.drawable.ic_action_camera_focus));
cameraFocusType.setIcon(getPersistentPrefIcon(R.drawable.ic_action_camera_focus));
if (cam == null) {
cameraFocusType.setEnabled(false);
@ -243,7 +246,7 @@ public class MultimediaNotesFragment extends BaseSettingsFragment implements Cop
private void setupPhotoPlaySoundPref(Camera cam, AudioVideoNotesPlugin plugin) {
SwitchPreferenceEx photoPlaySound = (SwitchPreferenceEx) findPreference(plugin.AV_PHOTO_PLAY_SOUND.getId());
photoPlaySound.setDescription(getString(R.string.av_photo_play_sound_descr));
photoPlaySound.setIcon(getContentIcon(R.drawable.ic_action_music_off));
photoPlaySound.setIcon(getPersistentPrefIcon(R.drawable.ic_action_music_off));
photoPlaySound.setEnabled(cam != null);
}
@ -270,7 +273,7 @@ public class MultimediaNotesFragment extends BaseSettingsFragment implements Cop
private void setupExternalRecorderPref(AudioVideoNotesPlugin plugin) {
SwitchPreferenceEx externalRecorder = (SwitchPreferenceEx) findPreference(plugin.AV_EXTERNAL_RECORDER.getId());
externalRecorder.setDescription(getString(R.string.av_use_external_recorder_descr));
externalRecorder.setIcon(getContentIcon(R.drawable.ic_action_video_dark));
externalRecorder.setIcon(getPersistentPrefIcon(R.drawable.ic_action_video_dark));
}
private void setupVideoQualityPref(AudioVideoNotesPlugin plugin) {
@ -308,7 +311,7 @@ public class MultimediaNotesFragment extends BaseSettingsFragment implements Cop
videoQuality.setEntries(entries);
videoQuality.setEntryValues(entryValues);
videoQuality.setDescription(R.string.av_video_quality_descr);
videoQuality.setIcon(getContentIcon(R.drawable.ic_action_picture_size));
videoQuality.setIcon(getActiveIcon(R.drawable.ic_action_picture_size));
}
private void setupRecorderSplitPref(AudioVideoNotesPlugin plugin) {
@ -366,7 +369,7 @@ public class MultimediaNotesFragment extends BaseSettingsFragment implements Cop
storageSize.setEntries(entries);
storageSize.setEntryValues(entryValues);
storageSize.setDescription(R.string.rec_split_storage_size_desc);
storageSize.setIcon(getContentIcon(R.drawable.ic_sdcard));
storageSize.setIcon(getActiveIcon(R.drawable.ic_sdcard));
} else {
storageSize.setVisible(false);
}
@ -404,10 +407,13 @@ public class MultimediaNotesFragment extends BaseSettingsFragment implements Cop
public boolean onPreferenceClick(Preference preference) {
String prefId = preference.getKey();
if (OPEN_NOTES.equals(prefId)) {
Bundle bundle = new Bundle();
bundle.putInt(TAB_ID, NOTES_TAB);
OsmAndAppCustomization appCustomization = app.getAppCustomization();
Intent favorites = new Intent(preference.getContext(), appCustomization.getFavoritesActivity());
favorites.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
app.getSettings().FAVORITES_TAB.set(NOTES_TAB);
favorites.putExtra(MapActivity.INTENT_PARAMS, bundle);
startActivity(favorites);
return true;
} else if (COPY_PLUGIN_SETTINGS.equals(prefId)) {

View file

@ -82,7 +82,6 @@ import net.osmand.plus.srtmplugin.SRTMPlugin;
import net.osmand.plus.views.DownloadedRegionsLayer;
import net.osmand.plus.views.MapInfoLayer;
import net.osmand.plus.views.OsmandMapTileView;
import net.osmand.plus.views.controls.DynamicListView;
import net.osmand.plus.views.mapwidgets.MapWidgetRegistry;
import java.lang.ref.WeakReference;
@ -224,6 +223,7 @@ public class DashboardOnMap implements ObservableScrollViewCallbacks, IRouteInfo
@Override
public void onClick(View v) {
hideDashboard();
mapActivity.dismissSettingsScreens();
}
};
toolbar = ((Toolbar) dashboardView.findViewById(R.id.toolbar));
@ -1056,6 +1056,7 @@ public class DashboardOnMap implements ObservableScrollViewCallbacks, IRouteInfo
setDashboardVisibility(true, previousVisibleType);
} else {
hideDashboard();
mapActivity.backToConfigureProfileFragment();
}
}

View file

@ -169,10 +169,12 @@ public class TestVoiceActivity extends OsmandActionBarActivity {
addButton(ll, "\u25BA (3.4) After 3100m turn right onto 'SR 80' toward 'Rome'", builder(p).prepareTurn(AbstractPrologCommandPlayer.A_RIGHT, 3100, street(p, "SR 80", "", "Rome")));
addButton(ll, "\u25BA (3.5) In 370m turn slightly right onto 'Route 23' 'Main Street', then bear left", builder(p).turn(AbstractPrologCommandPlayer.A_RIGHT_SL, 370, street(p, "Route 23", "Main Street", "")).then().bearLeft(street(p, "")));
addButton(ll, "\u25BA (3.6) Turn sharply right onto 'Dr.-Quinn-Stra"+"\u00df"+"e'", builder(p).turn(AbstractPrologCommandPlayer.A_RIGHT_SH, street(p, "", "Dr.-Quinn-Straße", "")));
addButton(ll, "\u25BA (3.7) Turn slightly right to exit 6 onto 'Amsterdam-Osdorp'", builder(p).takeExit(AbstractPrologCommandPlayer.A_RIGHT_SL, "6", 6, street(p, "", "Amsterdam-Osdorp", "")));
addButton(ll, "\u25BA (3.8) In 350m turn slightly right to exit 6 onto 'Amsterdam-Osdorp'", builder(p).takeExit(AbstractPrologCommandPlayer.A_RIGHT_SL, 350, "6", 6, street(p, "", "Amsterdam-Osdorp", "")));
addButton(ll, "\u25BA (3.9) Turn slightly right to exit 260B ", builder(p).takeExit(AbstractPrologCommandPlayer.A_RIGHT_SL, "260 B", 260, street(p, "", "", "")));
addButton(ll, "\u25BA (3.10) Turn slightly left to exit 15B ", builder(p).takeExit(AbstractPrologCommandPlayer.A_LEFT_SL, "15 B", 15, street(p, "", "", "")));
addButton(ll, "\u25BA (3.7) Turn slightly right onto exit 6 onto 'Amsterdam-Osdorp'", builder(p).takeExit(AbstractPrologCommandPlayer.A_RIGHT_SL, "6", 6, street(p, "", "Amsterdam-Osdorp", "")));
addButton(ll, "\u25BA (3.8) In 350m turn slightly right onto exit 6, 'Amsterdam-Osdorp'", builder(p).takeExit(AbstractPrologCommandPlayer.A_RIGHT_SL, 350, "6", 6, street(p, "", "Amsterdam-Osdorp", "")));
addButton(ll, "\u25BA (3.9) In 350m turn slightly right onto exit 6, 'Amsterdam-Osdorp' towards Osdorp", builder(p).takeExit(AbstractPrologCommandPlayer.A_RIGHT_SL, 350, "6", 6, street(p, "", "Amsterdam-Osdorp", "Osdorp")));
addButton(ll, "\u25BA (3.10) In 350m turn slightly right to exit 6 towards 'Osdorp'", builder(p).takeExit(AbstractPrologCommandPlayer.A_RIGHT_SL, 350, "6", 6, street(p, "", "", "Osdorp")));
addButton(ll, "\u25BA (3.11) Turn slightly right to exit 260B ", builder(p).takeExit(AbstractPrologCommandPlayer.A_RIGHT_SL, "260 B", 260, street(p, "", "", "")));
addButton(ll, "\u25BA (3.12) Turn slightly left to exit 15B ", builder(p).takeExit(AbstractPrologCommandPlayer.A_LEFT_SL, "15 B", 15, street(p, "", "", "")));
addButton(ll, "Keep left/right: prepareTurn, makeTurnIn, turn:", builder(p));
addButton(ll, "\u25BA (4.1) After 1810m keep left ' '", builder(p).prepareTurn(AbstractPrologCommandPlayer.A_LEFT_KEEP, 1810, street(p, "")));

View file

@ -671,7 +671,7 @@ public class DownloadActivity extends AbstractDownloadActivity implements Downlo
if (dir.canRead()) {
StatFs fs = new StatFs(dir.getAbsolutePath());
size = AndroidUtils.formatSize(activity, ((long)fs.getAvailableBlocks()) * fs.getBlockSize());
percent = 100 - fs.getAvailableBlocks() * 100 / fs.getBlockCount();
percent = 100 - (int)((long)fs.getAvailableBlocks() * 100 / fs.getBlockCount());
}
sizeProgress.setIndeterminate(false);
sizeProgress.setProgress(percent);

View file

@ -161,7 +161,7 @@ public class UpdatesIndexFragment extends OsmAndListFragment implements Download
dialog.setTitle(R.string.update_all_maps);
dialog.setMessage(getString(R.string.update_all_maps_q, indexItems.size()));
dialog.setNegativeButton(R.string.shared_string_cancel, null);
dialog.setPositiveButton(R.string.update, new DialogInterface.OnClickListener() {
dialog.setPositiveButton(R.string.shared_string_update, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
getMyActivity().startDownload(indexItems.toArray(new IndexItem[indexItems.size()]));

View file

@ -23,6 +23,8 @@ import net.osmand.ResultMatcher;
import net.osmand.binary.RouteDataObject;
import net.osmand.data.LatLon;
import net.osmand.data.PointDescription;
import net.osmand.data.QuadPoint;
import net.osmand.data.RotatedTileBox;
import net.osmand.plus.ApplicationMode;
import net.osmand.plus.OsmAndFormatter;
import net.osmand.plus.OsmandApplication;
@ -31,15 +33,20 @@ import net.osmand.plus.UiUtilities;
import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.mapcontextmenu.MapContextMenu;
import net.osmand.plus.routing.RoutingHelper;
import net.osmand.plus.routing.RoutingHelper.RouteSegmentSearchResult;
import net.osmand.plus.views.ContextMenuLayer;
import net.osmand.router.RouteSegmentResult;
import net.osmand.util.MapUtils;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
public class AvoidSpecificRoads {
private static final float MAX_AVOID_ROUTE_SEARCH_RADIUS_DP = 32f;
private OsmandApplication app;
private Map<LatLon, RouteDataObject> impassableRoads = new LinkedHashMap<>();
@ -206,7 +213,7 @@ public class AvoidSpecificRoads {
});
}
public void addImpassableRoad(@Nullable final MapActivity activity,
public void addImpassableRoad(@Nullable final MapActivity mapActivity,
@NonNull final LatLon loc,
final boolean showDialog,
final boolean skipWritingSettings) {
@ -215,16 +222,34 @@ public class AvoidSpecificRoads {
ll.setLongitude(loc.getLongitude());
ApplicationMode appMode = app.getRoutingHelper().getAppMode();
List<RouteSegmentResult> roads = app.getRoutingHelper().getRoute().getOriginalRoute();
if (mapActivity != null && roads != null) {
RotatedTileBox tb = mapActivity.getMapView().getCurrentRotatedTileBox().copy();
float maxDistPx = MAX_AVOID_ROUTE_SEARCH_RADIUS_DP * tb.getDensity();
RouteSegmentSearchResult searchResult =
RoutingHelper.searchRouteSegment(loc.getLatitude(), loc.getLongitude(), maxDistPx / tb.getPixDensity(), roads);
if (searchResult != null) {
QuadPoint point = searchResult.getPoint();
LatLon newLoc = new LatLon(MapUtils.get31LatitudeY((int) point.y), MapUtils.get31LongitudeX((int) point.x));
ll.setLatitude(newLoc.getLatitude());
ll.setLongitude(newLoc.getLongitude());
addImpassableRoadInternal(roads.get(searchResult.getRoadIndex()).getObject(), ll, showDialog, mapActivity, newLoc);
if (!skipWritingSettings) {
app.getSettings().addImpassableRoad(newLoc.getLatitude(), newLoc.getLongitude());
}
return;
}
}
app.getLocationProvider().getRouteSegment(ll, appMode, false, new ResultMatcher<RouteDataObject>() {
@Override
public boolean publish(RouteDataObject object) {
if (object == null) {
if (activity != null) {
Toast.makeText(activity, R.string.error_avoid_specific_road, Toast.LENGTH_LONG).show();
if (mapActivity != null) {
Toast.makeText(mapActivity, R.string.error_avoid_specific_road, Toast.LENGTH_LONG).show();
}
} else {
addImpassableRoadInternal(object, ll, showDialog, activity, loc);
addImpassableRoadInternal(object, ll, showDialog, mapActivity, loc);
}
return true;
}
@ -299,7 +324,7 @@ public class AvoidSpecificRoads {
showDialog(activity);
}
MapContextMenu menu = activity.getContextMenu();
if (menu.isActive() && menu.getLatLon().equals(loc)) {
if (menu.isActive()) {
menu.close();
}
activity.refreshMap();

View file

@ -13,6 +13,7 @@ import net.osmand.data.Amenity.AmenityRoutePoint;
import net.osmand.data.FavouritePoint;
import net.osmand.data.LocationPoint;
import net.osmand.data.PointDescription;
import net.osmand.data.WptLocationPoint;
import net.osmand.osm.PoiType;
import net.osmand.plus.ApplicationMode;
import net.osmand.plus.OsmAndFormatter;
@ -774,7 +775,13 @@ public class WaypointHelper {
} else if (type == FAVORITES ) {
return FavoriteImageDrawable.getOrCreate(uiCtx, point.getColor(), false, (FavouritePoint) point);
} else if (type == WAYPOINTS) {
if (point instanceof WptLocationPoint) {
return FavoriteImageDrawable.getOrCreate(uiCtx, point.getColor(), false, ((WptLocationPoint) point).getPt());
} else if (point instanceof GPXUtilities.WptPt) {
return FavoriteImageDrawable.getOrCreate(uiCtx, point.getColor(), false, (GPXUtilities.WptPt) point);
} else {
return null;
}
} else if (type == ALARMS) {
//assign alarm list icons manually for now
String typeString = ((AlarmInfo) point).getType().toString();

View file

@ -73,7 +73,7 @@ public class RoutePreferencesMenu {
updateParameters();
return true;
}
});
}, routingHelper.getAppMode());
}
public OnItemClickListener getItemClickListener(final ArrayAdapter<?> listAdapter) {

View file

@ -2,6 +2,8 @@ package net.osmand.plus.monitoring;
import android.content.Intent;
import android.graphics.Typeface;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.v4.app.FragmentManager;
import android.support.v7.preference.Preference;
import android.text.SpannableString;
@ -12,6 +14,7 @@ import net.osmand.plus.OsmAndAppCustomization;
import net.osmand.plus.OsmandPlugin;
import net.osmand.plus.OsmandSettings;
import net.osmand.plus.R;
import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.helpers.FontCache;
import net.osmand.plus.myplaces.FavoritesActivity;
import net.osmand.plus.profiles.SelectCopyAppModeBottomSheet;
@ -33,8 +36,10 @@ import static net.osmand.plus.OsmandSettings.MONTHLY_DIRECTORY;
import static net.osmand.plus.OsmandSettings.REC_DIRECTORY;
import static net.osmand.plus.monitoring.OsmandMonitoringPlugin.MINUTES;
import static net.osmand.plus.monitoring.OsmandMonitoringPlugin.SECONDS;
import static net.osmand.plus.myplaces.FavoritesActivity.TAB_ID;
public class MonitoringSettingsFragment extends BaseSettingsFragment implements CopyAppModePrefsListener, ResetAppModePrefsListener {
public class MonitoringSettingsFragment extends BaseSettingsFragment
implements CopyAppModePrefsListener, ResetAppModePrefsListener {
private static final String COPY_PLUGIN_SETTINGS = "copy_plugin_settings";
private static final String RESET_TO_DEFAULT = "reset_to_default";
@ -68,7 +73,7 @@ public class MonitoringSettingsFragment extends BaseSettingsFragment implements
private void setupSaveTrackToGpxPref() {
SwitchPreferenceEx saveTrackToGpx = (SwitchPreferenceEx) findPreference(settings.SAVE_TRACK_TO_GPX.getId());
saveTrackToGpx.setDescription(getString(R.string.save_track_to_gpx_descrp));
saveTrackToGpx.setIcon(getContentIcon(R.drawable.ic_action_gdirections_dark));
saveTrackToGpx.setIcon(getPersistentPrefIcon(R.drawable.ic_action_gdirections_dark));
}
private void setupSaveTrackIntervalPref() {
@ -85,6 +90,12 @@ public class MonitoringSettingsFragment extends BaseSettingsFragment implements
ListPreferenceEx saveTrackInterval = (ListPreferenceEx) findPreference(settings.SAVE_GLOBAL_TRACK_INTERVAL.getId());
saveTrackInterval.setEntries(entry.values().toArray(new String[0]));
saveTrackInterval.setEntryValues(entry.keySet().toArray());
ApplicationMode selectedAppMode = getSelectedAppMode();
if (!settings.SAVE_GLOBAL_TRACK_REMEMBER.getModeValue(selectedAppMode)) {
saveTrackInterval.setValue(settings.SAVE_GLOBAL_TRACK_REMEMBER.getModeValue(selectedAppMode));
} else {
saveTrackInterval.setValue(settings.SAVE_GLOBAL_TRACK_INTERVAL.getModeValue(selectedAppMode));
}
saveTrackInterval.setIcon(getActiveIcon(R.drawable.ic_action_time_span));
saveTrackInterval.setDescription(R.string.save_global_track_interval_descr);
}
@ -190,7 +201,7 @@ public class MonitoringSettingsFragment extends BaseSettingsFragment implements
private void setupShowTripRecNotificationPref() {
SwitchPreferenceEx showTripRecNotification = (SwitchPreferenceEx) findPreference(settings.SHOW_TRIP_REC_NOTIFICATION.getId());
showTripRecNotification.setDescription(getString(R.string.trip_rec_notification_settings));
showTripRecNotification.setIcon(getContentIcon(R.drawable.ic_action_notification));
showTripRecNotification.setIcon(getPersistentPrefIcon(R.drawable.ic_action_notification));
}
private void setupTrackStorageDirectoryPref() {
@ -208,9 +219,13 @@ public class MonitoringSettingsFragment extends BaseSettingsFragment implements
}
private void setupLiveMonitoringPref() {
Drawable disabled = getContentIcon(R.drawable.ic_action_offline);
Drawable enabled = getActiveIcon(R.drawable.ic_world_globe_dark);
Drawable icon = getPersistentPrefIcon(enabled, disabled);
SwitchPreferenceEx liveMonitoring = (SwitchPreferenceEx) findPreference(settings.LIVE_MONITORING.getId());
liveMonitoring.setDescription(getString(R.string.live_monitoring_m_descr));
liveMonitoring.setIcon(getContentIcon(R.drawable.ic_world_globe_dark));
liveMonitoring.setIcon(icon);
}
private void setupOpenNotesDescrPref() {
@ -245,10 +260,13 @@ public class MonitoringSettingsFragment extends BaseSettingsFragment implements
public boolean onPreferenceClick(Preference preference) {
String prefId = preference.getKey();
if (OPEN_TRACKS.equals(prefId)) {
Bundle bundle = new Bundle();
bundle.putInt(TAB_ID, FavoritesActivity.GPX_TAB);
OsmAndAppCustomization appCustomization = app.getAppCustomization();
Intent favorites = new Intent(preference.getContext(), appCustomization.getFavoritesActivity());
favorites.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
app.getSettings().FAVORITES_TAB.set(FavoritesActivity.GPX_TAB);
favorites.putExtra(MapActivity.INTENT_PARAMS, bundle);
startActivity(favorites);
return true;
} else if (COPY_PLUGIN_SETTINGS.equals(prefId)) {
@ -321,4 +339,16 @@ public class MonitoringSettingsFragment extends BaseSettingsFragment implements
updateAllSettings();
}
}
@Override
public void onSettingApplied(String prefId, boolean appliedToAllProfiles) {
if (settings.SAVE_GLOBAL_TRACK_INTERVAL.getId().equals(prefId)) {
if (appliedToAllProfiles) {
app.getSettings().setPreferenceForAllModes(settings.SAVE_GLOBAL_TRACK_REMEMBER.getId(), true);
} else {
app.getSettings().setPreference(settings.SAVE_GLOBAL_TRACK_REMEMBER.getId(), true, getSelectedAppMode());
}
}
}
}

View file

@ -3,6 +3,7 @@ package net.osmand.plus.osmedit;
import android.content.Intent;
import android.graphics.Typeface;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.v4.app.FragmentManager;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceViewHolder;
@ -13,6 +14,7 @@ import android.widget.TextView;
import net.osmand.plus.OsmAndAppCustomization;
import net.osmand.plus.R;
import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.helpers.AndroidUiHelper;
import net.osmand.plus.helpers.FontCache;
import net.osmand.plus.settings.BaseSettingsFragment;
@ -21,6 +23,9 @@ import net.osmand.plus.settings.bottomsheets.OsmLoginDataBottomSheet;
import net.osmand.plus.settings.preferences.SwitchPreferenceEx;
import net.osmand.plus.widgets.style.CustomTypefaceSpan;
import static net.osmand.plus.myplaces.FavoritesActivity.TAB_ID;
import static net.osmand.plus.osmedit.OsmEditingPlugin.OSM_EDIT_TAB;
public class OsmEditingFragment extends BaseSettingsFragment implements OnPreferenceChanged {
private static final String OSM_EDITING_INFO = "osm_editing_info";
@ -63,13 +68,13 @@ public class OsmEditingFragment extends BaseSettingsFragment implements OnPrefer
}
private void setupOfflineEditingPref() {
Drawable disabled = getContentIcon(R.drawable.ic_action_offline);
Drawable enabled = getActiveIcon(R.drawable.ic_world_globe_dark);
Drawable icon = getPersistentPrefIcon(enabled, disabled);
SwitchPreferenceEx offlineEditingPref = (SwitchPreferenceEx) findPreference(settings.OFFLINE_EDITION.getId());
offlineEditingPref.setDescription(getString(R.string.offline_edition_descr));
offlineEditingPref.setIcon(getOfflineEditingIcon(settings.OFFLINE_EDITION.get()));
}
private Drawable getOfflineEditingIcon(boolean enabled) {
return enabled ? getActiveIcon(R.drawable.ic_world_globe_dark) : getContentIcon(R.drawable.ic_action_offline);
offlineEditingPref.setIcon(icon);
}
private void setupOsmEditsDescrPref() {
@ -93,10 +98,13 @@ public class OsmEditingFragment extends BaseSettingsFragment implements OnPrefer
@Override
public boolean onPreferenceClick(Preference preference) {
if (OPEN_OSM_EDITS.equals(preference.getKey())) {
Bundle bundle = new Bundle();
bundle.putInt(TAB_ID, OSM_EDIT_TAB);
OsmAndAppCustomization appCustomization = app.getAppCustomization();
Intent favorites = new Intent(preference.getContext(), appCustomization.getFavoritesActivity());
favorites.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
app.getSettings().FAVORITES_TAB.set(R.string.osm_edits);
favorites.putExtra(MapActivity.INTENT_PARAMS, bundle);
startActivity(favorites);
return true;
} else if (OSM_LOGIN_DATA.equals(preference.getKey())) {
@ -109,14 +117,6 @@ public class OsmEditingFragment extends BaseSettingsFragment implements OnPrefer
return super.onPreferenceClick(preference);
}
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
if (settings.OFFLINE_EDITION.getId().equals(preference.getKey()) && newValue instanceof Boolean) {
preference.setIcon(getOfflineEditingIcon((Boolean) newValue));
}
return super.onPreferenceChange(preference, newValue);
}
@Override
public void onPreferenceChanged(String prefId) {
if (OSM_LOGIN_DATA.equals(prefId)) {

View file

@ -443,7 +443,7 @@ public class ParkingPositionPlugin extends OsmandPlugin {
net.osmand.Location.distanceBetween(view.getLatitude(), view.getLongitude(), parkingPoint.getLatitude(), parkingPoint.getLongitude(), calculations);
d = (int) calculations[0];
}
if (distChanged(cachedMeters, d)) {
if (isUpdateNeeded() || distChanged(cachedMeters, d)) {
cachedMeters = d;
if (cachedMeters <= 20) {
cachedMeters = 0;
@ -467,6 +467,11 @@ public class ParkingPositionPlugin extends OsmandPlugin {
return false;
}
@Override
public boolean isMetricSystemDepended() {
return true;
}
/**
* Utility method.
* @param oldDist

View file

@ -800,7 +800,7 @@ public class PoiUIFilter implements SearchPoiTypeFilter, Comparable<PoiUIFilter>
String anotherFilterByName = another.filterByName == null ? "" : another.filterByName;
return thisFilterByName.compareToIgnoreCase(anotherFilterByName);
} else {
return this.name.compareTo(another.name);
return this.name.compareToIgnoreCase(another.name);
}
}

View file

@ -212,7 +212,7 @@ public class RearrangePoiFiltersFragment extends DialogFragment {
String filterByName2 = o2.filterByName == null ? "" : o2.filterByName;
return filterByName1.compareToIgnoreCase(filterByName2);
} else {
return o1.name.compareTo(o2.name);
return o1.name.compareToIgnoreCase(o2.name);
}
}
});
@ -641,7 +641,7 @@ public class RearrangePoiFiltersFragment extends DialogFragment {
private TextView title;
private TextView description;
private ImageView icon;
private ImageButton actionIcon;
private ImageView actionIcon;
private ImageView moveIcon;
private View itemsContainer;

View file

@ -514,7 +514,7 @@ public class OsmandRasterMapsPlugin extends OsmandPlugin {
existing.setAdapter(adapter);
if (editedLayerName != null) {
File f = ((OsmandApplication) activity.getApplication()).getAppPath(
IndexConstants.TILES_INDEX_DIR + templates.get(adapter.getPosition(editedLayerName)));
IndexConstants.TILES_INDEX_DIR + editedLayerName);
TileSourceTemplate template = TileSourceManager.createTileSourceTemplate(f);
if (template != null) {
result[0] = template.copy();

View file

@ -151,6 +151,7 @@ public class MapRouteInfoMenu implements IRouteInformationListener, CardListener
private boolean nightMode;
private boolean switched;
private boolean routeSelected;
private boolean currentMuteState;
private AddressLookupRequest startPointRequest;
private AddressLookupRequest targetPointRequest;
@ -160,6 +161,7 @@ public class MapRouteInfoMenu implements IRouteInformationListener, CardListener
private OnMarkerSelectListener onMarkerSelectListener;
private StateChangedListener<Void> onStateChangedListener;
private StateChangedListener<Boolean> voiceMuteChangeListener;
@Nullable
private View mainView;
@ -202,6 +204,12 @@ public class MapRouteInfoMenu implements IRouteInformationListener, CardListener
updateMenu();
}
};
voiceMuteChangeListener = new StateChangedListener<Boolean>() {
@Override
public void stateChanged(Boolean change) {
updateWhenMuteChanged();
}
};
}
public void setMapActivity(@Nullable MapActivity mapActivity) {
@ -305,6 +313,7 @@ public class MapRouteInfoMenu implements IRouteInformationListener, CardListener
OsmandApplication app = getApp();
if (app != null) {
app.getTargetPointsHelper().addListener(onStateChangedListener);
app.getSettings().VOICE_MUTE.addListener(voiceMuteChangeListener);
}
}
@ -312,6 +321,7 @@ public class MapRouteInfoMenu implements IRouteInformationListener, CardListener
OsmandApplication app = getApp();
if (app != null) {
app.getTargetPointsHelper().removeListener(onStateChangedListener);
app.getSettings().VOICE_MUTE.removeListener(voiceMuteChangeListener);
}
}
@ -454,6 +464,17 @@ public class MapRouteInfoMenu implements IRouteInformationListener, CardListener
}
}
private void updateWhenMuteChanged() {
if (app != null) {
ApplicationMode mode = app.getRoutingHelper().getAppMode();
boolean changedState = app.getSettings().VOICE_MUTE.getModeValue(mode);
if (changedState != currentMuteState) {
currentMuteState = changedState;
updateMenu();
}
}
}
public void updateMenu() {
WeakReference<MapRouteInfoMenuFragment> fragmentRef = findMenuFragment();
if (fragmentRef != null)
@ -1061,7 +1082,7 @@ public class MapRouteInfoMenu implements IRouteInformationListener, CardListener
}
}
private void createMuteSoundRoutingParameterButton(MapActivity mapActivity, final MuteSoundRoutingParameter parameter, final RouteMenuAppModes mode, LinearLayout optionsContainer) {
private void createMuteSoundRoutingParameterButton(final MapActivity mapActivity, final MuteSoundRoutingParameter parameter, final RouteMenuAppModes mode, LinearLayout optionsContainer) {
final ApplicationMode appMode = mapActivity.getRoutingHelper().getAppMode();
final int colorActive = ContextCompat.getColor(mapActivity, nightMode ? R.color.active_color_primary_dark : R.color.active_color_primary_light);
final int colorDisabled = ContextCompat.getColor(mapActivity, R.color.description_font_and_bottom_sheet_icons);
@ -1075,7 +1096,12 @@ public class MapRouteInfoMenu implements IRouteInformationListener, CardListener
public void onClick(View v) {
OsmandApplication app = getApp();
if (app != null) {
String voiceProvider = app.getSettings().VOICE_PROVIDER.getModeValue(appMode);
if (voiceProvider == null || OsmandSettings.VOICE_PROVIDER_NOT_USE.equals(voiceProvider)) {
mapActivity.showVoiceProviderDialog(appMode, false);
} else {
app.getRoutingOptionsHelper().switchSound();
}
boolean active = !app.getRoutingHelper().getVoiceRouter().isMuteForMode(appMode);
String text = app.getString(active ? R.string.shared_string_on : R.string.shared_string_off);

View file

@ -17,6 +17,7 @@ import android.widget.TextView;
import net.osmand.AndroidUtils;
import net.osmand.CallbackWithObject;
import net.osmand.GPXUtilities;
import net.osmand.StateChangedListener;
import net.osmand.plus.ApplicationMode;
import net.osmand.plus.OsmAndLocationSimulation;
import net.osmand.plus.OsmandApplication;
@ -63,7 +64,9 @@ public class RouteOptionsBottomSheet extends MenuBottomSheetDialogFragment {
private ApplicationMode applicationMode;
@ColorRes
private int selectedModeColorId;
private boolean currentMuteState;
private MapActivity mapActivity;
StateChangedListener<Boolean> voiceMuteChangeListener;
@Override
public void onCreate(Bundle savedInstanceState) {
@ -75,6 +78,22 @@ public class RouteOptionsBottomSheet extends MenuBottomSheetDialogFragment {
mapActivity = getMapActivity();
applicationMode = routingHelper.getAppMode();
selectedModeColorId = applicationMode.getIconColorInfo().getColor(nightMode);
voiceMuteChangeListener = new StateChangedListener<Boolean>() {
@Override
public void stateChanged(Boolean change) {
updateWhenMuteChanged();
}
};
}
public void updateWhenMuteChanged() {
if (app != null) {
boolean changedState = app.getSettings().VOICE_MUTE.getModeValue(applicationMode);
if (changedState != currentMuteState) {
currentMuteState = changedState;
updateParameters();
}
}
}
@Override
@ -117,6 +136,13 @@ public class RouteOptionsBottomSheet extends MenuBottomSheetDialogFragment {
itemWithCompoundButton.setChecked(itemWithCompoundButton.isChecked());
}
}
app.getSettings().VOICE_MUTE.addListener(voiceMuteChangeListener);
}
@Override
public void onPause() {
super.onPause();
app.getSettings().VOICE_MUTE.removeListener(voiceMuteChangeListener);
}
@Override
@ -154,8 +180,13 @@ public class RouteOptionsBottomSheet extends MenuBottomSheetDialogFragment {
routingOptionsHelper.addNewRouteMenuParameter(applicationMode, optionsItem);
boolean active = !routingHelper.getVoiceRouter().isMuteForMode(applicationMode);
routingHelper.getVoiceRouter().setMuteForMode(applicationMode, active);
String voiceProvider = app.getSettings().VOICE_PROVIDER.getModeValue(applicationMode);
if (voiceProvider == null || OsmandSettings.VOICE_PROVIDER_NOT_USE.equals(voiceProvider)) {
mapActivity.showVoiceProviderDialog(applicationMode, false);
} else {
muteSoundItem[0].setChecked(!active);
muteSoundItem[0].setIcon(getContentIcon(!active ? optionsItem.getActiveIconId() : optionsItem.getDisabledIconId()));
}
updateMenu();
}
})
@ -475,7 +506,7 @@ public class RouteOptionsBottomSheet extends MenuBottomSheetDialogFragment {
optionsMenu.show();
}
private void updateParameters() {
public void updateParameters() {
Activity activity = getActivity();
View mainView = getView();
if (activity != null && mainView != null) {

View file

@ -113,7 +113,7 @@ public class RoutingOptionsHelper {
mapActivity.getMyApplication().getAvoidSpecificRoads().showDialog(mapActivity);
}
public void selectVoiceGuidance(final MapActivity mapActivity, final CallbackWithObject<String> callback) {
public void selectVoiceGuidance(final MapActivity mapActivity, final CallbackWithObject<String> callback, ApplicationMode applicationMode) {
final ContextMenuAdapter adapter = new ContextMenuAdapter();
String[] entries;
@ -123,7 +123,7 @@ public class RoutingOptionsHelper {
entrieValues = new String[voiceFiles.size() + 2];
int k = 0;
int selected = -1;
String selectedValue = mapActivity.getMyApplication().getSettings().VOICE_PROVIDER.get();
String selectedValue = mapActivity.getMyApplication().getSettings().VOICE_PROVIDER.getModeValue(applicationMode);
entrieValues[k] = OsmandSettings.VOICE_PROVIDER_NOT_USE;
entries[k] = mapActivity.getResources().getString(R.string.shared_string_do_not_use);
ContextMenuItem.ItemBuilder itemBuilder = new ContextMenuItem.ItemBuilder();

View file

@ -1,12 +1,14 @@
package net.osmand.plus.routing;
import net.osmand.GPXUtilities.GPXFile;
import net.osmand.Location;
import net.osmand.PlatformUtil;
import net.osmand.ValueHolder;
import net.osmand.binary.RouteDataObject;
import net.osmand.data.LatLon;
import net.osmand.data.QuadPoint;
import net.osmand.plus.ApplicationMode;
import net.osmand.GPXUtilities.GPXFile;
import net.osmand.plus.NavigationService;
import net.osmand.plus.OsmAndAppCustomization.OsmAndAppCustomizationListener;
import net.osmand.plus.OsmAndFormatter;
@ -1225,5 +1227,54 @@ public class RoutingHelper {
}
}
public static class RouteSegmentSearchResult {
private int roadIndex;
private int segmentIndex;
private QuadPoint point;
private RouteSegmentSearchResult(int roadIndex, int segmentIndex, QuadPoint point) {
this.roadIndex = roadIndex;
this.segmentIndex = segmentIndex;
this.point = point;
}
public int getRoadIndex() {
return roadIndex;
}
public int getSegmentIndex() {
return segmentIndex;
}
public QuadPoint getPoint() {
return point;
}
}
public static RouteSegmentSearchResult searchRouteSegment(double latitude, double longitude, double maxDist, List<RouteSegmentResult> roads) {
int roadIndex = -1;
int segmentIndex = -1;
QuadPoint point = null;
int px = MapUtils.get31TileNumberX(longitude);
int py = MapUtils.get31TileNumberY(latitude);
double dist = maxDist < 0 ? 1000 : maxDist;
for (int i = 0; i < roads.size(); i++) {
RouteSegmentResult road = roads.get(i);
int startPointIndex = road.getStartPointIndex() < road.getEndPointIndex() ? road.getStartPointIndex() : road.getEndPointIndex();
int endPointIndex = road.getEndPointIndex() > road.getStartPointIndex() ? road.getEndPointIndex() : road.getStartPointIndex();
RouteDataObject obj = road.getObject();
for (int j = startPointIndex + 1; j <= endPointIndex; j++) {
QuadPoint proj = MapUtils.getProjectionPoint31(px, py, obj.getPoint31XTile(j - 1), obj.getPoint31YTile(j - 1),
obj.getPoint31XTile(j), obj.getPoint31YTile(j));
double dd = MapUtils.squareRootDist31((int) proj.x, (int) proj.y, px, py);
if (dd < dist) {
dist = dd;
roadIndex = i;
segmentIndex = j;
point = proj;
}
}
}
return roadIndex != -1 ? new RouteSegmentSearchResult(roadIndex, segmentIndex, point) : null;
}
}

View file

@ -3,6 +3,7 @@ package net.osmand.plus.settings;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.content.res.ColorStateList;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.LayerDrawable;
import android.os.Build;
@ -13,16 +14,19 @@ import android.support.annotation.DrawableRes;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.design.widget.AppBarLayout;
import android.support.v14.preference.MultiSelectListPreference;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.content.ContextCompat;
import android.support.v4.graphics.drawable.DrawableCompat;
import android.support.v4.view.ViewCompat;
import android.support.v7.preference.EditTextPreference;
import android.support.v7.preference.ListPreference;
import android.support.v7.preference.Preference;
import android.support.v7.preference.Preference.OnPreferenceChangeListener;
import android.support.v7.preference.Preference.OnPreferenceClickListener;
import android.support.v7.preference.PreferenceCategory;
import android.support.v7.preference.PreferenceFragmentCompat;
import android.support.v7.preference.PreferenceGroup;
import android.support.v7.preference.PreferenceGroupAdapter;
@ -30,6 +34,7 @@ import android.support.v7.preference.PreferenceManager;
import android.support.v7.preference.PreferenceScreen;
import android.support.v7.preference.PreferenceViewHolder;
import android.support.v7.preference.SwitchPreferenceCompat;
import android.support.v7.preference.TwoStatePreference;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
@ -376,17 +381,34 @@ public abstract class BaseSettingsFragment extends PreferenceFragmentCompat impl
AndroidUtils.setBackground(selectableView, drawable);
}
}
TextView tvPreferenceTitle = (TextView) holder.itemView.findViewById(android.R.id.title);
if (tvPreferenceTitle != null) {
tvPreferenceTitle.setSingleLine(false);
TextView titleView = (TextView) holder.findViewById(android.R.id.title);
if (titleView != null) {
titleView.setSingleLine(false);
}
boolean enabled = preference.isEnabled();
if (currentScreenType.profileDependent) {
View cb = holder.itemView.findViewById(R.id.switchWidget);
if (cb == null) {
cb = holder.findViewById(android.R.id.checkbox);
}
if (cb instanceof CompoundButton) {
UiUtilities.setupCompoundButton(isNightMode(), getActiveProfileColor(), (CompoundButton) cb);
int color = enabled ? getActiveProfileColor() : getDisabledTextColor();
UiUtilities.setupCompoundButton(isNightMode(), color, (CompoundButton) cb);
}
}
if ((preference.isPersistent() || preference instanceof TwoStatePreference) && !(preference instanceof PreferenceCategory)) {
if (titleView != null) {
titleView.setTextColor(enabled ? getActiveTextColor() : getDisabledTextColor());
}
if (preference instanceof TwoStatePreference) {
enabled = enabled & ((TwoStatePreference) preference).isChecked();
}
if (preference instanceof MultiSelectListPreference) {
enabled = enabled & !((MultiSelectListPreference) preference).getValues().isEmpty();
}
ImageView imageView = (ImageView) holder.findViewById(android.R.id.icon);
if (imageView != null) {
imageView.setEnabled(enabled);
}
}
}
@ -525,6 +547,9 @@ public abstract class BaseSettingsFragment extends PreferenceFragmentCompat impl
updateAllSettings();
}
public void onSettingApplied(String prefId, boolean appliedToAllProfiles) {
}
public void updateAllSettings() {
PreferenceScreen screen = getPreferenceScreen();
if (screen != null) {
@ -578,6 +603,16 @@ public abstract class BaseSettingsFragment extends PreferenceFragmentCompat impl
return isNightMode() ? R.color.list_background_color_dark : R.color.list_background_color_light;
}
@ColorInt
protected int getActiveTextColor() {
return ContextCompat.getColor(app, isNightMode() ? R.color.text_color_primary_dark : R.color.text_color_primary_light);
}
@ColorInt
protected int getDisabledTextColor() {
return ContextCompat.getColor(app, isNightMode() ? R.color.text_color_secondary_dark : R.color.text_color_secondary_light);
}
protected void registerPreference(Preference preference) {
if (preference != null) {
preference.setOnPreferenceChangeListener(this);
@ -694,6 +729,24 @@ public abstract class BaseSettingsFragment extends PreferenceFragmentCompat impl
return cache != null ? cache.getPaintedIcon(id, color) : null;
}
protected Drawable getPersistentPrefIcon(@DrawableRes int iconId) {
Drawable disabled = UiUtilities.createTintedDrawable(app, iconId, ContextCompat.getColor(app, R.color.icon_color_default_light));
Drawable enabled = UiUtilities.createTintedDrawable(app, iconId, getActiveProfileColor());
return getPersistentPrefIcon(enabled, disabled);
}
protected Drawable getPersistentPrefIcon(Drawable enabled, Drawable disabled) {
Drawable icon = AndroidUtils.createEnabledStateListDrawable(disabled, enabled);
if (Build.VERSION.SDK_INT < 21) {
ColorStateList colorStateList = AndroidUtils.createEnabledColorStateList(app, R.color.icon_color_default_light, getActiveProfileColorRes());
icon = DrawableCompat.wrap(icon);
DrawableCompat.setTintList(icon, colorStateList);
return icon;
}
return icon;
}
public SwitchPreferenceCompat createSwitchPreference(OsmandSettings.OsmandPreference<Boolean> b, int title, int summary, int layoutId) {
return createSwitchPreference(b, getString(title), getString(summary), layoutId);
}

View file

@ -6,7 +6,6 @@ import android.view.LayoutInflater;
import android.view.View;
import net.osmand.plus.R;
import net.osmand.plus.settings.preferences.SwitchPreferenceEx;
public class DialogsAndNotificationsSettingsFragment extends BaseSettingsFragment {
@ -31,11 +30,12 @@ public class DialogsAndNotificationsSettingsFragment extends BaseSettingsFragmen
boolean enabled = !settings.DO_NOT_SHOW_STARTUP_MESSAGES.get(); // pref ui was inverted
SwitchPreferenceCompat sendAnonymousData = (SwitchPreferenceCompat) findPreference(settings.DO_NOT_SHOW_STARTUP_MESSAGES.getId());
sendAnonymousData.setChecked(enabled);
sendAnonymousData.setIcon(getPersistentPrefIcon(R.drawable.ic_action_notification));
}
private void setupShowDownloadMapDialogPref() {
SwitchPreferenceCompat showDownloadMapDialog = (SwitchPreferenceCompat) findPreference(settings.SHOW_DOWNLOAD_MAP_DIALOG.getId());
showDownloadMapDialog.setIcon(getContentIcon(R.drawable.ic_action_import));
showDownloadMapDialog.setIcon(getPersistentPrefIcon(R.drawable.ic_action_import));
}
@Override

View file

@ -102,7 +102,7 @@ public class GeneralProfileSettingsFragment extends BaseSettingsFragment impleme
}
private Drawable getOsmandThemeIcon() {
return getContentIcon(settings.isLightContent() ? R.drawable.ic_action_sun : R.drawable.ic_action_moon);
return getActiveIcon(settings.isLightContent() ? R.drawable.ic_action_sun : R.drawable.ic_action_moon);
}
private void setupRotateMapPref() {
@ -115,22 +115,21 @@ public class GeneralProfileSettingsFragment extends BaseSettingsFragment impleme
private Drawable getRotateMapIcon() {
switch (settings.ROTATE_MAP.getModeValue(getSelectedAppMode())) {
case OsmandSettings.ROTATE_MAP_NONE:
return getContentIcon(R.drawable.ic_action_direction_north);
return getActiveIcon(R.drawable.ic_action_direction_north);
case OsmandSettings.ROTATE_MAP_BEARING:
return getContentIcon(R.drawable.ic_action_direction_movement);
return getActiveIcon(R.drawable.ic_action_direction_movement);
default:
return getContentIcon(R.drawable.ic_action_direction_compass);
return getActiveIcon(R.drawable.ic_action_direction_compass);
}
}
private void setupCenterPositionOnMapPref() {
Drawable disabled = getContentIcon(R.drawable.ic_action_display_position_bottom);
Drawable enabled = getActiveIcon(R.drawable.ic_action_display_position_center);
Drawable icon = getPersistentPrefIcon(enabled, disabled);
SwitchPreferenceCompat centerPositionOnMap = (SwitchPreferenceCompat) findPreference(settings.CENTER_POSITION_ON_MAP.getId());
centerPositionOnMap.setIcon(getCenterPositionOnMapIcon());
}
private Drawable getCenterPositionOnMapIcon() {
return getContentIcon(settings.CENTER_POSITION_ON_MAP.getModeValue(getSelectedAppMode()) ? R.drawable.ic_action_display_position_center : R.drawable.ic_action_display_position_bottom);
centerPositionOnMap.setIcon(icon);
}
private void setupMapScreenOrientationPref() {
@ -143,18 +142,18 @@ public class GeneralProfileSettingsFragment extends BaseSettingsFragment impleme
private Drawable getMapScreenOrientationIcon() {
switch (settings.MAP_SCREEN_ORIENTATION.getModeValue(getSelectedAppMode())) {
case ActivityInfo.SCREEN_ORIENTATION_PORTRAIT:
return getContentIcon(R.drawable.ic_action_phone_portrait_orientation);
return getActiveIcon(R.drawable.ic_action_phone_portrait_orientation);
case ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE:
return getContentIcon(R.drawable.ic_action_phone_landscape_orientation);
return getActiveIcon(R.drawable.ic_action_phone_landscape_orientation);
default:
return getContentIcon(R.drawable.ic_action_phone_device_orientation);
return getActiveIcon(R.drawable.ic_action_phone_device_orientation);
}
}
private void setupDrivingRegionPref() {
ApplicationMode selectedMode = getSelectedAppMode();
Preference defaultDrivingRegion = findPreference(settings.DRIVING_REGION.getId());
defaultDrivingRegion.setIcon(getContentIcon(R.drawable.ic_action_car_dark));
defaultDrivingRegion.setIcon(getActiveIcon(R.drawable.ic_action_car_dark));
defaultDrivingRegion.setSummary(getString(settings.DRIVING_REGION_AUTOMATIC.getModeValue(selectedMode) ? R.string.driving_region_automatic : settings.DRIVING_REGION.getModeValue(selectedMode).name));
}
@ -171,12 +170,12 @@ public class GeneralProfileSettingsFragment extends BaseSettingsFragment impleme
ListPreferenceEx unitsOfLength = (ListPreferenceEx) findPreference(settings.METRIC_SYSTEM.getId());
unitsOfLength.setEntries(entries);
unitsOfLength.setEntryValues(entryValues);
unitsOfLength.setIcon(getContentIcon(R.drawable.ic_action_ruler_unit));
unitsOfLength.setIcon(getActiveIcon(R.drawable.ic_action_ruler_unit));
}
private void setupCoordinatesFormatPref() {
Preference coordinatesFormat = findPreference(settings.COORDINATES_FORMAT.getId());
coordinatesFormat.setIcon(getContentIcon(R.drawable.ic_action_coordinates_widget));
coordinatesFormat.setIcon(getActiveIcon(R.drawable.ic_action_coordinates_widget));
coordinatesFormat.setSummary(PointDescription.formatToHumanString(app, settings.COORDINATES_FORMAT.getModeValue(getSelectedAppMode())));
}
@ -201,7 +200,7 @@ public class GeneralProfileSettingsFragment extends BaseSettingsFragment impleme
ListPreferenceEx angularUnits = (ListPreferenceEx) findPreference(settings.ANGULAR_UNITS.getId());
angularUnits.setEntries(entries);
angularUnits.setEntryValues(entryValues);
angularUnits.setIcon(getContentIcon(R.drawable.ic_action_angular_unit));
angularUnits.setIcon(getActiveIcon(R.drawable.ic_action_angular_unit));
}
private void setupSpeedSystemPref() {
@ -218,7 +217,7 @@ public class GeneralProfileSettingsFragment extends BaseSettingsFragment impleme
speedSystem.setEntries(entries);
speedSystem.setEntryValues(entryValues);
speedSystem.setDescription(R.string.default_speed_system_descr);
speedSystem.setIcon(getContentIcon(R.drawable.ic_action_speed));
speedSystem.setIcon(getActiveIcon(R.drawable.ic_action_speed));
}
private void setupKalmanFilterPref() {
@ -378,8 +377,6 @@ public class GeneralProfileSettingsFragment extends BaseSettingsFragment impleme
preference.setIcon(getRotateMapIcon());
} else if (settings.MAP_SCREEN_ORIENTATION.getId().equals(prefId)) {
preference.setIcon(getMapScreenOrientationIcon());
} else if (settings.CENTER_POSITION_ON_MAP.getId().equals(prefId)) {
preference.setIcon(getCenterPositionOnMapIcon());
}
}
}

View file

@ -4,8 +4,10 @@ import android.app.Activity;
import android.content.Context;
import android.support.v4.app.FragmentManager;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceViewHolder;
import android.support.v7.preference.SwitchPreferenceCompat;
import android.util.Pair;
import android.widget.ImageView;
import net.osmand.plus.ApplicationMode;
import net.osmand.plus.OsmandApplication;
@ -33,6 +35,7 @@ public class GlobalSettingsFragment extends BaseSettingsFragment implements Send
setupSendAnonymousDataPref();
setupDialogsAndNotificationsPref();
setupEnableProxyPref();
setupUseSystemScreenTimeout();
}
@Override
@ -49,6 +52,18 @@ public class GlobalSettingsFragment extends BaseSettingsFragment implements Send
}
}
@Override
protected void onBindPreferenceViewHolder(Preference preference, PreferenceViewHolder holder) {
super.onBindPreferenceViewHolder(preference, holder);
if (DIALOGS_AND_NOTIFICATIONS_PREF_ID.equals(preference.getKey())) {
ImageView imageView = (ImageView) holder.findViewById(android.R.id.icon);
if (imageView != null) {
boolean enabled = preference.isEnabled() && (!settings.DO_NOT_SHOW_STARTUP_MESSAGES.get() || settings.SHOW_DOWNLOAD_MAP_DIALOG.get());
imageView.setEnabled(enabled);
}
}
}
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
String prefId = preference.getKey();
@ -107,7 +122,7 @@ public class GlobalSettingsFragment extends BaseSettingsFragment implements Send
}
ListPreferenceEx defaultApplicationMode = (ListPreferenceEx) findPreference(settings.DEFAULT_APPLICATION_MODE.getId());
defaultApplicationMode.setIcon(getContentIcon(settings.DEFAULT_APPLICATION_MODE.get().getIconRes()));
defaultApplicationMode.setIcon(getActiveIcon(settings.DEFAULT_APPLICATION_MODE.get().getIconRes()));
defaultApplicationMode.setEntries(entries);
defaultApplicationMode.setEntryValues(entryValues);
}
@ -118,7 +133,7 @@ public class GlobalSettingsFragment extends BaseSettingsFragment implements Send
return;
}
ListPreferenceEx preferredLocale = (ListPreferenceEx) findPreference(settings.PREFERRED_LOCALE.getId());
preferredLocale.setIcon(getContentIcon(R.drawable.ic_action_map_language));
preferredLocale.setIcon(getActiveIcon(R.drawable.ic_action_map_language));
preferredLocale.setSummary(settings.PREFERRED_LOCALE.get());
Pair<String[], String[]> preferredLocaleInfo = SettingsGeneralActivity.getPreferredLocaleIdsAndValues(ctx);
@ -135,7 +150,7 @@ public class GlobalSettingsFragment extends BaseSettingsFragment implements Send
private void setupExternalStorageDirPref() {
Preference externalStorageDir = (Preference) findPreference(OsmandSettings.EXTERNAL_STORAGE_DIR);
externalStorageDir.setIcon(getContentIcon(R.drawable.ic_action_folder));
externalStorageDir.setIcon(getActiveIcon(R.drawable.ic_action_folder));
DataStorageHelper holder = new DataStorageHelper(app);
DataStorageMenuItem currentStorage = holder.getCurrentStorage();
@ -163,15 +178,22 @@ public class GlobalSettingsFragment extends BaseSettingsFragment implements Send
SwitchPreferenceCompat sendAnonymousData = (SwitchPreferenceCompat) findPreference(SEND_ANONYMOUS_DATA_PREF_ID);
sendAnonymousData.setChecked(enabled);
sendAnonymousData.setIcon(getPersistentPrefIcon(R.drawable.ic_action_privacy_and_security));
}
private void setupDialogsAndNotificationsPref() {
Preference dialogsAndNotifications = (Preference) findPreference(DIALOGS_AND_NOTIFICATIONS_PREF_ID);
dialogsAndNotifications.setIcon(getContentIcon(R.drawable.ic_action_notification));
dialogsAndNotifications.setIcon(getPersistentPrefIcon(R.drawable.ic_action_notification));
}
private void setupEnableProxyPref() {
SwitchPreferenceEx enableProxy = (SwitchPreferenceEx) findPreference(settings.ENABLE_PROXY.getId());
enableProxy.setIcon(getContentIcon(R.drawable.ic_action_proxy));
enableProxy.setIcon(getPersistentPrefIcon(R.drawable.ic_action_proxy));
}
private void setupUseSystemScreenTimeout() {
SwitchPreferenceEx useSystemScreenTimeout = (SwitchPreferenceEx) findPreference(settings.USE_SYSTEM_SCREEN_TIMEOUT.getId());
useSystemScreenTimeout.setTitle(app.getString(R.string.use_system_screen_timeout));
useSystemScreenTimeout.setDescription(app.getString(R.string.use_system_screen_timeout_promo));
}
}

View file

@ -100,7 +100,7 @@ public class LiveMonitoringFragment extends BaseSettingsFragment {
EditTextPreferenceEx liveMonitoringUrl = (EditTextPreferenceEx) findPreference(settings.LIVE_MONITORING_URL.getId());
liveMonitoringUrl.setSummary(summary);
liveMonitoringUrl.setDescription(R.string.live_monitoring_adress_descr);
liveMonitoringUrl.setIcon(getContentIcon(R.drawable.ic_world_globe_dark));
liveMonitoringUrl.setIcon(getPersistentPrefIcon(R.drawable.ic_world_globe_dark));
}
private void setupLiveMonitoringIntervalPref() {
@ -121,7 +121,7 @@ public class LiveMonitoringFragment extends BaseSettingsFragment {
ListPreferenceEx liveMonitoringInterval = (ListPreferenceEx) findPreference(settings.LIVE_MONITORING_INTERVAL.getId());
liveMonitoringInterval.setEntries(entries);
liveMonitoringInterval.setEntryValues(entryValues);
liveMonitoringInterval.setIcon(getContentIcon(R.drawable.ic_action_time_span));
liveMonitoringInterval.setIcon(getPersistentPrefIcon(R.drawable.ic_action_time_span));
liveMonitoringInterval.setDescription(R.string.live_monitoring_interval_descr);
}
@ -138,7 +138,7 @@ public class LiveMonitoringFragment extends BaseSettingsFragment {
ListPreferenceEx liveMonitoringBuffer = (ListPreferenceEx) findPreference(settings.LIVE_MONITORING_MAX_INTERVAL_TO_SEND.getId());
liveMonitoringBuffer.setEntries(entries);
liveMonitoringBuffer.setEntryValues(entryValues);
liveMonitoringBuffer.setIcon(getContentIcon(R.drawable.ic_action_time_span));
liveMonitoringBuffer.setIcon(getPersistentPrefIcon(R.drawable.ic_action_time_span));
liveMonitoringBuffer.setDescription(R.string.live_monitoring_max_interval_to_send_desrc);
}

View file

@ -1,6 +1,7 @@
package net.osmand.plus.settings;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.v7.preference.Preference;
import android.support.v7.preference.SwitchPreferenceCompat;
@ -55,34 +56,44 @@ public class NavigationFragment extends BaseSettingsFragment {
@Override
protected void setupPreferences() {
navigationType = findPreference(NAVIGATION_TYPE);
setupNavigationTypePref();
Preference routeParameters = findPreference("route_parameters");
SwitchPreferenceCompat showRoutingAlarms = (SwitchPreferenceCompat) findPreference(settings.SHOW_ROUTING_ALARMS.getId());
SwitchPreferenceCompat speakRoutingAlarms = (SwitchPreferenceCompat) findPreference(settings.VOICE_MUTE.getId());
SwitchPreferenceCompat turnScreenOn = (SwitchPreferenceCompat) findPreference(settings.TURN_SCREEN_ON_ENABLED.getId());
SwitchPreferenceEx animateMyLocation = (SwitchPreferenceEx) findPreference(settings.ANIMATE_MY_LOCATION.getId());
if (getSelectedAppMode().getRoutingProfile() != null) {
GeneralRouter routingProfile = app.getRoutingConfig().getRouter(getSelectedAppMode().getRoutingProfile());
if (routingProfile != null) {
String profileNameUC = routingProfile.getProfileName().toUpperCase();
if (RoutingProfilesResources.isRpValue(profileNameUC)) {
RoutingProfilesResources routingProfilesResources = RoutingProfilesResources.valueOf(profileNameUC);
navigationType.setSummary(routingProfilesResources.getStringRes());
navigationType.setIcon(getContentIcon(routingProfilesResources.getIconRes()));
} else {
navigationType.setIcon(getContentIcon(R.drawable.ic_action_gdirections_dark));
}
}
}
routeParameters.setIcon(getContentIcon(R.drawable.ic_action_route_distance));
showRoutingAlarms.setIcon(getContentIcon(R.drawable.ic_action_alert));
speakRoutingAlarms.setIcon(getContentIcon(R.drawable.ic_action_volume_up));
turnScreenOn.setIcon(getContentIcon(R.drawable.ic_action_turn_screen_on));
routeParameters.setIcon(getContentIcon(R.drawable.ic_action_route_distance));
showRoutingAlarms.setIcon(getPersistentPrefIcon(R.drawable.ic_action_alert));
turnScreenOn.setIcon(getPersistentPrefIcon(R.drawable.ic_action_turn_screen_on));
setupSpeakRoutingAlarmsPref();
setupVehicleParametersPref();
speakRoutingAlarms.setChecked(!settings.VOICE_MUTE.getModeValue(getSelectedAppMode()));
animateMyLocation.setDescription(getString(R.string.animate_my_location_desc));
}
private void setupNavigationTypePref() {
String routingProfileKey = getSelectedAppMode().getRoutingProfile();
if (!Algorithms.isEmpty(routingProfileKey)) {
RoutingProfileDataObject routingProfileDataObject = routingProfileDataObjects.get(routingProfileKey);
if (routingProfileDataObject != null) {
navigationType.setSummary(routingProfileDataObject.getName());
navigationType.setIcon(getActiveIcon(routingProfileDataObject.getIconRes()));
}
}
}
private void setupSpeakRoutingAlarmsPref() {
Drawable disabled = getContentIcon(R.drawable.ic_action_volume_mute);
Drawable enabled = getActiveIcon(R.drawable.ic_action_volume_up);
Drawable icon = getPersistentPrefIcon(enabled, disabled);
SwitchPreferenceCompat speakRoutingAlarms = (SwitchPreferenceCompat) findPreference(settings.VOICE_MUTE.getId());
speakRoutingAlarms.setIcon(icon);
speakRoutingAlarms.setChecked(!settings.VOICE_MUTE.getModeValue(getSelectedAppMode()));
}
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
String key = preference.getKey();
@ -137,7 +148,7 @@ public class NavigationFragment extends BaseSettingsFragment {
rp.getValue().setSelected(selected);
}
navigationType.setSummary(selectedRoutingProfileDataObject.getName());
navigationType.setIcon(getContentIcon(selectedRoutingProfileDataObject.getIconRes()));
navigationType.setIcon(getActiveIcon(selectedRoutingProfileDataObject.getIconRes()));
ApplicationMode appMode = getSelectedAppMode();
RouteProvider.RouteService routeService;
@ -177,7 +188,7 @@ public class NavigationFragment extends BaseSettingsFragment {
String description = context.getString(R.string.osmand_default_routing);
if (!Algorithms.isEmpty(e.getValue().getFilename())) {
description = e.getValue().getFilename();
} else if (RoutingProfilesResources.isRpValue(name.toUpperCase())){
} else if (RoutingProfilesResources.isRpValue(name.toUpperCase())) {
iconRes = RoutingProfilesResources.valueOf(name.toUpperCase()).getIconRes();
name = context
.getString(RoutingProfilesResources.valueOf(name.toUpperCase()).getStringRes());

View file

@ -339,6 +339,7 @@ public class RouteParametersFragment extends BaseSettingsFragment implements OnP
multiSelectPref.setDescription(descr);
multiSelectPref.setLayoutResource(R.layout.preference_with_descr);
multiSelectPref.setIcon(getRoutingPrefIcon(groupKey));
multiSelectPref.setIconSpaceReserved(true);
String[] entries = new String[routingParameters.size()];
String[] prefsIds = new String[routingParameters.size()];
@ -383,17 +384,24 @@ public class RouteParametersFragment extends BaseSettingsFragment implements OnP
private Drawable getRoutingPrefIcon(String prefId) {
switch (prefId) {
case GeneralRouter.ALLOW_PRIVATE:
return getContentIcon(R.drawable.ic_action_private_access);
return getPersistentPrefIcon(R.drawable.ic_action_private_access);
case GeneralRouter.USE_SHORTEST_WAY:
return getContentIcon(R.drawable.ic_action_fuel);
return getPersistentPrefIcon(R.drawable.ic_action_fuel);
case GeneralRouter.ALLOW_MOTORWAYS:
Drawable disabled = getContentIcon(R.drawable.ic_action_avoid_motorways);
Drawable enabled = getActiveIcon(R.drawable.ic_action_motorways);
return getPersistentPrefIcon(enabled, disabled);
case GeneralRouter.USE_HEIGHT_OBSTACLES:
case RELIEF_SMOOTHNESS_FACTOR:
return getPersistentPrefIcon(R.drawable.ic_action_elevation);
case AVOID_ROUTING_PARAMETER_PREFIX:
return getContentIcon(R.drawable.ic_action_alert);
return getPersistentPrefIcon(R.drawable.ic_action_alert);
case DRIVING_STYLE:
return getContentIcon(R.drawable.ic_action_bicycle_dark);
return getPersistentPrefIcon(R.drawable.ic_action_bicycle_dark);
case "fast_route_mode":
return getContentIcon(R.drawable.ic_action_fastest_route);
return getPersistentPrefIcon(R.drawable.ic_action_fastest_route);
case "enable_time_conditional_routing":
return getContentIcon(R.drawable.ic_action_road_works_dark);
return getPersistentPrefIcon(R.drawable.ic_action_road_works_dark);
default:
return null;
}

View file

@ -3,9 +3,11 @@ package net.osmand.plus.settings;
import android.graphics.drawable.ColorDrawable;
import android.support.v4.content.ContextCompat;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceViewHolder;
import android.support.v7.widget.SwitchCompat;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import net.osmand.AndroidUtils;
@ -47,6 +49,19 @@ public class TurnScreenOnFragment extends BaseSettingsFragment {
});
}
@Override
protected void onBindPreferenceViewHolder(Preference preference, PreferenceViewHolder holder) {
super.onBindPreferenceViewHolder(preference, holder);
if (settings.TURN_SCREEN_ON_TIME_INT.getId().equals(preference.getKey()) && preference instanceof ListPreferenceEx) {
Object currentValue = ((ListPreferenceEx) preference).getValue();
ImageView imageView = (ImageView) holder.findViewById(android.R.id.icon);
if (imageView != null && currentValue instanceof Integer) {
boolean enabled = preference.isEnabled() && (Integer) currentValue > 0;
imageView.setEnabled(enabled);
}
}
}
@Override
protected void updateToolbar() {
super.updateToolbar();
@ -84,7 +99,7 @@ public class TurnScreenOnFragment extends BaseSettingsFragment {
ListPreferenceEx turnScreenOnTime = (ListPreferenceEx) findPreference(settings.TURN_SCREEN_ON_TIME_INT.getId());
turnScreenOnTime.setEntries(entries);
turnScreenOnTime.setEntryValues(entryValues);
turnScreenOnTime.setIcon(getContentIcon(R.drawable.ic_action_time_span));
turnScreenOnTime.setIcon(getPersistentPrefIcon(R.drawable.ic_action_time_span));
}
private void setupTurnScreenOnSensorPref() {
@ -92,7 +107,7 @@ public class TurnScreenOnFragment extends BaseSettingsFragment {
String description = getString(R.string.turn_screen_on_sensor_descr);
SwitchPreferenceEx turnScreenOnSensor = (SwitchPreferenceEx) findPreference(settings.TURN_SCREEN_ON_SENSOR.getId());
turnScreenOnSensor.setIcon(getContentIcon(R.drawable.ic_action_sensor_interaction));
turnScreenOnSensor.setIcon(getPersistentPrefIcon(R.drawable.ic_action_sensor_interaction));
turnScreenOnSensor.setTitle(title);
turnScreenOnSensor.setDescription(description);
}

View file

@ -3,6 +3,8 @@ package net.osmand.plus.settings;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceViewHolder;
import android.widget.ImageView;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.OsmandSettings;
@ -22,6 +24,9 @@ public class VehicleParametersFragment extends BaseSettingsFragment implements O
public static final String TAG = VehicleParametersFragment.class.getSimpleName();
private static final String ROUTING_PARAMETER_NUMERIC_DEFAULT = "0.0";
private static final String ROUTING_PARAMETER_SYMBOLIC_DEFAULT = "-";
@Override
protected void setupPreferences() {
OsmandApplication app = getMyApplication();
@ -69,7 +74,7 @@ public class VehicleParametersFragment extends BaseSettingsFragment implements O
String title = SettingsBaseActivity.getRoutingStringPropertyName(app, parameterId, parameter.getName());
String description = SettingsBaseActivity.getRoutingStringPropertyDescription(app, parameterId, parameter.getDescription());
String defValue = parameter.getType() == GeneralRouter.RoutingParameterType.NUMERIC ? "0.0" : "-";
String defValue = parameter.getType() == GeneralRouter.RoutingParameterType.NUMERIC ? ROUTING_PARAMETER_NUMERIC_DEFAULT : ROUTING_PARAMETER_SYMBOLIC_DEFAULT;
OsmandSettings.StringPreference pref = (OsmandSettings.StringPreference) app.getSettings().getCustomRoutingProperty(parameterId, defValue);
Object[] values = parameter.getPossibleValues();
@ -98,6 +103,20 @@ public class VehicleParametersFragment extends BaseSettingsFragment implements O
getPreferenceScreen().addPreference(defaultSpeedPref);
}
@Override
protected void onBindPreferenceViewHolder(Preference preference, PreferenceViewHolder holder) {
super.onBindPreferenceViewHolder(preference, holder);
if (!GeneralRouter.DEFAULT_SPEED.equals(preference.getKey()) && preference instanceof ListPreferenceEx) {
ImageView imageView = (ImageView) holder.findViewById(android.R.id.icon);
if (imageView != null) {
Object currentValue = ((ListPreferenceEx) preference).getValue();
boolean enabled = preference.isEnabled() && !ROUTING_PARAMETER_NUMERIC_DEFAULT.equals(currentValue)
&& !ROUTING_PARAMETER_SYMBOLIC_DEFAULT.equals(currentValue);
imageView.setEnabled(enabled);
}
}
}
@Override
public boolean onPreferenceClick(Preference preference) {
if (preference.getKey().equals(GeneralRouter.DEFAULT_SPEED)) {
@ -124,13 +143,13 @@ public class VehicleParametersFragment extends BaseSettingsFragment implements O
private Drawable getPreferenceIcon(String prefId) {
switch (prefId) {
case GeneralRouter.DEFAULT_SPEED:
return getContentIcon(R.drawable.ic_action_speed);
return getPersistentPrefIcon(R.drawable.ic_action_speed);
case GeneralRouter.VEHICLE_HEIGHT:
return getContentIcon(R.drawable.ic_action_height_limit);
return getPersistentPrefIcon(R.drawable.ic_action_height_limit);
case GeneralRouter.VEHICLE_WEIGHT:
return getContentIcon(R.drawable.ic_action_weight_limit);
return getPersistentPrefIcon(R.drawable.ic_action_weight_limit);
case GeneralRouter.VEHICLE_WIDTH:
return getContentIcon(R.drawable.ic_action_width_limit);
return getPersistentPrefIcon(R.drawable.ic_action_width_limit);
default:
return null;
}

View file

@ -5,14 +5,17 @@ import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.media.AudioManager;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AlertDialog;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceViewHolder;
import android.support.v7.preference.SwitchPreferenceCompat;
import android.support.v7.widget.SwitchCompat;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import net.osmand.AndroidUtils;
@ -29,6 +32,7 @@ import net.osmand.plus.settings.preferences.ListPreferenceEx;
import java.util.Set;
import static net.osmand.plus.OsmandSettings.VOICE_PROVIDER_NOT_USE;
import static net.osmand.plus.UiUtilities.CompoundButtonType.TOOLBAR;
import static net.osmand.plus.activities.SettingsNavigationActivity.MORE_VALUE;
@ -169,10 +173,14 @@ public class VoiceAnnouncesFragment extends BaseSettingsFragment {
entryValues[k] = MORE_VALUE;
entries[k] = getString(R.string.install_more);
Drawable disabled = getContentIcon(R.drawable.ic_action_volume_mute);
Drawable enabled = getActiveIcon(R.drawable.ic_action_volume_up);
Drawable icon = getPersistentPrefIcon(enabled, disabled);
ListPreferenceEx voiceProvider = (ListPreferenceEx) findPreference(settings.VOICE_PROVIDER.getId());
voiceProvider.setEntries(entries);
voiceProvider.setEntryValues(entryValues);
voiceProvider.setIcon(getContentIcon(R.drawable.ic_action_volume_up));
voiceProvider.setIcon(icon);
}
private void setupAudioStreamGuidancePref() {
@ -228,6 +236,22 @@ public class VoiceAnnouncesFragment extends BaseSettingsFragment {
}
}
@Override
protected void onBindPreferenceViewHolder(Preference preference, PreferenceViewHolder holder) {
super.onBindPreferenceViewHolder(preference, holder);
if (settings.VOICE_PROVIDER.getId().equals(preference.getKey()) && preference instanceof ListPreferenceEx) {
TextView titleView = (TextView) holder.findViewById(android.R.id.title);
if (titleView != null) {
titleView.setTextColor(preference.isEnabled() ? getActiveTextColor() : getDisabledTextColor());
}
ImageView imageView = (ImageView) holder.findViewById(android.R.id.icon);
if (imageView != null) {
Object currentValue = ((ListPreferenceEx) preference).getValue();
imageView.setEnabled(preference.isEnabled() && !OsmandSettings.VOICE_PROVIDER_NOT_USE.equals(currentValue));
}
}
}
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
String prefId = preference.getKey();
@ -240,7 +264,13 @@ public class VoiceAnnouncesFragment extends BaseSettingsFragment {
intent.putExtra(DownloadActivity.TAB_TO_OPEN, DownloadActivity.DOWNLOAD_TAB);
intent.putExtra(DownloadActivity.FILTER_CAT, DownloadActivityType.VOICE_FILE.getTag());
startActivity(intent);
return false;
} else if (newValue instanceof String) {
if (VOICE_PROVIDER_NOT_USE.equals(newValue)) {
settings.VOICE_MUTE.setModeValue(selectedMode, true);
updateToolbar();
setupPreferences();
}
settings.VOICE_PROVIDER.setModeValue(selectedMode, (String) newValue);
app.initVoiceCommandPlayer(getActivity(), selectedMode, false, null, true, false, false);
}

View file

@ -53,8 +53,12 @@ public class BooleanPreferenceBottomSheet extends BasePreferenceBottomSheet {
items.add(new TitleItem(title));
final OsmandSettings.BooleanPreference pref = (BooleanPreference) preference;
final String on = getString(R.string.shared_string_on);
final String off = getString(R.string.shared_string_off);
CharSequence summaryOn = switchPreference.getSummaryOn();
CharSequence summaryOff = switchPreference.getSummaryOff();
final String on = summaryOn == null || summaryOn.toString().equals("")
? getString(R.string.shared_string_enabled) : summaryOn.toString();
final String off = summaryOff == null || summaryOff.toString().equals("")
? getString(R.string.shared_string_disabled) : summaryOff.toString();
final int activeColor = AndroidUtils.resolveAttribute(app, R.attr.active_color_basic);
final int disabledColor = AndroidUtils.resolveAttribute(app, android.R.attr.textColorSecondary);
boolean checked = pref.getModeValue(getAppMode());

View file

@ -55,7 +55,7 @@ public class ChangeGeneralProfilesPrefBottomSheet extends BasePreferenceBottomSh
@Override
public void onClick(View v) {
app.getSettings().setPreferenceForAllModes(prefId, newValue);
updateTargetSettings(false);
updateTargetSettings(false, true);
dismiss();
}
})
@ -72,7 +72,7 @@ public class ChangeGeneralProfilesPrefBottomSheet extends BasePreferenceBottomSh
@Override
public void onClick(View v) {
app.getSettings().setPreference(prefId, newValue, getAppMode());
updateTargetSettings(false);
updateTargetSettings(false, false);
dismiss();
}
})
@ -86,7 +86,7 @@ public class ChangeGeneralProfilesPrefBottomSheet extends BasePreferenceBottomSh
.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
updateTargetSettings(true);
updateTargetSettings(true, false);
dismiss();
}
})
@ -105,9 +105,12 @@ public class ChangeGeneralProfilesPrefBottomSheet extends BasePreferenceBottomSh
outState.putSerializable(NEW_VALUE_KEY, newValue);
}
private void updateTargetSettings(boolean discard) {
private void updateTargetSettings(boolean discard, boolean appliedToAllProfiles) {
BaseSettingsFragment target = (BaseSettingsFragment) getTargetFragment();
if (target != null) {
if (!discard) {
target.onSettingApplied(getPrefId(), appliedToAllProfiles);
}
target.updateSetting(getPrefId());
if (!discard) {
if (target.shouldDismissOnChange()) {

View file

@ -48,6 +48,7 @@ public class MultiSelectBooleanPreference extends MultiSelectListPreference {
getValues().addAll(values);
persistBooleanPrefs();
notifyChanged();
}
}

View file

@ -947,9 +947,9 @@ public class ContextMenuLayer extends OsmandMapLayer {
if (selectOnMap != null) {
LatLon latlon = tileBox.getLatLonFromPixel(point.x, point.y);
menu.init(latlon, null, null);
CallbackWithObject<LatLon> cb = selectOnMap;
cb.processResult(latlon);
menu.init(latlon, null, null);
selectOnMap = null;
return true;
}

View file

@ -48,6 +48,8 @@ public class Renderable {
public static abstract class RenderableSegment {
protected static final int MIN_CULLER_ZOOM = 16;
public List<WptPt> points = null; // Original list of points
protected List<WptPt> culled = new ArrayList<>(); // Reduced/resampled list of points
protected int pointSize;
@ -168,6 +170,9 @@ public class Renderable {
culled.clear(); // use full-resolution until re-cull complete
}
zoom = newZoom;
if (newZoom >= MIN_CULLER_ZOOM) {
return;
}
double cullDistance = Math.pow(2.0, segmentSize - zoom); // segmentSize == epsilon
culler = new AsynchronousResampler.RamerDouglasPeucer(this, cullDistance);

View file

@ -233,6 +233,7 @@ public class RouteLayer extends OsmandMapLayer implements ContextMenuLayer.ICont
private void drawXAxisPoints(Canvas canvas, RotatedTileBox tileBox) {
QuadRect latLonBounds = tileBox.getLatLonBounds();
List<LatLon> xAxisPoints = trackChartPoints.getXAxisPoints();
if (xAxisPoints != null) {
float r = 3 * tileBox.getDensity();
float density = (float) Math.ceil(tileBox.getDensity());
float outerRadius = r + 2 * density;
@ -255,6 +256,7 @@ public class RouteLayer extends OsmandMapLayer implements ContextMenuLayer.ICont
}
}
}
}
@Override
public void onDraw(Canvas canvas, RotatedTileBox tileBox, DrawSettings settings) {}

View file

@ -102,7 +102,7 @@ public class MapInfoWidgetsFactory {
Location loc = map.getMyApplication().getLocationProvider().getLastKnownLocation();
if (loc != null && loc.hasAltitude()) {
double compAlt = loc.getAltitude();
if (cachedAlt != (int) compAlt) {
if (isUpdateNeeded() || cachedAlt != (int) compAlt) {
cachedAlt = (int) compAlt;
String ds = OsmAndFormatter.getFormattedAlt(cachedAlt, map.getMyApplication());
int ls = ds.lastIndexOf(' ');
@ -120,6 +120,11 @@ public class MapInfoWidgetsFactory {
}
return false;
}
@Override
public boolean isMetricSystemDepended() {
return true;
}
};
altitudeControl.setText(null, null);
altitudeControl.setIcons(R.drawable.widget_altitude_day, R.drawable.widget_altitude_night);
@ -136,7 +141,7 @@ public class MapInfoWidgetsFactory {
@Override
public boolean updateInfo(DrawSettings d) {
GPSInfo gpsInfo = loc.getGPSInfo();
if (gpsInfo.usedSatellites != u || gpsInfo.foundSatellites != f) {
if (isUpdateNeeded() || gpsInfo.usedSatellites != u || gpsInfo.foundSatellites != f) {
u = gpsInfo.usedSatellites;
f = gpsInfo.foundSatellites;
setText(gpsInfo.usedSatellites + "/" + gpsInfo.foundSatellites, "");

View file

@ -337,7 +337,7 @@ public class MapMarkersWidgetsFactory {
}
boolean res = false;
int d = getDistance();
if (cachedMeters != d) {
if (isUpdateNeeded() || cachedMeters != d) {
cachedMeters = d;
String ds = OsmAndFormatter.getFormattedDistance(cachedMeters, view.getApplication());
int ls = ds.lastIndexOf(' ');
@ -364,6 +364,11 @@ public class MapMarkersWidgetsFactory {
return res;
}
@Override
public boolean isMetricSystemDepended() {
return true;
}
public LatLon getPointToNavigate() {
MapMarker marker = getMarker();
if (marker != null) {

View file

@ -342,7 +342,7 @@ public class RouteInfoWidgetsFactory {
@Override
public boolean updateInfo(DrawSettings drawSettings) {
long time = System.currentTimeMillis();
if(time - cachedLeftTime > 5000) {
if (isUpdateNeeded() || time - cachedLeftTime > 5000) {
cachedLeftTime = time;
if (DateFormat.is24HourFormat(ctx)) {
setText(DateFormat.format("k:mm", time).toString(), null); //$NON-NLS-1$
@ -372,7 +372,7 @@ public class RouteInfoWidgetsFactory {
@Override
public boolean updateInfo(DrawSettings drawSettings) {
long time = System.currentTimeMillis();
if (time - cachedLeftTime > 1000) {
if (isUpdateNeeded() || time - cachedLeftTime > 1000) {
cachedLeftTime = time;
Intent batteryIntent = ctx.registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
int level = batteryIntent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
@ -418,7 +418,7 @@ public class RouteInfoWidgetsFactory {
} else {
mx = 0f;
}
if (cachedSpeed != mx) {
if (isUpdateNeeded() || cachedSpeed != mx) {
cachedSpeed = mx;
if (cachedSpeed == 0) {
setText(null, null);
@ -437,6 +437,11 @@ public class RouteInfoWidgetsFactory {
}
return false;
}
@Override
public boolean isMetricSystemDepended() {
return true;
}
};
speedControl.setIcons(R.drawable.widget_max_speed_day, R.drawable.widget_max_speed_night);
speedControl.setText(null, null);
@ -463,7 +468,7 @@ public class RouteInfoWidgetsFactory {
if (cachedSpeed < 6) {
minDelta = .015f;
}
if (Math.abs(loc.getSpeed() - cachedSpeed) > minDelta) {
if (isUpdateNeeded() || Math.abs(loc.getSpeed() - cachedSpeed) > minDelta) {
cachedSpeed = loc.getSpeed();
String ds = OsmAndFormatter.getFormattedSpeed(cachedSpeed, app);
int ls = ds.lastIndexOf(' ');
@ -481,6 +486,11 @@ public class RouteInfoWidgetsFactory {
}
return false;
}
@Override
public boolean isMetricSystemDepended() {
return true;
}
};
speedControl.setIcons(R.drawable.widget_speed_day, R.drawable.widget_speed_night);
speedControl.setText(null, null);
@ -521,7 +531,7 @@ public class RouteInfoWidgetsFactory {
@Override
public boolean updateInfo(DrawSettings drawSettings) {
int d = getDistance();
if (distChanged(cachedMeters, d)) {
if (isUpdateNeeded() || distChanged(cachedMeters, d)) {
cachedMeters = d;
if (cachedMeters <= 20) {
cachedMeters = 0;
@ -540,6 +550,11 @@ public class RouteInfoWidgetsFactory {
return false;
}
@Override
public boolean isMetricSystemDepended() {
return true;
}
public abstract LatLon getPointToNavigate();
public int getDistance() {
@ -664,17 +679,6 @@ public class RouteInfoWidgetsFactory {
final TextInfoWidget bearingControl = new TextInfoWidget(map) {
private int cachedDegrees;
private float MIN_SPEED_FOR_HEADING = 1f;
private boolean angularUnitTypeChanged = false;
private StateChangedListener<OsmandSettings.AngularConstants> listener = new StateChangedListener<OsmandSettings.AngularConstants>() {
@Override
public void stateChanged(OsmandSettings.AngularConstants change) {
angularUnitTypeChanged = true;
}
};
{
getOsmandApplication().getSettings().ANGULAR_UNITS.addListener(listener);
}
private LatLon getNextTargetPoint() {
List<TargetPoint> points = getOsmandApplication().getTargetPointsHelper().getIntermediatePointsWithTarget();
@ -687,8 +691,7 @@ public class RouteInfoWidgetsFactory {
boolean modeChanged = setIcons(relative ? relativeBearingResId : bearingResId, relative ? relativeBearingNightResId : bearingNightResId);
setContentTitle(relative ? R.string.map_widget_bearing : R.string.map_widget_magnetic_bearing);
int b = getBearing(relative);
if (angularUnitTypeChanged || degreesChanged(cachedDegrees, b) || modeChanged) {
angularUnitTypeChanged = false;
if (isUpdateNeeded() || degreesChanged(cachedDegrees, b) || modeChanged) {
cachedDegrees = b;
if (b != -1000) {
setText(OsmAndFormatter.getFormattedAzimuth(b, getOsmandApplication()) + (relative ? "" : " M"), null);
@ -700,6 +703,11 @@ public class RouteInfoWidgetsFactory {
return false;
}
@Override
public boolean isAngularUnitsDepended() {
return true;
}
public int getBearing(boolean relative) {
int d = -1000;
Location myLocation = getOsmandApplication().getLocationProvider().getLastKnownLocation();

View file

@ -38,6 +38,8 @@ public class TextInfoWidget {
private boolean isNight;
private ViewGroup bottomLayout;
private Integer cachedMetricSystem = null;
private Integer cachedAngularUnits = null;
public TextInfoWidget(Activity activity) {
app = (OsmandApplication) activity.getApplication();
@ -191,6 +193,29 @@ public class TextInfoWidget {
return false;
}
public boolean isUpdateNeeded() {
boolean res = false;
if (isMetricSystemDepended()) {
int metricSystem = app.getSettings().METRIC_SYSTEM.get().ordinal();
res |= cachedMetricSystem == null || cachedMetricSystem != metricSystem;
cachedMetricSystem = metricSystem;
}
if (isAngularUnitsDepended()) {
int angularUnits = app.getSettings().ANGULAR_UNITS.get().ordinal();
res |= cachedAngularUnits == null || cachedAngularUnits != angularUnits;
cachedAngularUnits = angularUnits;
}
return res;
}
public boolean isMetricSystemDepended() {
return false;
}
public boolean isAngularUnitsDepended() {
return false;
}
public void setOnClickListener(OnClickListener onClickListener) {
view.setOnClickListener(onClickListener);
}