From 5759601738eaf3cb0c5e6ac7169b2ebcbe0bbc95 Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Fri, 10 Jan 2020 18:59:13 +0200 Subject: [PATCH 01/82] Fix customized settings update --- .../src/net/osmand/plus/MapMarkersHelper.java | 22 ++-- .../osmand/plus/OsmAndLocationProvider.java | 20 ++- .../net/osmand/plus/OsmandApplication.java | 1 - .../src/net/osmand/plus/OsmandSettings.java | 2 - .../net/osmand/plus/TargetPointsHelper.java | 11 ++ .../plus/activities/DayNightHelper.java | 9 +- .../plus/activities/MapActivityLayers.java | 2 - .../net/osmand/plus/helpers/LockHelper.java | 11 ++ .../plus/mapmarkers/PlanRouteFragment.java | 2 +- .../plus/monitoring/LiveMonitoringHelper.java | 116 +++++++++--------- .../plus/render/MapRenderRepositories.java | 15 ++- .../RoutingOptionsHelper.java | 5 +- .../osmand/plus/routing/RoutingHelper.java | 11 +- .../net/osmand/plus/routing/VoiceRouter.java | 21 +++- .../plus/views/TransportStopsLayer.java | 19 ++- 15 files changed, 152 insertions(+), 115 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/MapMarkersHelper.java b/OsmAnd/src/net/osmand/plus/MapMarkersHelper.java index 22f4fede33..6aedb3f84a 100644 --- a/OsmAnd/src/net/osmand/plus/MapMarkersHelper.java +++ b/OsmAnd/src/net/osmand/plus/MapMarkersHelper.java @@ -9,6 +9,8 @@ import android.support.v4.content.ContextCompat; import net.osmand.AndroidUtils; import net.osmand.GPXUtilities; +import net.osmand.GPXUtilities.GPXFile; +import net.osmand.GPXUtilities.WptPt; import net.osmand.IndexConstants; import net.osmand.PlatformUtil; import net.osmand.data.FavouritePoint; @@ -16,8 +18,6 @@ import net.osmand.data.LatLon; import net.osmand.data.LocationPoint; import net.osmand.data.PointDescription; import net.osmand.plus.FavouritesDbHelper.FavoriteGroup; -import net.osmand.GPXUtilities.GPXFile; -import net.osmand.GPXUtilities.WptPt; import net.osmand.plus.GeocodingLookupService.AddressLookupRequest; import net.osmand.plus.GpxSelectionHelper.SelectedGpxFile; import net.osmand.plus.mapmarkers.MapMarkersDbHelper; @@ -53,9 +53,9 @@ public class MapMarkersHelper { public static final int BY_DISTANCE_DESC = 1; public static final int BY_DISTANCE_ASC = 2; public static final int BY_DATE_ADDED_DESC = 3; - + public static final int BY_DATE_ADDED_ASC = 4; - + private static final Log LOG = PlatformUtil.getLog(MapMarkersHelper.class); @Retention(RetentionPolicy.SOURCE) @@ -64,7 +64,6 @@ public class MapMarkersHelper { } private OsmandApplication ctx; - private OsmandSettings settings; private MapMarkersDbHelper markersDbHelper; private ExecutorService executorService = Executors.newSingleThreadExecutor(); @@ -76,8 +75,6 @@ public class MapMarkersHelper { private List listeners = new ArrayList<>(); private Set syncListeners = new HashSet<>(); - private boolean startFromMyLocation; - private MarkersPlanRouteContext planRouteContext; public List getMapMarkers() { @@ -93,12 +90,11 @@ public class MapMarkersHelper { } public boolean isStartFromMyLocation() { - return startFromMyLocation; + return ctx.getSettings().ROUTE_MAP_MARKERS_START_MY_LOC.get(); } public void setStartFromMyLocation(boolean startFromMyLocation) { - this.startFromMyLocation = startFromMyLocation; - settings.ROUTE_MAP_MARKERS_START_MY_LOC.set(startFromMyLocation); + ctx.getSettings().ROUTE_MAP_MARKERS_START_MY_LOC.set(startFromMyLocation); } public MarkersPlanRouteContext getPlanRouteContext() { @@ -107,10 +103,8 @@ public class MapMarkersHelper { public MapMarkersHelper(OsmandApplication ctx) { this.ctx = ctx; - settings = ctx.getSettings(); markersDbHelper = ctx.getMapMarkersDbHelper(); planRouteContext = new MarkersPlanRouteContext(ctx); - startFromMyLocation = settings.ROUTE_MAP_MARKERS_START_MY_LOC.get(); markersDbHelper.removeDisabledGroups(); loadMarkers(); loadGroups(); @@ -616,7 +610,7 @@ public class MapMarkersHelper { private List getMarkers() { List res = new ArrayList<>(mapMarkers); - if (settings.KEEP_PASSED_MARKERS_ON_MAP.get()) { + if (ctx.getSettings().KEEP_PASSED_MARKERS_ON_MAP.get()) { res.addAll(mapMarkersHistory); } return res; @@ -883,7 +877,7 @@ public class MapMarkersHelper { @Nullable List wptPts, @Nullable List mapObjNames) { if (points.size() > 0) { - settings.SHOW_MAP_MARKERS.set(true); + ctx.getSettings().SHOW_MAP_MARKERS.set(true); int colorIndex = -1; List addedMarkers = new ArrayList<>(); for (int i = 0; i < points.size(); i++) { diff --git a/OsmAnd/src/net/osmand/plus/OsmAndLocationProvider.java b/OsmAnd/src/net/osmand/plus/OsmAndLocationProvider.java index 0474ea19b7..2a039f3bbf 100644 --- a/OsmAnd/src/net/osmand/plus/OsmAndLocationProvider.java +++ b/OsmAnd/src/net/osmand/plus/OsmAndLocationProvider.java @@ -76,6 +76,8 @@ public class OsmAndLocationProvider implements SensorEventListener { private static final long LOCATION_TIMEOUT_TO_BE_STALE = 1000 * 60 * 2; // 2 minutes private static final long STALE_LOCATION_TIMEOUT_TO_BE_GONE = 1000 * 60 * 20; // 20 minutes + private static final long AGPS_TO_REDOWNLOAD = 16 * 60 * 60 * 1000; // 16 hours + private static final int REQUESTS_BEFORE_CHECK_LOCATION = 100; private AtomicInteger locationRequestsCounter = new AtomicInteger(); private AtomicInteger staleLocationRequestsCounter = new AtomicInteger(); @@ -114,7 +116,6 @@ public class OsmAndLocationProvider implements SensorEventListener { private int currentScreenOrientation; private OsmandApplication app; - private OsmandSettings settings; private NavigationInfo navigationInfo; private CurrentPositionHelper currentPositionHelper; @@ -128,9 +129,6 @@ public class OsmAndLocationProvider implements SensorEventListener { private List compassListeners = new ArrayList(); private Listener gpsStatusListener; private float[] mRotationM = new float[9]; - private OsmandPreference USE_MAGNETIC_FIELD_SENSOR_COMPASS; - private OsmandPreference USE_FILTER_FOR_COMPASS; - private static final long AGPS_TO_REDOWNLOAD = 16 * 60 * 60 * 1000; // 16 hours public class SimulationProvider { @@ -234,9 +232,6 @@ public class OsmAndLocationProvider implements SensorEventListener { public OsmAndLocationProvider(OsmandApplication app) { this.app = app; navigationInfo = new NavigationInfo(app); - settings = app.getSettings(); - USE_MAGNETIC_FIELD_SENSOR_COMPASS = settings.USE_MAGNETIC_FIELD_SENSOR_COMPASS; - USE_FILTER_FOR_COMPASS = settings.USE_KALMAN_FILTER_FOR_COMPASS; currentPositionHelper = new CurrentPositionHelper(app); locationSimulation = new OsmAndLocationSimulation(app, this); addLocationListener(navigationInfo); @@ -393,7 +388,7 @@ public class OsmAndLocationProvider implements SensorEventListener { } else if (!sensorRegistered && register) { Log.d(PlatformUtil.TAG, "Enable sensor"); //$NON-NLS-1$ SensorManager sensorMgr = (SensorManager) app.getSystemService(Context.SENSOR_SERVICE); - if (USE_MAGNETIC_FIELD_SENSOR_COMPASS.get()) { + if (app.getSettings().USE_MAGNETIC_FIELD_SENSOR_COMPASS.get()) { Sensor s = sensorMgr.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); if (s == null || !sensorMgr.registerListener(this, s, SensorManager.SENSOR_DELAY_UI)) { Log.e(PlatformUtil.TAG, "Sensor accelerometer could not be enabled"); @@ -476,7 +471,8 @@ public class OsmAndLocationProvider implements SensorEventListener { default: return; } - if (USE_MAGNETIC_FIELD_SENSOR_COMPASS.get()) { + OsmandSettings settings = app.getSettings(); + if (settings.USE_MAGNETIC_FIELD_SENSOR_COMPASS.get()) { if (mGravs != null && mGeoMags != null) { boolean success = SensorManager.getRotationMatrix(mRotationM, null, mGravs, mGeoMags); if (!success) { @@ -495,7 +491,7 @@ public class OsmAndLocationProvider implements SensorEventListener { lastValSin = (float) Math.sin(valRad); lastValCos = (float) Math.cos(valRad); // lastHeadingCalcTime = System.currentTimeMillis(); - boolean filter = USE_FILTER_FOR_COMPASS.get(); //USE_MAGNETIC_FIELD_SENSOR_COMPASS.get(); + boolean filter = settings.USE_KALMAN_FILTER_FOR_COMPASS.get(); //USE_MAGNETIC_FIELD_SENSOR_COMPASS.get(); if (filter) { filterCompassValue(); } else { @@ -806,9 +802,9 @@ public class OsmAndLocationProvider implements SensorEventListener { if (routingHelper.isFollowingMode()) { if (location == null || isPointAccurateForRouting(location)) { // Update routing position and get location for sticking mode - updatedLocation = routingHelper.setCurrentLocation(location, settings.SNAP_TO_ROAD.get()); + updatedLocation = routingHelper.setCurrentLocation(location, app.getSettings().SNAP_TO_ROAD.get()); } - } else if(routingHelper.isRoutePlanningMode() && settings.getPointToStart() == null) { + } else if(routingHelper.isRoutePlanningMode() && app.getSettings().getPointToStart() == null) { routingHelper.setCurrentLocation(location, false); } else if(getLocationSimulation().isRouteAnimating()) { routingHelper.setCurrentLocation(location, false); diff --git a/OsmAnd/src/net/osmand/plus/OsmandApplication.java b/OsmAnd/src/net/osmand/plus/OsmandApplication.java index 05a6e2d618..0fdffdf8cb 100644 --- a/OsmAnd/src/net/osmand/plus/OsmandApplication.java +++ b/OsmAnd/src/net/osmand/plus/OsmandApplication.java @@ -291,7 +291,6 @@ public class OsmandApplication extends MultiDexApplication { public void setOsmandSettings(OsmandSettings osmandSettings) { //android.os.Process.killProcess(android.os.Process.myPid()); this.osmandSettings = osmandSettings; - resourceManager.getRenderer().updateSettings(); OsmandPlugin.initPlugins(this); } diff --git a/OsmAnd/src/net/osmand/plus/OsmandSettings.java b/OsmAnd/src/net/osmand/plus/OsmandSettings.java index 3be1fa31d5..7f673813c9 100644 --- a/OsmAnd/src/net/osmand/plus/OsmandSettings.java +++ b/OsmAnd/src/net/osmand/plus/OsmandSettings.java @@ -1470,8 +1470,6 @@ public class OsmandSettings { // this value string is synchronized with settings_pref.xml preference name public final OsmandPreference PREFERRED_LOCALE = new StringPreference("preferred_locale", "").makeGlobal(); - public static final String TRANSPORT_STOPS_OVER_MAP = "transportStops"; - public final OsmandPreference MAP_PREFERRED_LOCALE = new StringPreference("map_preferred_locale", "").makeGlobal().cache(); public final OsmandPreference MAP_TRANSLITERATE_NAMES = new BooleanPreference("map_transliterate_names", false).makeGlobal().cache(); diff --git a/OsmAnd/src/net/osmand/plus/TargetPointsHelper.java b/OsmAnd/src/net/osmand/plus/TargetPointsHelper.java index 02a175ae97..494b77e176 100644 --- a/OsmAnd/src/net/osmand/plus/TargetPointsHelper.java +++ b/OsmAnd/src/net/osmand/plus/TargetPointsHelper.java @@ -12,6 +12,7 @@ import net.osmand.data.PointDescription; import net.osmand.plus.GeocodingLookupService.AddressLookupRequest; import net.osmand.plus.routing.RouteProvider.RouteService; import net.osmand.plus.routing.RoutingHelper; +import net.osmand.plus.OsmAndAppCustomization.OsmAndAppCustomizationListener; import net.osmand.util.Algorithms; import net.osmand.util.MapUtils; @@ -147,6 +148,16 @@ public class TargetPointsHelper { this.settings = ctx.getSettings(); this.routingHelper = ctx.getRoutingHelper(); readFromSettings(); + + OsmAndAppCustomizationListener customizationListener = new OsmAndAppCustomizationListener() { + @Override + public void onOsmAndSettingsCustomized() { + settings = TargetPointsHelper.this.ctx.getSettings(); + readFromSettings(); + updateRouteAndRefresh(true); + } + }; + ctx.getAppCustomization().addListener(customizationListener); } public void lookupAddessAll() { diff --git a/OsmAnd/src/net/osmand/plus/activities/DayNightHelper.java b/OsmAnd/src/net/osmand/plus/activities/DayNightHelper.java index d3ec516cf7..f9802a05a1 100644 --- a/OsmAnd/src/net/osmand/plus/activities/DayNightHelper.java +++ b/OsmAnd/src/net/osmand/plus/activities/DayNightHelper.java @@ -10,7 +10,6 @@ import net.osmand.PlatformUtil; import net.osmand.StateChangedListener; import net.osmand.plus.ApplicationMode; import net.osmand.plus.OsmandApplication; -import net.osmand.plus.OsmandSettings.CommonPreference; import net.osmand.plus.OsmandSettings.DayNightMode; import net.osmand.util.SunriseSunset; @@ -41,15 +40,13 @@ import android.location.LocationManager; * @author pavol.zibrita */ public class DayNightHelper implements SensorEventListener { + private static final Log log = PlatformUtil.getLog(DayNightHelper.class); private final OsmandApplication osmandApplication; - private CommonPreference pref; - public DayNightHelper(OsmandApplication osmandApplication) { this.osmandApplication = osmandApplication; - pref = osmandApplication.getSettings().DAYNIGHT_MODE; } private DayNightHelper listener; @@ -79,7 +76,7 @@ public class DayNightHelper implements SensorEventListener { } public boolean isNightModeForProfile(ApplicationMode mode) { - DayNightMode dayNightMode = pref.getModeValue(mode); + DayNightMode dayNightMode = osmandApplication.getSettings().DAYNIGHT_MODE.getModeValue(mode); if (dayNightMode.isDay()) { return false; } else if (dayNightMode.isNight()) { @@ -138,7 +135,7 @@ public class DayNightHelper implements SensorEventListener { public void startSensorIfNeeded(StateChangedListener sensorStateListener) { this.sensorStateListener = sensorStateListener; - DayNightMode dayNightMode = pref.get(); + DayNightMode dayNightMode = osmandApplication.getSettings().DAYNIGHT_MODE.get(); if (listener == null && dayNightMode.isSensor()) { SensorManager mSensorManager = (SensorManager) osmandApplication.getSystemService(Context.SENSOR_SERVICE); Sensor mLight = mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT); diff --git a/OsmAnd/src/net/osmand/plus/activities/MapActivityLayers.java b/OsmAnd/src/net/osmand/plus/activities/MapActivityLayers.java index 2964149738..c20a4cc6bd 100644 --- a/OsmAnd/src/net/osmand/plus/activities/MapActivityLayers.java +++ b/OsmAnd/src/net/osmand/plus/activities/MapActivityLayers.java @@ -208,8 +208,6 @@ public class MapActivityLayers { public void updateLayers(OsmandMapTileView mapView) { OsmandSettings settings = getApplication().getSettings(); updateMapSource(mapView, settings.MAP_TILE_SOURCES); - boolean showStops = settings.getCustomRenderBooleanProperty(OsmandSettings.TRANSPORT_STOPS_OVER_MAP).get(); - transportStopsLayer.setShowTransportStops(showStops); OsmandPlugin.refreshLayers(mapView, activity); } diff --git a/OsmAnd/src/net/osmand/plus/helpers/LockHelper.java b/OsmAnd/src/net/osmand/plus/helpers/LockHelper.java index 6359b15e6e..44c58310c0 100644 --- a/OsmAnd/src/net/osmand/plus/helpers/LockHelper.java +++ b/OsmAnd/src/net/osmand/plus/helpers/LockHelper.java @@ -13,6 +13,7 @@ import android.os.PowerManager.WakeLock; import android.support.annotation.NonNull; import android.support.annotation.Nullable; +import net.osmand.plus.OsmAndAppCustomization.OsmAndAppCustomizationListener; import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandSettings; import net.osmand.plus.OsmandSettings.CommonPreference; @@ -65,6 +66,16 @@ public class LockHelper implements SensorEventListener { unlockEvent(); } }; + OsmAndAppCustomizationListener customizationListener = new OsmAndAppCustomizationListener() { + @Override + public void onOsmAndSettingsCustomized() { + OsmandSettings settings = app.getSettings(); + turnScreenOnEnabled = settings.TURN_SCREEN_ON_ENABLED; + turnScreenOnTime = settings.TURN_SCREEN_ON_TIME_INT; + turnScreenOnSensor = settings.TURN_SCREEN_ON_SENSOR; + } + }; + app.getAppCustomization().addListener(customizationListener); app.getRoutingHelper().getVoiceRouter().addVoiceMessageListener(voiceMessageListener); } diff --git a/OsmAnd/src/net/osmand/plus/mapmarkers/PlanRouteFragment.java b/OsmAnd/src/net/osmand/plus/mapmarkers/PlanRouteFragment.java index 577d86f458..8ec8020ec6 100644 --- a/OsmAnd/src/net/osmand/plus/mapmarkers/PlanRouteFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapmarkers/PlanRouteFragment.java @@ -292,7 +292,7 @@ public class PlanRouteFragment extends BaseOsmAndFragment implements OsmAndLocat } Object item = adapter.getItem(pos); if (item instanceof Location) { - markersHelper.setStartFromMyLocation(!mapActivity.getMyApplication().getSettings().ROUTE_MAP_MARKERS_START_MY_LOC.get()); + markersHelper.setStartFromMyLocation(!markersHelper.isStartFromMyLocation()); } else if (item instanceof MapMarker) { MapMarker marker = (MapMarker) item; selectedCount = marker.selected ? selectedCount - 1 : selectedCount + 1; diff --git a/OsmAnd/src/net/osmand/plus/monitoring/LiveMonitoringHelper.java b/OsmAnd/src/net/osmand/plus/monitoring/LiveMonitoringHelper.java index c3f9649a28..47a016ebd6 100644 --- a/OsmAnd/src/net/osmand/plus/monitoring/LiveMonitoringHelper.java +++ b/OsmAnd/src/net/osmand/plus/monitoring/LiveMonitoringHelper.java @@ -1,6 +1,5 @@ package net.osmand.plus.monitoring; -import android.content.Context; import android.os.AsyncTask; import net.osmand.PlatformUtil; @@ -24,23 +23,25 @@ import java.util.ArrayList; import java.util.List; import java.util.concurrent.ConcurrentLinkedQueue; -public class LiveMonitoringHelper { - - protected Context ctx; - private OsmandSettings settings; - private long lastTimeUpdated; - private LatLon lastPoint; +public class LiveMonitoringHelper { + private final static Log log = PlatformUtil.getLog(LiveMonitoringHelper.class); + + private OsmandApplication app; + private ConcurrentLinkedQueue queue; + + private LatLon lastPoint; + private long lastTimeUpdated; private boolean started = false; - public LiveMonitoringHelper(Context ctx){ - this.ctx = ctx; - settings = ((OsmandApplication) ctx.getApplicationContext()).getSettings(); + public LiveMonitoringHelper(OsmandApplication app) { + this.app = app; queue = new ConcurrentLinkedQueue<>(); } - - public boolean isLiveMonitoringEnabled(){ + + public boolean isLiveMonitoringEnabled() { + OsmandSettings settings = app.getSettings(); return settings.LIVE_MONITORING.get() && (settings.SAVE_TRACK_TO_GPX.get() || settings.SAVE_GLOBAL_TRACK_TO_GPX.get()); } @@ -50,6 +51,7 @@ public class LiveMonitoringHelper { if (location != null && isLiveMonitoringEnabled() && OsmAndLocationProvider.isNotSimulatedLocation(location) && OsmandPlugin.getEnabledPlugin(OsmandMonitoringPlugin.class) != null) { + OsmandSettings settings = app.getSettings(); if (locationTime - lastTimeUpdated > settings.LIVE_MONITORING_INTERVAL.get()) { record = true; } @@ -112,10 +114,11 @@ public class LiveMonitoringHelper { @Override protected Void doInBackground(ConcurrentLinkedQueue... concurrentLinkedQueues) { while (isLiveMonitoringEnabled()) { + int maxSendInterval = app.getSettings().LIVE_MONITORING_MAX_INTERVAL_TO_SEND.get(); for (ConcurrentLinkedQueue queue : concurrentLinkedQueues) { if (!queue.isEmpty()) { LiveMonitoringData data = (LiveMonitoringData) queue.peek(); - if (!(System.currentTimeMillis() - data.time > settings.LIVE_MONITORING_MAX_INTERVAL_TO_SEND.get())) { + if (!(System.currentTimeMillis() - data.time > maxSendInterval)) { sendData(data); } else { queue.poll(); @@ -128,10 +131,52 @@ public class LiveMonitoringHelper { } public void sendData(LiveMonitoringData data) { - String st = settings.LIVE_MONITORING_URL.get(); + String urlStr = getLiveUrl(data); + try { + // Parse the URL and let the URI constructor handle proper encoding of special characters such as spaces + URL url = new URL(urlStr); + HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); + URI uri = new URI(url.getProtocol(), url.getUserInfo(), url.getHost(), url.getPort(), + url.getPath(), url.getQuery(), url.getRef()); + + urlConnection.setConnectTimeout(15000); + urlConnection.setReadTimeout(15000); + + log.info("Monitor " + uri); + + if (urlConnection.getResponseCode() / 100 != 2) { + + String msg = urlConnection.getResponseCode() + " : " + //$NON-NLS-1$//$NON-NLS-2$ + urlConnection.getResponseMessage(); + log.error("Error sending monitor request: " + msg); + } else { + queue.poll(); + InputStream is = urlConnection.getInputStream(); + StringBuilder responseBody = new StringBuilder(); + if (is != null) { + BufferedReader in = new BufferedReader(new InputStreamReader(is, "UTF-8")); //$NON-NLS-1$ + String s; + while ((s = in.readLine()) != null) { + responseBody.append(s); + responseBody.append("\n"); //$NON-NLS-1$ + } + is.close(); + } + log.info("Monitor response (" + urlConnection.getHeaderField("Content-Type") + "): " + responseBody.toString()); + } + + urlConnection.disconnect(); + + } catch (Exception e) { + log.error("Failed connect to " + urlStr + ": " + e.getMessage(), e); + } + } + + private String getLiveUrl(LiveMonitoringData data) { + String st = app.getSettings().LIVE_MONITORING_URL.get(); List prm = new ArrayList(); int maxLen = 0; - for(int i = 0; i < 7; i++) { + for (int i = 0; i < 7; i++) { boolean b = st.contains("{"+i+"}"); if(b) { maxLen = i; @@ -165,45 +210,6 @@ public class LiveMonitoringHelper { break; } } - String urlStr = MessageFormat.format(st, prm.toArray()); - try { - - // Parse the URL and let the URI constructor handle proper encoding of special characters such as spaces - URL url = new URL(urlStr); - HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); - URI uri = new URI(url.getProtocol(), url.getUserInfo(), url.getHost(), url.getPort(), - url.getPath(), url.getQuery(), url.getRef()); - - urlConnection.setConnectTimeout(15000); - urlConnection.setReadTimeout(15000); - - log.info("Monitor " + uri); - - if (urlConnection.getResponseCode()/100 != 2) { - - String msg = urlConnection.getResponseCode() + " : " + //$NON-NLS-1$//$NON-NLS-2$ - urlConnection.getResponseMessage(); - log.error("Error sending monitor request: " + msg); - } else { - queue.poll(); - InputStream is = urlConnection.getInputStream(); - StringBuilder responseBody = new StringBuilder(); - if (is != null) { - BufferedReader in = new BufferedReader(new InputStreamReader(is, "UTF-8")); //$NON-NLS-1$ - String s; - while ((s = in.readLine()) != null) { - responseBody.append(s); - responseBody.append("\n"); //$NON-NLS-1$ - } - is.close(); - } - log.info("Monitor response (" + urlConnection.getHeaderField("Content-Type") + "): " + responseBody.toString()); - } - - urlConnection.disconnect(); - - } catch (Exception e) { - log.error("Failed connect to " + urlStr + ": " + e.getMessage(), e); - } + return MessageFormat.format(st, prm.toArray()); } } diff --git a/OsmAnd/src/net/osmand/plus/render/MapRenderRepositories.java b/OsmAnd/src/net/osmand/plus/render/MapRenderRepositories.java index f4ce51cf88..f6b5837e09 100644 --- a/OsmAnd/src/net/osmand/plus/render/MapRenderRepositories.java +++ b/OsmAnd/src/net/osmand/plus/render/MapRenderRepositories.java @@ -39,6 +39,7 @@ import net.osmand.data.QuadPointDouble; import net.osmand.data.QuadRect; import net.osmand.data.RotatedTileBox; import net.osmand.map.MapTileDownloader; +import net.osmand.plus.OsmAndAppCustomization.OsmAndAppCustomizationListener; import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandPlugin; import net.osmand.plus.OsmandSettings; @@ -121,6 +122,15 @@ public class MapRenderRepositories { this.renderer = new OsmandRenderer(context); handler = new Handler(Looper.getMainLooper()); prefs = context.getSettings(); + + OsmAndAppCustomizationListener customizationListener = new OsmAndAppCustomizationListener() { + @Override + public void onOsmAndSettingsCustomized() { + prefs = MapRenderRepositories.this.context.getSettings(); + clearCache(); + } + }; + context.getAppCustomization().addListener(customizationListener); } public Context getContext() { @@ -153,11 +163,6 @@ public class MapRenderRepositories { return prevBmpLocation; } - public void updateSettings() { - prefs = context.getSettings(); - clearCache(); - } - public synchronized void closeConnection(String file) { LinkedHashMap cpfiles = new LinkedHashMap(files); BinaryMapIndexReader bmir = cpfiles.remove(file); diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/RoutingOptionsHelper.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/RoutingOptionsHelper.java index 9dad48bad4..7b8cdf4b5d 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/RoutingOptionsHelper.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/RoutingOptionsHelper.java @@ -63,13 +63,11 @@ public class RoutingOptionsHelper { public static final String DRIVING_STYLE = "driving_style"; private OsmandApplication app; - private OsmandSettings settings; private Map modes = new HashMap<>(); public RoutingOptionsHelper(OsmandApplication application) { app = application; - settings = app.getSettings(); } private void addRouteMenuAppModes(ApplicationMode am, List routingParameters) { @@ -104,6 +102,7 @@ public class RoutingOptionsHelper { } public void switchMusic() { + OsmandSettings settings = app.getSettings(); boolean mt = !settings.INTERRUPT_MUSIC.get(); settings.INTERRUPT_MUSIC.set(mt); } @@ -311,6 +310,7 @@ public class RoutingOptionsHelper { } public void showLocalRoutingParameterGroupDialog(final LocalRoutingParameterGroup group, final MapActivity mapActivity, final OnClickListener listener) { + OsmandSettings settings = app.getSettings(); final ContextMenuAdapter adapter = new ContextMenuAdapter(); int i = 0; int selectedIndex = -1; @@ -364,6 +364,7 @@ public class RoutingOptionsHelper { .setPositiveButton(R.string.shared_string_ok, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { + OsmandSettings settings = app.getSettings(); int position = selectedPosition[0]; if (position >= 0 && position < group.getRoutingParameters().size()) { for (int i = 0; i < group.getRoutingParameters().size(); i++) { diff --git a/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java b/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java index ce4a7861ec..55c4afdd1f 100644 --- a/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java +++ b/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java @@ -8,6 +8,7 @@ import net.osmand.data.LatLon; 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; import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandPlugin; @@ -95,11 +96,19 @@ public class RoutingHelper { public RoutingHelper(OsmandApplication context){ this.app = context; settings = context.getSettings(); - voiceRouter = new VoiceRouter(this, settings); + voiceRouter = new VoiceRouter(this); provider = new RouteProvider(); transportRoutingHelper = context.getTransportRoutingHelper(); transportRoutingHelper.setRoutingHelper(this); setAppMode(settings.APPLICATION_MODE.get()); + + OsmAndAppCustomizationListener customizationListener = new OsmAndAppCustomizationListener() { + @Override + public void onOsmAndSettingsCustomized() { + settings = app.getSettings(); + } + }; + app.getAppCustomization().addListener(customizationListener); } public TransportRoutingHelper getTransportRoutingHelper() { diff --git a/OsmAnd/src/net/osmand/plus/routing/VoiceRouter.java b/OsmAnd/src/net/osmand/plus/routing/VoiceRouter.java index a05ebe5a40..3daebfa531 100644 --- a/OsmAnd/src/net/osmand/plus/routing/VoiceRouter.java +++ b/OsmAnd/src/net/osmand/plus/routing/VoiceRouter.java @@ -8,6 +8,8 @@ import net.osmand.Location; import net.osmand.binary.RouteDataObject; import net.osmand.data.PointDescription; import net.osmand.plus.ApplicationMode; +import net.osmand.plus.OsmAndAppCustomization.OsmAndAppCustomizationListener; +import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandSettings; import net.osmand.plus.helpers.WaypointHelper.LocationPointWrapper; import net.osmand.plus.routing.AlarmInfo.AlarmInfoType; @@ -45,9 +47,11 @@ public class VoiceRouter { public static final String FROM_STREET_NAME = "fromStreetName"; public static final String FROM_DEST = "fromDest"; - protected final RoutingHelper router; protected static CommandPlayer player; - protected final OsmandSettings settings; + + protected final OsmandApplication app; + protected final RoutingHelper router; + protected OsmandSettings settings; private static int currentStatus = STATUS_UNKNOWN; private static boolean playedAndArriveAtTarget = false; @@ -83,9 +87,18 @@ public class VoiceRouter { private List> voiceMessageListeners = new ArrayList<>(); - VoiceRouter(RoutingHelper router, final OsmandSettings settings) { + VoiceRouter(RoutingHelper router) { this.router = router; - this.settings = settings; + this.app = router.getApplication(); + this.settings = app.getSettings(); + + OsmAndAppCustomizationListener customizationListener = new OsmAndAppCustomizationListener() { + @Override + public void onOsmAndSettingsCustomized() { + settings = app.getSettings(); + } + }; + app.getAppCustomization().addListener(customizationListener); } public void setPlayer(CommandPlayer player) { diff --git a/OsmAnd/src/net/osmand/plus/views/TransportStopsLayer.java b/OsmAnd/src/net/osmand/plus/views/TransportStopsLayer.java index 9246a49fab..ee19fce4f0 100644 --- a/OsmAnd/src/net/osmand/plus/views/TransportStopsLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/TransportStopsLayer.java @@ -22,6 +22,7 @@ import net.osmand.data.RotatedTileBox; import net.osmand.data.TransportStop; import net.osmand.osm.edit.Node; import net.osmand.osm.edit.Way; +import net.osmand.plus.OsmandSettings; import net.osmand.plus.R; import net.osmand.plus.activities.MapActivity; import net.osmand.plus.render.RenderingIcons; @@ -36,6 +37,9 @@ import java.util.List; import java.util.TreeSet; public class TransportStopsLayer extends OsmandMapLayer implements ContextMenuLayer.IContextMenuProvider { + + public static final String TRANSPORT_STOPS_OVER_MAP = "transportStops"; + private static final int startZoom = 12; private static final int startZoomRoute = 10; @@ -53,13 +57,16 @@ public class TransportStopsLayer extends OsmandMapLayer implements ContextMenuLa private MapLayerData> data; private TransportStopRoute stopRoute = null; - private boolean showTransportStops; + private OsmandSettings.CommonPreference showTransportStops; + private Path path; private float backgroundIconHalfWidth; private float backgroundIconHalfHeight; public TransportStopsLayer(MapActivity mapActivity) { this.mapActivity = mapActivity; + OsmandSettings settings = mapActivity.getMyApplication().getSettings(); + showTransportStops = settings.getCustomRenderBooleanProperty(TRANSPORT_STOPS_OVER_MAP).cache(); } @SuppressWarnings("deprecation") @@ -168,14 +175,6 @@ public class TransportStopsLayer extends OsmandMapLayer implements ContextMenuLa this.stopRoute = route; } - public boolean isShowTransportStops() { - return showTransportStops; - } - - public void setShowTransportStops(boolean showTransportStops) { - this.showTransportStops = showTransportStops; - } - private int getRadiusPoi(RotatedTileBox tb){ final double zoom = tb.getZoom(); int r; @@ -227,7 +226,7 @@ public class TransportStopsLayer extends OsmandMapLayer implements ContextMenuLa } } - if (showTransportStops && tb.getZoom() >= startZoom && objects == null) { + if (showTransportStops.get() && tb.getZoom() >= startZoom && objects == null) { data.queryNewData(tb); objects = data.getResults(); } From ed85c92047b0e0582fb89ad979ddb5bb582110fc Mon Sep 17 00:00:00 2001 From: veliymolfar Date: Mon, 13 Jan 2020 14:58:03 +0200 Subject: [PATCH 02/82] tilt gesture in openGL initial commit --- .../osmand/plus/activities/MapActivity.java | 6 ++ .../osmand/plus/views/MultiTouchSupport.java | 76 +++++++++++++++---- .../osmand/plus/views/OsmandMapTileView.java | 18 ++++- 3 files changed, 86 insertions(+), 14 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java index e933ca9232..1f7d9c9cee 100644 --- a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java +++ b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java @@ -489,6 +489,12 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven } } + public void setMapElevation(float angle) { + if (settings.USE_OPENGL_RENDER.get() && NativeCoreContext.isInit()) { + atlasMapRendererView.setElevationAngle(angle); + } + } + private void createProgressBarForRouting() { final ProgressBar pb = (ProgressBar) findViewById(R.id.map_horizontal_progress); diff --git a/OsmAnd/src/net/osmand/plus/views/MultiTouchSupport.java b/OsmAnd/src/net/osmand/plus/views/MultiTouchSupport.java index 166d3f04ee..05389ef884 100644 --- a/OsmAnd/src/net/osmand/plus/views/MultiTouchSupport.java +++ b/OsmAnd/src/net/osmand/plus/views/MultiTouchSupport.java @@ -36,6 +36,8 @@ public class MultiTouchSupport { public void onActionPointerUp(); public void onActionCancel(); + + public void onChangingViewAngle(float angle); } private boolean multiTouchAPISupported = false; @@ -62,6 +64,10 @@ public class MultiTouchSupport { return inZoomMode; } + public boolean isInTiltMode() { + return inTiltMode; + } + private void initMethods(){ try { getPointerCount = MotionEvent.class.getMethod("getPointerCount"); //$NON-NLS-1$ @@ -76,9 +82,17 @@ public class MultiTouchSupport { } private boolean inZoomMode = false; + private boolean inTiltMode = false; private double zoomStartedDistance = 100; private double zoomRelative = 1; private PointF centerPoint = new PointF(); + private PointF firstFingerStart = new PointF(); + private PointF secondFingerStart = new PointF(); + private static final int TILT_X_THRESHOLD_PX = 40; + private static final int TILT_Y_THRESHOLD_PX = 40; + private static final int TILT_DY_THRESHOLD_PX = 40; + private static final float ROTATION_THRESHOLD_DEG = 15.0f; + private boolean isRotating; public boolean onTouchEvent(MotionEvent event){ if(!isMultiTouchSupported()){ @@ -91,9 +105,10 @@ public class MultiTouchSupport { } Integer pointCount = (Integer) getPointerCount.invoke(event); if(pointCount < 2){ - if(inZoomMode){ + if (inZoomMode || inTiltMode) { listener.onZoomOrRotationEnded(zoomRelative, angleRelative); inZoomMode = false; + inTiltMode = false; return true; } return false; @@ -114,28 +129,63 @@ public class MultiTouchSupport { } if (actionCode == ACTION_POINTER_DOWN) { centerPoint = new PointF((x1 + x2) / 2, (y1 + y2) / 2); + firstFingerStart = new PointF(x1, y1); + secondFingerStart = new PointF(x2, y2); listener.onGestureInit(x1, y1, x2, y2); listener.onZoomStarted(centerPoint); - zoomStartedDistance = distance; - angleStarted = angle; - inZoomMode = true; return true; } else if(actionCode == ACTION_POINTER_UP){ - if(inZoomMode){ + if (inZoomMode || inTiltMode) { listener.onZoomOrRotationEnded(zoomRelative, angleRelative); inZoomMode = false; + inTiltMode = false; } return true; - } else if(inZoomMode && actionCode == MotionEvent.ACTION_MOVE){ - // Keep zoom center fixed or flexible - centerPoint = new PointF((x1 + x2) / 2, (y1 + y2) / 2); + } else if (actionCode == MotionEvent.ACTION_MOVE) { + if (inZoomMode) { - if(angleDefined) { - angleRelative = MapUtils.unifyRotationTo360(angle - angleStarted); + // Keep zoom center fixed or flexible + centerPoint = new PointF((x1 + x2) / 2, (y1 + y2) / 2); + + if (angleDefined) { + float a = MapUtils.unifyRotationTo360(angle - angleStarted); + if (!isRotating && Math.abs(a) > ROTATION_THRESHOLD_DEG) { + isRotating = true; + angleStarted = angle; + } else if (isRotating) { + angleRelative = a; + } + } + zoomRelative = distance / zoomStartedDistance; + listener.onZoomingOrRotating(zoomRelative, angleRelative); + return true; + } else if (inTiltMode) { + float dy2 = secondFingerStart.y - y2; + float viewAngle = dy2 / 8f; + listener.onChangingViewAngle(viewAngle); + } else { + float dx1 = Math.abs(firstFingerStart.x - x1); + float dx2 = Math.abs(secondFingerStart.x - x2); + float dy1 = Math.abs(firstFingerStart.y - y1); + float dy2 = Math.abs(secondFingerStart.y - y2); + float startDy = Math.abs(secondFingerStart.y - firstFingerStart.y); + if (dx1 < TILT_X_THRESHOLD_PX && dx2 < TILT_X_THRESHOLD_PX + && dy1 > TILT_Y_THRESHOLD_PX && dy2 > TILT_Y_THRESHOLD_PX + && startDy < TILT_Y_THRESHOLD_PX * 6 + && Math.abs(dy2 - dy1) < TILT_DY_THRESHOLD_PX) { + inTiltMode = true; + } else if (dx1 > TILT_X_THRESHOLD_PX || dx2 > TILT_X_THRESHOLD_PX + || Math.abs(dy2 - dy1) > TILT_DY_THRESHOLD_PX + || Math.abs(dy1 - dy2) > TILT_DY_THRESHOLD_PX) { + listener.onZoomStarted(centerPoint); + zoomStartedDistance = distance; + angleStarted = angle; + angleRelative = 0; + zoomRelative = 0; + isRotating = false; + inZoomMode = true; + } } - zoomRelative = distance / zoomStartedDistance; - listener.onZoomingOrRotating(zoomRelative, angleRelative); - return true; } } catch (Exception e) { log.debug("Multi touch exception" , e); //$NON-NLS-1$ diff --git a/OsmAnd/src/net/osmand/plus/views/OsmandMapTileView.java b/OsmAnd/src/net/osmand/plus/views/OsmandMapTileView.java index eafefe7710..a267ac8254 100644 --- a/OsmAnd/src/net/osmand/plus/views/OsmandMapTileView.java +++ b/OsmAnd/src/net/osmand/plus/views/OsmandMapTileView.java @@ -1199,6 +1199,11 @@ public class OsmandMapTileView implements IMapDownloaderCallback { multiTouch = false; } + @Override + public void onChangingViewAngle(float angle) { + setElevationAngle(angle); + } + @Override public void onZoomStarted(PointF centerPoint) { initialMultiTouchCenterPoint = centerPoint; @@ -1287,6 +1292,15 @@ public class OsmandMapTileView implements IMapDownloaderCallback { } + private void setElevationAngle(float angle) { + if (angle < 35f) { + angle = 35f; + } else if (angle > 90f) { + angle = 90f; + } + ((MapActivity) activity).setMapElevation(angle); + } + private boolean isZoomingAllowed(int baseZoom, float dz) { if (baseZoom > getMaxZoom()) { return false; @@ -1346,7 +1360,9 @@ public class OsmandMapTileView implements IMapDownloaderCallback { @Override public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { - dragToAnimate(e2.getX() + distanceX, e2.getY() + distanceY, e2.getX(), e2.getY(), true); + if (!multiTouchSupport.isInTiltMode()) { + dragToAnimate(e2.getX() + distanceX, e2.getY() + distanceY, e2.getX(), e2.getY(), true); + } return true; } From 13221243d62a95eb166e8db19b359e0424b0b00a Mon Sep 17 00:00:00 2001 From: Ldm Public Date: Sun, 12 Jan 2020 22:19:47 +0000 Subject: [PATCH 03/82] Translated using Weblate (French) Currently translated at 100.0% (3101 of 3101 strings) --- OsmAnd/res/values-fr/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/OsmAnd/res/values-fr/strings.xml b/OsmAnd/res/values-fr/strings.xml index 1eed014f75..6f20c4a2ff 100644 --- a/OsmAnd/res/values-fr/strings.xml +++ b/OsmAnd/res/values-fr/strings.xml @@ -3394,4 +3394,5 @@ représentant la zone : %1$s x %2$s Tous les paramètres de profil vont être ré-initialisés aux valeurs par défaut. Ré-initialiser tous les paramètres de profil \? %1$s : %2$s + %1$s %2$s \ No newline at end of file From afc13e69ead72ca8283a62cbe151c1bf374769db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Babos=20G=C3=A1bor?= Date: Mon, 13 Jan 2020 08:00:47 +0000 Subject: [PATCH 04/82] Translated using Weblate (Hungarian) Currently translated at 100.0% (3101 of 3101 strings) --- OsmAnd/res/values-hu/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/OsmAnd/res/values-hu/strings.xml b/OsmAnd/res/values-hu/strings.xml index b52d8f3b5b..cb3cba869e 100644 --- a/OsmAnd/res/values-hu/strings.xml +++ b/OsmAnd/res/values-hu/strings.xml @@ -3421,4 +3421,5 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük Minden profil visszaálljon az alapértelmezett helyzetbe\? Családi autó %1$s: %2$s + %1$s %2$s \ No newline at end of file From 3950e568d97672851aa49491ca997df138d50d28 Mon Sep 17 00:00:00 2001 From: Ajeje Brazorf Date: Mon, 13 Jan 2020 09:35:50 +0000 Subject: [PATCH 05/82] Translated using Weblate (Sardinian) Currently translated at 99.4% (3081 of 3101 strings) --- OsmAnd/res/values-sc/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/OsmAnd/res/values-sc/strings.xml b/OsmAnd/res/values-sc/strings.xml index 8bfe1c9441..09af46fdd5 100644 --- a/OsmAnd/res/values-sc/strings.xml +++ b/OsmAnd/res/values-sc/strings.xml @@ -3421,4 +3421,5 @@ Pro praghere iscrie su còdighe intreu Totu sas impostatziones de su profilu ant a torrare a s\'istadu chi teniant in antis de s\'installatzione. Ripristinare totu sas impostatziones de su profilu a sos valores predefinidos\? %1$s: %2$s + %1$s %2$s \ No newline at end of file From 9b6611a8c1fd4089756d88b293d2d51902bd3914 Mon Sep 17 00:00:00 2001 From: Verdulo Date: Sun, 12 Jan 2020 20:51:15 +0000 Subject: [PATCH 06/82] Translated using Weblate (Esperanto) Currently translated at 100.0% (3101 of 3101 strings) --- OsmAnd/res/values-eo/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/OsmAnd/res/values-eo/strings.xml b/OsmAnd/res/values-eo/strings.xml index 458901cef0..7446abe19e 100644 --- a/OsmAnd/res/values-eo/strings.xml +++ b/OsmAnd/res/values-eo/strings.xml @@ -3401,4 +3401,5 @@ Indikas lokon: %1$s x %2$s" Ĉiuj agordoj pri profiloj revenos al la post-instala stato. Ĉu rekomencigi ĉiujn agordojn pri profiloj\? %1$s: %2$s + %1$s %2$s \ No newline at end of file From 3d2325cc196f3e91e8947ebeff47d8ce4e5bdec8 Mon Sep 17 00:00:00 2001 From: Jeff Huang Date: Mon, 13 Jan 2020 04:27:11 +0000 Subject: [PATCH 07/82] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (3101 of 3101 strings) --- OsmAnd/res/values-zh-rTW/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/OsmAnd/res/values-zh-rTW/strings.xml b/OsmAnd/res/values-zh-rTW/strings.xml index 224604bd07..52a9a0ffee 100644 --- a/OsmAnd/res/values-zh-rTW/strings.xml +++ b/OsmAnd/res/values-zh-rTW/strings.xml @@ -3409,4 +3409,5 @@ 所有設定檔都將被重設為安裝後的狀態。 將所有設定檔重設為預設值? %1$s:%2$s + %1$s %2$s \ No newline at end of file From e8cf7f82421136d560d380e2b126f61fc3632acf Mon Sep 17 00:00:00 2001 From: Ajeje Brazorf Date: Mon, 13 Jan 2020 09:38:30 +0000 Subject: [PATCH 08/82] Translated using Weblate (Sardinian) Currently translated at 100.0% (261 of 261 strings) Translation: OsmAnd/Telegram Translate-URL: https://hosted.weblate.org/projects/osmand/telegram/sc/ --- OsmAnd-telegram/res/values-sc/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/OsmAnd-telegram/res/values-sc/strings.xml b/OsmAnd-telegram/res/values-sc/strings.xml index d81aecb0bc..5198a5c437 100644 --- a/OsmAnd-telegram/res/values-sc/strings.xml +++ b/OsmAnd-telegram/res/values-sc/strings.xml @@ -261,4 +261,5 @@ Tempus de iscadidura de sa memòria tampone Cunsigiadu Istadu de s\'arrastadore de OsmAnd + Torra a OsmAnd \ No newline at end of file From 88b89085e608d2571e7e6bc147cb7da5eb70524d Mon Sep 17 00:00:00 2001 From: veliymolfar Date: Mon, 13 Jan 2020 16:17:58 +0200 Subject: [PATCH 09/82] fix widget status (with enabled monitoring) --- OsmAnd-telegram/src/net/osmand/telegram/TelegramService.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/OsmAnd-telegram/src/net/osmand/telegram/TelegramService.kt b/OsmAnd-telegram/src/net/osmand/telegram/TelegramService.kt index 4915133e42..ec9d3c43c0 100644 --- a/OsmAnd-telegram/src/net/osmand/telegram/TelegramService.kt +++ b/OsmAnd-telegram/src/net/osmand/telegram/TelegramService.kt @@ -245,7 +245,9 @@ class TelegramService : Service(), LocationListener, TelegramIncomingMessagesLis oldestTime = -1 } app().showLocationHelper.addOrUpdateStatusWidget(oldestTime, isSending) - } + } else { + app().showLocationHelper.addOrUpdateStatusWidget(-1, false) + } startWidgetUpdates() }, UPDATE_WIDGET_INTERVAL_MS) } From fbb8daed404483a2284a58d579ab8550e3493a92 Mon Sep 17 00:00:00 2001 From: veliymolfar Date: Mon, 13 Jan 2020 16:46:23 +0200 Subject: [PATCH 10/82] formatting --- OsmAnd-telegram/src/net/osmand/telegram/TelegramService.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/OsmAnd-telegram/src/net/osmand/telegram/TelegramService.kt b/OsmAnd-telegram/src/net/osmand/telegram/TelegramService.kt index ec9d3c43c0..4b76c21fda 100644 --- a/OsmAnd-telegram/src/net/osmand/telegram/TelegramService.kt +++ b/OsmAnd-telegram/src/net/osmand/telegram/TelegramService.kt @@ -245,9 +245,9 @@ class TelegramService : Service(), LocationListener, TelegramIncomingMessagesLis oldestTime = -1 } app().showLocationHelper.addOrUpdateStatusWidget(oldestTime, isSending) - } else { - app().showLocationHelper.addOrUpdateStatusWidget(-1, false) - } + } else { + app().showLocationHelper.addOrUpdateStatusWidget(-1, false) + } startWidgetUpdates() }, UPDATE_WIDGET_INTERVAL_MS) } From 9749fd06f274cfc18a158f1a6f6c76ae63e43e74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?O=C4=9Fuz=20Ersen?= Date: Mon, 13 Jan 2020 15:08:17 +0000 Subject: [PATCH 11/82] Translated using Weblate (Turkish) Currently translated at 100.0% (3101 of 3101 strings) --- OsmAnd/res/values-tr/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/OsmAnd/res/values-tr/strings.xml b/OsmAnd/res/values-tr/strings.xml index 3330a4402b..3d9a30b8ab 100644 --- a/OsmAnd/res/values-tr/strings.xml +++ b/OsmAnd/res/values-tr/strings.xml @@ -3372,4 +3372,5 @@ Tüm profil ayarları kurulumdan sonraki duruma sıfırlanacaktır. Tüm profil ayarları varsayılana sıfırlansın mı\? %1$s: %2$s + %1$s %2$s \ No newline at end of file From 62835c8b69976f8490723aae2adb92584bc7757f Mon Sep 17 00:00:00 2001 From: jan madsen Date: Mon, 13 Jan 2020 14:54:12 +0000 Subject: [PATCH 12/82] Translated using Weblate (Danish) Currently translated at 91.8% (2848 of 3101 strings) --- OsmAnd/res/values-da/strings.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/OsmAnd/res/values-da/strings.xml b/OsmAnd/res/values-da/strings.xml index 3145eefb1e..a5ebd8857c 100644 --- a/OsmAnd/res/values-da/strings.xml +++ b/OsmAnd/res/values-da/strings.xml @@ -3429,4 +3429,6 @@ Repræsenterer område: %1$s x %2$s Ved at klikke på %1$s, mistes alle ændringer. Alle profilindstillinger nulstilles. Nulstil alle profilindstillinger til standard\? + %1$s %2$s + %1$s: %2$s \ No newline at end of file From 9d4ed6955c9d186eca64c9d4276c5a4ac95da07c Mon Sep 17 00:00:00 2001 From: Aulo Aasmaa Date: Mon, 13 Jan 2020 14:38:37 +0000 Subject: [PATCH 13/82] Translated using Weblate (Estonian) Currently translated at 100.0% (3101 of 3101 strings) --- OsmAnd/res/values-et/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/OsmAnd/res/values-et/strings.xml b/OsmAnd/res/values-et/strings.xml index bf2a6b3e9a..2e9f3aa6b6 100644 --- a/OsmAnd/res/values-et/strings.xml +++ b/OsmAnd/res/values-et/strings.xml @@ -3353,4 +3353,5 @@ Kõik profiiliseaded lähtestatakse paigaldusjärgsesse olekusse. Taasta kõikide profiiliseadete vaikeväärtused\? %1$s: %2$s + %1$s %2$s \ No newline at end of file From 4e292f02d6df5ffbac549087c1caa7bd25467516 Mon Sep 17 00:00:00 2001 From: jan madsen Date: Mon, 13 Jan 2020 14:55:13 +0000 Subject: [PATCH 14/82] Translated using Weblate (Danish) Currently translated at 99.2% (259 of 261 strings) Translation: OsmAnd/Telegram Translate-URL: https://hosted.weblate.org/projects/osmand/telegram/da/ --- OsmAnd-telegram/res/values-da/strings.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/OsmAnd-telegram/res/values-da/strings.xml b/OsmAnd-telegram/res/values-da/strings.xml index 5c94226b92..91d5d8b8f3 100644 --- a/OsmAnd-telegram/res/values-da/strings.xml +++ b/OsmAnd-telegram/res/values-da/strings.xml @@ -259,4 +259,8 @@ Hastighed Maksimal tid til lagring af punkter i bufferen Buffer udløbstid + Ændr enhed for afstand. + Foreslået + OsmAnd Tracker-status + Tilbage til OsmAnd \ No newline at end of file From 3e17352d3ed50466c1bd8543b4b47c8a40ef037a Mon Sep 17 00:00:00 2001 From: veliymolfar Date: Mon, 13 Jan 2020 17:24:51 +0200 Subject: [PATCH 15/82] commented speakable exit --- .../net/osmand/plus/routing/VoiceRouter.java | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/routing/VoiceRouter.java b/OsmAnd/src/net/osmand/plus/routing/VoiceRouter.java index 80a2945f88..2fe3b9aef0 100644 --- a/OsmAnd/src/net/osmand/plus/routing/VoiceRouter.java +++ b/OsmAnd/src/net/osmand/plus/routing/VoiceRouter.java @@ -695,13 +695,13 @@ public class VoiceRouter { String tParam = getTurnType(next.getTurnType()); boolean isPlay = true; ExitInfo exitInfo = next.getExitInfo(); - String lang = player.getLanguage(); if (tParam != null) { - if (exitInfo != null) { - p.takeExit(tParam, dist, getSpeakableExitName(next, exitInfo, true)); - } else { - p.turn(tParam, dist, getSpeakableStreetName(currentSegment, next, true)); - } + p.turn(tParam, dist, getSpeakableStreetName(currentSegment, next, true)); +// if (exitInfo != null) { +// p.takeExit(tParam, dist, getSpeakableExitName(next, exitInfo, true)); +// } else { +// p.turn(tParam, dist, getSpeakableStreetName(currentSegment, next, true)); +// } suppressDest = true; } else if (next.getTurnType().isRoundAbout()) { p.roundAbout(dist, next.getTurnType().getTurnAngle(), next.getTurnType().getExitOut(), getSpeakableStreetName(currentSegment, next, true)); @@ -771,11 +771,12 @@ public class VoiceRouter { boolean isplay = true; String lang = player.getLanguage(); if (tParam != null) { - if (exitInfo != null) { - p.takeExit(tParam, getSpeakableExitName(next, exitInfo, !suppressDest)); - } else { - p.turn(tParam, getSpeakableStreetName(currentSegment, next, !suppressDest)); - } + p.turn(tParam, getSpeakableStreetName(currentSegment, next, !suppressDest)); +// if (exitInfo != null) { +// p.takeExit(tParam, getSpeakableExitName(next, exitInfo, !suppressDest)); +// } else { +// p.turn(tParam, getSpeakableStreetName(currentSegment, next, !suppressDest)); +// } } else if (next.getTurnType().isRoundAbout()) { p.roundAbout(next.getTurnType().getTurnAngle(), next.getTurnType().getExitOut(), getSpeakableStreetName(currentSegment, next, !suppressDest)); } else if (next.getTurnType().getValue() == TurnType.TU || next.getTurnType().getValue() == TurnType.TRU) { From 7ec962375b5ed5347f16a53abca45532ae5371b9 Mon Sep 17 00:00:00 2001 From: veliymolfar Date: Mon, 13 Jan 2020 17:26:54 +0200 Subject: [PATCH 16/82] clean --- OsmAnd/src/net/osmand/plus/routing/VoiceRouter.java | 1 - 1 file changed, 1 deletion(-) diff --git a/OsmAnd/src/net/osmand/plus/routing/VoiceRouter.java b/OsmAnd/src/net/osmand/plus/routing/VoiceRouter.java index 2fe3b9aef0..adf28f85e4 100644 --- a/OsmAnd/src/net/osmand/plus/routing/VoiceRouter.java +++ b/OsmAnd/src/net/osmand/plus/routing/VoiceRouter.java @@ -769,7 +769,6 @@ public class VoiceRouter { String tParam = getTurnType(next.getTurnType()); ExitInfo exitInfo = next.getExitInfo(); boolean isplay = true; - String lang = player.getLanguage(); if (tParam != null) { p.turn(tParam, getSpeakableStreetName(currentSegment, next, !suppressDest)); // if (exitInfo != null) { From e0e99057d462bc604f491d6bafaa652e60dc954e Mon Sep 17 00:00:00 2001 From: veliymolfar Date: Mon, 13 Jan 2020 18:26:50 +0200 Subject: [PATCH 17/82] clean --- .../src/net/osmand/plus/views/MultiTouchSupport.java | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/views/MultiTouchSupport.java b/OsmAnd/src/net/osmand/plus/views/MultiTouchSupport.java index 05389ef884..20b9d8f390 100644 --- a/OsmAnd/src/net/osmand/plus/views/MultiTouchSupport.java +++ b/OsmAnd/src/net/osmand/plus/views/MultiTouchSupport.java @@ -91,8 +91,6 @@ public class MultiTouchSupport { private static final int TILT_X_THRESHOLD_PX = 40; private static final int TILT_Y_THRESHOLD_PX = 40; private static final int TILT_DY_THRESHOLD_PX = 40; - private static final float ROTATION_THRESHOLD_DEG = 15.0f; - private boolean isRotating; public boolean onTouchEvent(MotionEvent event){ if(!isMultiTouchSupported()){ @@ -148,13 +146,7 @@ public class MultiTouchSupport { centerPoint = new PointF((x1 + x2) / 2, (y1 + y2) / 2); if (angleDefined) { - float a = MapUtils.unifyRotationTo360(angle - angleStarted); - if (!isRotating && Math.abs(a) > ROTATION_THRESHOLD_DEG) { - isRotating = true; - angleStarted = angle; - } else if (isRotating) { - angleRelative = a; - } + angleRelative = MapUtils.unifyRotationTo360(angle - angleStarted); } zoomRelative = distance / zoomStartedDistance; listener.onZoomingOrRotating(zoomRelative, angleRelative); @@ -182,7 +174,6 @@ public class MultiTouchSupport { angleStarted = angle; angleRelative = 0; zoomRelative = 0; - isRotating = false; inZoomMode = true; } } From 93f28cfe6262058027aee0615247e33aa6daae9b Mon Sep 17 00:00:00 2001 From: MadWasp79 Date: Mon, 13 Jan 2020 18:37:07 +0200 Subject: [PATCH 18/82] fix next turn --- .../net/osmand/plus/render/TextRenderer.java | 2 +- .../osmand/plus/routing/RoutingHelper.java | 12 +++--- .../mapwidgets/MapInfoWidgetsFactory.java | 43 +++++++++++-------- 3 files changed, 32 insertions(+), 25 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/render/TextRenderer.java b/OsmAnd/src/net/osmand/plus/render/TextRenderer.java index 4df7d5db34..5743a40025 100644 --- a/OsmAnd/src/net/osmand/plus/render/TextRenderer.java +++ b/OsmAnd/src/net/osmand/plus/render/TextRenderer.java @@ -317,7 +317,7 @@ public class TextRenderer { float coef = rc.getDensityValue(rc.screenDensityRatio * rc.textScale); Bitmap ico = RenderingIcons.getIcon(context, sr, true); if (ico != null) { - float left = text.centerX - ico.getWidth() / 2 * coef;// - 0.5f; + float left = text.centerX - ico.getWidth() / 2 * coef - 0.5f; float top = text.centerY - ico.getHeight() / 2 * coef - paintText.descent() * 1.5f; if(rc.screenDensityRatio != 1f){ RectF rf = new RectF(left, top, left + ico.getWidth() * coef, diff --git a/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java b/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java index 0cfff0e39f..9ff013d0e6 100644 --- a/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java +++ b/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java @@ -825,21 +825,21 @@ public class RoutingHelper { // return false; // } - public synchronized String getCurrentName(TurnType[] next){ - NextDirectionInfo n = getNextRouteDirectionInfo(new NextDirectionInfo(), true); + public synchronized String getCurrentName(TurnType[] next, NextDirectionInfo n){ Location l = lastFixedLocation; float speed = 0; if(l != null && l.hasSpeed()) { speed = l.getSpeed(); } + if(next != null) { + next[0] = n.directionInfo.getTurnType(); + } if(n.distanceTo > 0 && n.directionInfo != null && !n.directionInfo.getTurnType().isSkipToSpeak() && voiceRouter.isDistanceLess(speed, n.distanceTo, voiceRouter.PREPARE_DISTANCE * 0.75f, 0f)) { String nm = n.directionInfo.getStreetName(); -// String rf = n.directionInfo.getRef(); + String rf = n.directionInfo.getRef(); String dn = n.directionInfo.getDestinationName(); - if(next != null) { - next[0] = n.directionInfo.getTurnType(); - } + return formatStreetName(nm, null, dn, "»"); } RouteSegmentResult rs = getCurrentSegmentResult(); diff --git a/OsmAnd/src/net/osmand/plus/views/mapwidgets/MapInfoWidgetsFactory.java b/OsmAnd/src/net/osmand/plus/views/mapwidgets/MapInfoWidgetsFactory.java index 2752dc3dc3..7f9bac6381 100644 --- a/OsmAnd/src/net/osmand/plus/views/mapwidgets/MapInfoWidgetsFactory.java +++ b/OsmAnd/src/net/osmand/plus/views/mapwidgets/MapInfoWidgetsFactory.java @@ -913,13 +913,13 @@ public class MapInfoWidgetsFactory { public static class TopTextView { private final RoutingHelper routingHelper; private final MapActivity map; - private View topBar; - private TextView addressText; - private TextView addressTextShadow; - private TextView exitRefText; - private ImageView shieldIcon; - private ImageView turnIcon; - private OsmAndLocationProvider locationProvider; + private final View topBar; + private final TextView addressText; + private final TextView addressTextShadow; + private final TextView exitRefText; + private final ImageView shieldIcon; + private final ImageView turnIcon; + private final OsmAndLocationProvider locationProvider; private WaypointHelper waypointHelper; private OsmandSettings settings; private View waypointInfoBar; @@ -927,9 +927,12 @@ public class MapInfoWidgetsFactory { private TurnDrawable turnDrawable; private boolean showMarker; private int shadowRad; + RouteCalculationResult.NextDirectionInfo calc1; + private static final Log LOG = PlatformUtil.getLog(TopTextView.class); public TopTextView(OsmandApplication app, MapActivity map) { + turnDrawable = new NextTurnInfoWidget.TurnDrawable(map, true); topBar = map.findViewById(R.id.map_top_bar); addressText = (TextView) map.findViewById(R.id.map_address_text); addressTextShadow = (TextView) map.findViewById(R.id.map_address_text_shadow); @@ -943,7 +946,7 @@ public class MapInfoWidgetsFactory { settings = app.getSettings(); waypointHelper = app.getWaypointHelper(); updateVisibility(false); - turnDrawable = new NextTurnInfoWidget.TurnDrawable(map, true); + calc1 = new RouteCalculationResult.NextDirectionInfo(); } public boolean updateVisibility(boolean visible) { @@ -979,13 +982,15 @@ public class MapInfoWidgetsFactory { boolean showMarker = this.showMarker; boolean showExitInfo = false; boolean showShield = false; + boolean imminentTurn = false; ExitInfo exitInfo = null; RouteDataObject object = null; if (routingHelper != null && routingHelper.isRouteCalculated() && !routingHelper.isDeviatedFromRoute()) { if (routingHelper.isFollowingMode()) { if (settings.SHOW_STREET_NAME.get()) { - text = routingHelper.getCurrentName(type); + RouteCalculationResult.NextDirectionInfo nextDirInfo = routingHelper.getNextRouteDirectionInfo(calc1, true); + text = routingHelper.getCurrentName(type, nextDirInfo); if (text == null) { text = ""; } else { @@ -995,10 +1000,15 @@ public class MapInfoWidgetsFactory { turnDrawable.setColor(R.color.nav_arrow); } } - RouteCalculationResult.NextDirectionInfo nextDirInfo = routingHelper.getNextRouteDirectionInfo( - new RouteCalculationResult.NextDirectionInfo(), true); + RouteDirectionInfo directionInfo = nextDirInfo.directionInfo; + if (nextDirInfo.imminent >= 0) { + imminentTurn = true; + } else { + imminentTurn = false; + } + if (directionInfo != null && directionInfo.getExitInfo() != null) { exitInfo = directionInfo.getExitInfo(); showExitInfo = true; @@ -1072,19 +1082,15 @@ public class MapInfoWidgetsFactory { AndroidUiHelper.updateVisibility(addressTextShadow, shadowRad > 0); boolean update = turnDrawable.setTurnType(type[0]) || showMarker != this.showMarker; this.showMarker = showMarker; - if (showShield) { - if (setRoadShield(shieldIcon, object)) { - AndroidUiHelper.updateVisibility(shieldIcon, true); - } else { - AndroidUiHelper.updateVisibility(shieldIcon, false); - } + if (showShield && setRoadShield(shieldIcon, object)) { + AndroidUiHelper.updateVisibility(shieldIcon, true); } else { AndroidUiHelper.updateVisibility(shieldIcon, false); } if (showExitInfo) { String exitRef = exitInfo.getRef(); - if (!Algorithms.isEmpty(exitRef)) { + if (!Algorithms.isEmpty(exitRef) && imminentTurn) { exitRefText.setText(exitRef); AndroidUiHelper.updateVisibility(exitRefText, true); } else { @@ -1095,6 +1101,7 @@ public class MapInfoWidgetsFactory { } if (update) { if (type[0] != null) { + turnIcon.invalidateDrawable(turnDrawable); turnIcon.setImageDrawable(turnDrawable); AndroidUiHelper.updateVisibility(turnIcon, true); } else if (showMarker) { From bfa5f15ffab0a6b94f11ee837d143b96d443905c Mon Sep 17 00:00:00 2001 From: Nazar Date: Tue, 14 Jan 2020 10:00:48 +0200 Subject: [PATCH 19/82] Fix text color, padding and CompoundButton color for a few dialogs --- .../layout/close_measurement_tool_dialog.xml | 3 ++ .../layout/dashboard_settings_dialog_item.xml | 1 + .../show_dashboard_on_start_dialog_item.xml | 1 + OsmAnd/res/layout/waypoint_reached.xml | 2 +- .../DashboardSettingsDialogFragment.java | 31 +++++++++++++------ .../MeasurementToolFragment.java | 8 +++++ 6 files changed, 36 insertions(+), 10 deletions(-) diff --git a/OsmAnd/res/layout/close_measurement_tool_dialog.xml b/OsmAnd/res/layout/close_measurement_tool_dialog.xml index 66d2b6fa42..a115022164 100644 --- a/OsmAnd/res/layout/close_measurement_tool_dialog.xml +++ b/OsmAnd/res/layout/close_measurement_tool_dialog.xml @@ -10,6 +10,9 @@ android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" + android:textColor="?android:textColorPrimary" + android:layout_marginLeft="@dimen/content_padding_small" + android:layout_marginStart="@dimen/content_padding_small" android:text="@string/keep_showing_on_map"/> diff --git a/OsmAnd/res/layout/show_dashboard_on_start_dialog_item.xml b/OsmAnd/res/layout/show_dashboard_on_start_dialog_item.xml index fdc43a96db..0c5a467c10 100644 --- a/OsmAnd/res/layout/show_dashboard_on_start_dialog_item.xml +++ b/OsmAnd/res/layout/show_dashboard_on_start_dialog_item.xml @@ -2,6 +2,7 @@ diff --git a/OsmAnd/res/layout/waypoint_reached.xml b/OsmAnd/res/layout/waypoint_reached.xml index 873a1441a8..f9519ca4be 100644 --- a/OsmAnd/res/layout/waypoint_reached.xml +++ b/OsmAnd/res/layout/waypoint_reached.xml @@ -48,7 +48,7 @@ android:layout_gravity="center_vertical" android:ellipsize="end" android:maxLines="2" - android:textColor="?android:textColorSecondary" + android:textColor="?android:textColorPrimary" android:textSize="@dimen/default_list_text_size" tools:text="Some waypoint text"/> diff --git a/OsmAnd/src/net/osmand/plus/dashboard/tools/DashboardSettingsDialogFragment.java b/OsmAnd/src/net/osmand/plus/dashboard/tools/DashboardSettingsDialogFragment.java index 6b052bf38d..38c918dcef 100644 --- a/OsmAnd/src/net/osmand/plus/dashboard/tools/DashboardSettingsDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/dashboard/tools/DashboardSettingsDialogFragment.java @@ -27,6 +27,7 @@ import net.osmand.plus.OsmandPlugin; import net.osmand.plus.OsmandSettings; import net.osmand.plus.OsmandSettings.CommonPreference; import net.osmand.plus.R; +import net.osmand.plus.UiUtilities; import net.osmand.plus.activities.MapActivity; import net.osmand.plus.dashboard.DashboardOnMap; @@ -67,7 +68,7 @@ public class DashboardSettingsDialogFragment extends DialogFragment TypedValue typedValue = new TypedValue(); FragmentActivity activity = requireActivity(); OsmandApplication app = (OsmandApplication) activity.getApplication(); - boolean nightMode = app.getDaynightHelper().isNightModeForMapControls(); + boolean nightMode = isNightMode(); context = new ContextThemeWrapper(activity, !nightMode ? R.style.OsmandLightTheme : R.style.OsmandDarkTheme); Theme theme = context.getTheme(); theme.resolveAttribute(android.R.attr.textColorPrimary, typedValue, true); @@ -132,14 +133,13 @@ public class DashboardSettingsDialogFragment extends DialogFragment subtextView.setText(description); final CompoundButton compoundButton = (CompoundButton) view.findViewById(R.id.toggle_item); compoundButton.setChecked(pref.get()); - textView.setTextColor(pref.get() ? textColorPrimary : textColorSecondary); - compoundButton.setOnCheckedChangeListener( - new CompoundButton.OnCheckedChangeListener() { - @Override - public void onCheckedChanged(CompoundButton compoundButton, boolean b) { - textView.setTextColor(b ? textColorPrimary : textColorSecondary); - } - }); + view.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + compoundButton.setChecked(!compoundButton.isChecked()); + } + }); + UiUtilities.setupCompoundButton(compoundButton, isNightMode(), UiUtilities.CompoundButtonType.GLOBAL); return view; } @@ -244,6 +244,7 @@ public class DashboardSettingsDialogFragment extends DialogFragment } private class DashViewHolder { + final View view; final TextView textView; final CompoundButton compoundButton; final TextView numberOfRowsTextView; @@ -252,6 +253,7 @@ public class DashboardSettingsDialogFragment extends DialogFragment private DashFragmentAdapter dashFragmentAdapter; public DashViewHolder(DashFragmentAdapter dashFragmentAdapter, View view, Context ctx) { + this.view = view; this.dashFragmentAdapter = dashFragmentAdapter; this.numberOfRowsTextView = (TextView) view.findViewById(R.id.numberOfRowsTextView); this.textView = (TextView) view.findViewById(R.id.text); @@ -277,9 +279,16 @@ public class DashboardSettingsDialogFragment extends DialogFragment textColorSecondary); this.position = position; + view.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + compoundButton.setChecked(!compoundButton.isChecked()); + } + }); compoundButton.setChecked(dashFragmentAdapter.isChecked(position)); compoundButton.setTag(this); compoundButton.setOnCheckedChangeListener(dashFragmentAdapter.onTurnedOnOffListener); + UiUtilities.setupCompoundButton(compoundButton, isNightMode(), UiUtilities.CompoundButtonType.GLOBAL); numberOfRowsTextView.setTag(this); numberOfRowsTextView.setOnClickListener(dashFragmentAdapter.onNumberClickListener); @@ -287,4 +296,8 @@ public class DashboardSettingsDialogFragment extends DialogFragment } + + private boolean isNightMode() { + return mapActivity.getMyApplication().getDaynightHelper().isNightModeForMapControls(); + } } diff --git a/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java b/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java index 13fdaa5270..ea909bfb72 100644 --- a/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java +++ b/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java @@ -1512,6 +1512,13 @@ public class MeasurementToolFragment extends BaseOsmAndFragment { final View view = UiUtilities.getInflater(mapActivity, nightMode).inflate(R.layout.close_measurement_tool_dialog, null); final SwitchCompat showOnMapToggle = (SwitchCompat) view.findViewById(R.id.toggle_show_on_map); + view.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + showOnMapToggle.setChecked(!showOnMapToggle.isChecked()); + } + }); + builder.setView(view); builder.setPositiveButton(R.string.shared_string_ok, new DialogInterface.OnClickListener() { @Override @@ -1531,6 +1538,7 @@ public class MeasurementToolFragment extends BaseOsmAndFragment { } } }); + UiUtilities.setupCompoundButton(showOnMapToggle, nightMode, UiUtilities.CompoundButtonType.GLOBAL); } else { builder.setPositiveButton(R.string.shared_string_ok, new DialogInterface.OnClickListener() { @Override From 8e12147196329b6456584b08561d6c580001c60c Mon Sep 17 00:00:00 2001 From: veliymolfar Date: Tue, 14 Jan 2020 11:34:44 +0200 Subject: [PATCH 20/82] saving elevation angle state --- OsmAnd/src/net/osmand/plus/OsmandSettings.java | 9 +++++++++ .../net/osmand/plus/activities/MapActivity.java | 3 ++- .../net/osmand/plus/views/MultiTouchSupport.java | 3 +++ .../net/osmand/plus/views/OsmandMapTileView.java | 15 ++++++++++++++- 4 files changed, 28 insertions(+), 2 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/OsmandSettings.java b/OsmAnd/src/net/osmand/plus/OsmandSettings.java index 4bd2314dfc..2a155dc5af 100644 --- a/OsmAnd/src/net/osmand/plus/OsmandSettings.java +++ b/OsmAnd/src/net/osmand/plus/OsmandSettings.java @@ -2288,6 +2288,7 @@ public class OsmandSettings { public static final String LAST_KNOWN_MAP_LAT = "last_known_map_lat"; //$NON-NLS-1$ public static final String LAST_KNOWN_MAP_LON = "last_known_map_lon"; //$NON-NLS-1$ public static final String LAST_KNOWN_MAP_ZOOM = "last_known_map_zoom"; //$NON-NLS-1$ + public static final String LAST_KNOWN_MAP_ELEVATION = "last_known_map_elevation"; //$NON-NLS-1$ public static final String MAP_LABEL_TO_SHOW = "map_label_to_show"; //$NON-NLS-1$ public static final String MAP_LAT_TO_SHOW = "map_lat_to_show"; //$NON-NLS-1$ @@ -2401,6 +2402,14 @@ public class OsmandSettings { settingsAPI.edit(globalPreferences).putInt(LAST_KNOWN_MAP_ZOOM, zoom).commit(); } + public float getLastKnownMapElevation() { + return settingsAPI.getFloat(globalPreferences, LAST_KNOWN_MAP_ELEVATION, 90); + } + + public void setLastKnownMapElevation(float elevation) { + settingsAPI.edit(globalPreferences).putFloat(LAST_KNOWN_MAP_ELEVATION, elevation).commit(); + } + public final static String POINT_NAVIGATE_LAT = "point_navigate_lat"; //$NON-NLS-1$ public final static String POINT_NAVIGATE_LON = "point_navigate_lon"; //$NON-NLS-1$ public final static String POINT_NAVIGATE_ROUTE = "point_navigate_route_integer"; //$NON-NLS-1$ diff --git a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java index 1f7d9c9cee..b42fac9d50 100644 --- a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java +++ b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java @@ -475,7 +475,7 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven OsmAndMapLayersView ml = (OsmAndMapLayersView) findViewById(R.id.MapLayersView); ml.setVisibility(View.VISIBLE); atlasMapRendererView.setAzimuth(0); - atlasMapRendererView.setElevationAngle(90); + atlasMapRendererView.setElevationAngle(app.getSettings().getLastKnownMapElevation()); NativeCoreContext.getMapRendererContext().setMapRendererView(atlasMapRendererView); ml.setMapView(mapView); mapViewTrackingUtilities.setMapView(mapView); @@ -1497,6 +1497,7 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven } settings.setLastKnownMapZoom(mapView.getZoom()); + settings.setLastKnownMapElevation(mapView.getElevationAngle()); settings.MAP_ACTIVITY_ENABLED.set(false); app.getResourceManager().interruptRendering(); OsmandPlugin.onMapActivityPause(this); diff --git a/OsmAnd/src/net/osmand/plus/views/MultiTouchSupport.java b/OsmAnd/src/net/osmand/plus/views/MultiTouchSupport.java index 20b9d8f390..cf7518028c 100644 --- a/OsmAnd/src/net/osmand/plus/views/MultiTouchSupport.java +++ b/OsmAnd/src/net/osmand/plus/views/MultiTouchSupport.java @@ -38,6 +38,8 @@ public class MultiTouchSupport { public void onActionCancel(); public void onChangingViewAngle(float angle); + + public void onChangeViewAngleStarted(); } private boolean multiTouchAPISupported = false; @@ -165,6 +167,7 @@ public class MultiTouchSupport { && dy1 > TILT_Y_THRESHOLD_PX && dy2 > TILT_Y_THRESHOLD_PX && startDy < TILT_Y_THRESHOLD_PX * 6 && Math.abs(dy2 - dy1) < TILT_DY_THRESHOLD_PX) { + listener.onChangeViewAngleStarted(); inTiltMode = true; } else if (dx1 > TILT_X_THRESHOLD_PX || dx2 > TILT_X_THRESHOLD_PX || Math.abs(dy2 - dy1) > TILT_DY_THRESHOLD_PX diff --git a/OsmAnd/src/net/osmand/plus/views/OsmandMapTileView.java b/OsmAnd/src/net/osmand/plus/views/OsmandMapTileView.java index a267ac8254..1f4f32c4c2 100644 --- a/OsmAnd/src/net/osmand/plus/views/OsmandMapTileView.java +++ b/OsmAnd/src/net/osmand/plus/views/OsmandMapTileView.java @@ -186,6 +186,7 @@ public class OsmandMapTileView implements IMapDownloaderCallback { private long multiTouchStartTime; private long multiTouchEndTime; private boolean wasZoomInMultiTouch; + private float elevationAngle; public OsmandMapTileView(MapActivity activity, int w, int h) { this.activity = activity; @@ -257,6 +258,7 @@ public class OsmandMapTileView implements IMapDownloaderCallback { } } }; + elevationAngle = settings.getLastKnownMapElevation(); } public void setView(View view) { @@ -439,6 +441,10 @@ public class OsmandMapTileView implements IMapDownloaderCallback { return currentViewport.getZoom(); } + public float getElevationAngle() { + return elevationAngle; + } + public double getZoomFractionalPart() { return currentViewport.getZoomFloatPart(); } @@ -1127,6 +1133,7 @@ public class OsmandMapTileView implements IMapDownloaderCallback { private LatLon initialCenterLatLon; private boolean startRotating = false; private static final float ANGLE_THRESHOLD = 30; + private float initialElevation; @Override public void onZoomOrRotationEnded(double relativeToStart, float angleRelative) { @@ -1201,7 +1208,12 @@ public class OsmandMapTileView implements IMapDownloaderCallback { @Override public void onChangingViewAngle(float angle) { - setElevationAngle(angle); + setElevationAngle(initialElevation - angle); + } + + @Override + public void onChangeViewAngleStarted() { + initialElevation = elevationAngle; } @Override @@ -1298,6 +1310,7 @@ public class OsmandMapTileView implements IMapDownloaderCallback { } else if (angle > 90f) { angle = 90f; } + this.elevationAngle = angle; ((MapActivity) activity).setMapElevation(angle); } From 5c5fe577982ca49de9825f1a8e2399191b7d02b4 Mon Sep 17 00:00:00 2001 From: veliymolfar Date: Tue, 14 Jan 2020 12:01:10 +0200 Subject: [PATCH 21/82] USE_OPENGL_RENDER check in tilt --- OsmAnd/src/net/osmand/plus/views/MultiTouchSupport.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/OsmAnd/src/net/osmand/plus/views/MultiTouchSupport.java b/OsmAnd/src/net/osmand/plus/views/MultiTouchSupport.java index cf7518028c..e9ef01937e 100644 --- a/OsmAnd/src/net/osmand/plus/views/MultiTouchSupport.java +++ b/OsmAnd/src/net/osmand/plus/views/MultiTouchSupport.java @@ -5,6 +5,8 @@ import android.graphics.PointF; import android.view.MotionEvent; import net.osmand.PlatformUtil; +import net.osmand.plus.OsmandApplication; +import net.osmand.plus.OsmandSettings; import net.osmand.util.MapUtils; import org.apache.commons.logging.Log; @@ -45,6 +47,7 @@ public class MultiTouchSupport { private boolean multiTouchAPISupported = false; private final MultiTouchZoomListener listener; protected final Context ctx; + private OsmandSettings settings; protected Method getPointerCount; protected Method getX; @@ -71,6 +74,7 @@ public class MultiTouchSupport { } private void initMethods(){ + settings = ((OsmandApplication) ctx.getApplicationContext()).getSettings(); try { getPointerCount = MotionEvent.class.getMethod("getPointerCount"); //$NON-NLS-1$ getPointerId = MotionEvent.class.getMethod("getPointerId", Integer.TYPE); //$NON-NLS-1$ @@ -166,7 +170,8 @@ public class MultiTouchSupport { if (dx1 < TILT_X_THRESHOLD_PX && dx2 < TILT_X_THRESHOLD_PX && dy1 > TILT_Y_THRESHOLD_PX && dy2 > TILT_Y_THRESHOLD_PX && startDy < TILT_Y_THRESHOLD_PX * 6 - && Math.abs(dy2 - dy1) < TILT_DY_THRESHOLD_PX) { + && Math.abs(dy2 - dy1) < TILT_DY_THRESHOLD_PX + && settings.USE_OPENGL_RENDER.get()) { listener.onChangeViewAngleStarted(); inTiltMode = true; } else if (dx1 > TILT_X_THRESHOLD_PX || dx2 > TILT_X_THRESHOLD_PX From 8b12a4488955dbfc2d0716dda0c5ad571d66e353 Mon Sep 17 00:00:00 2001 From: xmd5a Date: Tue, 14 Jan 2020 14:46:45 +0300 Subject: [PATCH 22/82] Add phrase --- OsmAnd/res/values-ru/phrases.xml | 3 +++ OsmAnd/res/values/phrases.xml | 2 ++ 2 files changed, 5 insertions(+) diff --git a/OsmAnd/res/values-ru/phrases.xml b/OsmAnd/res/values-ru/phrases.xml index ed12d660ac..82baef828e 100644 --- a/OsmAnd/res/values-ru/phrases.xml +++ b/OsmAnd/res/values-ru/phrases.xml @@ -3504,6 +3504,7 @@ Трава Полоса движения Дизайн гидранта: wsh +<<<<<<< HEAD Платежные карты Косинто Автогаз @@ -3642,4 +3643,6 @@ Бушеншанк (изысканные австрийские вина) Изысканная кухня Сеть + Парковочное место + \ No newline at end of file diff --git a/OsmAnd/res/values/phrases.xml b/OsmAnd/res/values/phrases.xml index 2c21a5fdb4..43f2573ac4 100644 --- a/OsmAnd/res/values/phrases.xml +++ b/OsmAnd/res/values/phrases.xml @@ -4157,4 +4157,6 @@ Grave + Parking space + From e5abd2888b6a7e37aff323821ec11aab0c34d63b Mon Sep 17 00:00:00 2001 From: veliymolfar Date: Tue, 14 Jan 2020 13:55:26 +0200 Subject: [PATCH 23/82] refactor --- .../osmand/plus/activities/MapActivity.java | 2 +- .../osmand/plus/views/MultiTouchSupport.java | 19 +++++++++++-------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java index b42fac9d50..fcdbcba407 100644 --- a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java +++ b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java @@ -490,7 +490,7 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven } public void setMapElevation(float angle) { - if (settings.USE_OPENGL_RENDER.get() && NativeCoreContext.isInit()) { + if (atlasMapRendererView != null) { atlasMapRendererView.setElevationAngle(angle); } } diff --git a/OsmAnd/src/net/osmand/plus/views/MultiTouchSupport.java b/OsmAnd/src/net/osmand/plus/views/MultiTouchSupport.java index e9ef01937e..ced2348f40 100644 --- a/OsmAnd/src/net/osmand/plus/views/MultiTouchSupport.java +++ b/OsmAnd/src/net/osmand/plus/views/MultiTouchSupport.java @@ -6,7 +6,7 @@ import android.view.MotionEvent; import net.osmand.PlatformUtil; import net.osmand.plus.OsmandApplication; -import net.osmand.plus.OsmandSettings; +import net.osmand.plus.views.corenative.NativeCoreContext; import net.osmand.util.MapUtils; import org.apache.commons.logging.Log; @@ -47,7 +47,6 @@ public class MultiTouchSupport { private boolean multiTouchAPISupported = false; private final MultiTouchZoomListener listener; protected final Context ctx; - private OsmandSettings settings; protected Method getPointerCount; protected Method getX; @@ -73,8 +72,11 @@ public class MultiTouchSupport { return inTiltMode; } + private boolean isTiltSupported() { + return ((OsmandApplication) ctx.getApplicationContext()).getSettings().USE_OPENGL_RENDER.get() && NativeCoreContext.isInit(); + } + private void initMethods(){ - settings = ((OsmandApplication) ctx.getApplicationContext()).getSettings(); try { getPointerCount = MotionEvent.class.getMethod("getPointerCount"); //$NON-NLS-1$ getPointerId = MotionEvent.class.getMethod("getPointerId", Integer.TYPE); //$NON-NLS-1$ @@ -137,6 +139,8 @@ public class MultiTouchSupport { secondFingerStart = new PointF(x2, y2); listener.onGestureInit(x1, y1, x2, y2); listener.onZoomStarted(centerPoint); + zoomStartedDistance = distance; + angleStarted = angle; return true; } else if(actionCode == ACTION_POINTER_UP){ if (inZoomMode || inTiltMode) { @@ -161,7 +165,7 @@ public class MultiTouchSupport { float dy2 = secondFingerStart.y - y2; float viewAngle = dy2 / 8f; listener.onChangingViewAngle(viewAngle); - } else { + } else if (isTiltSupported()) { float dx1 = Math.abs(firstFingerStart.x - x1); float dx2 = Math.abs(secondFingerStart.x - x2); float dy1 = Math.abs(firstFingerStart.y - y1); @@ -170,20 +174,19 @@ public class MultiTouchSupport { if (dx1 < TILT_X_THRESHOLD_PX && dx2 < TILT_X_THRESHOLD_PX && dy1 > TILT_Y_THRESHOLD_PX && dy2 > TILT_Y_THRESHOLD_PX && startDy < TILT_Y_THRESHOLD_PX * 6 - && Math.abs(dy2 - dy1) < TILT_DY_THRESHOLD_PX - && settings.USE_OPENGL_RENDER.get()) { + && Math.abs(dy2 - dy1) < TILT_DY_THRESHOLD_PX) { listener.onChangeViewAngleStarted(); inTiltMode = true; } else if (dx1 > TILT_X_THRESHOLD_PX || dx2 > TILT_X_THRESHOLD_PX || Math.abs(dy2 - dy1) > TILT_DY_THRESHOLD_PX || Math.abs(dy1 - dy2) > TILT_DY_THRESHOLD_PX) { listener.onZoomStarted(centerPoint); - zoomStartedDistance = distance; - angleStarted = angle; angleRelative = 0; zoomRelative = 0; inZoomMode = true; } + } else { + inZoomMode = true; } } } catch (Exception e) { From 249e38a913f6bd7677a43a58dfef1ed33466fcf0 Mon Sep 17 00:00:00 2001 From: max-klaus Date: Tue, 14 Jan 2020 15:46:25 +0300 Subject: [PATCH 24/82] Fix search test --- OsmAnd-java/src/test/resources/search/double_parking.json | 1 + 1 file changed, 1 insertion(+) diff --git a/OsmAnd-java/src/test/resources/search/double_parking.json b/OsmAnd-java/src/test/resources/search/double_parking.json index 0c23cebe3d..46abccb8d1 100644 --- a/OsmAnd-java/src/test/resources/search/double_parking.json +++ b/OsmAnd-java/src/test/resources/search/double_parking.json @@ -17,6 +17,7 @@ "Parking fee: no (Charging station / Transportation)", "Parking fee: yes (Charging station / Transportation)", "Parking lot (Fire hydrant / Emergency infrastructure)", + "Parking space (Personal transport)", "Parking tickets (Vending machine / Store)", "Parking tickets (Vending machine / Store)", "Parking time limit (Parking / Personal transport)", From f6ba9ad6481df7eabf2d1be0dbf83f195f87be74 Mon Sep 17 00:00:00 2001 From: xmd5a Date: Tue, 14 Jan 2020 15:47:36 +0300 Subject: [PATCH 25/82] Add phrase --- OsmAnd/res/values-ru/phrases.xml | 1 + OsmAnd/res/values/phrases.xml | 2 ++ 2 files changed, 3 insertions(+) diff --git a/OsmAnd/res/values-ru/phrases.xml b/OsmAnd/res/values-ru/phrases.xml index 82baef828e..e224e707fb 100644 --- a/OsmAnd/res/values-ru/phrases.xml +++ b/OsmAnd/res/values-ru/phrases.xml @@ -3645,4 +3645,5 @@ Сеть Парковочное место + \ No newline at end of file diff --git a/OsmAnd/res/values/phrases.xml b/OsmAnd/res/values/phrases.xml index 43f2573ac4..349b9b43a4 100644 --- a/OsmAnd/res/values/phrases.xml +++ b/OsmAnd/res/values/phrases.xml @@ -4159,4 +4159,6 @@ Parking space + URL + From b8726913e87fe9a4ad15d554db7b84b9ba5e4b1b Mon Sep 17 00:00:00 2001 From: xmd5a Date: Tue, 14 Jan 2020 15:50:16 +0300 Subject: [PATCH 26/82] Fix --- OsmAnd/res/values-ru/phrases.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/OsmAnd/res/values-ru/phrases.xml b/OsmAnd/res/values-ru/phrases.xml index e224e707fb..c431149358 100644 --- a/OsmAnd/res/values-ru/phrases.xml +++ b/OsmAnd/res/values-ru/phrases.xml @@ -3504,7 +3504,6 @@ Трава Полоса движения Дизайн гидранта: wsh -<<<<<<< HEAD Платежные карты Косинто Автогаз From ed95fc77d6c5394bbdb290163cb92c79bf74bd68 Mon Sep 17 00:00:00 2001 From: veliymolfar Date: Tue, 14 Jan 2020 15:31:32 +0200 Subject: [PATCH 27/82] corrections --- OsmAnd/src/net/osmand/plus/views/MultiTouchSupport.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/views/MultiTouchSupport.java b/OsmAnd/src/net/osmand/plus/views/MultiTouchSupport.java index ced2348f40..e3c8b059f2 100644 --- a/OsmAnd/src/net/osmand/plus/views/MultiTouchSupport.java +++ b/OsmAnd/src/net/osmand/plus/views/MultiTouchSupport.java @@ -143,9 +143,10 @@ public class MultiTouchSupport { angleStarted = angle; return true; } else if(actionCode == ACTION_POINTER_UP){ - if (inZoomMode || inTiltMode) { + if (inZoomMode) { listener.onZoomOrRotationEnded(zoomRelative, angleRelative); inZoomMode = false; + } else if (inTiltMode) { inTiltMode = false; } return true; @@ -165,6 +166,7 @@ public class MultiTouchSupport { float dy2 = secondFingerStart.y - y2; float viewAngle = dy2 / 8f; listener.onChangingViewAngle(viewAngle); + return true; } else if (isTiltSupported()) { float dx1 = Math.abs(firstFingerStart.x - x1); float dx2 = Math.abs(secondFingerStart.x - x2); @@ -180,13 +182,14 @@ public class MultiTouchSupport { } else if (dx1 > TILT_X_THRESHOLD_PX || dx2 > TILT_X_THRESHOLD_PX || Math.abs(dy2 - dy1) > TILT_DY_THRESHOLD_PX || Math.abs(dy1 - dy2) > TILT_DY_THRESHOLD_PX) { - listener.onZoomStarted(centerPoint); angleRelative = 0; zoomRelative = 0; inZoomMode = true; } + return true; } else { inZoomMode = true; + return true; } } } catch (Exception e) { From c39b10c1b978eefe69b8443ab16bbec1ad04031c Mon Sep 17 00:00:00 2001 From: veliymolfar Date: Tue, 14 Jan 2020 17:23:20 +0200 Subject: [PATCH 28/82] corrections --- OsmAnd/src/net/osmand/plus/views/MultiTouchSupport.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/views/MultiTouchSupport.java b/OsmAnd/src/net/osmand/plus/views/MultiTouchSupport.java index e3c8b059f2..3b536b0fca 100644 --- a/OsmAnd/src/net/osmand/plus/views/MultiTouchSupport.java +++ b/OsmAnd/src/net/osmand/plus/views/MultiTouchSupport.java @@ -161,12 +161,10 @@ public class MultiTouchSupport { } zoomRelative = distance / zoomStartedDistance; listener.onZoomingOrRotating(zoomRelative, angleRelative); - return true; } else if (inTiltMode) { float dy2 = secondFingerStart.y - y2; float viewAngle = dy2 / 8f; listener.onChangingViewAngle(viewAngle); - return true; } else if (isTiltSupported()) { float dx1 = Math.abs(firstFingerStart.x - x1); float dx2 = Math.abs(secondFingerStart.x - x2); @@ -186,11 +184,10 @@ public class MultiTouchSupport { zoomRelative = 0; inZoomMode = true; } - return true; } else { inZoomMode = true; - return true; } + return true; } } catch (Exception e) { log.debug("Multi touch exception" , e); //$NON-NLS-1$ From b3400dce5e608b591810bb87fb58a24b605ce702 Mon Sep 17 00:00:00 2001 From: veliymolfar Date: Tue, 14 Jan 2020 17:47:55 +0200 Subject: [PATCH 29/82] corrections --- OsmAnd/src/net/osmand/plus/views/MultiTouchSupport.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/OsmAnd/src/net/osmand/plus/views/MultiTouchSupport.java b/OsmAnd/src/net/osmand/plus/views/MultiTouchSupport.java index 3b536b0fca..1e264e6d5d 100644 --- a/OsmAnd/src/net/osmand/plus/views/MultiTouchSupport.java +++ b/OsmAnd/src/net/osmand/plus/views/MultiTouchSupport.java @@ -111,9 +111,11 @@ public class MultiTouchSupport { } Integer pointCount = (Integer) getPointerCount.invoke(event); if(pointCount < 2){ - if (inZoomMode || inTiltMode) { + if (inZoomMode) { listener.onZoomOrRotationEnded(zoomRelative, angleRelative); inZoomMode = false; + return true; + } else if (inTiltMode) { inTiltMode = false; return true; } From 82883234f3311a9fb03f58b27b0ae4b83dc2cbf4 Mon Sep 17 00:00:00 2001 From: Mr-Update Date: Mon, 13 Jan 2020 17:29:32 +0000 Subject: [PATCH 30/82] Translated using Weblate (German) Currently translated at 100.0% (3101 of 3101 strings) --- OsmAnd/res/values-de/strings.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-de/strings.xml b/OsmAnd/res/values-de/strings.xml index 83dd6438de..009775bea2 100644 --- a/OsmAnd/res/values-de/strings.xml +++ b/OsmAnd/res/values-de/strings.xml @@ -1802,7 +1802,7 @@ Lon %2$s Übersichtsseite oder Menüsteuerung Es besteht die Möglichkeit, die App primär über die flexible Übersichtsseite oder ein statisches Menü zu steuern. Ihre Wahl kann jederzeit in den Übersichtsseiten-Einstellungen geändert werden. Aufruf von der Karte aus - Neu erstellen + Neue Katagorie erstellen Weiter %.1f MB Bitte einen gültigen POI-Typ angeben oder überspringen. @@ -3426,4 +3426,5 @@ Lon %2$s Alle Profil-Einstellungen werden auf den Ausgangszustand nach App-Installation zurückgesetzt. Alle Profil-Einstellungen auf den Standard zurücksetzen\? %1$s: %2$s + %1$s %2$s \ No newline at end of file From 3baaad06def727aeec659f4f52a0d82e6addfa62 Mon Sep 17 00:00:00 2001 From: Yaron Shahrabani Date: Mon, 13 Jan 2020 19:57:51 +0000 Subject: [PATCH 31/82] Translated using Weblate (Hebrew) Currently translated at 99.8% (3096 of 3101 strings) --- OsmAnd/res/values-he/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/OsmAnd/res/values-he/strings.xml b/OsmAnd/res/values-he/strings.xml index 3d0b111958..cfd3ced71e 100644 --- a/OsmAnd/res/values-he/strings.xml +++ b/OsmAnd/res/values-he/strings.xml @@ -3412,4 +3412,5 @@ כל הגדרות הפרופיל יאופסו למצב כמו שלאחר ההתקנה. לאפס את הגדרות הפרופיל לבררת המחדל\? %1$s:‏ %2$s + %1$s %2$s \ No newline at end of file From 0c968a6e3c91e9357c9857b951b6cbea5aed376e Mon Sep 17 00:00:00 2001 From: Mr-Update Date: Mon, 13 Jan 2020 19:30:59 +0000 Subject: [PATCH 32/82] Translated using Weblate (German) Currently translated at 100.0% (3748 of 3748 strings) --- OsmAnd/res/values-de/phrases.xml | 110 +++++++++++++++---------------- 1 file changed, 55 insertions(+), 55 deletions(-) diff --git a/OsmAnd/res/values-de/phrases.xml b/OsmAnd/res/values-de/phrases.xml index 1ec73bd270..5dd440270c 100644 --- a/OsmAnd/res/values-de/phrases.xml +++ b/OsmAnd/res/values-de/phrases.xml @@ -763,7 +763,7 @@ Slowakisches Wiki Polnisches Wiki Niederländisches Wiki - Neu-Norwegisches Wiki + Neu-norwegisches Wiki Norwegisches Wiki Kroatisches Wiki Haitianisches Wiki @@ -773,7 +773,7 @@ Arabisches Wiki Weißrussisches Wiki Bulgarisches Wiki - Cebuanosprachiges Wiki + Cebuano-Wiki Tschechisches Wiki Dänisches Wiki Deutsches Wiki @@ -864,7 +864,7 @@ Nationaler Wanderweg Regionaler Wanderweg Örtlicher Wanderweg - Wanderwegshinweis + Wanderweghinweis Leerungszeiten Betriebszeiten Verlassenes Objekt @@ -933,7 +933,7 @@ Dusche E-Mail Fax - "Facebook " + Facebook Handy nein ja @@ -944,7 +944,7 @@ Zutritt verboten Kundenverkehr frei Lieferverkehr frei - Landwirtschaftl. Verkehr frei + Landwirtschaftlicher Verkehr frei Recyclingzentrum Aluminium Weiße Ware @@ -1030,7 +1030,7 @@ Anfangsdatum ja nein - Eingeschränkt + eingeschränkt Großhandel Inhalt: Silage Inhalt: Wasser @@ -1133,7 +1133,7 @@ Maximalbreite IATA-Code ICAO-Code - FAA Code + FAA-Code Breite Architekt Architektur: Modern @@ -1174,7 +1174,7 @@ Tanz Militär Kinder - Frauen + Damen Sport Männer Orthopädisch @@ -1329,7 +1329,7 @@ ja Nicht überdacht Nicht erlaubt - Nur Außerhalb + Nur außerhalb Erlaubt In einem separaten Raum ja @@ -1357,7 +1357,7 @@ Trittsteine Grüne Wiese Jainismus - schwarzes Brett + Schwarzes Brett Gartenstil: Englisch Gartenstil: Japanisch Kapazität @@ -1374,8 +1374,8 @@ Elternplätze Kabinen-, Gondel-, Sesselkapazität Kapazität pro Stunde - durchschnittliche Fahrzeit, Minuten - mit Überdachung + Durchschnittliche Fahrzeit, Minuten + Mit Überdachung Ohne Überdachung ja Keine Heizung @@ -1387,7 +1387,7 @@ Ein- und Ausgang Sommereingang Sommerausgang - Sommer Ein- und Ausgang + Sommerein- und -ausgang 1 (Tourist) 1S (gehobener Tourist) 2 (Standard) @@ -1397,7 +1397,7 @@ 4 (Erste Klasse) 4S (gehobene Erste Klasse) 5 (Luxus) - 5S (gehobenes De Luxe) + 5S (gehobener Luxus) Sterne: 6 Sterne: 7 Zimmer @@ -1467,7 +1467,7 @@ Pfingstler Kirche von England Episkopalkirche - Schia + Schiitisch Vereinigten Tibetisch Vereinigt Reformiert @@ -1504,11 +1504,11 @@ Stadt Nekropole Erdarbeiten - Megalith-Typ: Menhir - Megalith-Typ: Dolmen + Megalithtyp: Menhir + Megalithtyp: Dolmen Befestigungstyp: Wallburg Befestigungstyp: Limes - Festungsbautyp: Schanze + Befestungstyp: Schanze Befestigungstyp: Ringgraben Pa (befestigte Siedlung der Maori) Historischer Bauernhof @@ -1603,8 +1603,8 @@ Unitarisch Wesleyaner Shingon-shū - Mahayana Buddhisten - Jersey Barriere + Mahayana-Buddhisten + Jersey-Barriere Nadelwald Küche Wegweiser @@ -1620,7 +1620,7 @@ Lkw-Maut ja Ohne Blindenleitsystem - Nur wenn Gehen erlaubt ist + Nur, wenn Gehen erlaubt ist Raststätte Bahnübergang Reiten @@ -1669,7 +1669,7 @@ Routex-Tankkarten nicht akzeptiert Bancomat Bancomat nicht akzeptiert - vorausbezahlte Fahrkarten + Vorausbezahlte Fahrkarten JCB JCB-Karten nicht akzeptiert Eurowag @@ -1693,9 +1693,9 @@ E‑ZPass nicht akzeptiert KITCard KITCard nicht akzeptiert - V PAY + V-Pay V-Pay-Karten nicht akzeptiert - Dogecoin Ɖ + Dogecoin Dogecoin nicht akzeptiert Cibus Cibus-Karten nicht akzeptiert @@ -1705,7 +1705,7 @@ Geldkarte nicht akzeptiert Proton Proton-Karten nicht akzeptiert - Avant Karte + Avantcard Avantcard nicht akzeptiert MEP MEP nicht akzeptiert @@ -1719,7 +1719,7 @@ Monedero 4B nicht akzeptiert Monedero Monedero nicht akzeptiert - BankAxes + BankAxess BankAxess nicht akzeptiert Coinkite Coinkite nicht akzeptiert @@ -1727,8 +1727,8 @@ Roadrunner-Karten nicht akzeptiert SVG SVG nicht akzeptiert - SMS Zahlungen - SMS-Zahlung nicht akzeptiert + SMS-Zahlungen + SMS-Zahlungen nicht akzeptiert OV-Chipkaart OV-Chipkaart nicht akzeptiert Oyster @@ -1751,7 +1751,7 @@ Golden Crown-Karten nicht akzeptiert PRO100 PRO100-Karten nicht akzeptiert - Union Karte + Union-Karte Union-Karte nicht akzeptiert MTS-Money MTS-Money nicht akzeptiert @@ -1762,19 +1762,19 @@ Internetzugang: kostenlos Veranstaltungsort Nur vegetarisch - Vegetarische + Vegetarisch Vegetarisch: nein - vegetarisch (wenige) + Vegetarisch (wenige) Nur vegan Vegan Vegan: nein - Nur glutenfreie - glutenfrei + Nur glutenfrei + Glutenfrei Glutenfrei: nein Nur koscher Koscher Koscher: nein - Nur Halal + Nur halal Halal Halal: nein Nur laktosefrei @@ -1799,7 +1799,7 @@ Rundumservice Flugzeugtankstelle Öffentliches Bad - im Freien + Im Freien Innen Rollstuhlgerechte Toilette: ja Rollstuhlgerechte Toilette: nein @@ -1817,7 +1817,7 @@ Fahrscheine Getränke Süßigkeiten - Paketausgabe und -annahmestelle + Paketausgabe- und -annahmestelle Kondome Briefmarken Essen @@ -1850,7 +1850,7 @@ Stele Büste Koshinto - blaue Plakette + Blaue Plakette Jizo Kreuzförmig Fahrzeug @@ -1905,8 +1905,8 @@ Felsüberhang Sonnenschutz Feldhütte - Unterstand-Typ: Zelt - Unterstand-Typ: verlassen + Unterstandtyp: Zelt + Unterstandtyp: verlassen Tempelturm Baryt Strangmoor @@ -1924,7 +1924,7 @@ Kunstart: Stele Kunstart: Brunnen Architektur: Stalinistischer Neoklassizismus - Architektur: Eklektisch + Architektur: eklektisch Architektur: Neue Sachlichkeit Architektur: Zeitgenössisch Architektur: Konstruktivismus @@ -1932,7 +1932,7 @@ Architektur: Holzrahmen Architektur: Jugendstil Architektur: Neoklassizismus - Architektur: Viktorianisch + Architektur: viktorianisch Architektur: Brutalismus Architektur: Klassizismus Architektur: Gotik @@ -1943,12 +1943,12 @@ Architektur: Romanik Wassertunnel Wasserbrücke - Brückenkonstruktion: Strahl + Brückenkonstruktion: Balken Brückenkonstruktion: einfache Aufhängung Brückenkonstruktion: Aufhängung Brückenkonstruktion: Bogen Brückenkonstruktion: Fachwerk - Brückenkonstruktion: Schwimmend + Brückenkonstruktion: schwimmend Brückenkonstruktion: Buckel Brückenkonstruktion: Schrägseil Brückenkonstruktion: Promenade @@ -1966,7 +1966,7 @@ Beweglicher Brückentyp: Schubbrücke Beleuchtung: ja Beleuchtung: nein - Oberfläche: unbefestigte + Oberfläche: unbefestigt Oberfläche: befestigt Oberfläche: Asphalt Oberfläche: Beton @@ -1990,7 +1990,7 @@ Oberfläche: Salz Oberfläche: Schnee Bus - geteiltes Taxi + Geteiltes Taxi Oberleitungsbus Straßenbahn Zug @@ -2012,7 +2012,7 @@ Fahrradpumpe: nein Fahrradwerkzeuge für Eigenreparatur: nein Werkzeuge für Eigenreparatur - Reinigung + Fahrradreinigung Fahrradreinigung: nein Fahrradkettenwerkzeug Fahrradkettenwerkzeug: nein @@ -2055,7 +2055,7 @@ Beförderungstyp: Pferd Honiggeschäft Technisches Denkmal - Camping-Büro + Campingbüro Modellflugplatz Fremdenführerbüro Mittlerorganisation @@ -2105,7 +2105,7 @@ Burgtyp: Palast Burgtyp: Verteidigung, stattlich Thailändisch - Sexuelle + Sexuell Massagen Therapeutisch Sauna @@ -2237,9 +2237,9 @@ Typ: Steinkreuz Hüttenkreis Petroglyphe - Megalith-Typ: Nuraghe - Megalith-Typ: Steinkreis - Megalith-Typ: Ganggrab + Megalithtyp: Nuraghe + Megalithtyp: Steinkreis + Megalithtyp: Ganggrab Gipfelkreuz: ja Vermittlung: ja Afrikanisches Wiki @@ -2248,7 +2248,7 @@ Bishnupriyaisches Wiki Bretonisches Wiki Walisisches Wiki - Esperantoisches Wiki + Esperanto-Wiki Baskisches Wiki Farsisches Wiki Malayalamisches Wiki @@ -2257,7 +2257,7 @@ Warayisches Wiki Minangkabauisches Wiki Minnanisches Wiki - Malagasisches Wiki + Madagassisches Wiki Tatarisches Wiki Kirgisisches Wiki Tadschikisches Wiki @@ -2270,7 +2270,7 @@ Aragonesisches Wiki Gujaratisches Wiki Palsamoor - IC gespeicherte Fährfahrkarten + IC-gespeicherte Fährfahrkarten IC-gespeicherte Fährfahrkarten nicht akzeptiert Allgemeinmediziner Augenheilkunde @@ -2460,7 +2460,7 @@ Paragleiten: nein Drachenfliegen Drachenfliegen: nein - Strikt + Freeflying starr Freeflying starr: nein Freeflying Ausrichtung: N Freeflying-Platzausrichtung: NO From 6c93dc487898f3d635c2e9a3bb216c78dfc796ab Mon Sep 17 00:00:00 2001 From: Victor Shcherb Date: Tue, 14 Jan 2020 17:16:58 +0100 Subject: [PATCH 33/82] Remove lowercase Fix #7947 --- .../plus/routepreparationmenu/AddPointBottomSheetDialog.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/AddPointBottomSheetDialog.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/AddPointBottomSheetDialog.java index a411d5a128..94b4dfb0df 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/AddPointBottomSheetDialog.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/AddPointBottomSheetDialog.java @@ -319,8 +319,8 @@ public class AddPointBottomSheetDialog extends MenuBottomSheetDialogFragment { final View switchStartAndEndView = View.inflate(new ContextThemeWrapper(getContext(), themeRes), R.layout.bottom_sheet_item_simple_56dp, null); TextView title = (TextView) switchStartAndEndView.findViewById(R.id.title); - String start = getString(R.string.route_start_point).toLowerCase(); - String destination = getString(R.string.route_descr_destination).toLowerCase(); + String start = getString(R.string.route_start_point); + String destination = getString(R.string.route_descr_destination); String titleS = getString(R.string.swap_two_places, start, destination); SpannableString titleSpan = new SpannableString(titleS); int startIndex = titleS.indexOf(start); From f8338f839815e692203d7430c6f1c25b58b50a75 Mon Sep 17 00:00:00 2001 From: Denis Kolomiets Date: Wed, 15 Jan 2020 15:24:54 +0200 Subject: [PATCH 34/82] fix string res to correct one for file size --- OsmAnd/src/net/osmand/plus/download/IndexItem.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/download/IndexItem.java b/OsmAnd/src/net/osmand/plus/download/IndexItem.java index f5f72e3fed..c5c87f88c8 100644 --- a/OsmAnd/src/net/osmand/plus/download/IndexItem.java +++ b/OsmAnd/src/net/osmand/plus/download/IndexItem.java @@ -89,7 +89,7 @@ public class IndexItem implements Comparable { } public String getSizeDescription(Context ctx) { - return ctx.getString(R.string.ltr_or_rtl_combine_via_colon, size, "MB"); + return ctx.getString(R.string.ltr_or_rtl_combine_via_space, size, "MB"); } @@ -247,4 +247,4 @@ public class IndexItem implements Comparable { } -} \ No newline at end of file +} From 7b69ad099449f8ce13ef0997e502d5fca01532c1 Mon Sep 17 00:00:00 2001 From: Zmicer Turok Date: Wed, 15 Jan 2020 08:14:42 +0000 Subject: [PATCH 35/82] Translated using Weblate (Belarusian) Currently translated at 91.9% (2851 of 3101 strings) --- OsmAnd/res/values-be/strings.xml | 181 +++++++++++++++++++------------ 1 file changed, 111 insertions(+), 70 deletions(-) diff --git a/OsmAnd/res/values-be/strings.xml b/OsmAnd/res/values-be/strings.xml index 7dae5c956e..0c58908d88 100644 --- a/OsmAnd/res/values-be/strings.xml +++ b/OsmAnd/res/values-be/strings.xml @@ -567,7 +567,7 @@ Фонавы рэжым OsmAnd працуе ў фоне з адключаным экранам. Не стае вольнага месца для спампоўвання %1$s МБ (вольна: %2$s). - Спампаваць {0} файл(аў)\? Выкарыстоўваецца {1} МБ. (Зараз ё {2} МБ вольнага месца.) + Спампаваць {0} файл(аў)\? Будзе выкарыстана {1} МБ з {2} МБ. Празрыстая тэма Уласныя бібліятэкі не падтрымліваюцца гэтай прыладай. Ініцыалізацыя ўласных бібліятэк… @@ -684,7 +684,7 @@ Абярыце (растравыя) мапы для ўсталёўкі або абнаўлення. Немагчыма выканаць аперацыю без падлучэнне да Інтэрнэту. Усталяваць яшчэ… - Выкарыстоўваць агульныя растравыя мапы да гэтага ўзроўня. + Выкарыстоўваць агульныя растравыя мапы да гэтага ўзроўню. Мінімальны ўзровень набліжэння для вектарных мапаў Не атрымалася выканаць пошук у аўтаномным рэжыме. Пошук па геаграфічнаму становішчу @@ -928,7 +928,7 @@ Улюбёныя месцы адсутнічаюць Замяніць Паказаць маршрут - Пачаць кіраванне + Запуск суправаджэння Спачатку абярыце пункт прызначэння Навігацыя Гадзіны працы @@ -959,7 +959,7 @@ Скончана Выкарыстоўваць Інтэрнэт для разліку маршруту. Выкарыстоўваць сеціўную навігацыю - Задаць налады для OpenStreetMap.org (OSM), неабходныя для ўнёска. + Вызначыць налады для OpenStreetMap.org (OSM), неабходныя для ўнёска. Выбар мовы, абнаўленне даных. Даныя Рэдагаванне OSM @@ -1003,7 +1003,7 @@ Абраць рэгіён са спіса Абраць скрыжаванне Бліжэйшыя паслугі - Кіраванне + Аўтамабіль Язда на ровары Хада У цэнтры @@ -1034,7 +1034,7 @@ Паведамленне Імя аўтара Каментар дададзены - Не атрымалася дадаць каментар + Не атрымалася дадаць каментар. Рэдагаваць POI Стварыць POI Вузел не знойдзены або зручнасць (amenity) складаецца з некалькіх вузлоў, што не падтрымліваецца. @@ -1331,7 +1331,7 @@ Націсніце на любы элемент спіса для прагляду больш падрабязнай інфармацыі, доўга ўтрымлівайце, каб змясціць у архіў ці выдаліць. Дзейныя даныя прылады (%1$s вольна): Ананімны карыстальнік Вы ўвайшлі як %1$s - Ананімнаму карыстальніку недаступныя: + Ананімным карыстальнікам недаступна: \n- Стварэнне групаў; \n- Сінхранізацыя групаў і прылад з серверам; \n- Кіраванне групамі і прыладамі ў асабістым кабінеце. @@ -1525,11 +1525,11 @@ Турыстычная мапа Змяніць назву не атрымалася. д. таму абнаўлялі - Выдадзена + Дата выпуску Улюбёныя Ачысціць гісторыю\? Задайце час затрымкі на экране планавання маршруту. - Пачаць пакрокавае кіраванне праз… + Пачаць пакрокавае суправаджэнне праз… Рушым Сапраўды адправіць %1$d змен у OSM\? Убудова для OsmAnd дае вам доступ да даных аб гарналыжных трасах, маршрутах для бегавых лыж, альпійскіх спусках, фунікулёрах і гарналыжных пад\'ёмніках. Маршруты і спускі пазначаюцца рознымі колерамі ў залежнасці ад іх складанасці і намаляваныя з выкарыстаннем адмысловага «зімовага» стылю мапы, адметнага тым, што выкарыстоўваюцца «снежныя» колеры зімовага пейзажу. @@ -1555,7 +1555,7 @@ \nГэты выгляд можа быць дэактываваны тут, або шляхам змены «Стылю мапы» у раздзеле «Налады мапы». У многіх краінах (Германія, Францыя, Італія ды іншыя) выкарыстанне дэтэктараў камер кантролю хуткасці незаконнае. OsmAnd не нясе ніякай адказнасці, калі вы парушыце закон. Калі ласка, націсніце кнопку «Так», толькі калі вы маеце права выкарыстоўваць гэтую функцыю. Інфармацыя пра A-GPS - Апошнія спампаваныя даныя A-GPS: %1$s + Даныя A-GPS спампаваныя: %1$s Паведамленне Не выкарыстоўваць Адрас @@ -1600,9 +1600,9 @@ Імпартаваць у OsmAnd Прадухіліць аўтаномны запіс Запіс GPX прыпыніцца, калі дадатак будзе забіты (праз надаўнія праграмы). (Апавяшчэнне ў вобласці падказак Android пра фонавы рэжым OsmAnd знікне.) - Служба вызначэння месцазнаходжання не ўключаная. Уключыць яе\? + Служба вызначэння месцазнаходжання выключаная. Уключыць яе\? Даныя Вікіпедыі састарэлі і больш непрыдатныя. Заархіваваць іх\? - Спампаваць дадатковыя даныя Вікіпедыі (%1$s МБ) \? + Спампаваць дадатковыя даныя Вікіпедыі (%1$s МБ)\? Тайская Тэлугу Нарвежская (Нюнашк) @@ -1635,7 +1635,7 @@ Бішнупрыя Наваха Неварская / Непал-бхаса - Каб усе змены ўжыліся, патрэбна ўласнаручна перезапусціць дадатак. + Каб усе змены ўжыліся, патрэбна перезапусціць дадатак. Колер GPX Шырыня GPX Чырвоны @@ -1679,7 +1679,7 @@ Прамінуць Убудовы Пацвердзіць POI - Пазбягаць прыгарадных цягнікоў + Без прыгарадных цягнікоў Пазбягаць выкарыстання прыгарадных цягнікоў Асноўнае Нумар будынка @@ -1758,7 +1758,7 @@ Абярыце, дзе вы хочаце захоўваць мапы і іншыя файлы даных. Падзяліцца месцазнаходжаннем геа: - «Выключана» непасрэдна запускае экран мапы. + \"Выключана\" наўпрост запускае мапу. Імітаваць першы запуск дадатку QR-код Мапа спампаваная @@ -1782,7 +1782,7 @@ Першыя крокі з OsmAnd Дапамажыце палепшыць OsmAnd Першы запуск - Як спампаваць мапы, задаць асноўныя налады. + Як спампаваць мапы, вызначыць асноўныя налады. Налады навігацыі. Планаванне паездкі Частыя пытанні @@ -1815,9 +1815,9 @@ Паўторна адкрыць нататку Закрыць нататку Нататка створаная - Не атрымалася стварыць нататку + Не атрымалася стварыць нататку. Нататка закрытая - Не атрымалася закрыць нататку + Не атрымалася закрыць нататку. Адправіць Стыль адлюстравання дарог Рэдагаваць POI @@ -1856,9 +1856,9 @@ Аўтаабнаўленне Абнавіць зараз OsmAnd не мае дазволу на выкарыстанне карткі памяці - Дадатаа не мае дазволу на выкарыстанне GPS. - Дадатак не мае дазволу на выкарыстанне камеры. - Дадатак не мае дазволу на выкарыстанне мікрафону. + Даць дазвол на доступ да даных GPS. + Даць дазвол на доступ да камеры. + Даць дазвол на доступ да мікрафону. Даступныя мапы Гук Апошняе абнаўленне: %s @@ -1905,8 +1905,8 @@ Дадаць часавы прамежак Элемент выдалены Элементы выдаленыя - Паведаміць - Адлюстроўваць MTB-маршруты + Справаздача па + Паказваць маршруты горных ровараў Ахвяраванні Агульная памяць Пералічыць маршрут @@ -1922,10 +1922,8 @@ Абярыце адзнаку Іншыя адзнакі Адправіць ананімна - Недастаткова памяці! - Патрабуецца {3} МБ часовай і {1} МБ сталай памяці. - Даступна толькі {2} МБ. - Спампаваць {0} файл(аў)? Выкарыстоўваецца {3} МБ часовай і {1} МБ сталай памяці. (Свабодна {2} МБ прасторы.) + Недастаткова памяці! Патрабуецца {3} МБ часовай і {1} МБ сталай памяці. Даступна толькі {2} МБ + Спампаваць {0} файл(аў)\? Выкарыстоўваецца {3} МБ часовай і {1} МБ сталай памяці. (З {2} МБ.) Першая адзнака Другая адзнака Панэль прылад @@ -1970,8 +1968,8 @@ Дадаць усе пункты як адзнакі мапы\? Дадаць да адзнак мапы Калі ласка, дадайце адзнакі праз экран мапы - Пераключана на ўнутраную памяць, бо абраны каталог для захоўвання даных даступны толькі для чытання. Калі ласка, абярыце перазапісвальны каталог. - Неабходна, каб даць вам інфармацыю аб удзеле. + Пераключана на ўнутраную памяць, бо абраны каталог для захоўвання даных даступны толькі для чытання. Калі ласка, абярыце каталог, даступны для запісу. + Неабходна, каб даць вам інфармацыю аб вашым удзеле. Актывуе функцыю адзнак мапы. Пунктаў шляху не знойдзена Прадвызначаны колер @@ -2049,7 +2047,7 @@ Не правяраць новыя версій і зніжкі ад OsmAnd. Не паказваць новыя версіі Прамінуць спампоўванне мапаў - У вас адсутнічаюць мапы. Вы можаце абраць мапу са спіса альбо спампаваць яе пазней праз «Меню - %1$s». + У вас адсутнічаюць мапы. Вы можаце абраць мапу са спіса альбо спампаваць яе пазней праз \"Меню - %1$s\". Абраць іншы рэгіён Пошук мапаў… OsmAnd вызначыць вашае месцазнаходжанне і прапануе спампаваць мапы для гэтага рэгіёна. @@ -2065,7 +2063,7 @@ Знайсці маю пазіцыю Атрымаць за %1$s Атрымаць - Атрымайце неабмежаваную колькасць спампоўванняў мапаў і абнаўленні больш за адзін раз на месяц: штотыдзень, штодзень ці штогадзіну. + Атрымайце неабмежаваную колькасць спампоўванняў мапаў у дадатак да штотыднёвых, штодзённых і нават штогадзінных абнаўленняў. Неабмежаваная колькасць спамоўванняў мапаў, абнаўленняў і ўбудова Wikipedia. Мілі/метры Плата за падпіску спаганяецца штомесяц. Скасаваць яе на Google Play можна у любы момант. @@ -2086,7 +2084,7 @@ Стварыць адвольны фільтр Адвольны пошук Транслітарацыя назваў - Уключыць хуткі запуск запісу + Уключыць хуткі запіс Апавяшчэнні Працягнуць Прыпыніць @@ -2096,9 +2094,9 @@ Даныя адсутнічаюць Дадаць яшчэ… Выгляд - Паказваць апавяшчэнне, якое дазволіць пачаць запіс падарожжа. + Паказваць апавяшчэнне, якое дазволіць запіс падарожжа. Калядныя POI - Паказаць калядныя POI? + Паказваць калядныя POI\? Светла-карычневы Цёмна-карычневы Якасць дарожнага пакрыцця @@ -2109,15 +2107,15 @@ Вы таксама можаце дадаць GPX-файлы ў каталог Збочце на %1$d з’ездзе Запампаваць POI - Пошук горада ці краіны + Горад ці краіна Блізкія артыкулы ў Вікіпедыі Вельмі тонкі Каляровая схема гарызанталяў Мінімальная хуткасць для запісу - Напярэданні калядных і навагодніх святаў, вы можаце абраць для адлюстравання POI, звязаныя з Калядамі: елкі, кірмашы і да т.п. + Напярэданні калядных і навагодніх святаў, вы можаце абраць адлюстраванне POI, звязаныя з Калядамі: елкі, кірмашы і да т.п. Каляровая схема гарызанталяў - Дазволіць аўтамагістралі - Дазволіць аўтамагістралі. + Выкарыстоўваць аўтамагістралі + Дазваляе выкарыстоўваць аўтамагістралі. Сербская (лацінка) Кітайская (Ганконг) Састарэлы пошук @@ -2191,7 +2189,7 @@ Ухіл Дадаць новы каталог Пункт(ы) выдалены. - Вы збіраецеся выдаліць %1$d пунктаў. Вы ўпэўнены\? + Сапраўды хочаце выдаліць %1$d пункт(аў)\? Пункты маршруту, цікавыя пункты, названыя функцыі След Максімальная хуткасць @@ -2203,7 +2201,7 @@ Час закачэння Колер Абраць каталог GPX-файлаў - Файл не можа быць перамешчаны. + Не атрымалася перамясціць файл. Перамясціць Сляды Стыль язды @@ -2274,8 +2272,8 @@ Аўтамаштаб мапы ўкл/выкл Бліжэйшыя гарады Абраць горад - Абраць паштовы індэкс - Дадаць месца прызначэння + Пошук паштовага індэкса + Вызначыць пункт прызначэння Замяніць пункт прызначэння Дадаць прамежкавы пункт Памылка @@ -2284,9 +2282,9 @@ Абярыце вуліцу у %1$s Увядзіце адрас - Увядзіце горад + Увядзіце горад/населены пункт/мясціну Увядзіце паштовы індэкс - Націск на гэтую кнопку ўключыць/выключыць аўтамаштабаванне мапы ў залежнасці ад хуткасці. + Пераключальнік для ўключэння/выключэння аўтамаштабавання мапы ў залежнасці ад хуткасці. Гэтай кнопкай можна зрабіць пункт у цэнтры экрана пунктам прызначэння, а папярэдні пункт прызначэння стане апошнім прамежкавым пунктам. Націск на гэтую кнопку зробіць цэнтр экрана пунктам прызначэння, замяняючы папярэдні пункт прызначэння, калі ён ёсць. Гэтай кнопкай можна зрабіць пункт у цэнтры экрана першым прамежкавым пунктам. @@ -2321,32 +2319,32 @@ \n Большасць краін па ўсім свеце даступныя для спампоўкі! \n Ад Аўганістана да Зімбабвэ, ад Аўстраліі да ЗША. Аргенціна, Бразілія, Канада, Францыя, Германія, Мексіка, Вялікабрытанія, Гіспанія, … \n - Анімаваць маю пазіцыю - Уключае анімацыю маёй пазіцыі на мапе падчас навігацыі. + Анімацыя сваёй пазіцыі + Уключыць анімацыю сваёй пазіцыі на мапе падчас навігацыі. Назва групы Змяніць колер Рэдагаваць назву - Ваш пункт прызначэння знаходзіцца на прыватнай тэрыторыі. Дазволіць доступ да прыватных дарог для гэтай паездкі? + Ваш пункт прызначэння знаходзіцца на прыватнай тэрыторыі. Дазволіць выкарыстанне прыватных дарог для гэтай паездкі\? Перазапусціць пошук Павялічыць радыус пошуку Нічога не знойдзена - Змяніце пошукавы запыт альбо павялічце радыус пошуку. + Змяніць пошукавы запыт альбо павялічыць радыус пошуку. Паказаць/схаваць OSM-нататкі Паказаць OSM-нататкі Схаваць OSM-нататкі - Націск на гэтую кнопку пакажа ці схавае OSM-нататкі на мапе. + Пераключальнік адлюстравання OSM-нататак на мапе. Адсартавана па адлегласці - Пошук улюбёных + Пошук ва ўлюбёных Убудова - Для прагляду контурных ліній на мапе, вам неабходна набыць і ўсталяваць убудову «Contour Lines» + Набудзьце і ўсталюйце ўбудову \"Контурныя лініі\" для адлюстравання градыентаў вертыкальных абласцей. Каляровая схема Дазволіць прыватны доступ Дазволіць доступ на прыватную тэрыторыю. - Каб убачыць зацяненне рэльефу, спампуйце мапу «Hillshade Overlay» гэтага рэгіёна. - Каб убачыць зацяненне рэльефу, вам неабходна набыць і ўсталяваць убудову «Contour Lines» - Схаваць ад узроўня маштабавання - Спампаваць мапу «Contour Line» для выкарыстання ў гэтым рэгіёне. - Паказваць ад узроўня маштабавання + Спампуйце мапу \"Покрыва зацянення рэльефу\" для адлюстравання вертыкальнага зацянення гэтага рэгіёна. + Усталюйце убудову \"Контурныя лініі\" для адлюстравання градыентаў вертыкальных абласцей. + Схаваць ад узроўню маштабавання + Спампуйце мапу \"Контурныя лініі\" для выкарыстання ў гэтым рэгіёне. + Паказваць ад узроўню маштабавання Узровень маштабавання паказу: %1$s Для вялікіх адлегласцяў: калі ласка, дадайце прамежкавыя пункты, калі разлік не завяршыўся цягам 10 хвілін. Лыжня @@ -2371,7 +2369,7 @@ Дазваляе хутка дадаць фотаздымкі ў Mapillary. Вулічныя фота праз сеціва для кожнага. Адкрывайце для сябе месцы, дапамагайце, здымайце свет. Дадаць фотаздымкі - Падзяліцца сваімі вулічнымі краявідамі гэтай мясцовасці праз Mapillary. + Падзяліцца краявідамі гэтай мясцовасці праз Mapillary. Шпацыры, паходы, экскурсіі \n • Мапа паказвае пешаходныя сцежкі \n • Вікіпедыя абранай мовай распавядзе вам шмат чаго цікавага падчас экскурсіі @@ -2392,7 +2390,7 @@ \n • Пошук месцаў па адрасе, тыпу (напрыклад, рэстарацыя, гатэль, запраўка, музей) ці геаграфічных каардынатах \n Сеціўныя фотаздымкі - Фотаздымкі для гэтага месца адсутнічаюць. + Тут няма фотаздымкаў. Вулічныя фотаздымкі для ўсіх. Адкрывайце для сябе месцы, дапамагайце, здымайце свет. GPS-навігацыя \n • Выбар паміж аўтаномным рэжымам (без платы за роўмінг) і сеціўным (хутчэй) @@ -2471,12 +2469,12 @@ Выява Mapillary Дыстанцыя выпраўленая Дазволы - OsmAnd не можа імпартаваць файл. Калі ласка, праверце, ці мае OsmAnd дазвол на чытанне файлаў з гэтага каталога. + Не атрымалася імпартаваць файл. Калі ласка, праверце, ці мае OsmAnd дазвол на чытанне файлаў з гэтага каталога. Радыусная лінейка Няправільнае імя карыстальніка Да Ад - Паглядзець толькі дададзеныя выявы + Паказваць толькі дададзеныя выявы Дата Увядзіце імя карыстальніка "Паглядзець толькі выявы, дададзеныя" @@ -2557,16 +2555,16 @@ Апошнія 7 дзён Сёлета Выдаліць з адзнак мапы - па ўбыванні - па ўзрастанні - Дата дадання + Я-А + А-Я + Дададзена Парадкаваць па: Паказаць лініі накірунку Паказаць стрэлкі на мапе Паказаць пройдзеныя Схаваць пройдзеныя Выкарыстоўваць становішча - Дадаць ваша становішча як пачатковы пункт пры планаванні маршруту. + Дадаць ваша становішча як пункт адпраўлення пры планаванні маршруту. Маё становішча Фініш Планаваць маршрут @@ -2620,7 +2618,7 @@ Дадаць групу Імпартаваць групы з улюбёных ці GPX-пунктаў. Стварыце адзнакі на мапе! - Дакраніцеся месца і потым націсніце кнопку адзнакі. + Дакраніцеся да патрэбнага месца, а потым націсніце кнопку адзнакі. Імпартаваць групы Імпартаваць групы ўлюбёных ці пункты шляху як адзнакі. Адзнакі, пазначаныя як пройдзенныя, з\'явяцца на гэтым экране. @@ -2628,7 +2626,7 @@ Паказвае адну ці дзьве стрэлкі, якія паказваюць накірунак да актыўных адзнак. Абярыце, як адлюстроўваць адлегласць да актыўных адзнак. Вызначце колькасць указальнікаў кірунку: - Вонкавы выгляд на мапе + Выгляд на мапе Абраць след, каб дадаць яго пункты ў адзнакі. Направа Налева @@ -2661,7 +2659,7 @@ Дзеянні Адзнака Змен %1$s, сума %2$s mBTC - OSM-атрымальнікі + Ахвяраванні атрымалі Агулам ахвяраванняў Адчынена з Адчынена да @@ -2796,9 +2794,9 @@ Для марской навігацыі. Асноўныя магчымасці: буі, маякі, рачныя і марскія маршруты і адзнакі, гавані, марскія паслугі, контуры глыбіні. Для катання на лыжах. Асноўныя магчымасці: адмалёўка трас, пад\'ёмнікаў і іншых лыжных аб\'ектаў зручным спосабам. Менш другасных аб\'ектаў. Просты стыль для аўтамабільнай навігацыі. Мяккі начны рэжым, контурныя лініі, кантрастныя дарогі ў аранжавым стылі, зацененыя другасныя аб\'екты мапы. - "Кантрастны стыль, прызначаны ў першую чаргу для шпацыру, паходу і катання на ровары. Добрая чытальнасць пры складаным асвятленні. Асноўныя магчамасці: кантрастныя дарогі і прыродныя аб\'екты, розныя тыпы маршрутаў, контурныя лініі з пашыранымі наладамі, больш падрабязная інфармацыя на адпаведных узроўнях маштабавання, чым у прадвызначаным стылі. Параметр цэласнасці паверхні дазваляе адрозніваць дарогі з рознай якасцю паверхні. Без начнога рэжыму." + Для шпацыру, паходу і катання на ровары. Добрая чытальнасць пры слабым асвятленні. Кантрастныя дарогі і прыродныя аб\'екты, розныя тыпы маршрутаў, контурныя лініі з дадатковымі наладамі, больш падрабязная інфармацыя. Параметр якасці дарожнага пакрыцця дае магчымасць адрозніваць дарогі з розным пакрыццём. Без начнога рэжыму. Стары прадвызначаны стыль Mapnik. Колеры падобныя на Mapnik. - Стыль агульнага прызначэння. Спрошчаная чыстая адмалёўка ў шчыльнанаселеных гарадах. Асноўныя магчымасці: контурныя лініі, якасць паверхні, абмежаванні доступу, дарожныя шчыты, адмалёўка шляхоў па шкале SAC, аб\'екты водных сплаваў. + Стыль агульнага прызначэння. Спрошчанае адлюстраванне шчыльнанаселеных гарадоў. Пазначаюцца контурныя лініі, якасць паверхні, абмежаванні доступу, дарожныя шчыты, візуалізацыя маршрутаў па шкале SAC, аб\'екты спартовых сплаваў. Адкрыць спасылку на Вікіпедыю анлайн Спасылка адкрыецца ў вэб-браўзеры. Атрымайце падпіску на OsmAnd Live, каб чытаць артыкулы Вікіпедыі і Wikivoyage па-за сецівам. @@ -2807,7 +2805,7 @@ Спампаваць усё Закладка Для кіравання па бездарожжы на аснове стылю \"Topo\" з выкарыстаннем зялёных спадарожнікавых здымкаў як падкладкі. Паменшаная таўшчыня асноўных дарог, павялічаная таўшчыня слядоў, сцежак, роварных і іншых трас. - Высокадэталізаваны стыль для турыстычнах мэтаў. Уключае ў сябе ўсе параметры канфігурацыі прадвызначанага стылю і, акрамя таго: паказвае, як мага больш дэталяў, наколькі гэта магчыма, у прыватнасці, усе дарогі, шляхі і іншыя спосабы перамяшчэння. Зразумелае візуальнае адрозненне паміж рознымі тыпамі дарог, якое нагадвае многія турыстычныя атласы. Высокакантрастная каляровая схема для вулічнага выкарыстання з дзённым і начным рэжымам. + Турыстычны стыль з высокімі кантрастам і дэталізацыяй. Уключае ў сябе ўсе параметры канфігурацыі прадвызначанага стылю і, акрамя таго, як мага падрабязней адлюстроўваюцца дарогі, сцежкі і іншыя шляхі перамяшчэння. Зразумелае візуальнае адрозненне паміж рознымі тыпамі дарог, якое нагадвае многія турыстычныя атласы. Пасуе для выкарыстання знадворку ў дзённым і начным рэжымах. Прамежкавы час прыбыцця Прамежкавы час Мадыфікацыя прадвызначанага стылю для павялічэння кантрастнасці пешаходных і роварных дарог. Выкарыстоўвае старыя Mapnik-колеры. @@ -3321,4 +3319,47 @@ %1$s • %2$s Вольна %1$s Гб (з %2$s Гб) Выкарыстоўваецца для разліку прыблізнага часу прыбыцця для невядомага тыпу дарог і абмежавання хуткасці для ўсіх дарог (можа змяніцца маршрут) + Белы + След захаваны + Назва файла пустая + Вярнуцца + Адлюстроўваць сеткі вузлоў роварных маршрутаў + Ачысціць %1$s\? + Дыялог спампоўвання мапы + Дыялогі і апавяшчэнні + Кіраванне выплыўнымі вокнамі, дыялогамі і апавяшчэннямі OsmAnd. + Сеткі вузлоў + Прапанаваныя мапы + Гэтыя мапы неабходна выкарыстоўваць з убудовай + Дададзеныя профілі + Убудова дадае новы профіль у OsmAnd + Выключыць + Дададзена новая ўбудова + Аб’яднаць сегменты + Дадаць новы профіль \"%1$s\"\? + Захоўваць кірунак + Падчас запісу захоўваць кірунак для кожнага пункта маршруту. + %1$s • %2$s + %1$s, %2$s + Асабісты + Спампоўванне %s + Тоўста + Для пустэльняў і іншых малазаселеных абласцей. Паказваецца больш звестак на шкале прагляду. + Абярыце значок навігацыі + Абярыце значок мапы + Пасля націскання кнопкі \"Ужыць\" выдаленыя профілі назаўсёды страцяцца. + Базавы профіль + Абярыце колер + Вы не можаце выдаліць прадвызначаныя профілі OsmAnd, але можаце выключыць іх на папярэднім экране, альбо перамясціць уніз. + Рэдагаваць профілі + Тып навігацыі ўплывае на правілы разліку маршруту. + Выгляд профілю + Абярыце значок, колер і назву + Рэдагаваць спіс профіляў + Абраны профіль + Калі націснеце %1$s, то ўсе змены страцяцца. + Усе налады профілю скінуцца да прадвызначаных значэнняў. + Скінуць усе налады профілю да прадвызначаных значэнняў\? + %1$s %2$s + %1$s: %2$s \ No newline at end of file From d873a96e5a29fcf24c74e2d95bbf9f73285e5fd7 Mon Sep 17 00:00:00 2001 From: Viktar Palsciuk Date: Wed, 15 Jan 2020 12:17:10 +0000 Subject: [PATCH 36/82] Translated using Weblate (Belarusian) Currently translated at 91.9% (2851 of 3101 strings) --- OsmAnd/res/values-be/strings.xml | 48 ++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/OsmAnd/res/values-be/strings.xml b/OsmAnd/res/values-be/strings.xml index 0c58908d88..694da70bf6 100644 --- a/OsmAnd/res/values-be/strings.xml +++ b/OsmAnd/res/values-be/strings.xml @@ -3362,4 +3362,52 @@ Скінуць усе налады профілю да прадвызначаных значэнняў\? %1$s %2$s %1$s: %2$s + Пазбягаць пэўныя маршруты і тыпы дарог + Мотаўсюдыход + Канатная дарога + Злучэнне + Разлічыць + Выкарыстанне OsmAnd + Тайлы + Мапы + %1$s ТБ + %1$s ГБ + %1$s МБ + %1$s кБ + Каталог захоўвання слядоў + Сляды могуць захоўвацца ў каталозе \'rec\', або ў штомесячных, або штодзённых каталогах. + Запісваць сляды ў каталог \'rec\' + Запісваць сляды ў штодзённыя каталогі + Выкарыстана %1$s TБ + Выкарыстана %1$s ГБ + Выкарыстана %1$s МБ + Выкарыстана %1$s КБ + Контурныя лініі і зацяненне рэльефу + Аддаваць перавагу грунтавым дарогам + Аддаваць перавагу грунтавым дарогам. + Абнавіць усе мапы + Вы можаце ўжыць гэту змену да ўсіх профіляў ці толькі да абранага ў дадзены момант. + Агульны + Аддаваць перавагу грунтавым дарогам + Аддаваць перавагу дарогам без пакрыцця. + Праўкі OSM + Пераключальнік, каб адлюстраваць ці схаваць контурныя лініі на карце. + Паказаць контурныя лініі + Схаваць контурныя лініі + Паказаць/схаваць контурныя лініі + Пераключальнік, каб адлюстраваць ці схаваць зацяненне рэльефу на карце. + Паказаць зацяненне рэльефу + Схаваць зацяненне рэльефу + Паказаць/схаваць зацяненне рэльефу + Немагчыма запусціць механізм пераўтварэння тэксту ў гаворку + Экспарт профілю + Профіль OsmAnd: %1$s + Профіль \'%1$s\' ужо існуе. Перазапісаць\? + Не атрымалася экспартаваць профіль. + Імпарт профілю + Каб імпартаваць профіль, выберыце яго файл на прыстасаванні і адкрыйце з дапамогай OsmAnd. + Памылка імпарту %1$s: %2$s + %1$s паспяхова імпартаваны. + Памяняць месцамі %1$s і %2$s + Пачатковы пункт \ No newline at end of file From feef2007b227009edd84056f27e88b80faeb3dc3 Mon Sep 17 00:00:00 2001 From: Adolfo Jayme Barrientos Date: Wed, 15 Jan 2020 00:38:23 +0000 Subject: [PATCH 37/82] Translated using Weblate (Catalan) Currently translated at 90.4% (2804 of 3101 strings) --- OsmAnd/res/values-ca/strings.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/OsmAnd/res/values-ca/strings.xml b/OsmAnd/res/values-ca/strings.xml index 4c22202760..b3e27c3eb5 100644 --- a/OsmAnd/res/values-ca/strings.xml +++ b/OsmAnd/res/values-ca/strings.xml @@ -3308,8 +3308,8 @@ Abasta l\'àrea: %1$s x %2$s %1$s MB %1$s kB Carpeta d\'emmagatzematge de traces - Les traces es poden emmagatzemar a la carpeta \'rec\', a les carpetes mensuals o a les diàries. - Enregistra les traces a la carpeta \'rec\' + Les traces es poden emmagatzemar a la carpeta «rec», a les carpetes mensuals o a les diàries. + Enregistra les traces a la carpeta «rec» Enregistra les traces a les carpetes diàries Enregistra les traces en carpetes segons el dia d\'enregistrament (tipus 2019-01-01). %1$s TB utilitzats @@ -3378,7 +3378,7 @@ Abasta l\'àrea: %1$s x %2$s Tessel·les Exporta el perfil Perfil d\'OsmAnd: %1$s - El perfil \'%1$s\' ja existeix. El voleu sobreescriure\? + El perfil «%1$s» ja existeix. El voleu sobreescriure\? No s\'ha pogut exportar el perfil. Importació del perfil Per a importar un perfil, seleccioneu-ne el fitxer en el dispositiu i obriu-lo amb OsmAnd. From 0800fc8f50cdd4edb273458d08d3d19d0646f1c6 Mon Sep 17 00:00:00 2001 From: Mr-Update Date: Tue, 14 Jan 2020 21:15:34 +0000 Subject: [PATCH 38/82] Translated using Weblate (German) Currently translated at 100.0% (3101 of 3101 strings) --- OsmAnd/res/values-de/strings.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/OsmAnd/res/values-de/strings.xml b/OsmAnd/res/values-de/strings.xml index 009775bea2..b8b8acac8f 100644 --- a/OsmAnd/res/values-de/strings.xml +++ b/OsmAnd/res/values-de/strings.xml @@ -946,8 +946,8 @@ Zwischenziel Endpunkt zu weit von der nächsten Straße entfernt. Zwischenziel %1$s ist zu weit von der nächsten Straße entfernt. - Als letztes Zwischenziel einfügen - Als erstes Zwischenziel einfügen + Als letztes Zwischenziel hinzufügen + Als erstes Zwischenziel hinzufügen Ziel %1$s Ziele Als erstes Zwischenziel hinzufügen @@ -2789,7 +2789,7 @@ Lon %2$s Für den Einsatz im Gelände, basierend auf dem \'Topo\'-Kartenstil und zur Verwendung mit grünen Satellitenbildern als Unterlagekarte. Verringerte Linienstärke für Straßen, erhöhte für Fußwege, Wander-, Rad- und andere Outdoor-Routen. Touring-Stil mit hohem Kontrast und maximalen Details. Enthält alle Optionen des OsmAnd-Standardstils und zeigt dabei so viele Details wie möglich an, insbesondere Straßen, Pfade und andere Verkehrswege. Klare Unterscheidung zwischen den Straßentypen durch den „Touring-Atlas“. Geeignet für den Einsatz bei Tag, Nacht und im Freien. Ankunftszeit Zwischenziel - Reisezeit Zwischenziel + Zwischenankunftszeit Änderung des Standardstils, um den Kontrast von Fußgänger- und Fahrradwegen zu erhöhen. Verwendet alte Mapnik-Farben. GPX-Dateien Holen Sie sich OsmAnd Live, um alle Funktionen freizuschalten: Tägliche Karten-Updates mit unbegrenzten Downloads, alle kostenpflichtigen und kostenlosen Plugins, Wikipedia, Wikivoyage und vieles mehr. From 23c7b106e93575194225e89efffbb529c7ddb8b2 Mon Sep 17 00:00:00 2001 From: Tymofij Lytvynenko Date: Wed, 15 Jan 2020 11:44:19 +0000 Subject: [PATCH 39/82] Translated using Weblate (Ukrainian) Currently translated at 100.0% (3101 of 3101 strings) --- OsmAnd/res/values-uk/strings.xml | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/OsmAnd/res/values-uk/strings.xml b/OsmAnd/res/values-uk/strings.xml index 984cfbd5f9..a243a06cf6 100644 --- a/OsmAnd/res/values-uk/strings.xml +++ b/OsmAnd/res/values-uk/strings.xml @@ -780,8 +780,8 @@ Ви впевнені, що хочете вилучити пункт призначення (і проміжні точки)? Показати Фото %1$s %2$s - Сфотографувати - Сфотографувати + Зробити світлину + Зробити світлину Втулок Dropbox дозволяє вам часоузгодити треки та звуко/відео-примітки з вашим обліковим записом Dropbox. Втулок Dropbox Змінити порядок @@ -797,7 +797,7 @@ Формат відео Використовувати системну програму для запису відео. Використовувати системну програму - Використовувати системну програму для фотографій. + Використовувати системний додаток для світлин. недоступно Стоп Старт @@ -2417,18 +2417,18 @@ \nОтримайте надійний навігатор у вашій країні — будь то Україна, Франція, Німеччина, Мексика, Великобританія, Іспанія, Нідерланди, США, Росія, Бразилія чи будь-яка інша… \n Назва містить занадто багато великих літер. Продовжити? - Додати фотографії + Додати світлини Поділитися своїми вуличними видами цієї місцевості через Mapillary. Віджет Mapillary Дозволяє швидко зробити внесок в Mapillary. Світлини вулиць в мережі для всіх. Відкрийте для себе місця, діліться та знимкуйте весь світ. - Вуличні фотографії для усіх. Відкривайте для себе місця, співпрацюйте, знімкуйте світ. - Мережеві світлинознімки + Вуличні світлини для усіх. Відкривайте для себе місця, співпрацюйте, знімкуйте світ. + Мережеві світлини Тут нема світлин. Відкрити Mapillary Встановити Поліпшити фото-покриття Mapillary - Встановіть Mapillary, щоб додати одну або кілька фотографій до цього місця на мапі. + Встановіть Mapillary, щоб додати одну або кілька світлин до цього місця на мапі. Зображення Mapillary Відстань виправлена Права доступу @@ -2445,7 +2445,7 @@ Введіть ім\'я користувача Переглянути лише зображення додані Ім\'я користувача - Фільтрувати фотографії за подавачем, датою чи типом. Фільтри застосовуються лише для великих масштабів. + Фільтрувати світлини за подавачем, датою чи видом. Фільтри застосовуються лише для великих масштабів. Скинути Зберігати записані треки у помісячних теках Зберігати записані треки в підтеках відповідно місяцю запису (наприклад, 2018-01). @@ -3412,4 +3412,5 @@ Усі налаштування профілю буде скинуто після встановлення. Скинути всі усталені налаштування профілю\? %1$s: %2$s + %1$s %2$s \ No newline at end of file From aab533554520769f1ce4a7610c14a727daf331d9 Mon Sep 17 00:00:00 2001 From: Mirco Zorzo Date: Tue, 14 Jan 2020 16:59:35 +0000 Subject: [PATCH 40/82] Translated using Weblate (Italian) Currently translated at 94.7% (2936 of 3101 strings) --- OsmAnd/res/values-it/strings.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/OsmAnd/res/values-it/strings.xml b/OsmAnd/res/values-it/strings.xml index ff1d2f2dc5..869f4bee80 100644 --- a/OsmAnd/res/values-it/strings.xml +++ b/OsmAnd/res/values-it/strings.xml @@ -3420,4 +3420,6 @@ Rappresenta l\'area: %1$s x %2$s Tutte le impostazioni del profilo saranno reimpostate come da prima installazione. Reimpostare tutte le impostazioni del profilo a quelle preimpostate\? %1$s: %2$s + %1$s %2$s + %1$s: %2$s \ No newline at end of file From d6edd7ece5505b734a86a089111bf51e99f59601 Mon Sep 17 00:00:00 2001 From: ace shadow Date: Tue, 14 Jan 2020 21:42:15 +0000 Subject: [PATCH 41/82] Translated using Weblate (Slovak) Currently translated at 93.3% (2892 of 3101 strings) --- OsmAnd/res/values-sk/strings.xml | 53 +++++++++++++++----------------- 1 file changed, 25 insertions(+), 28 deletions(-) diff --git a/OsmAnd/res/values-sk/strings.xml b/OsmAnd/res/values-sk/strings.xml index ca85e0f879..957a36d5cc 100644 --- a/OsmAnd/res/values-sk/strings.xml +++ b/OsmAnd/res/values-sk/strings.xml @@ -79,7 +79,7 @@ \n \nDlaždicové mapy môžete získať priamo zo zdrojov na Internete, alebo ich môžete pripraviť na použitie offline (skopírovať ručne do dátového priečinka OsmAnd) ako SQLite databázu, ktorú vedia vytvoriť viaceré programy na prípravu máp. Zobrazí nastavenia na zapnutie stopovania a navigácie v pozadí systému pravidelným prebúdzaním GPS zariadenia (pri vypnutej obrazovke). - Tento modul zobrazí funkcie uľahčenia prístupu priamo v OsmAnd. Napr. je možné zmeniť rýchlosť TTS hlasu, použiť trackball na približovanie, alebo automaticky oznamovať polohu hlasom. + Tento modul zobrazí funkcie uľahčenia prístupu priamo v OsmAnd. Napr. je možné zmeniť rýchlosť generovaného hlasu, použiť trackball na približovanie, alebo automaticky oznamovať polohu hlasom. Tento modul zobrazí nastavenia pre funkcie vývoja a ladenia, ako simulácia trasy, zobrazenie výkonu vykresľovania alebo hlasové oznamy. Tieto nastavenia sú určené pre vývojárov a nie sú potrebné pre bežné použitie programu. Zásuvné moduly Zásuvné moduly aktivujú pokročilé nastavenia a dodatočné funkcie. @@ -193,9 +193,7 @@ Globálne nastavenia Globálne nastavenia aplikácie Nie je dostatok voľného miesta pre stiahnutie %1$s MB (voľné: %2$s). - Naozaj stiahnuť {0} súbor(ov)? - V úložisku je potrebných {1} MB. - (Dostupné miesto je {2} MB.) + Stiahnuť {0} súbor(ov)\? Bude použitých {1} MB (z {2} MB). Priehľadná téma Natívna knižnica nie je podporovaná na tomto zariadení. Inicializácia natívnej knižnice… @@ -679,7 +677,7 @@ Správa Meno autora Komentár pridaný - Nepodarilo sa pridať komentár + Nepodarilo sa pridať komentár. Upravenie bodu záujmu (POI) Vytvorenie bodu záujmu (POI) Bod sa nedá nájsť alebo je bod záujmu tvorený viacerými bodmi, s čím zatiaľ nie je možné pracovať. @@ -891,7 +889,7 @@ Proporčná pamäť %4$s MB (Limit Androidu %5$s MB, Dalvik %6$s MB). Meranie vzdialenosti Umiestnenie na spojenie s poznámkou ešte nie je definované. Ak chcete priradiť poznámku k vybranému umiestneniu, použite \"Použiť umiestnenie…\". Zvukové poznámky - Modul Audio/video poznámok poskytuje funkcie na vytváranie obrazových/zvukových/video poznámok počas výletu, buď tlačidlom na obrazovke mapy alebo priamo v kontextovom menu bodu na mape. + Modul Audio/video poznámok poskytuje funkcie na vytváranie obrazových/zvukových/video poznámok počas výletu, buď tlačidlom na mape alebo priamo v kontextovom menu bodu na mape. Audio/video poznámky Tento modul poskytuje vrstevnice a tieňované reliéfy, ktoré môžu byť zobrazené ponad štandardné mapy. Táto funkcia je vhodná pre atlétov, turistov, chodcov a všetkých, ktorých zaujíma reliéf terénu. (Samotné vrstevnice sú samostatnými dátami, ktoré je potrebné stiahnuť po aktivovaní modulu.) \n @@ -1287,9 +1285,9 @@ Proporčná pamäť %4$s MB (Limit Androidu %5$s MB, Dalvik %6$s MB). Zvoľte toleranciu prekročenia povolenej rýchlosti, po ktorej dostanete hlasové oznámenie. Anonymný používateľ Prihlásený ako %1$s - Anonymný používateľ nemôže: -\n- Vytvárať skupiny; -\n- Synchronizovať skupiny a zariadenia so serverom; + Anonymní používatelia nemôžu: +\n- Vytvárať skupiny; +\n- Synchronizovať skupiny a zariadenia so serverom; \n- Spravovať skupiny a zariadenia na osobnej nástenke na webovej stránke. Podrobnosti Doprava @@ -1453,7 +1451,7 @@ Proporčná pamäť %4$s MB (Limit Androidu %5$s MB, Dalvik %6$s MB). Zapamätať voľbu Obnoviť Stiahnuť - Sťahovanie + Sťahovanie… Stiahnuté Chyba čítania/zápisu Neočakávaná chyba @@ -1500,7 +1498,7 @@ Dĺžka %2$s Navštíviť po Navštíviť pred Skryť - Idete odoslať %1$d zmien do OSM. Ste si istí? + Naozaj chcete odoslať %1$d zmien do OSM\? Vymazať históriu? prekročený čas Vo viacerých krajinách (ako Nemecko, Francúzsko, Taliansko) je použitie varovaní pred rýchlostnými radarmi/kamerami zakázané zákonom (nelegálne). OsmAnd nepreberá žiadnu zodpovednosť ak porušíte zákon. Stlačte \"Áno\" len ak ste na to oprávnený použiť túto funkciu. @@ -1512,7 +1510,7 @@ Dĺžka %2$s Zmeny OSM pridané do lokálnej sady zmien Označte pre výmaz Informácie o A-GPS - A-GPS dáta boli naposledy stiahnuté: %1$s + A-GPS dáta boli stiahnuté: %1$s Správa Nepoužívať Adresa @@ -1555,12 +1553,12 @@ Dĺžka %2$s Zobraziť detaily Wikipédia Importovať do OsmAnd - Chystáte sa vymazať %1$d poznámok. Ste si istí? - Služba zisťovania pozície vypnutá. Zapnúť teraz? + Naozaj chcete vymazať %1$d poznámok\? + Služba zisťovania pozície je vypnutá. Zapnúť teraz\? Zakázať samostatné zaznamenávanie Zastaví záznam GPX keď je aplikácia ukončená (cez nedávne aplikácie). (Ikona režimu na pozadí zmizne z notifikačnej oblasti Androidu.) Máte stiahnuté staré nekompatibilné dáta z Wikipédie. Chcete ich archivovať? - Stiahnuť ďalšie dáta z Wikipédie (%1$s MB) ? + Stiahnuť ďalšie dáta z Wikipédie (%1$s MB)\? Španielsky (Argentína) Nórsky Bokmål Volapuk @@ -1609,7 +1607,7 @@ Dĺžka %2$s Modrá Fialová Priehľadná fialová - Manuálne reštartujte aplikáciu pre použitie všetkých zmien. + Pre použitie zmeny je potrebný reštart aplikácie. Predvolená (13) Predvolená (priehľadná azúrová) Priehľadná modrá @@ -1669,7 +1667,7 @@ Dĺžka %2$s Pridať Obľúbený bod Cesty Pridať nový - Zvoľte kategóriu + Vyberte kategóriu Zvoľte jednotku rýchlosti. Jednotka rýchlosti nmi @@ -1775,9 +1773,9 @@ Dĺžka %2$s Znovuotvoriť poznámku Uzavrieť poznámku Poznámka vytvorená - Nepodarilo sa vytvoriť poznámku + Nepodarilo sa vytvoriť poznámku. Poznámka uzavretá - Nepodarilo sa uzavrieť poznámku + Nepodarilo sa uzavrieť poznámku. Odoslať Farba GPX Šírka GPX @@ -1815,9 +1813,9 @@ Dĺžka %2$s OsmAnd nemá oprávnenie použiť pamäťovú kartu Vyberte cesty, ktorým sa chcete navigácii vyhnúť. Zvuk - Aplikácia nemá oprávnenia na prístup k údajom o polohe. - Aplikácia nemá oprávnenia na prístup k fotoaparátu. - Aplikácia nemá oprávnenia na prístup k mikrofónu. + Udeľte oprávnenie na prístup k údajom o polohe. + Udeľte oprávnenia na prístup k fotoaparátu. + Udeľte oprávnenia na prístup k mikrofónu. Zvoľte hlasové pokyny Vyberte alebo stiahnite hlasové pokyny pre váš jazyk. Okamžité aktualizácie @@ -1866,10 +1864,8 @@ Dĺžka %2$s Zobraziť trasy pre horské bicykle Zvoľte mapovú značku Iné značky - Nedostatok miesta! - V úložisku je dočasne je potrebných {3} MB, natrvalo {1} MB. - Dostupné miesto je len {2} MB. - Naozaj stiahnuť {0} súbor(ov)? V úložisku je dočasne je potrebných {3} MB, natrvalo {1} MB. ({2} MB voľného miesta.) + Nedostatok miesta! V úložisku je dočasne je potrebných {3} MB, natrvalo {1} MB. (Dostupných je len {2} MB.) + Naozaj stiahnuť {0} súbor(ov)\? V úložisku je dočasne je potrebných {3} MB, natrvalo {1} MB. (Z {2} MB.) Odošlite OSM poznámku anonymne alebo použite svoj účet na OpenStreetMap.org. Odoslať OSM poznámku Prvá mapová značka @@ -1894,11 +1890,11 @@ Dĺžka %2$s Pozícia medzi editormi OSM Predplatné OsmAnd Live Registrovať - Potrebné pre poskytnutie Vám informácií o príspevkoch. + Potrebné pre informovanie vás o vašich príspevkoch. Verejné meno Nezobrazovať moje meno v prehľadoch Podporovaný región - Mesačná cena + Cena za mesiac Mesačná platba Aktívne Neaktívne @@ -3409,4 +3405,5 @@ Zodpovedá oblasti: %1$s x %2$s Všetky nastavenia profilu budú vrátené do východzieho stavu. Resetovať nastavenia profilu na predvolené hodnoty\? %1$s: %2$s + %1$s %2$s \ No newline at end of file From cc352542118deb08fa565a2b924736db1e80e7cf Mon Sep 17 00:00:00 2001 From: Zmicer Turok Date: Wed, 15 Jan 2020 13:55:14 +0000 Subject: [PATCH 42/82] Translated using Weblate (Belarusian) Currently translated at 91.9% (2851 of 3101 strings) --- OsmAnd/res/values-be/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/values-be/strings.xml b/OsmAnd/res/values-be/strings.xml index 694da70bf6..befa0ba840 100644 --- a/OsmAnd/res/values-be/strings.xml +++ b/OsmAnd/res/values-be/strings.xml @@ -3402,7 +3402,7 @@ Немагчыма запусціць механізм пераўтварэння тэксту ў гаворку Экспарт профілю Профіль OsmAnd: %1$s - Профіль \'%1$s\' ужо існуе. Перазапісаць\? + Профіль \"%1$s\" ужо існуе. Перазапісаць\? Не атрымалася экспартаваць профіль. Імпарт профілю Каб імпартаваць профіль, выберыце яго файл на прыстасаванні і адкрыйце з дапамогай OsmAnd. From 88bdd16274b5f5797c26f77f852f36ea1ed97cab Mon Sep 17 00:00:00 2001 From: Franco Date: Tue, 14 Jan 2020 17:42:18 +0000 Subject: [PATCH 43/82] Translated using Weblate (Spanish (Argentina)) Currently translated at 100.0% (3101 of 3101 strings) --- OsmAnd/res/values-es-rAR/strings.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/OsmAnd/res/values-es-rAR/strings.xml b/OsmAnd/res/values-es-rAR/strings.xml index 45e8048704..c689ca6074 100644 --- a/OsmAnd/res/values-es-rAR/strings.xml +++ b/OsmAnd/res/values-es-rAR/strings.xml @@ -3425,4 +3425,6 @@ Lon %2$s Al pulsar en %1$s, se perderán todos los cambios. Todos los ajustes del perfil serán restablecidos al estado después de la instalación. ¿Restablecer todos los ajustes del perfil a su valor predefinido\? + %1$s %2$s + %1$s: %2$s \ No newline at end of file From af035c68c3f5276935f0aecfe10b5ebd579b3229 Mon Sep 17 00:00:00 2001 From: Eduardo Addad de Oliveira Date: Wed, 15 Jan 2020 03:38:10 +0000 Subject: [PATCH 44/82] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (3101 of 3101 strings) --- OsmAnd/res/values-pt-rBR/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/OsmAnd/res/values-pt-rBR/strings.xml b/OsmAnd/res/values-pt-rBR/strings.xml index d098d5ba9b..71d8868f5d 100644 --- a/OsmAnd/res/values-pt-rBR/strings.xml +++ b/OsmAnd/res/values-pt-rBR/strings.xml @@ -3408,4 +3408,5 @@ Pôr do Sol: %2$s Todas as configurações de perfil serão redefinidas para o estado após a instalação. Redefinir todas as configurações de perfil para o padrão\? %1$s: %2$s + %1$s %2$s \ No newline at end of file From 0f3a5b9d7d30fcd6c845eec320259288f0e11f3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sveinn=20=C3=AD=20Felli?= Date: Tue, 14 Jan 2020 16:14:20 +0000 Subject: [PATCH 45/82] Translated using Weblate (Icelandic) Currently translated at 100.0% (3101 of 3101 strings) --- OsmAnd/res/values-is/strings.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/OsmAnd/res/values-is/strings.xml b/OsmAnd/res/values-is/strings.xml index c0ba6a1a44..ea31d75473 100644 --- a/OsmAnd/res/values-is/strings.xml +++ b/OsmAnd/res/values-is/strings.xml @@ -3430,4 +3430,6 @@ Stendur fyrir svæði: %1$s x %2$s Allar sniðstillingar verða endurstilltar á sína stöðu eftir uppsetningu. Núllstilla allar sniðstillingar\? %1$s: %2$s + %1$s %2$s + %1$s: %2$s \ No newline at end of file From 4187ba52f495f2f5cb4f74dc9eb6aa670f896ac8 Mon Sep 17 00:00:00 2001 From: Mr-Update Date: Tue, 14 Jan 2020 17:33:10 +0000 Subject: [PATCH 46/82] Translated using Weblate (German) Currently translated at 100.0% (3750 of 3750 strings) --- OsmAnd/res/values-de/phrases.xml | 74 ++++++++++++++++---------------- 1 file changed, 38 insertions(+), 36 deletions(-) diff --git a/OsmAnd/res/values-de/phrases.xml b/OsmAnd/res/values-de/phrases.xml index 5dd440270c..276beda205 100644 --- a/OsmAnd/res/values-de/phrases.xml +++ b/OsmAnd/res/values-de/phrases.xml @@ -439,7 +439,7 @@ Mitte-Fahrwasser-Bake Sonderzeichen-Bake Landesteg - Brücke (Seezeichen) + Seezeichen: Brücke Seezeichengebäude Untiefentonne (Kardinal) Ansteuertonne @@ -456,7 +456,7 @@ Hafen Hafenbecken Landmarke - Leuchtfeuer, Seezeichen + Seezeichen: Leuchtfeuer Treibendes Leuchtfeuer Hauptleuchtfeuer Nebenleuchtfeuer @@ -1012,13 +1012,13 @@ Voodoo Katholisch Baptistisch - Römisch-Katholisch + Römisch-katholisch Orthodox Lutherisch Protestantisch Methodistisch - Russisch-Orthodox - Griechisch-Orthodox + Russisch-orthodox + Griechisch-orthodox Reformiert Siebenten-Tags-Adventisten Neuapostolisch @@ -1096,7 +1096,7 @@ Zeitweise Verklemmung Länge - Elektrogeräte-Reparatur + Elektrogerätereparatur Stütze Kriegsdenkmal Statue @@ -1136,7 +1136,7 @@ FAA-Code Breite Architekt - Architektur: Modern + Architektur: modern Straßentunnel Fußgängertunnel Eisenbahntunnel @@ -1277,14 +1277,14 @@ Evangelikal Mormonen Jehovas Zeugen - Griechisch-Katholisch - Bulgarisch-Orthodox + Griechisch-katholisch + Bulgarisch-orthodox Adventisten - Serbisch-Orthodox + Serbisch-orthodox Apostolisch Reformierte - Georgisch-Orthodox - Koptisch-Orthodox + Georgisch-orthodox + Koptisch-orthodox Fahrradständer Vorderradständer Gemischt @@ -1358,8 +1358,8 @@ Grüne Wiese Jainismus Schwarzes Brett - Gartenstil: Englisch - Gartenstil: Japanisch + Gartenstil: englisch + Gartenstil: japanisch Kapazität ja Keine Behindertenplätze @@ -1403,8 +1403,8 @@ Zimmer Münzen Münzen nicht akzeptiert - $0,50 Münzen - 50c, 1€ und 2€ Münzen + Halbdollar-Münzen + 50-Cent-, 1-Euro- und 2-Euro-Münzen Telefonkarten Telefonkarten nicht akzeptiert Kreditkarten @@ -1470,7 +1470,7 @@ Schiitisch Vereinigten Tibetisch - Vereinigt Reformiert + Vereinigt-reformiert Kirche von Schottland Heilsarmee Iglesia ni Cristo @@ -1482,13 +1482,13 @@ Vereinigte Methodisten Altgläubige Spiritist - Armenisch-Apostolisch - Niederländisch-Reformiert - Heiligen der Letzten Tage + Armenisch-apostolisch + Niederländisch-reformiert + Heilige der Letzten Tage Kirche Christi Vereinigte Kirche Christi Wissenschaftler - Rumänisch-Orthodox + Rumänisch-orthodox Typ: Wappen Material: Stahlbeton Material: Beton @@ -1592,14 +1592,14 @@ Moor Marsch Schilf - (Bau)Schutt + Bauschutt Bauland Unitarischer Universalismus Multikonfessionell Scientology Vereinigung Kongregationalistisch - Äthiopisch-Orthodoxe Tewahedo-Kirche + Äthiopisch-orthodoxe Tewahedo-Kirche Unitarisch Wesleyaner Shingon-shū @@ -1643,7 +1643,7 @@ Gartentyp: botanisch Gartenstil: Küchengarten Gartenstil: Rosengarten - Gartenstil: Französisch + Gartenstil: französisch Liebeshotel Elektronische Geldbörsen UTA @@ -1923,10 +1923,10 @@ Kunstart: Graffiti Kunstart: Stele Kunstart: Brunnen - Architektur: Stalinistischer Neoklassizismus + Architektur: stalinistischer Neoklassizismus Architektur: eklektisch Architektur: Neue Sachlichkeit - Architektur: Zeitgenössisch + Architektur: zeitgenössisch Architektur: Konstruktivismus Architektur: Umgebinde Architektur: Holzrahmen @@ -2256,7 +2256,7 @@ Navajoisches Wiki Warayisches Wiki Minangkabauisches Wiki - Minnanisches Wiki + Minnan-Wiki Madagassisches Wiki Tatarisches Wiki Kirgisisches Wiki @@ -2368,7 +2368,7 @@ Futsal Lacrosse Offizieller Name - Seezeichen Deich + Seezeichen: Deich Dalbe Schild: Forstabteilung Schild: Forstparzelle @@ -3222,13 +3222,13 @@ Wasserversorgungsart Wasseraufbereitung Wasserplatzzugang - Lage: Auf dem Dach + Lage: auf dem Dach Sichtbarkeit: Haus Sichtbarkeit: Straße Sichtbarkeit: Bereich Offen Geschlossen - Eingeschränkt + eingeschränkt Beschädigt Wartung benötigt Keine @@ -3320,11 +3320,11 @@ Parkgebühr: nein Parkgebühr Stromstärke - Lage: Oben - Wasserstelle Haltbarkeit: Dauerhaft + Lage: oben + Wasserstelle Haltbarkeit: dauerhaft Wasserstelle Haltbarkeit: Notfall Mehrfamilien - Ladestation Ausgang + Ladestation: Ausgang Kartentyp: Gelände Kartentyp: Straße Kartentyp: Übersicht @@ -3458,13 +3458,13 @@ Autoteile Batterien Klimatisierung - Karosserie-Reparatur + Karosseriereparatur Elektrik Räder Glas Lkw-Reparatur Fahrwerkseinstellung - Getriebe-Reparatur + Getriebereparatur Motor Versicherung Reifen @@ -3520,7 +3520,7 @@ Verpackungsfreie Waren Typ ja - Nur + Nur verpackungsfrei Umspannwerk Verteiler Haushaltsverteilung @@ -3770,4 +3770,6 @@ Geschlecht der Gemeinschaft: männlich Geschlecht der Gemeinschaft: gemischt Grab + Parkplatz + URL \ No newline at end of file From becb678a4452d3fa4ac747f157373b00ed71971b Mon Sep 17 00:00:00 2001 From: Tymofij Lytvynenko Date: Wed, 15 Jan 2020 11:47:58 +0000 Subject: [PATCH 47/82] Translated using Weblate (Ukrainian) Currently translated at 100.0% (3750 of 3750 strings) --- OsmAnd/res/values-uk/phrases.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/OsmAnd/res/values-uk/phrases.xml b/OsmAnd/res/values-uk/phrases.xml index 6115fffed9..ebd033e8c2 100644 --- a/OsmAnd/res/values-uk/phrases.xml +++ b/OsmAnd/res/values-uk/phrases.xml @@ -3755,4 +3755,6 @@ Стать спільноти: чоловіча Стать спільноти: обидві статі Могила + Паркувальне місце + URL \ No newline at end of file From 718b3c8a4661f3d0529a8ac8ec252f5343c1693a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Babos=20G=C3=A1bor?= Date: Wed, 15 Jan 2020 11:54:50 +0000 Subject: [PATCH 48/82] Translated using Weblate (Hungarian) Currently translated at 99.9% (3749 of 3750 strings) --- OsmAnd/res/values-hu/phrases.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/OsmAnd/res/values-hu/phrases.xml b/OsmAnd/res/values-hu/phrases.xml index 6ba3b81c1a..f9f2be0bb1 100644 --- a/OsmAnd/res/values-hu/phrases.xml +++ b/OsmAnd/res/values-hu/phrases.xml @@ -3760,4 +3760,6 @@ Egészségesélelmiszer-bolt Padlólerakó Állatkozmetika + Parkolóhely + URL \ No newline at end of file From 6d5bb08aa013e3292ff95abe0c2b6421ced95e18 Mon Sep 17 00:00:00 2001 From: Franco Date: Tue, 14 Jan 2020 17:48:35 +0000 Subject: [PATCH 49/82] Translated using Weblate (Spanish (Argentina)) Currently translated at 100.0% (3750 of 3750 strings) --- OsmAnd/res/values-es-rAR/phrases.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/OsmAnd/res/values-es-rAR/phrases.xml b/OsmAnd/res/values-es-rAR/phrases.xml index 9410b92805..6c5d35d5f4 100644 --- a/OsmAnd/res/values-es-rAR/phrases.xml +++ b/OsmAnd/res/values-es-rAR/phrases.xml @@ -3774,4 +3774,6 @@ Género de la comunidad: masculino Género de la comunidad: mixto Tumba + Espacio de estacionamiento + URL \ No newline at end of file From b71a8b83d4599eafa928cd0f5bf431de77442fb2 Mon Sep 17 00:00:00 2001 From: Eduardo Addad de Oliveira Date: Wed, 15 Jan 2020 03:41:00 +0000 Subject: [PATCH 50/82] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (3750 of 3750 strings) --- OsmAnd/res/values-pt-rBR/phrases.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/OsmAnd/res/values-pt-rBR/phrases.xml b/OsmAnd/res/values-pt-rBR/phrases.xml index 5bbc8d6f9d..0c0b1e208a 100644 --- a/OsmAnd/res/values-pt-rBR/phrases.xml +++ b/OsmAnd/res/values-pt-rBR/phrases.xml @@ -3767,4 +3767,6 @@ Gênero da comunidade: masculino Gênero da comunidade: ambos Túmulo + Espaço de estacionamento + URL \ No newline at end of file From 2ae0ca6ecfbe74b31f391e7198e2ffa2913a6300 Mon Sep 17 00:00:00 2001 From: Jeff Huang Date: Wed, 15 Jan 2020 03:44:08 +0000 Subject: [PATCH 51/82] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (3750 of 3750 strings) --- OsmAnd/res/values-zh-rTW/phrases.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/OsmAnd/res/values-zh-rTW/phrases.xml b/OsmAnd/res/values-zh-rTW/phrases.xml index ea2e3a0c72..1d783f775b 100644 --- a/OsmAnd/res/values-zh-rTW/phrases.xml +++ b/OsmAnd/res/values-zh-rTW/phrases.xml @@ -3766,4 +3766,6 @@ 社群性別:男 社群性別:混合 墳墓 + 停車位 + URL \ No newline at end of file From c7bc7172ad9afc9ccfc4e78334e2bbe1faee0304 Mon Sep 17 00:00:00 2001 From: Zmicer Turok Date: Wed, 15 Jan 2020 08:16:29 +0000 Subject: [PATCH 52/82] Translated using Weblate (Belarusian) Currently translated at 100.0% (261 of 261 strings) Translation: OsmAnd/Telegram Translate-URL: https://hosted.weblate.org/projects/osmand/telegram/be/ --- OsmAnd-telegram/res/values-be/strings.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/OsmAnd-telegram/res/values-be/strings.xml b/OsmAnd-telegram/res/values-be/strings.xml index aee4fa36e6..50a258549d 100644 --- a/OsmAnd-telegram/res/values-be/strings.xml +++ b/OsmAnd-telegram/res/values-be/strings.xml @@ -260,4 +260,7 @@ Адзінка вымярэння хуткасці Максімальны час захоўвання пунктаў у буферы Час дзеяння буферу + Прапанавана + Статус OsmAnd Tracker + Вярнуцца ў OsmAnd \ No newline at end of file From 7ba966d4c03063fa46d67bb833b825ee4c12e461 Mon Sep 17 00:00:00 2001 From: Victor Shcherb Date: Wed, 15 Jan 2020 15:13:04 +0100 Subject: [PATCH 53/82] Fix NPE --- .../ContributionVersionActivity.java | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/activities/ContributionVersionActivity.java b/OsmAnd/src/net/osmand/plus/activities/ContributionVersionActivity.java index a69782bb7a..6cbdf7641d 100644 --- a/OsmAnd/src/net/osmand/plus/activities/ContributionVersionActivity.java +++ b/OsmAnd/src/net/osmand/plus/activities/ContributionVersionActivity.java @@ -257,20 +257,23 @@ public class ContributionVersionActivity extends OsmandListActivity { OsmAndBuild build = getItem(position); TextView tagView = (TextView) row.findViewById(R.id.download_tag); tagView.setText(build.tag); - - TextView description = (TextView) row.findViewById(R.id.download_descr); - StringBuilder format = new StringBuilder(); - format.append(AndroidUtils.formatDateTime(getMyApplication(), build.date.getTime()))/*.append(" : ").append(build.size).append(" MB")*/; - description.setText(format.toString()); - int color = getResources().getColor(R.color.color_unknown); - if(currentInstalledDate != null){ - if(currentInstalledDate.before(build.date)){ - color = getResources().getColor(R.color.color_update); + + if (build.date != null) { + TextView description = (TextView) row.findViewById(R.id.download_descr); + StringBuilder format = new StringBuilder(); + format.append(AndroidUtils.formatDateTime(getMyApplication(), build.date.getTime()))/*.append(" : ").append(build.size).append(" MB")*/; + description.setText(format.toString()); + int color = getResources().getColor(R.color.color_unknown); + if (currentInstalledDate != null) { + if (currentInstalledDate.before(build.date)) { + color = getResources().getColor(R.color.color_update); + } } + description.setTextColor(color); + tagView.setTextColor(color); } - description.setTextColor(color); - tagView.setTextColor(color); + return row; } From b2508cb189131d8fd26cb66df70e9e1c0e85d342 Mon Sep 17 00:00:00 2001 From: veliymolfar Date: Wed, 15 Jan 2020 18:41:52 +0200 Subject: [PATCH 54/82] voice commands on exits --- .../net/osmand/plus/routing/VoiceRouter.java | 22 +++++++++---------- .../net/osmand/plus/voice/CommandBuilder.java | 8 +++---- .../osmand/plus/voice/JSCommandBuilder.java | 14 ++++++++---- 3 files changed, 24 insertions(+), 20 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/routing/VoiceRouter.java b/OsmAnd/src/net/osmand/plus/routing/VoiceRouter.java index 4f03920350..35839f0d7f 100644 --- a/OsmAnd/src/net/osmand/plus/routing/VoiceRouter.java +++ b/OsmAnd/src/net/osmand/plus/routing/VoiceRouter.java @@ -709,12 +709,11 @@ public class VoiceRouter { boolean isPlay = true; ExitInfo exitInfo = next.getExitInfo(); if (tParam != null) { - p.turn(tParam, dist, getSpeakableStreetName(currentSegment, next, true)); -// if (exitInfo != null) { -// p.takeExit(tParam, dist, getSpeakableExitName(next, exitInfo, true)); -// } else { -// p.turn(tParam, dist, getSpeakableStreetName(currentSegment, next, true)); -// } + if (exitInfo != null) { + p.takeExit(tParam, dist, Integer.parseInt(exitInfo.getRef()), getSpeakableExitName(next, exitInfo, true)); + } else { + p.turn(tParam, dist, getSpeakableStreetName(currentSegment, next, true)); + } suppressDest = true; } else if (next.getTurnType().isRoundAbout()) { p.roundAbout(dist, next.getTurnType().getTurnAngle(), next.getTurnType().getExitOut(), getSpeakableStreetName(currentSegment, next, true)); @@ -783,12 +782,11 @@ public class VoiceRouter { ExitInfo exitInfo = next.getExitInfo(); boolean isplay = true; if (tParam != null) { - p.turn(tParam, getSpeakableStreetName(currentSegment, next, !suppressDest)); -// if (exitInfo != null) { -// p.takeExit(tParam, getSpeakableExitName(next, exitInfo, !suppressDest)); -// } else { -// p.turn(tParam, getSpeakableStreetName(currentSegment, next, !suppressDest)); -// } + if (exitInfo != null) { + p.takeExit(tParam, Integer.parseInt(exitInfo.getRef()), getSpeakableExitName(next, exitInfo, !suppressDest)); + } else { + p.turn(tParam, getSpeakableStreetName(currentSegment, next, !suppressDest)); + } } else if (next.getTurnType().isRoundAbout()) { p.roundAbout(next.getTurnType().getTurnAngle(), next.getTurnType().getExitOut(), getSpeakableStreetName(currentSegment, next, !suppressDest)); } else if (next.getTurnType().getValue() == TurnType.TU || next.getTurnType().getValue() == TurnType.TRU) { diff --git a/OsmAnd/src/net/osmand/plus/voice/CommandBuilder.java b/OsmAnd/src/net/osmand/plus/voice/CommandBuilder.java index 65a28b70e6..98ea123a30 100644 --- a/OsmAnd/src/net/osmand/plus/voice/CommandBuilder.java +++ b/OsmAnd/src/net/osmand/plus/voice/CommandBuilder.java @@ -179,12 +179,12 @@ public class CommandBuilder { return alt(prepareStruct(C_TURN, param, dist, streetName), prepareStruct(C_TURN, param, dist)); } - public CommandBuilder takeExit(String turnType, StreetName streetName) { - return alt(prepareStruct(C_TAKE_EXIT, turnType, streetName), prepareStruct(C_TAKE_EXIT, turnType)); + public CommandBuilder takeExit(String turnType, int exit, StreetName streetName) { + return alt(prepareStruct(C_TAKE_EXIT, turnType, exit, streetName), prepareStruct(C_TAKE_EXIT, turnType,exit)); } - public CommandBuilder takeExit(String turnType, double dist, StreetName streetName) { - return alt(prepareStruct(C_TAKE_EXIT, turnType, dist, streetName), prepareStruct(C_TAKE_EXIT, turnType, dist)); + public CommandBuilder takeExit(String turnType, double dist, int exit, StreetName streetName) { + return alt(prepareStruct(C_TAKE_EXIT, turnType, dist, exit, streetName), prepareStruct(C_TAKE_EXIT, turnType, dist, exit)); } /** diff --git a/OsmAnd/src/net/osmand/plus/voice/JSCommandBuilder.java b/OsmAnd/src/net/osmand/plus/voice/JSCommandBuilder.java index dfdfcea29a..bbc705943a 100644 --- a/OsmAnd/src/net/osmand/plus/voice/JSCommandBuilder.java +++ b/OsmAnd/src/net/osmand/plus/voice/JSCommandBuilder.java @@ -65,6 +65,10 @@ public class JSCommandBuilder extends CommandBuilder { return this; } + private boolean isCommandExist(String name) { + return jsScope.get(name) instanceof Function; + } + public JSCommandBuilder goAhead(){ return goAhead(-1, new StreetName()); } @@ -115,12 +119,14 @@ public class JSCommandBuilder extends CommandBuilder { return addCommand(C_TURN, param, dist, convertStreetName(streetName)); } - public JSCommandBuilder takeExit(String turnType, StreetName streetName) { - return takeExit(turnType, -1, streetName); + public JSCommandBuilder takeExit(String turnType, int exit, StreetName streetName) { + return takeExit(turnType, -1, exit, streetName); } - public JSCommandBuilder takeExit(String turnType, double dist, StreetName streetName) { - return addCommand(C_TAKE_EXIT, turnType, dist, convertStreetName(streetName)); + public JSCommandBuilder takeExit(String turnType, double dist, int exit, StreetName streetName) { + return isCommandExist(C_TAKE_EXIT) ? + addCommand(C_TAKE_EXIT, turnType, dist, exit, convertStreetName(streetName)) : + addCommand(C_TURN, turnType, dist, convertStreetName(streetName)); } /** From 576658116bb48aef85674e89007872cf10dfd47d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Thu, 16 Jan 2020 00:51:51 +0000 Subject: [PATCH 55/82] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegian?= =?UTF-8?q?=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 95.0% (248 of 261 strings) Translation: OsmAnd/Telegram Translate-URL: https://hosted.weblate.org/projects/osmand/telegram/nb_NO/ --- OsmAnd-telegram/res/values-nb/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/OsmAnd-telegram/res/values-nb/strings.xml b/OsmAnd-telegram/res/values-nb/strings.xml index 349645f23f..ff146c7c2d 100644 --- a/OsmAnd-telegram/res/values-nb/strings.xml +++ b/OsmAnd-telegram/res/values-nb/strings.xml @@ -262,4 +262,5 @@ Utløpstid for mellomlager Foreslått OsmAnd-sporerstatus + Tilbake til OsmAnd \ No newline at end of file From 7c3dc7f7854a25951b4d23551b9777db924e6e37 Mon Sep 17 00:00:00 2001 From: Deleted User Date: Thu, 16 Jan 2020 01:24:31 +0000 Subject: [PATCH 56/82] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegian?= =?UTF-8?q?=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 95.0% (248 of 261 strings) Translation: OsmAnd/Telegram Translate-URL: https://hosted.weblate.org/projects/osmand/telegram/nb_NO/ --- OsmAnd-telegram/res/values-nb/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd-telegram/res/values-nb/strings.xml b/OsmAnd-telegram/res/values-nb/strings.xml index ff146c7c2d..e65de85381 100644 --- a/OsmAnd-telegram/res/values-nb/strings.xml +++ b/OsmAnd-telegram/res/values-nb/strings.xml @@ -237,7 +237,7 @@ Personvern Velg Minste loggingsavstand - Filter: Minimumsdistanse til neste loggingspunkt + Filter: minimum avstand for å logge et nytt punkt Minimumsnøyaktighet for logging Filter: Ingen logging med mindre nøyaktigheten nås Minimumshastighet ved logging From 69b9a74a47ac5f525eff6845f5c38479207f2ca4 Mon Sep 17 00:00:00 2001 From: Adolfo Jayme Barrientos Date: Thu, 16 Jan 2020 00:29:54 +0000 Subject: [PATCH 57/82] Translated using Weblate (Catalan) Currently translated at 90.6% (2808 of 3101 strings) --- OsmAnd/res/values-ca/strings.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/OsmAnd/res/values-ca/strings.xml b/OsmAnd/res/values-ca/strings.xml index b3e27c3eb5..3583a48f35 100644 --- a/OsmAnd/res/values-ca/strings.xml +++ b/OsmAnd/res/values-ca/strings.xml @@ -3427,4 +3427,8 @@ Abasta l\'àrea: %1$s x %2$s Edita la llista de perfils Perfil seleccionat Un botó per establir el punt central de la pantalla com el punt de sortida i calcular la ruta vers la destinació o obrir una petició per seleccionar-la si no hi ha un marcador de destinació al mapa. + Memòria intermèdia del Logcat + En fer clic a %1$s perdreu tots els vostres canvis. + La configuració de tot el perfil es reinicialitzarà a l\'estat postinstalació. + Voleu reinicialitzar totes les configuracions del perfil als valors per defecte\? \ No newline at end of file From 363b3e1da8365eca1bbc11307ad9b7f790c53d8c Mon Sep 17 00:00:00 2001 From: ssantos Date: Wed, 15 Jan 2020 20:22:25 +0000 Subject: [PATCH 58/82] Translated using Weblate (Portuguese) Currently translated at 90.6% (2810 of 3101 strings) --- OsmAnd/res/values-pt/strings.xml | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/OsmAnd/res/values-pt/strings.xml b/OsmAnd/res/values-pt/strings.xml index 1ec41048bf..6fed020d9a 100644 --- a/OsmAnd/res/values-pt/strings.xml +++ b/OsmAnd/res/values-pt/strings.xml @@ -2208,7 +2208,7 @@ Para esquiar. Contém pistas de esqui, elevadores, pistas de cross country, etc. Escurece objetos de mapa secundários. Estilo simples e contrastante para a navegação do carro. É suave para os olhos no modo noturno. Características principais: curvas de nível, estradas contrastantes de estilo laranja, menos objetos secundários do mapa para evitar distrações. Para caminhadas, trekking e ciclismo de natureza. Legível ao ar livre. Estradas e objetos naturais contrastantes, diferentes tipos de rotas, opções avançadas de linha de contorno, detalhes extras. O ajuste da integridade da superfície distingue a qualidade da estrada. Sem modo noturno. - Velho estilo de renderização padrão \'Mapnik\'. Características principais: as cores são semelhantes ao estilo \'Mapnik\'. + O velho estilo padrão \'Mapnik\'. Cores como \'Mapnik\'. Estilo de alto detalhe para turismo. Inclui todas as opções de configuração de estilo padrão e além disso: mostra o máximo de detalhes possível, em particular todas as estradas, caminhos e outras formas de viajar. Distinção visual clara entre todos os tipos de estradas diferentes, reminiscente de muitos mapas de turismo. Esquema de cores de alto contraste para uso ao ar livre, modo diurno e noturno. Estilo de propósito geral. Renderização simplificada e limpa em cidades densamente povoadas. Características principais: linhas de contorno, rotas, qualidade de superfície, restrições de acesso, escudos rodoviários, caminhos de renderização de acordo com a escala SAC, características desportivas Whitewater. Abrir página da Wikipédia na Internet @@ -2233,14 +2233,14 @@ Descarregar ficheiro O mundo livre guia de viagem, que qualquer pessoa pode editar. Os guias de viagem estão atualmente baseados no Wikivoyage. Teste todos os recursos gratuitamente durante o teste aberto beta. Posteriormente os guias de viagem estarão disponíveis para assinantes do OsmAnd Unlimited e proprietários da OsmAnd+. - Pode e deve editar qualquer artigo no Wikivoyage. Partilhe saber, experiência, talento e a sua atenção + Pode e deve editar qualquer artigo no Wikivoyage. Partilhe saber, experiência, talento e a sua atenção. Começar a editar Obter acesso ilimitado Bem-vindo ao beta aberto Guias de viagem Guias para os lugares mais interessantes do mundo dentro do OsmAnd, sem uma conexão com a Internet. - Atualizações de mapa: a cada mês - Atualizações de mapa: a cada hora + Atualizações de mapa mensais + Atualizações de mapa a cada hora Compra na aplicação Pagamento de uma só vez Uma vez comprado, estará sempre disponível para si. @@ -2252,7 +2252,7 @@ Desbloquear todas as características de OsmAnd Escolher plano Compre uma das opções seguintes para receber a funcionalidade da guia de viagem offline: - Escolha o artigo adequado: + Escolha o artigo adequado Não Fazer Apenas em Wi-Fi @@ -2269,7 +2269,7 @@ Guias de viagem Wikivoyage Artigo removido - Pesquisa: país, cidade, província + Pesquisar por país, cidade ou província Ler Artigos marcados Explorar @@ -2284,8 +2284,8 @@ Limpar todos os pontos intermediários Grupo eliminado Whitewater esportes - Distância: primeiro o mais distante - Distância: primeiro o mais próximo + Primeiro o mais distante + Primeiro o mais próximo Digite a longitude Digite a latitude Digite a latitude e a longitude @@ -2304,7 +2304,7 @@ Digite o nome do ficheiro. Erro de importação de mapa Mapa importado - Faça este o ponto de partida + Fazer este o ponto de partida Atual Adiciona paragem intermédia Adiciona paragem inicial @@ -2315,8 +2315,8 @@ OSC - adequado para exportar para o OpenStreetMap. Ficheiro GPX Ficheiro OSC - Escolha o tipo de ficheiro - Selecione o tipo de exportação: notas do OSM, POI ou ambos. + Selecione o tipo de ficheiro + Selecione o tipo de exportação: notas do OSM, POIs ou ambos. Todos os dados Notas do OSM Abre amanhã às @@ -2348,11 +2348,11 @@ \n• Assinatura OsmAnd Live agora suporta todas as funcionalidades do OsmAnd \n \n - Modificar a consulta de pesquisa. + Modifique a sua pesquisa. Ações Marcador Criar ou modificar objetos OSM - Criar ou modifiquar POI OSM, abrir ou comentar notas do OSM e contribuir com ficheiros gravados GPX. + Criar ou modificar POIs do OSM, abrir ou comentar notas do OSM e contribuir com ficheiros gravados de GPX. Eliminado Editado Adicionado @@ -3436,4 +3436,6 @@ Ao clicar em %1$s perderá todas as suas alterações. Todas as configurações de perfil serão redefinidas para o estado após a instalação. Redefinir todas as configurações de perfil para o padrão\? + %1$s %2$s + %1$s: %2$s \ No newline at end of file From e00c61a1b85302f4c18914442e5410400d85c88f Mon Sep 17 00:00:00 2001 From: Mr-Update Date: Wed, 15 Jan 2020 19:05:54 +0000 Subject: [PATCH 59/82] Translated using Weblate (German) Currently translated at 100.0% (3101 of 3101 strings) --- OsmAnd/res/values-de/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/values-de/strings.xml b/OsmAnd/res/values-de/strings.xml index b8b8acac8f..83c953df78 100644 --- a/OsmAnd/res/values-de/strings.xml +++ b/OsmAnd/res/values-de/strings.xml @@ -709,7 +709,7 @@ Zielführung starten Nutzerprofil: Bitte zuerst ein Ziel festlegen - Wegbeschreibung + Navigation Öffnungszeiten Änderungssatz öffnen… Änderungssatz schließen… From 253af3c8478e9895e8b0b185f56703324d6827c6 Mon Sep 17 00:00:00 2001 From: Zmicer Turok Date: Wed, 15 Jan 2020 13:56:04 +0000 Subject: [PATCH 60/82] Translated using Weblate (Belarusian) Currently translated at 93.0% (2883 of 3101 strings) --- OsmAnd/res/values-be/strings.xml | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/OsmAnd/res/values-be/strings.xml b/OsmAnd/res/values-be/strings.xml index befa0ba840..a041436db6 100644 --- a/OsmAnd/res/values-be/strings.xml +++ b/OsmAnd/res/values-be/strings.xml @@ -3375,7 +3375,7 @@ %1$s МБ %1$s кБ Каталог захоўвання слядоў - Сляды могуць захоўвацца ў каталозе \'rec\', або ў штомесячных, або штодзённых каталогах. + Сляды могуць захоўвацца ў каталозе \'rec\', або ў штомесячных ці штодзённых каталогах. Запісваць сляды ў каталог \'rec\' Запісваць сляды ў штодзённыя каталогі Выкарыстана %1$s TБ @@ -3386,16 +3386,16 @@ Аддаваць перавагу грунтавым дарогам Аддаваць перавагу грунтавым дарогам. Абнавіць усе мапы - Вы можаце ўжыць гэту змену да ўсіх профіляў ці толькі да абранага ў дадзены момант. + Вы можаце ўжыць гэтыя змены да ўсіх профіляў ці толькі да абранага. Агульны Аддаваць перавагу грунтавым дарогам Аддаваць перавагу дарогам без пакрыцця. - Праўкі OSM - Пераключальнік, каб адлюстраваць ці схаваць контурныя лініі на карце. + Змены OSM + Пераключальнік для адлюстравання/хавання контурных ліній на мапе. Паказаць контурныя лініі Схаваць контурныя лініі Паказаць/схаваць контурныя лініі - Пераключальнік, каб адлюстраваць ці схаваць зацяненне рэльефу на карце. + Пераключальнік для адлюстравання/хавання зацянення рэльефу на мапе. Паказаць зацяненне рэльефу Схаваць зацяненне рэльефу Паказаць/схаваць зацяненне рэльефу @@ -3405,9 +3405,14 @@ Профіль \"%1$s\" ужо існуе. Перазапісаць\? Не атрымалася экспартаваць профіль. Імпарт профілю - Каб імпартаваць профіль, выберыце яго файл на прыстасаванні і адкрыйце з дапамогай OsmAnd. + Каб імпартаваць профіль, абярыце яго файл на прыладзе і адкрыйце з дапамогай OsmAnd. Памылка імпарту %1$s: %2$s %1$s паспяхова імпартаваны. Памяняць месцамі %1$s і %2$s Пачатковы пункт + Уставіць шлях да каталога з данымі OsmAnd + Змяніць каталог даных OsmAnd\? + Перамясціць у новы пункт прызначэння + Запісваць сляды кожны дзень у новы падкаталог (напрыклад, 2018-01-01). + Сапраўды хочаце абнавіць усе мапы (%1$d)\? \ No newline at end of file From d1dd82d0672f0eb7d13966228fc8c2df213ce368 Mon Sep 17 00:00:00 2001 From: Viktar Palsciuk Date: Wed, 15 Jan 2020 19:23:22 +0000 Subject: [PATCH 61/82] Translated using Weblate (Belarusian) Currently translated at 93.0% (2883 of 3101 strings) --- OsmAnd/res/values-be/strings.xml | 44 ++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/OsmAnd/res/values-be/strings.xml b/OsmAnd/res/values-be/strings.xml index a041436db6..32e303aff6 100644 --- a/OsmAnd/res/values-be/strings.xml +++ b/OsmAnd/res/values-be/strings.xml @@ -3415,4 +3415,48 @@ Перамясціць у новы пункт прызначэння Запісваць сляды кожны дзень у новы падкаталог (напрыклад, 2018-01-01). Сапраўды хочаце абнавіць усе мапы (%1$d)\? + Стварыце свой профіль на аснове аднаго з базавых профіляў - гэта будзе вызначаць асноўныя параметры, такія як віджэты, адзінкі хуткасці і адлегласці. Гэта тыповыя профілі дадатку, якія разам з прыкладамі карыстацкіх профіляў могуць быць пашыраныя да: + Маршруты, падрыхтаваныя толькі для класічнага стылю без канькабежных трас. Сюды ўваходзяць маршруты, падрыхтаваныя невялікім снегаходам з больш свабоднай лыжнёй і трасамі, падрыхтаваныя ўручную лыжнікамі. + Сцягнуць падрабязную мапу %s, каб прагледзець гэтую вобласць. + Унутранае сховішча, схаванае ад карыстальніка і іншых дадаткаў, даступнае выключна для OsmAnd + Змена каталога захавання даных + Ландшафтны парк + Самаходныя і несамаходныя сані (запрэжкі) + Толькі самаходныя сані + Паход + Злучэнне + Скітур + Спуск + Скандынаўскі + Тып гарналыжнай трасы + Пачатковец + Лёгка + Сярэдняя + Высокая + Эксперт + Фрырайд + Экстрым + Не вызначана + Складанасць гарналыжнай трасы + Абмежаванне па шырыні + Увядзіце шырыню транспартнага сродку для ўліку пры пастраенні маршруту. + • Абноўлены налады прыкладання і профілю. Цяпер налады размешчаны па тыпу. Кожны профіль можна наладзіць асобна. +\n  +\n  • Новы дыялог загрузкі мапы, які прапануе загрузіць мапу падчас прагляду +\n  +\n  • Выпраўленне цёмнай тэмы +\n  +\n  • Выпраўлена некалькі праблем з маршрутызацыяй па ўсім свеце +\n  +\n  • Абноўленая базавая мапа з больш падрабязнай дарожнай сеткай +\n  +\n  • Выпраўлены затопленыя раёны па ўсім свеце +\n  +\n  • Гарналыжная траса: дададзены профіль вышынь і складанасць маршруту +\n  +\n  • Іншыя выпраўленні памылак +\n +\n + Сімуляваць сваю пазіцыю выкарыстоўваючы запісаны GPX след. + Кнопка, каб усталяваць цэнтр экрана ў пункце адпраўлення, таксама прыкладанне пракладзе шлях да раней абранага пункта прызначэння або адкрые дыялог, каб выбраць пункт прызначэння, калі яго няма на карце. \ No newline at end of file From 76e1d7f2f810354a9ee92e12ce19863e25f9b811 Mon Sep 17 00:00:00 2001 From: Softmap Date: Wed, 15 Jan 2020 18:12:14 +0000 Subject: [PATCH 62/82] Translated using Weblate (Arabic) Currently translated at 100.0% (3101 of 3101 strings) --- OsmAnd/res/values-ar/strings.xml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-ar/strings.xml b/OsmAnd/res/values-ar/strings.xml index d7802ba7ce..a55120758a 100644 --- a/OsmAnd/res/values-ar/strings.xml +++ b/OsmAnd/res/values-ar/strings.xml @@ -1965,7 +1965,7 @@ \n \nهذه الرؤية يمكن التراجع عنها إما عن طريق تعطيلها هنا، أو تغيير \'نمط الخريطة\' في \'ضبط الخريطة\' حسب الرغبة. - على الانترنت OSM تصنيف الخريطة مع الصور. + Online OSM تصنيف الخريطة مع الصور. تعيين الحد الأقصى لوقت الانتظار لكل إصلاح موقع في الخلفية. الانتظار الأقصى للإصلاح إصدار غير معتمد من البيانات الصوتية @@ -3335,4 +3335,9 @@ اختر الايقونة واللون والاسم تحرير قائمة ملفات التعريف الملف الشخصي المحدد + بالضغط على %1$s، ستفقد كل تغييراتك. + سيتم إعادة ضبط جميع إعدادات البروفايل إلى الحالة بعد التثبيت. + إعادة تعيين جميع إعدادات البروفايل إلى الوضع الافتراضي؟ + %2$s %1$s + %2$s :%1$s \ No newline at end of file From 28fcbe50db2fa2dba0944c41d1024c895e241cc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Thu, 16 Jan 2020 00:52:01 +0000 Subject: [PATCH 63/82] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegian?= =?UTF-8?q?=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 1.9% (59 of 3101 strings) --- OsmAnd/res/values-nb/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/OsmAnd/res/values-nb/strings.xml b/OsmAnd/res/values-nb/strings.xml index 2c0bd4e1fb..4ec679813e 100644 --- a/OsmAnd/res/values-nb/strings.xml +++ b/OsmAnd/res/values-nb/strings.xml @@ -3428,4 +3428,5 @@ Alle profilinnstillinger må tilbakestilles til forvalg. Tilbakestill alle innstillinger til forvalg\? %1$s: %2$s + %1$s %2$s \ No newline at end of file From f417ce95bb0ffb30d1e80526e4b2817c6d3f59b2 Mon Sep 17 00:00:00 2001 From: Deleted User Date: Thu, 16 Jan 2020 01:04:12 +0000 Subject: [PATCH 64/82] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegian?= =?UTF-8?q?=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 1.9% (59 of 3101 strings) --- OsmAnd/res/values-nb/strings.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/OsmAnd/res/values-nb/strings.xml b/OsmAnd/res/values-nb/strings.xml index 4ec679813e..e9786811aa 100644 --- a/OsmAnd/res/values-nb/strings.xml +++ b/OsmAnd/res/values-nb/strings.xml @@ -3397,7 +3397,7 @@ En knapp for å enten gjøre midten av skjermen til startpunkt og rute til målet, eller åpne en dialog for valg av mål hvis målmarkøren ikke er på kartet. Vis nettverksnoder for sykkelruter Tøm %1$s\? - Kartnedlastingsdialog + Last ned kartdialog Dialogvinduer og merknader Kontroller oppsprettsvinduer, dialogvinduer og merknader som OsmAnd viser under bruk. Foreslåtte kart @@ -3411,13 +3411,13 @@ Personlig Laster ned %s Tykk - For ørkener og andre tynt befolkede områder. Høyere detaljnivå. + For ørkener og andre tynt befolkede områder. Viser mer detalj i en visningsskala. Velg navigasjonsikon Velg kartikon Etter å ha trykket «Bruk», går slettede profiler tapt for godt. Hovedprofil Velg farge - Du kan ikke slette forvalgsprofilene, men du kan skru dem av før dette steget, eller flytte dem til bunnen. + Du kan ikke slette standard OsmAnd-profiler, men du kan deaktivere dem i forrige skjermbilde, eller flytte dem til bunnen. Rediger profiler Navigasjonstype har innvirkning på regler for ruteberegning. Profilutseende @@ -3426,7 +3426,7 @@ Valgt profil Ved å klikke %1$s vil alle endringene dine gå tapt. Alle profilinnstillinger må tilbakestilles til forvalg. - Tilbakestill alle innstillinger til forvalg\? + Vil du tilbakestille alle profilinnstillinger til standard\? %1$s: %2$s %1$s %2$s \ No newline at end of file From 4d71d01c6c24ce112e62da0878393904987e7a0d Mon Sep 17 00:00:00 2001 From: Mr-Update Date: Wed, 15 Jan 2020 21:05:05 +0000 Subject: [PATCH 65/82] Translated using Weblate (German) Currently translated at 100.0% (3750 of 3750 strings) --- OsmAnd/res/values-de/phrases.xml | 64 ++++++++++++++++---------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/OsmAnd/res/values-de/phrases.xml b/OsmAnd/res/values-de/phrases.xml index 276beda205..4e437468bb 100644 --- a/OsmAnd/res/values-de/phrases.xml +++ b/OsmAnd/res/values-de/phrases.xml @@ -2172,25 +2172,25 @@ Typ: Sarkophag Typ: Krypta Typ: Pyramide - Kultur: Römische Antike (753 v.Chr. - 284 n.Chr..) - Kultur: Nuraghen (18. Jh. v.Chr. - 2 Jh. n.Chr.) + Kultur: römische Antike (753 v. Chr. - 284 n. Chr.) + Kultur: Nuraghen (18. Jh. v. Chr. - 2. Jh. n. Chr.) Kultur: Etrusker (12. - 6. Jh. v. Chr.) - Kultur: Prähistorisch - Kultur: Griechische Antike - Kultur: Römisch - "Kultur: byzantinisch (285 - 1453 n. Chr.)" - "Kultur: Chinesische Kaiserzeit (221 - 1911 v.Chr.)" - Kultur: Altes Ägypten (bis 332 v.Chr.) - Kultur: Keltisch - Kultur: Weströmisch (285 - 476 n. Chr.) - Kultur: Mykenisch + Kultur: prähistorisch + Kultur: griechische Antike + Kultur: römisch + Kultur: byzantinisch (285 - 1453) + Kultur: chinesische Kaiserzeit (221 v. Chr. - 1911 n. Chr.) + Kultur: altes Ägypten (bis 332 v. Chr.) + Kultur: keltisch + Kultur: weströmisch (285 - 476) + Kultur: mykenisch Kultur: Daker Kultur: Herniker - Kultur: Griechisch-ägyptisch (322 - 30 v.Chr.) - Kultur: Römisch- und byzantinisch-ägyptisch + Kultur: griechisch-ägyptisch (322 - 30 v. Chr.) + Kultur: römisch- und byzantinisch-ägyptisch Kultur: Helladikum Kultur: Kykladen - Kultur: Minoisch + Kultur: minoisch Kultur: Tiahuanaco Tierausbildung Hund @@ -2199,21 +2199,21 @@ Historisches Zeitalter: Steinzeit / Bronzezeit (unbestimmt) Historisches Zeitalter: Bronzezeit Historisches Zeitalter: Prinzipat (27 v. Chr. - 284 n. Chr.) - Historisches Zeitalter: Klassisches Griechenland (5. - 4. Jhd. v. Chr.) + Historisches Zeitalter: klassisches Griechenland (5. - 4. Jhd. v. Chr.) Historisches Zeitalter: Archaisches Griechenland Historisches Zeitalter: Eisenzeit - Historisches Zeitalter: Römische Republik (508 - 27 v. Chr.) + Historisches Zeitalter: römische Republik (508 - 27 v. Chr.) Historisches Zeitalter: Hellenistisches Griechenland - "Historisches Zeitalter: Pharaonen, Neues Reich (1550 - 1068 v. Chr.)" - Historisches Zeitalter: Pharaonen, Mittleres Reich (2055 - 1650 v. Chr.) + Historisches Zeitalter: Pharaonen, neues Reich (1550 - 1068 v. Chr.) + Historisches Zeitalter: Pharaonen, mittleres Reich (2055 - 1650 v. Chr.) Historisches Zeitalter: Vordynastisches Ägypten Historisches Zeitalter: Pharaonen, frühdynastische Zeit (3100 – 2686 v. Chr.) - Historisches Zeitalter: Pharaonen, Altes Reich (2686 - 2181 v. Chr.) - Historisches Zeitalter: Pharaonen, Erste Zwischenzeit (2181 – 2055 v. Chr.) - Historisches Zeitalter: Pharaonen, Zweite Zwischenzeit (1650 – 1550 v. Chr.) - Historisches Zeitalter: Pharaonen, Dritte Zwischenzeit (1069 – 664 v. Chr.) + Historisches Zeitalter: Pharaonen, altes Reich (2686 - 2181 v. Chr.) + Historisches Zeitalter: Pharaonen, erste Zwischenzeit (2181 – 2055 v. Chr.) + Historisches Zeitalter: Pharaonen, zweite Zwischenzeit (1650 – 1550 v. Chr.) + Historisches Zeitalter: Pharaonen, dritte Zwischenzeit (1069 – 664 v. Chr.) Historisches Zeitalter: Erstes persisches Zeitalter - Historisches Zeitalter: Altägyptische Spätzeit (664 - 332 v. Chr.) + Historisches Zeitalter: altägyptische Spätzeit (664 - 332 v. Chr.) Historisches Zeitalter: Zweites persisches Zeitalter Historisches Zeitalter: Alexander der Große Bauxit @@ -2221,15 +2221,15 @@ Historisches Zeitalter: Christliches Ägypten Historisches Zeitalter: byzantinisches Ägypten (30 v. Chr. - 641 n. Chr.) Historisches Zeitalter: Persische Besetzung - Historisches Zeitalter: Dunkle Jahrhunderte (Antike) (1100 - 800 v. Chr.) - Historisches Zeitalter: Römisches Griechenland (146 v. Chr - 330 n. Chr.) - Historisches Zeitalter: Römische Königszeit (756 - 509 v. Chr.) - Historisches Zeitalter: Dominat (285 - 476 n. Chr.) - Historisches Zeitalter: Ptolemäisches Königreich (305 - 30 v. Chr.) - Historisches Zeitalter: Ländliches Tiahuanaco (I., II. Epoche, 1580 v. Chr. - 133 n. Chr.) - Historisches Zeitalter: Städtisches Tiahuanaco (III. Epoche, 133 - 374 n. Chr.) - Historisches Zeitalter: Klassisches Tiahuanaco (IV. Epoche, 374 - 900 n. Chr.) - Historisches Zeitalter: Imperialistisches Tiahuanaco (V. Epoche, 900 - 1200 n. Chr.) + Historisches Zeitalter: dunkle Jahrhunderte (Antike) (1100 - 800 v. Chr.) + Historisches Zeitalter: römisches Griechenland (146 v. Chr - 330 n. Chr.) + Historisches Zeitalter: römische Königszeit (756 - 509 v. Chr.) + Historisches Zeitalter: Dominat (285 - 476) + Historisches Zeitalter: ptolemäisches Königreich (305 - 30 v. Chr.) + Historisches Zeitalter: ländliches Tiahuanaco (I., II. Epoche, 1580 v. Chr. - 133 n. Chr.) + Historisches Zeitalter: städtisches Tiahuanaco (III. Epoche, 133 - 374) + Historisches Zeitalter: klassisches Tiahuanaco (IV. Epoche, 374 - 900) + Historisches Zeitalter: imperialistisches Tiahuanaco (V. Epoche, 900 - 1200) Historische Epoche: Altsteinzeit (2,6 Mio. - 10000 Jahre vor heute) Historische Epoche: Mittelsteinzeit Historische Epoche: Jungsteinzeit From 58a688ca6a4dbe97421dc0964f398f73b92a5190 Mon Sep 17 00:00:00 2001 From: ssantos Date: Wed, 15 Jan 2020 20:12:16 +0000 Subject: [PATCH 66/82] Translated using Weblate (Portuguese) Currently translated at 100.0% (3750 of 3750 strings) --- OsmAnd/res/values-pt/phrases.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/OsmAnd/res/values-pt/phrases.xml b/OsmAnd/res/values-pt/phrases.xml index 74fbf1769f..60507ea65a 100644 --- a/OsmAnd/res/values-pt/phrases.xml +++ b/OsmAnd/res/values-pt/phrases.xml @@ -3752,4 +3752,6 @@ Sexo comunitário: masculino Sexo comunitário: misto Grave + Espaço de estacionamento + URL \ No newline at end of file From a10a912a1848c791c0f8bc02190954224ec68d98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Thu, 16 Jan 2020 05:48:22 +0000 Subject: [PATCH 67/82] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegian?= =?UTF-8?q?=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 95.4% (249 of 261 strings) Translation: OsmAnd/Telegram Translate-URL: https://hosted.weblate.org/projects/osmand/telegram/nb_NO/ --- OsmAnd-telegram/res/values-nb/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd-telegram/res/values-nb/strings.xml b/OsmAnd-telegram/res/values-nb/strings.xml index e65de85381..fa16894ecb 100644 --- a/OsmAnd-telegram/res/values-nb/strings.xml +++ b/OsmAnd-telegram/res/values-nb/strings.xml @@ -237,7 +237,7 @@ Personvern Velg Minste loggingsavstand - Filter: minimum avstand for å logge et nytt punkt + Filter: Minimumsavstand for logging av nytt punkt Minimumsnøyaktighet for logging Filter: Ingen logging med mindre nøyaktigheten nås Minimumshastighet ved logging From 1aecbd2b6456a2788f21cc45ec4aa73aaed5a5a6 Mon Sep 17 00:00:00 2001 From: ssantos Date: Wed, 15 Jan 2020 20:10:50 +0000 Subject: [PATCH 68/82] Translated using Weblate (Portuguese) Currently translated at 100.0% (261 of 261 strings) Translation: OsmAnd/Telegram Translate-URL: https://hosted.weblate.org/projects/osmand/telegram/pt/ --- OsmAnd-telegram/res/values-pt/strings.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/OsmAnd-telegram/res/values-pt/strings.xml b/OsmAnd-telegram/res/values-pt/strings.xml index 767f63be9c..71f9006403 100644 --- a/OsmAnd-telegram/res/values-pt/strings.xml +++ b/OsmAnd-telegram/res/values-pt/strings.xml @@ -259,4 +259,7 @@ Unidade de velocidade Tempo máximo para armazenar pontos no buffer Tempo de expiração do buffer + Sugerido + Estado do Rastreador de OsmAnd + Voltar para OsmAnd \ No newline at end of file From be31b2b2fd6db222131d99783bee68a6b5a6f081 Mon Sep 17 00:00:00 2001 From: veliymolfar Date: Thu, 16 Jan 2020 10:16:24 +0200 Subject: [PATCH 69/82] reformat --- OsmAnd/src/net/osmand/plus/voice/CommandBuilder.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/src/net/osmand/plus/voice/CommandBuilder.java b/OsmAnd/src/net/osmand/plus/voice/CommandBuilder.java index 98ea123a30..481b263d9a 100644 --- a/OsmAnd/src/net/osmand/plus/voice/CommandBuilder.java +++ b/OsmAnd/src/net/osmand/plus/voice/CommandBuilder.java @@ -180,7 +180,7 @@ public class CommandBuilder { } public CommandBuilder takeExit(String turnType, int exit, StreetName streetName) { - return alt(prepareStruct(C_TAKE_EXIT, turnType, exit, streetName), prepareStruct(C_TAKE_EXIT, turnType,exit)); + return alt(prepareStruct(C_TAKE_EXIT, turnType, exit, streetName), prepareStruct(C_TAKE_EXIT, turnType, exit)); } public CommandBuilder takeExit(String turnType, double dist, int exit, StreetName streetName) { From 86844c64a1c3b3c51f4b5d54334c757947b527d9 Mon Sep 17 00:00:00 2001 From: veliymolfar Date: Thu, 16 Jan 2020 10:32:56 +0200 Subject: [PATCH 70/82] refactor --- OsmAnd/src/net/osmand/plus/voice/JSCommandBuilder.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/voice/JSCommandBuilder.java b/OsmAnd/src/net/osmand/plus/voice/JSCommandBuilder.java index bbc705943a..057ba29a32 100644 --- a/OsmAnd/src/net/osmand/plus/voice/JSCommandBuilder.java +++ b/OsmAnd/src/net/osmand/plus/voice/JSCommandBuilder.java @@ -65,7 +65,7 @@ public class JSCommandBuilder extends CommandBuilder { return this; } - private boolean isCommandExist(String name) { + private boolean isJSCommandExists(String name) { return jsScope.get(name) instanceof Function; } @@ -124,7 +124,7 @@ public class JSCommandBuilder extends CommandBuilder { } public JSCommandBuilder takeExit(String turnType, double dist, int exit, StreetName streetName) { - return isCommandExist(C_TAKE_EXIT) ? + return isJSCommandExists(C_TAKE_EXIT) ? addCommand(C_TAKE_EXIT, turnType, dist, exit, convertStreetName(streetName)) : addCommand(C_TURN, turnType, dist, convertStreetName(streetName)); } From c281eca05411c9861330c027810a8ae882ee3114 Mon Sep 17 00:00:00 2001 From: Viktar Palsciuk Date: Thu, 16 Jan 2020 06:53:51 +0000 Subject: [PATCH 71/82] Translated using Weblate (Belarusian) Currently translated at 93.7% (2907 of 3101 strings) --- OsmAnd/res/values-be/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OsmAnd/res/values-be/strings.xml b/OsmAnd/res/values-be/strings.xml index 32e303aff6..609af621cd 100644 --- a/OsmAnd/res/values-be/strings.xml +++ b/OsmAnd/res/values-be/strings.xml @@ -1479,7 +1479,7 @@ Запомніць выбар Абнавіць Спампаваць - Спампоўваецца + Спампоўваецца… Спампаваная Памылка ўводу/вываду Нечаканая памылка @@ -1596,7 +1596,7 @@ Вікіпедыя Паказаць падрабязнасці Вікіпедыя - Вы збіраецеся выдаліць %1$d нататкі. Вы ўпэўнены\? + Вы ўпэўнены, што хочаце выдаліць %1$d нататак\? Імпартаваць у OsmAnd Прадухіліць аўтаномны запіс Запіс GPX прыпыніцца, калі дадатак будзе забіты (праз надаўнія праграмы). (Апавяшчэнне ў вобласці падказак Android пра фонавы рэжым OsmAnd знікне.) From e72e151679a28e9f8bcaa17bcd07d5751fb50fb0 Mon Sep 17 00:00:00 2001 From: Zmicer Turok Date: Thu, 16 Jan 2020 07:59:27 +0000 Subject: [PATCH 72/82] Translated using Weblate (Belarusian) Currently translated at 93.7% (2907 of 3101 strings) --- OsmAnd/res/values-be/strings.xml | 46 ++++++++++++++++---------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/OsmAnd/res/values-be/strings.xml b/OsmAnd/res/values-be/strings.xml index 609af621cd..f711d3f708 100644 --- a/OsmAnd/res/values-be/strings.xml +++ b/OsmAnd/res/values-be/strings.xml @@ -68,7 +68,7 @@ Пункт Назва файла GPX GPX-файл захаваны ў {0} - Убудова дадае на экран мапы віджэт, які дазваляе ствараць маршруты, націснуйшы на мапу, а таксама выкарыстоўваць ці змяняць наяўныя файлы GPX, планаваць паездку і вымяраць адлегласць паміж пунктамі. Вынікі могуць быць захаваныя ў выглядзе файла GPX, які пасля можа быць выкарыстаны для навігацыі. + Убудова дадае на мапу віджэт, які дазваляе ствараць маршруты, націснуйшы на мапу, а таксама выкарыстоўваць ці змяняць наяўныя файлы GPX, планаваць паездку і вымяраць адлегласць паміж пунктамі. Вынікі могуць быць захаваныя ў выглядзе файла GPX, які пасля можа быць выкарыстаны для навігацыі. Прылада для разліку адлегласцяў і плянавання * Націсніце, каб адзначыць пункт. \n * Доўга ўтрымлівайце на мапе, каб выдаліць папярэдні пункт. @@ -165,11 +165,11 @@ Вымярэнне адлегласці Месцазнаходжанне для прывязкі нататкі пакуль яшчэ не вызначылася. «Выкарыстаць месцазнаходжанне…» для запісу нататкі ў абраным месцы. Аўдыянататкі - Убудова для стварэння аўдыё/відэа нататак падчас падарожжаў, з дапамогай кнопкі на экране мапы альбо праз кантэкстнае меню на любым месцы на мапе. + Убудова для стварэння аўдыё/відэа нататак падчас падарожжаў, з дапамогай кнопкі на мапе альбо праз кантэкстнае меню на любым месцы на мапе. Аўдыё/відэа нататкі частак Ізалініі вышынь - Ізалініі вышынь + Контурныя лініі Іншыя мапы Толькі дарогі Ізалініі вышынь @@ -392,7 +392,7 @@ PM AM Месца стаянкі - Убудова месца паркоўкі дазваляе запісаць дзе быў прыпаркаваны ваш аўтамабіль і колькі часу засталося ў выпадку абмежаванай па часе стаянкі. Месца паркоўкі і час відаць на панэлі кіравання OsmAnd і на віджэце на экране з мапай. У каляндар Android можна дадаць напамін. + Убудова месца паркоўкі дазваляе запісаць дзе быў прыпаркаваны ваш аўтамабіль і колькі часу засталося ў выпадку абмежаванай па часе стаянкі. Месца паркоўкі і час даступныя на панэлі кіравання OsmAnd і на віджэце на мапе. У каляндар Android можна дадаць напамін. Месца паркоўкі Пазначыць месца стаянкі Выдаліць адзнаку месца стаянкі @@ -442,8 +442,8 @@ \nЛюбая з гэтых мапаў можа быць выкарыстана ў якасці асноўнай (базавай) мапы для адлюстравання на экране OsmAnd або ў выглядзе накладкі / падкладкі да іншай базавай мапы (стандартнай аўтаномнай мапы OsmAnd). Для таго каб зрабіць любую падкладку больш бачнай, некаторыя элементы вектарнай мапы OsmAnd могуць быць па жаданні лёгка схаваныя праз меню «Налады мапы». \n \nТайлавыя мапы могуць быць атрыманыя непасрэдна з дапамогай сеціўных крыніц або могуць быць падрыхтаваныя для выкарыстання ў аўтаномным рэжыме (і ўласнаручна скапіяваныя ў каталог даных OsmAnd) як база даных SQLite, якую можна атрымаць з дапамогай розных інструментаў падрыхтоўкі мапаў іншых вытворцаў. - Убудова дадае падтрымку дадатковых магчымасцяў непасрэдна ў OsmAnd. Гэта палягчае, напрыклад, рэгуляванне хуткасці вымаўлення для голасу TTS, наладу накіраванасці экрана навігацыі, кіраванне маштабам пры дапамозе трэкбола або выкарыстанне галасавых загадаў зваротнай сувязі для аўтаматычнага агалошвання вашага месцазнаходжання. - Убудова адлюстроўвае параметры для распрацоўкі і адладкі функцый, такіх як, праверка або мадэляванне маршруту, адлюстраванне прадукцыйнасці адмалёўкі, праверка галасавых падказак. Гэтыя налады прызначаныя для распрацоўшчыкаў і не патрэбныя звычайнаму карыстальніку. + Убудова дадае падтрымку дадатковых магчымасцяў непасрэдна ў OsmAnd. Гэта палягчае, напрыклад, рэгуляванне хуткасці вымаўлення для голасу TTS, наладку накіраванасці экрана навігацыі, кіраванне маштабам пры дапамозе трэкбола або выкарыстанне галасавых загадаў зваротнай сувязі для аўтаматычнага агалошвання вашага месцазнаходжання. + Убудова адлюстроўвае параметры для распрацоўкі і адладкі функцый, такіх як, праверка або мадэляванне маршруту, адлюстраванне прадукцыйнасці адмалёўкі, праверка галасавых падказак. Гэта налады для распрацоўшчыкаў і не патрэбныя звычайнаму карыстальніку. Убудовы Убудовы актывуюць дадатковыя налады і магчымасці. Убудовы @@ -967,7 +967,7 @@ Захаваць дзейны след зараз жа як GPX-файл. Захаваць дзейны след Інтэрвал захавання падчас навігацыі - Абраць інтэрвал захоўвання пунктаў следу падчас навігацыі. + Вызгачце інтэрвал захоўвання пунктаў следу падчас навігацыі GPX-след аўтаматычна захаваны ў каталог слядоў падчас навігацыі. Аўтаматычна запісваць след падчас навігацыі Абнавіць мапу @@ -1295,11 +1295,11 @@ Спампаваць мапы, што адсутнічаюць, %1$s (%2$d МБ)\? Пункты шляху Дарожныя папярэджанні - Улюбёныя паблізу + Улюбёныя месцы паблізу Навакольныя POI Усе Паездкі - Убудова актывуе функцыі для запісу і захоўвання вашых слядоў уласнаручна націскам на віджэт запісу GPX на экране мапы, або таксама аўтаматычна запісвае ўсе вашыя маршруты навігацыі ў файл GPX. + Убудова актывуе функцыі для запісу і захоўвання вашых слядоў уласнаручна націскам на віджэт запісу GPX на мапе, або таксама аўтаматычна запісвае ўсе вашыя маршруты навігацыі ў файл GPX. \n \nЗапісанымі слядамі можна падзяліцца з вашымі сябрамі або выкарыстоўваць іх для адсылкі ў OSM. Спартоўцы могуць выкарыстоўваць запісаныя сляды для кантролю за трэніроўкамі. Некаторы базавы аналіз слядоў можна правесці непасрэдна ў OsmAnd, напрыклад, час праходжання кругу, сярэдняя хуткасць і г.д., сляды, вядома, пазней таксама можна прааналізаваць пры дапамозе адмысловых інструментахў аналізу іншых вытворцаў. Запіс падарожжа @@ -1309,9 +1309,9 @@ Маршруты аўтобусаў, тралейбусаў і таксі Пісаць след у GPX-файл Інтэрвал запісу - Агульны запіс месцазнаходжання ў GPX-файл можа быць уключаны або выключаны з дапамогай кнопкі запісу GPX на экране з мапай. + Запіс месцазнаходжання ў GPX-файл можа быць уключаны або выключаны з дапамогай кнопкі запісу GPX мапе. Пытацца заўсёды - Абярыце інтэрвал запісу следу (уключаецца віджэтам запісу GPX на мапе). + Вызначце інтэрвал запісу следу (уключаецца праз віджэт запісу GPX на мапе). Агульны інтэрвал запісу Абмежаванне хуткасці Памежны кантроль @@ -1323,11 +1323,11 @@ Змяніць памер тэксту на мапе. Памер тэксту Дапушчальнае значэнне перавышэння хуткасці - Задаць дапушчалнае значэнне перавышэння хуткасці, пры якім вы атрымаеце галасавое паведамленне. - Назва ўлюбёнага была змененая на %1$s для магчымасці захавання радка з эматыконам ў файл. + Абярыце дапушчальнае значэнне перавышэння хуткасці, пры якім вы атрымаеце галасавое паведамленне. + Назва ўлюбёнага месца была змененая на \"%1$s\" для магчымасці захавання радка з эматыконам ў файл. Паказаць маршрут - Дубляванне назвы ўлюбёнага пункту - Улюбёнае з такой назвай ўжо існуе, таму будзе выкарыстана %1$s для прадухілення дублявання назваў. + Дубляванне назвы ўлюбёнага месца + Назва ўлюбёнага месца была змененая на \"%1$s\", каб пазбегнуць паўтарэння. Націсніце на любы элемент спіса для прагляду больш падрабязнай інфармацыі, доўга ўтрымлівайце, каб змясціць у архіў ці выдаліць. Дзейныя даныя прылады (%1$s вольна): Ананімны карыстальнік Вы ўвайшлі як %1$s @@ -1397,7 +1397,7 @@ Уключыць HTTP-проксі Наладзіць HTTP-проксі для ўсіх сеткавых запытаў. Хост проксі - Задайце назву хаста вашага проксі (напрыклад 127.0.0.1). + Вызначце назву хоста вашага проксі (напрыклад 127.0.0.1). Порт проксі Задайце нумар парта вашага проксі (напрыклад 8118). Вызначыць проксі-сервер. @@ -3415,9 +3415,9 @@ Перамясціць у новы пункт прызначэння Запісваць сляды кожны дзень у новы падкаталог (напрыклад, 2018-01-01). Сапраўды хочаце абнавіць усе мапы (%1$d)\? - Стварыце свой профіль на аснове аднаго з базавых профіляў - гэта будзе вызначаць асноўныя параметры, такія як віджэты, адзінкі хуткасці і адлегласці. Гэта тыповыя профілі дадатку, якія разам з прыкладамі карыстацкіх профіляў могуць быць пашыраныя да: + Стварыце свой профіль на аснове аднаго з базавых профіляў - гэта будзе вызначаць асноўныя параметры, такія як віджэты, адзінкі вымярэння хуткасці і адлегласці. Гэта тыповыя профілі дадатку, якія разам з прыкладамі профіляў карыстальніка можна пашырыць да: Маршруты, падрыхтаваныя толькі для класічнага стылю без канькабежных трас. Сюды ўваходзяць маршруты, падрыхтаваныя невялікім снегаходам з больш свабоднай лыжнёй і трасамі, падрыхтаваныя ўручную лыжнікамі. - Сцягнуць падрабязную мапу %s, каб прагледзець гэтую вобласць. + Спампаваць падрабязную мапу %s, каб праглядзець гэтую вобласць. Унутранае сховішча, схаванае ад карыстальніка і іншых дадаткаў, даступнае выключна для OsmAnd Змена каталога захавання даных Ландшафтны парк @@ -3430,16 +3430,16 @@ Скандынаўскі Тып гарналыжнай трасы Пачатковец - Лёгка + Лёгкая Сярэдняя Высокая - Эксперт + Экспертная Фрырайд Экстрым Не вызначана Складанасць гарналыжнай трасы Абмежаванне па шырыні - Увядзіце шырыню транспартнага сродку для ўліку пры пастраенні маршруту. + Увядзіце шырыню транспартнага сродку для ўліку пры разліку маршруту. • Абноўлены налады прыкладання і профілю. Цяпер налады размешчаны па тыпу. Кожны профіль можна наладзіць асобна. \n  \n  • Новы дыялог загрузкі мапы, які прапануе загрузіць мапу падчас прагляду @@ -3457,6 +3457,6 @@ \n  • Іншыя выпраўленні памылак \n \n - Сімуляваць сваю пазіцыю выкарыстоўваючы запісаны GPX след. - Кнопка, каб усталяваць цэнтр экрана ў пункце адпраўлення, таксама прыкладанне пракладзе шлях да раней абранага пункта прызначэння або адкрые дыялог, каб выбраць пункт прызначэння, калі яго няма на карце. + Сімуляваць сваю пазіцыю пры дапамозе запісанага GPX-следу. + Кнопка для прызначэння цэнтра экрана пунктам адпраўлення. Таксама дадатак пракладзе шлях да раней абранага пункта прызначэння або адкрые дыялог для выбару пункта прызначэння, калі яго няма на мапе. \ No newline at end of file From 9a9555d6a4ddd4af7b5616a73707c367b65b8a72 Mon Sep 17 00:00:00 2001 From: Zmicer Turok Date: Thu, 16 Jan 2020 09:00:38 +0000 Subject: [PATCH 73/82] Translated using Weblate (Belarusian) Currently translated at 93.7% (2907 of 3101 strings) --- OsmAnd/res/values-be/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/values-be/strings.xml b/OsmAnd/res/values-be/strings.xml index f711d3f708..c858ec64e4 100644 --- a/OsmAnd/res/values-be/strings.xml +++ b/OsmAnd/res/values-be/strings.xml @@ -1596,7 +1596,7 @@ Вікіпедыя Паказаць падрабязнасці Вікіпедыя - Вы ўпэўнены, што хочаце выдаліць %1$d нататак\? + Сапраўды хочаце выдаліць %1$d нататак\? Імпартаваць у OsmAnd Прадухіліць аўтаномны запіс Запіс GPX прыпыніцца, калі дадатак будзе забіты (праз надаўнія праграмы). (Апавяшчэнне ў вобласці падказак Android пра фонавы рэжым OsmAnd знікне.) From be600c32462ce6367d5b2dd94525e4c436d46933 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Thu, 16 Jan 2020 05:49:03 +0000 Subject: [PATCH 74/82] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegian?= =?UTF-8?q?=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 1.8% (56 of 3101 strings) --- OsmAnd/res/values-nb/strings.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/OsmAnd/res/values-nb/strings.xml b/OsmAnd/res/values-nb/strings.xml index e9786811aa..4ec679813e 100644 --- a/OsmAnd/res/values-nb/strings.xml +++ b/OsmAnd/res/values-nb/strings.xml @@ -3397,7 +3397,7 @@ En knapp for å enten gjøre midten av skjermen til startpunkt og rute til målet, eller åpne en dialog for valg av mål hvis målmarkøren ikke er på kartet. Vis nettverksnoder for sykkelruter Tøm %1$s\? - Last ned kartdialog + Kartnedlastingsdialog Dialogvinduer og merknader Kontroller oppsprettsvinduer, dialogvinduer og merknader som OsmAnd viser under bruk. Foreslåtte kart @@ -3411,13 +3411,13 @@ Personlig Laster ned %s Tykk - For ørkener og andre tynt befolkede områder. Viser mer detalj i en visningsskala. + For ørkener og andre tynt befolkede områder. Høyere detaljnivå. Velg navigasjonsikon Velg kartikon Etter å ha trykket «Bruk», går slettede profiler tapt for godt. Hovedprofil Velg farge - Du kan ikke slette standard OsmAnd-profiler, men du kan deaktivere dem i forrige skjermbilde, eller flytte dem til bunnen. + Du kan ikke slette forvalgsprofilene, men du kan skru dem av før dette steget, eller flytte dem til bunnen. Rediger profiler Navigasjonstype har innvirkning på regler for ruteberegning. Profilutseende @@ -3426,7 +3426,7 @@ Valgt profil Ved å klikke %1$s vil alle endringene dine gå tapt. Alle profilinnstillinger må tilbakestilles til forvalg. - Vil du tilbakestille alle profilinnstillinger til standard\? + Tilbakestill alle innstillinger til forvalg\? %1$s: %2$s %1$s %2$s \ No newline at end of file From 16c3467d17ce0d99bac929a33207c753db21b603 Mon Sep 17 00:00:00 2001 From: WaldiS Date: Thu, 16 Jan 2020 08:13:52 +0000 Subject: [PATCH 75/82] Translated using Weblate (Polish) Currently translated at 98.5% (257 of 261 strings) Translation: OsmAnd/Telegram Translate-URL: https://hosted.weblate.org/projects/osmand/telegram/pl/ --- OsmAnd-telegram/res/values-pl/strings.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/OsmAnd-telegram/res/values-pl/strings.xml b/OsmAnd-telegram/res/values-pl/strings.xml index 520712150f..04784f2bdf 100644 --- a/OsmAnd-telegram/res/values-pl/strings.xml +++ b/OsmAnd-telegram/res/values-pl/strings.xml @@ -260,4 +260,7 @@ Maksymalny czas przechowywania punktów w buforze Czas ważności bufora Wybierz strefę czasową, która ma być wyświetlana w wiadomościach o Twojej lokalizacji. + Proponowane + Stan modułu śledzącego OsmAnd + Wróć do OsmAnd \ No newline at end of file From c262e8a151bd447a6fc47ff092b77ab6ad7acbd5 Mon Sep 17 00:00:00 2001 From: veliymolfar Date: Thu, 16 Jan 2020 12:29:44 +0200 Subject: [PATCH 76/82] replace periods time with last sharing time --- .../net/osmand/telegram/TelegramSettings.kt | 58 ++----------------- .../telegram/ui/MyLocationTabFragment.kt | 2 +- 2 files changed, 7 insertions(+), 53 deletions(-) diff --git a/OsmAnd-telegram/src/net/osmand/telegram/TelegramSettings.kt b/OsmAnd-telegram/src/net/osmand/telegram/TelegramSettings.kt index 227215c03c..c8b0a179b2 100644 --- a/OsmAnd-telegram/src/net/osmand/telegram/TelegramSettings.kt +++ b/OsmAnd-telegram/src/net/osmand/telegram/TelegramSettings.kt @@ -851,22 +851,7 @@ class TelegramSettings(private val app: TelegramApplication) { lastChatsInfo.forEach { lastInfo -> val obj = JSONObject() obj.put(LastChatInfo.CHAT_ID_KEY, lastInfo.chatId) - obj.put(LastChatInfo.PERIODS_KEY, convertPeriodsToJson(lastInfo.periods)) - jArray.put(obj) - } - jArray - } catch (e: JSONException) { - log.error(e) - null - } - } - - private fun convertPeriodsToJson(periods: LinkedList): JSONArray? { - return try { - val jArray = JSONArray() - for (i in 0 until periods.count()) { - val obj = JSONObject() - obj.put(i.toString(), periods[i]) + obj.put(LastChatInfo.PERIOD_KEY, lastInfo.period) jArray.put(obj) } jArray @@ -947,13 +932,8 @@ class TelegramSettings(private val app: TelegramApplication) { val obj = json.getJSONObject(i) val lastInfo = LastChatInfo().apply { chatId = obj.optLong(LastChatInfo.CHAT_ID_KEY) - periods = LinkedList() - val jsonArray = obj.getJSONArray(LastChatInfo.PERIODS_KEY) - for (j in 0 until jsonArray.length()) { - val o = jsonArray.get(j) as JSONObject - periods.addLast(o.optLong(j.toString())) + period = obj.optLong(LastChatInfo.PERIOD_KEY) } - } lastChatsInfo.addLast(lastInfo) } } @@ -964,16 +944,14 @@ class TelegramSettings(private val app: TelegramApplication) { addItemToSuggested(id, time) } else { val index = lastChatsInfo.indexOf(lastInfo) - lastChatsInfo[index].periods = addTimeToPeriods(lastChatsInfo[index].periods, time) + lastChatsInfo[index].period = time } } private fun addItemToSuggested(id: Long, time: Long) { val newLastInfo = LastChatInfo().apply { chatId = id - periods = LinkedList().apply { - addFirst(time) - } + period = time } if (lastChatsInfo.size < 5) { lastChatsInfo.addFirst(newLastInfo) @@ -983,30 +961,6 @@ class TelegramSettings(private val app: TelegramApplication) { } } - private fun addTimeToPeriods(periods: LinkedList?, time: Long): LinkedList { - if (periods?.isNotEmpty() != null) { - return if (periods.size < 5) { - periods.addFirst(time) - periods - } else { - periods.removeLast() - periods.addFirst(time) - periods - } - } - return LinkedList().apply { addFirst(time) } - } - - fun calcLivePeriod(periods: LinkedList): Long { - val sortedPeriods = periods.toLongArray() - sortedPeriods.sort() - return if (sortedPeriods.size % 2 == 0) { - (sortedPeriods[sortedPeriods.size / 2] + sortedPeriods[sortedPeriods.size / 2 - 1]) / 2 - } else { - sortedPeriods[sortedPeriods.size / 2] - } - } - private fun getLiveNowChats() = app.telegramHelper.getMessagesByChatIds(locHistoryTime).keys private fun updatePrefs() { @@ -1512,11 +1466,11 @@ class TelegramSettings(private val app: TelegramApplication) { class LastChatInfo { var chatId = -1L - var periods = LinkedList() + var period = -1L companion object { internal const val CHAT_ID_KEY = "chatId" - internal const val PERIODS_KEY = "periods" + internal const val PERIOD_KEY = "period" } } } diff --git a/OsmAnd-telegram/src/net/osmand/telegram/ui/MyLocationTabFragment.kt b/OsmAnd-telegram/src/net/osmand/telegram/ui/MyLocationTabFragment.kt index 154116af0b..fab7f1db77 100644 --- a/OsmAnd-telegram/src/net/osmand/telegram/ui/MyLocationTabFragment.kt +++ b/OsmAnd-telegram/src/net/osmand/telegram/ui/MyLocationTabFragment.kt @@ -580,7 +580,7 @@ class MyLocationTabFragment : Fragment(), TelegramListener { val lastInfo = lastChatsInfo.find { it.chatId == chatId } if (chat != null && lastInfo != null) { val index = lastChatsInfo.indexOf(lastInfo) - lastItems.add(LastChat(chat, settings.calcLivePeriod(lastChatsInfo[index].periods))) + lastItems.add(LastChat(chat, lastChatsInfo[index].period)) } } return lastItems From a4225ca5b68f54271d35c74bf7255755580c6c3a Mon Sep 17 00:00:00 2001 From: veliymolfar Date: Thu, 16 Jan 2020 12:54:19 +0200 Subject: [PATCH 77/82] reformat --- OsmAnd-telegram/src/net/osmand/telegram/TelegramSettings.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd-telegram/src/net/osmand/telegram/TelegramSettings.kt b/OsmAnd-telegram/src/net/osmand/telegram/TelegramSettings.kt index c8b0a179b2..5ed8aea183 100644 --- a/OsmAnd-telegram/src/net/osmand/telegram/TelegramSettings.kt +++ b/OsmAnd-telegram/src/net/osmand/telegram/TelegramSettings.kt @@ -933,7 +933,7 @@ class TelegramSettings(private val app: TelegramApplication) { val lastInfo = LastChatInfo().apply { chatId = obj.optLong(LastChatInfo.CHAT_ID_KEY) period = obj.optLong(LastChatInfo.PERIOD_KEY) - } + } lastChatsInfo.addLast(lastInfo) } } From f59e7228f7ca4dffea2b1ee1fa8d4de57fb858e0 Mon Sep 17 00:00:00 2001 From: Dmitry Date: Thu, 16 Jan 2020 13:11:36 +0200 Subject: [PATCH 78/82] Add map_ variant of profile icons --- .../map_action_openstreetmap_logo.png | Bin 0 -> 801 bytes .../res/drawable-hdpi/map_action_world_globe.png | Bin 0 -> 825 bytes .../map_action_openstreetmap_logo.png | Bin 0 -> 530 bytes .../res/drawable-mdpi/map_action_world_globe.png | Bin 0 -> 527 bytes .../map_action_openstreetmap_logo.png | Bin 0 -> 942 bytes .../drawable-xhdpi/map_action_world_globe.png | Bin 0 -> 1020 bytes .../map_action_openstreetmap_logo.png | Bin 0 -> 1435 bytes .../drawable-xxhdpi/map_action_world_globe.png | Bin 0 -> 1592 bytes .../map_action_openstreetmap_logo.png | Bin 0 -> 1926 bytes .../drawable-xxxhdpi/map_action_world_globe.png | Bin 0 -> 2197 bytes 10 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 OsmAnd/res/drawable-hdpi/map_action_openstreetmap_logo.png create mode 100644 OsmAnd/res/drawable-hdpi/map_action_world_globe.png create mode 100644 OsmAnd/res/drawable-mdpi/map_action_openstreetmap_logo.png create mode 100644 OsmAnd/res/drawable-mdpi/map_action_world_globe.png create mode 100644 OsmAnd/res/drawable-xhdpi/map_action_openstreetmap_logo.png create mode 100644 OsmAnd/res/drawable-xhdpi/map_action_world_globe.png create mode 100644 OsmAnd/res/drawable-xxhdpi/map_action_openstreetmap_logo.png create mode 100644 OsmAnd/res/drawable-xxhdpi/map_action_world_globe.png create mode 100644 OsmAnd/res/drawable-xxxhdpi/map_action_openstreetmap_logo.png create mode 100644 OsmAnd/res/drawable-xxxhdpi/map_action_world_globe.png diff --git a/OsmAnd/res/drawable-hdpi/map_action_openstreetmap_logo.png b/OsmAnd/res/drawable-hdpi/map_action_openstreetmap_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..a1a2c1b0611131334d788fdee612a7d32b47fce5 GIT binary patch literal 801 zcmV++1K#|JP)DJ769?adJNO~T>XOdn@;@xfhen`4A zGoBlB_ovaGevCo8liaTHl)HbG^eQ#Fi^%{700!IpL_-23MdhzJ!N{2iQRoEH(Ywc*~I+1V^8KDhg@4S91e z=`4pJ#)3;9CB0cdc4cM_k4KU)L-wgLAu+Cp$cyIgOI#h1{js0`a#VZA-O0?7VF12P z-{*kco7ury_-;D5a9BJP+VdskqDgm2pUmu{ybK)#d~JX~{#T-3)PmQ+!GXx(O$55O zb2Gz>gXQdF6}eO9%aFn=Tq*s?Og#Hg8QeWbVpS4)#B&h4i3#Qie^SEe?u4_>M!4CO zq@FUX~G4 z_e?fTfvWq|MZZa!(lL7qlIN7olhmQ;NsOGW^}@S$3Dls|6`tg5s>6}HBC^MoroEMf zrq#B(OPK03g|SKF5Ky)}Wy1%U%ep2;8zPbSV}PcZ&*~H%D9B4Tgs(I6$T*S#K$M|u zUAu%OvNwQG=)B52W2iVGo7=ID$Uaq&=g6J`p*8S{P_ca>y&ps{LWNi0=UU=)?Gm!$ zGS3{K-Uu$Xs|9(aQ?bhIsht9f6VuTw(F0V?sjM+2WLxo246@8AcZUa*nqor-ci#md z=2^}@cb_`Vlua5MwhLR;sUAh&DzHrQ5z#j&u-gL0wLnAiDNuxp^V+6IbLwF^n)d=m z(=PLwZ&DH>1Ir}_!dEUM$|VMuALX>t9Iw*lM_C-nQ!YQs#R-DhT%0UQLhmwn*>3;u fr*^seO~(EU&LM9!)h`w100000NkvXXu0mjf)2Dv@ literal 0 HcmV?d00001 diff --git a/OsmAnd/res/drawable-hdpi/map_action_world_globe.png b/OsmAnd/res/drawable-hdpi/map_action_world_globe.png new file mode 100644 index 0000000000000000000000000000000000000000..6ad36c2b3ad1ad76c1cf6d5dfa32791878182004 GIT binary patch literal 825 zcmV-91IGM`P)jDnEdnLUU`{pwlQ%b@Q<4TaYqOvveJt!uEp}RNeh3dalr^mN@)^nF zIaHINBz*$#HY{R~j{v+0*RMz(_!&vxiq8D=48RWn25Q|^yCCT`y4D5NVCcMr(Bl3Q zR@|$4k>t(42ZjvR!guH`fklipK}j+@W~rL>;DybGH+A;eMqW$ub2W^S#dzKC9+Nbi zBO8G#-Z~7G@^g~TI0G_EzE^Evsa_~q`ZKac@~XUV5S1}&&hPtk&03)B<%$&m*3f=^ zF=?!;4M`5~>#|04%EC9()!`um5mgJ6y^O+aG5k>1nry9sl4S3qh#zY6sdWx&c1(2D-4l8}4bW7Mj{JT_;cyEnyVx@}OmB=_HwovyPcM#*Im^3)rVc#1aD0)Ml=O@qR)lNvR z=I}J~wu)jLp@$YCDUL*=*3+%%sUqj*?B53Fsk07xX3O)|%G(A@4zCA116mD=#U|U- z+`%C>Rj;=?DivULg6tg}Jk$FyYUbj6<}+YCjErQtPO9~@m$kEv+%L|8 zDq*o_`KYu>xv&$~U-O_aTM~LZ6}=doXQZX$vcWiv&fw7jp|{r}rt-^WY&1dh$)HVSv7W%e9c#aaFqFf?5Jgz?^G3gutl%YMk(m!xDKXQqizIrUM;l(veR@HnmSR7 zsV}m?NVQf`w+6jV1_W>T>{=F=34qFq(TtaE4cb1~foFb^FbzjUs0yzEC8DDLLNF<- zC16u2QVWj4T98pt)9*!Dbsr#6fUu%{K>r&&qkJ)ozUSbY2$JYM;2iBv(}Uj!qegl) z*MmidBg1gk$*8Ezc&g>}|k^>s3 z0828Zrq;;~Nc#CxL6!YFCbuNm25_dHoOPJTx5R2Fs<ia=rXA&!6cdcl!_+% zUjWfqXOU`|>SzgQ8dvSi1%RCp$D+0*EtHLQ$+a(8A#K)sI~TQ#>QZgJkfzagM=~Y8 zA0R5RvKl1yzN`7B)3h`Sy0U^+GYxbSK;}BDa`vwPrfnJd6Tp9GcH{plz5(@K@)>5f Re)j+X002ovPDHLkV1k1G-hhksskFx~`qNIM3%%(ECDF(UnNafX^cGJiCsYa(FO`zfm58<#&(ZjMyl2 zVQ37tr0cD!o_h>NN)L>3srsPF#zuqg{=wccj7UCaQ@vI`he$Q&c|XIHM8F# zzqe+`NlxUN0VN{08UtA`qe`}`K4u0%`J9GoyYn*cWGjL&I;Fa&Ck%-O80h0pd~N45nwp87c+Ya4<^9C70xBy)y$^u{Z&th+2)R6!2017qLHg|nMl-{BoRA9z zf&p_crD3kM6DLZ|>{H137XBnDXlAu4INyoQtd+n=s`@8N0ld#-*&<0AhA8G$&^-$^ z5jZbvW@atOhie^rMg-=pcOR%?a@^Quk3)}pA7~*k;PMn|J&%qgJt`?QB5*ANjMAkN zR`VpQ-j|32O(_`8<&~_&!_g$VN(wQ!sVc+YPG;(O$qAHC!0mVCN+olrP^|{nB2cR1 zjLMW#kBop-_K_Q1DNCaSQDIE3r6Yy|{vx*0%s7*bCEILJNBd5ByDA1Vl=!P#6$qJ06r zcuMzbE9DgUA)Ux|CP(regW{zgKJfUFYdydRU$_^VDI$Bo&pE&Q`=u-8LBZ!EN3j!! zDpY!`a%k{CTeMP^miC_Ir8|9Es!(YuNt#IK=CuSoXBVxMw0ue-K>0o( QNB{r;07*qoM6N<$f)LiO{{R30 literal 0 HcmV?d00001 diff --git a/OsmAnd/res/drawable-xhdpi/map_action_world_globe.png b/OsmAnd/res/drawable-xhdpi/map_action_world_globe.png new file mode 100644 index 0000000000000000000000000000000000000000..5b2b24f48a270bab08da1201ca5afa6f46e0c836 GIT binary patch literal 1020 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 X;R#Wl&i~E800000NkvXXu0mjfg^$&G literal 0 HcmV?d00001 From 929127e300c9d4fa0ea88f161c2363d6120709c2 Mon Sep 17 00:00:00 2001 From: Zmicer Turok Date: Thu, 16 Jan 2020 09:00:56 +0000 Subject: [PATCH 79/82] Translated using Weblate (Belarusian) Currently translated at 94.4% (2927 of 3101 strings) --- OsmAnd/res/values-be/strings.xml | 231 ++++++++++++++++--------------- 1 file changed, 117 insertions(+), 114 deletions(-) diff --git a/OsmAnd/res/values-be/strings.xml b/OsmAnd/res/values-be/strings.xml index c858ec64e4..3e6eaa26f3 100644 --- a/OsmAnd/res/values-be/strings.xml +++ b/OsmAnd/res/values-be/strings.xml @@ -97,14 +97,14 @@ Вэб-сайт Тэлефон Запіс падарожжа - Налады запісу вашых падарожжаў. + Наладзьце запіс вашых паездак. Паказвае налады ўключэння фонавага адсочвання і навігацыі праз перыядычнае абуджэнне GPS прылады (з выключаным экранам). Усталёўка версіі Абраць выгляд дадатку. Выгляд Налады адмысловых магчымасцяў Абраць адрас - Абярыце ўлюбёнае + Абярыце ўлюбёную мясціну Мадыфікацыі OSM Слой рэльефу мясцовасці Інфармацыя GPS @@ -117,7 +117,7 @@ няма OpenMaps Еўропа Пласт з рэльефам мясцовасці - Ізалініі вышынь + Контурныя лініі Аўдыё/відэа даныя Сапраўды спыніць навігацыю? Сапраўды выдаліць пункт прызначэння (і прамежкавыя пункты)\? @@ -131,7 +131,7 @@ Убудова Dropbox Змяніць парадак Калі ласка, падумайце пра набыццё ўбудовы «Contour lines» для падтрымкі далейшай распрацоўкі. - Убудова Ізалініі вышынь + Убудова контурных ліній Выбар па запыце Запіс відэа Запіс аўдыё @@ -168,11 +168,11 @@ Убудова для стварэння аўдыё/відэа нататак падчас падарожжаў, з дапамогай кнопкі на мапе альбо праз кантэкстнае меню на любым месцы на мапе. Аўдыё/відэа нататкі частак - Ізалініі вышынь + Контурныя лініі Контурныя лініі Іншыя мапы Толькі дарогі - Ізалініі вышынь + Контурныя лініі Стандартныя мапы Мапа толькі дарог Межы @@ -238,85 +238,85 @@ OsmAnd Мапы і навігацыя Глабальная мабільная мапа і навігатар для аўтаномных і сеціўных мапаў OSM OsmAnd (OSM Automated Navigation Directions) -\n -\n +\n +\n \nOsmAnd — навігацыйны дадатак з адкрытым кодам з доступам да разнастайных даных ад OpenStreetMap (OSM). Усе даныя (вектарныя і растравыя) можна захаваць на картцы памяці для аўтаномнага выкарыстання. Таксама падтрымліваецца аўтаномная і сеціўная маршрутызацыя, уключаючы пакрокавае галасавое суправаджэнне. -\n -\n -\n +\n +\n +\n \nНекалькі асноўных магчымасцяў: -\n +\n \n - паўнавартасная праца без інтэрнэт-злучэння (захоўвае вектарныя або растравыя даныя ў памяці прылады); -\n +\n \n - кампактная вектарная мапа ўсяго свету; -\n +\n \n - спампоўванне мапаў краін або рэгіёну непасрэдна ў дадатку; -\n -\n - магчымасць адлюстравання звестак на мапе, напрыклад пласт для пракладкі маршруту або пласт з запісам GPX-следу, з POI, улюбёнымі, ізалініямі вышынь, грамадскім транспартам, дадатковымі мапамі з магчымасцю налады ўзроўню празрыстасці; -\n +\n +\n - магчымасць адлюстравання звестак на мапе, напрыклад пласт для пракладкі маршруту або пласт з запісам GPX-следу, з POI, улюбёнымі мясцінамі, ізалініямі вышынь, грамадскім транспартам, дадатковымі мапамі з магчымасцю налады ўзроўню празрыстасці; +\n \n - аўтаномны пошук адрасоў і POI; -\n +\n \n - пракладка маршрутаў па-за сецівам на кароткія адлегласці (эксперыментальная функцыя); -\n +\n \n - рэжымы для пешаходнай, аўтамабільнай і роваравай навігацыі з: -\n +\n \n - магчымасцю аўтаматычнага пераключэння дзённага/начнога адлюстравання; -\n +\n \n - аўтамаштабаваннем мапы ў адпаведнасці з хуткасцю руху; -\n +\n \n - магчымасцю арыентацыі мапы па компасе або кірунку руху, -\n +\n \n - паказам руху па палосах і абмежаванняў хуткасці, запісанае і сінтэзуемае галасавое суправаджэнне. -\n -\n +\n +\n \nАбмежаванні бясплатнай версіі: -\n +\n \n - колькасць спамповак мапаў абмежаваная; -\n +\n \n - адсутнічае пазасеціўны доступ да інфармацыі з Вікіпедыі для POI. -\n -\n +\n +\n \nOsmAnd актыўна развіваецца, яго далейшае развіццё забяспечваецца фінансавымі паступленнямі ад яго карыстальнікаў, за кошт якіх адбываецца далейшая распрацоўка і тэставанне новых функцый. Калі ласка, разгледзьце магчымасць набыцця OsmAnd+ або падтрымайце распрацоўку пэўных функцый, або зрабіце дабрачынны ўнёсак на https://osmand.net. OsmAnd+ Мапы і навігацыя Глабальная мабільная мапа і навігатар для аўтаномных і сеціўных мапаў OSM OsmAnd+ (OSM Automated Navigation Directions) -\n -\n -\n +\n +\n +\n \n OsmAnd+ — навігацыйны дадатак з адкрытым кодам з доступам да разнастайных даных ад OpenStreetMap (OSM). Усе даныя (вектарныя і растравыя) можна захаваць на картцы памяці для далейшага аўтаномнага выкарыстання. Таксама падтрымліваецца аўтаномная і сеціўная маршрутызацыя, уключаючы пакрокавае галасавое суправаджэнне. -\n -\n -\n +\n +\n +\n \n OsmAnd+ — гэта платная версія, купляючы якую вы падтрымліваеце праект, фінансуеце распрацоўку новых функцый, і атрымліваеце апошнія абнаўленні. -\n -\n -\n +\n +\n +\n \n Некалькі асноўных магчымасцяў: -\n +\n \n - поўнасцю аўтаномная праца (захаванне вектарных або растравых мапаў у памяці прылады); -\n +\n \n - кампактная вектарная мапа для ўсяго cвету; -\n +\n \n - неабмежаваная колькасць спампоўванняў мапаў асобнай краіны або рэгіёну непасрэдна ў дадатку; -\n +\n \n - магчымасць аўтаномнай працы з данымі Вікіпедыі (спампоўванне POI з Вікіпедыі) з\'яўляецца цудоўным інструментам для падарожнікаў; -\n +\n \n - магчымасць адлюстравання звестак на мапе, напрыклад пласт для пракладкі маршруту або пласт з запісам GPX-следу, з POI, улюбёнымі, ізалініямі вышынь, грамадскім транспартам, дадатковымі мапамі з магчымасцю налады ўзроўню празрыстасці; -\n -\n -\n +\n +\n +\n \n - аўтаномны пошук адрасоў і POI; -\n +\n \n - аўтаномная пракладка маршрутаў для сярэдніх адлегласцяў; -\n +\n \n - рэжымы для пешаходнай, аўтамабільнай і роварнай навігацыі з: -\n +\n \n - пераключэннем паміж дзённым і начным рэжымамі; -\n +\n \n - маштабаваннем мапы ў адпаведнасці з хуткасцю руху; -\n +\n \n - арыентацыяй мапы па компасе або кірунку руху; -\n +\n \n - паказ палос руху і абмежаванняў хуткасці, галасавое суправаджэнне \n Стварыць фільтр POI @@ -409,7 +409,7 @@ Рэжым візуалізацыі Аптымізаваць мапу для Мінімальны ўзровень маштабу з адлюстраваннем ізаліній вышынь: - Паказваць ізалініі вышынь + Паказваць контурныя лініі Адлюстроўваць больш дэталяў на мапе. Паказаць больш дэталяў мапы Даныя маршрутызацыі @@ -418,7 +418,7 @@ Пошук па адрасе Каардынаты Пошук грамадскага транспарту - Спосаб пошуку ўлюбёных + Спосаб пошуку ва ўлюбёных мясцінах Аўтаномная навігацыя OsmAnd часова недаступная. Левабаковы рух Для краін, дзе людзі ездзяць па леваму боку дарогі. @@ -437,11 +437,11 @@ Выкарвстоўваць сеціўныя мапы (cпампаваць і захоўваць фрагменты на картцы памяці). Сеціўныя мапы Наладзіць крыніцы сеціўных або кэшаваных растравых мапаў. - З дапамогай гэтай убудовы вы можаце атрымаць доступ да мноства тыпаў сеціўных мапаў (тайлавых альбо растравых), ад папярэдне створаных фрагментаў OpenStreetMap (Mapnik) да спадарожнікавых здымкаў і пластоў адмысловага прызначэння, такіх як мапы надвор\'я, кліматычныя мапы, геалагічныя мапы, пласты зацямнення вышынь і г.д. + Пры дапамозе гэтай убудовы вы можаце атрымаць доступ да мноства тыпаў сеціўных мапаў (тайлавых альбо растравых), ад папярэдне вызначаных фрагментаў OpenStreetMap (Mapnik) да спадарожнікавых здымкаў і пластоў адмысловага прызначэння, такіх як мапы надвор\'я, кліматычныя мапы, геалагічныя мапы, пласты зацямнення вышынь і г.д. \n -\nЛюбая з гэтых мапаў можа быць выкарыстана ў якасці асноўнай (базавай) мапы для адлюстравання на экране OsmAnd або ў выглядзе накладкі / падкладкі да іншай базавай мапы (стандартнай аўтаномнай мапы OsmAnd). Для таго каб зрабіць любую падкладку больш бачнай, некаторыя элементы вектарнай мапы OsmAnd могуць быць па жаданні лёгка схаваныя праз меню «Налады мапы». +\nЛюбую з гэтых мапаў можна выкарыстаць у якасці асноўнай (базавай) мапы для адлюстравання на экране OsmAnd або ў выглядзе накладкі / падкладкі да іншай базавай мапы (стандартнай аўтаномнай мапы OsmAnd). Для таго, каб зрабіць любую падкладку больш бачнай, некаторыя элементы вектарнай мапы OsmAnd можна лёгка схаваць праз меню \"Наладзіць мапу\". \n -\nТайлавыя мапы могуць быць атрыманыя непасрэдна з дапамогай сеціўных крыніц або могуць быць падрыхтаваныя для выкарыстання ў аўтаномным рэжыме (і ўласнаручна скапіяваныя ў каталог даных OsmAnd) як база даных SQLite, якую можна атрымаць з дапамогай розных інструментаў падрыхтоўкі мапаў іншых вытворцаў. +\nТайлавыя мапы можна атрымаць непасрэдна з сеціўных крыніц або можна падрыхтаваць для выкарыстання ў аўтаномным рэжыме (і ўласнаручна скапіяваць у каталог даных OsmAnd) як базу даных SQLite, якую можна атрымаць пры дапамозе розных інструментаў падрыхтоўкі мапаў іншых вытворцаў. Убудова дадае падтрымку дадатковых магчымасцяў непасрэдна ў OsmAnd. Гэта палягчае, напрыклад, рэгуляванне хуткасці вымаўлення для голасу TTS, наладку накіраванасці экрана навігацыі, кіраванне маштабам пры дапамозе трэкбола або выкарыстанне галасавых загадаў зваротнай сувязі для аўтаматычнага агалошвання вашага месцазнаходжання. Убудова адлюстроўвае параметры для распрацоўкі і адладкі функцый, такіх як, праверка або мадэляванне маршруту, адлюстраванне прадукцыйнасці адмалёўкі, праверка галасавых падказак. Гэта налады для распрацоўшчыкаў і не патрэбныя звычайнаму карыстальніку. Убудовы @@ -552,7 +552,7 @@ Галасавыя падказкі (TTS, пажадана) Вікіпедыя (пазасеціўная) Вызначанае карыстальнікам - Файл з экспартаванымі ўлюбёнымі ўжо існуе. Замяніць яго\? + Файл з экспартаванымі ўлюбёнымі мясцінамі ўжо існуе. Замяніць яго\? Налады профілю Навігацыя Вызначыць параметры навігацыі. @@ -602,7 +602,7 @@ Вызначэнне становішча… Маё становішча (знойдзена) Адрас… - Улюбёныя… + Улюбёныя мясціны… Нявызначана Цяперашні цэнтр мапы Пачатак: @@ -615,7 +615,7 @@ Адправіць у OSM Паказаць больш дэталяў мапы Паказаць некаторыя дэталі вектарнай мапы (дарогі і іншыя) на меншым маштабе. - Улюбёныя пункты выдаленыя. + Улюбёныя мясціны выдаленыя. Вы збіраецеся выдаліць %1$d улюбёных і %2$d груп улюбёных. Вы ўпэўненыя\? Дом Сябры @@ -750,7 +750,7 @@ \nНавігацыя часова пераключаецца на сэрвіс CloudMade. Вызначаны каталог не знойдзены. Каталог захоўвання даных - Усе аўтаномныя даныя ў старой усталяванай праграме будуць падтрымлівацца новай, але ўлюбёныя пункты патрэбна экспартаваць са старой версіі і імпартаваць у новую. + Усе аўтаномныя даныя ў старым усталяваным дадатку будуць падтрымлівацца новым, але ўлюбёныя мясціны патрэбна экспартаваць са старой версіі і імпартаваць у новую. Зборка {0} ўсталяваная ({1}). Спампоўваецца зборка… Усталяваць OsmAnd - {0} з {1} {2} МБ? @@ -807,10 +807,10 @@ Абраць выроўніванне мапы. Арыентацыя мапы Падрабязнасці маршруту - Улюбёныя імпартаваныя - GPX-файл з улюбёнымі не знойдзены ў {0} - Улюбёныя захаваныя ў {0} - Улюбёныя месцы для захавання адсутнічаюць + Улюбёныя мясціны паспяхова імпартаваныя + GPX-файл з улюбёнымі мясцінамі не знойдзены ў {0} + Улюбёныя мясціны захаваныя ў {0} + Улюбёныя мясціны для захавання адсутнічаюць Не атрымалася загрузіць GPX Даслаць справаздачу На картцы памяці не атрымалася знайсці спампаваных мапаў. @@ -925,7 +925,7 @@ Спампоўваецца спіс даступных рэгіёнаў… Не ўдалося атрымаць спіс рэгіёнаў з https://osmand.net. Улюбёны пункт быў зменены - Улюбёныя месцы адсутнічаюць + Улюбёныя мясціны адсутнічаюць Замяніць Паказаць маршрут Запуск суправаджэння @@ -1023,13 +1023,13 @@ Скрыжаванне Абнавіць мапу Стварыць POI - Увядзіце назву ўлюбёнага + Увядзіце назву ўлюбёнай мясціны Улюбёнае - Улюбёны пункт «{0}» дададзены. - Рэдагаваць улюбёнае - Выдаліць улюбёнае - Выдаліць улюбёны пункт «%s»\? - Улюбёны пункт {0} выдалены. + Улюбёная мясціна \"{0}\" паспяхова дададзеная. + Рэдагаваць мясціну + Выдаліць мясціну + Выдаліць улюбёную мясціну \"%s\"\? + Улюбёная мясціна {0} выдаленая. Пароль OSM (неабавязковы) Паведамленне Імя аўтара @@ -1118,13 +1118,13 @@ Выкарыстаць паказаны след для навігацыі? Маршрутная інфармацыя Аддаваць перавагу аўтамагістралям - Пазбягаць платных дарог + Без платных дарог Пазбягаць платных дарог - Пазбягаць грунтовых дарог - Пазбягаць грунтовых дарог. - Пазбягаць паромных перапраў - Пазбягаць перапраў - Пазбягаць аўтамагістраляў + Без грунтавых дарог + Пазбягаць грунтавых дарог + Без паромных перапраў + Пазбягаць паромных перапраў + Без аўтамагістраляў Пазбягаць аўтамагістраляў Абмежаванне вагі Пазначыць дазволеную вагу аўтамабіля на маршрутах. @@ -1150,7 +1150,7 @@ Навігацыйныя знакі ўсяго свету Плацяжы Bitcoin ўсяго свету Дадаць наступным пунктам прызначэння - Абраць месца прызначэння + Вызначыць пункт прызначэння Налады маршруту Пазасеціўны разлік маршруту ў OsmAnd Налады навігацыі @@ -1182,18 +1182,20 @@ Паўтараць навігацыйныя інструкцыі праз рэгулярныя прамежкі часу. Паўтараць навігацыйныя інструкцыі Абвяшчэнне прыбыцця - Гэтая ўбудова паказвае як ізалініі вышынь, так і рэльеф на стандартных мапах OsmAnd. Гэтыя магчымасці спатрэбяцца спартоўцам, турыстам, падарожнікам і ўсім, хто цікавіцца структурай рэльефу мясцовасці. + Гэтая ўбудова паказвае як контурныя лініі, так і рэльеф на стандартных мапах OsmAnd. Гэтыя магчымасці спатрэбяцца спартоўцам, турыстам, падарожнікам і ўсім, хто цікавіцца структурай рэльефу мясцовасці. \n \nГлабальныя даныя (паміж 70 ° на поўначы і 70 ° на поўдні) грунтуюцца на вымярэннях SRTM (Shuttle Radar Topography Mission) і ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer), даных інструменту візуалізацыі Terra, флагманскага спадарожніка сістэмы назірання Зямлі ад NASA. ASTER — гэта вынік сумеснай працы NASA, міністэрства эканомікі Японіі, міністэрства гандлю і прамысловасці Японіі (METI), агенцтва касмічных сістэм Японіі (J-spacesystems). - "Гэтая ўбудова паказвае як ізалініі вышынь, так і рэльеф на стандартных мапах OsmAnd. Гэта, магчыма, спатрэбіцца спартоўцам, турыстам, падарожнікам і ўсім, хто цікавіцца структурай рэльефу мясцовасці. (Звярніце ўвагу, што даныя вышынь і рэльефу асобныя, дадаткова даступныя да спампоўвання, пасля актывацыі ўбудовы.) + Гэтая ўбудова паказвае як контурныя лініі, так і рэльеф на стандартных мапах OsmAnd. Гэта, магчыма, спатрэбіцца спартоўцам, турыстам, падарожнікам і ўсім, хто цікавіцца структурай рэльефу мясцовасці. (Звярніце ўвагу, што даныя вышынь і рэльефу асобныя, дадаткова даступныя да спампоўвання, пасля актывацыі ўбудовы.) +\n \n -\nГлабальныя даныя (паміж 70 ° на поўначы і 70 ° на поўдні) грунтуюцца на вымярэннях SRTM (Shuttle Radar Topography Mission) і ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer), даных інструмента візуалізацыі Terra, флагманскага спадарожніка сістэмы назірання Зямлі ад NASA. ASTER — гэта вынік сумеснай працы NASA, міністэрства эканомікі Японіі, міністэрства гандлю і прамысловасці Японіі (METI), агенцтва касмічных сістэм Японіі (J-spacesystems)." +\n +\nГлабальныя даныя (паміж 70 ° на поўначы і 70 ° на поўдні) грунтуюцца на вымярэннях SRTM (Shuttle Radar Topography Mission) і ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer), даных інструмента візуалізацыі Terra, флагманскага спадарожніка сістэмы назірання Зямлі ад NASA. ASTER — гэта вынік сумеснай працы NASA, міністэрства эканомікі Японіі, міністэрства гандлю і прамысловасці Японіі (METI), агенцтва касмічных сістэм Японіі (J-spacesystems). Як хутка вы хочаце чуць паведамленне аб прыбыцці? Улюбёныя мясціны, якімі падзяліліся праз OsmAnd Разлічыць маршрут паміж пунктамі дзён Злучэнне - Захаваць даныя як GPX-файл альбо імпартаваць пункты ва ўлюбёныя\? + Захаваць даныя як GPX-файл альбо імпартаваць пункты ва ўлюбёныя мясціны\? Ружовы Карычневы Выбар колеру @@ -1226,15 +1228,15 @@ \nДоўга ўтрымлівайце, каб убачыць на мапе" Аўтаматычна пачаць навігацыю Перапад вышынь: %1$s - Захаваць як групу ўлюбёных - Абярыце прызначэнне + Захаваць як групу ўлюбёных мясцін + Вызначыць пункты прызначэння Назвы POI-накладкі Паказваць кнопкі маштабавання Паказваць кнопкі маштабавання падчас навігацыі. Сартаваць паводле адлегласці Сартаваць паводле назвы - GPX-файлаў не абрана. Абраць працяжным націскам. - Абраць для паказу + Абярыце GPX-файл працяжным націскам. + Абярыце след Спамповак не знойдзена. Калі ласка, праверце вашае злучэнне з Інтэрнэтам. Будынкі Не аўтамабільныя дарогі @@ -1291,11 +1293,11 @@ Прагляд мапы Аўтамабіль Ровар - Пешаход + Пешшу Спампаваць мапы, што адсутнічаюць, %1$s (%2$d МБ)\? Пункты шляху Дарожныя папярэджанні - Улюбёныя месцы паблізу + Улюбёныя мясціны паблізу Навакольныя POI Усе Паездкі @@ -1324,10 +1326,10 @@ Памер тэксту Дапушчальнае значэнне перавышэння хуткасці Абярыце дапушчальнае значэнне перавышэння хуткасці, пры якім вы атрымаеце галасавое паведамленне. - Назва ўлюбёнага месца была змененая на \"%1$s\" для магчымасці захавання радка з эматыконам ў файл. + Назва ўлюбёнай мясціны была змененая на \"%1$s\" для магчымасці захавання радка з эматыконам ў файл. Паказаць маршрут - Дубляванне назвы ўлюбёнага месца - Назва ўлюбёнага месца была змененая на \"%1$s\", каб пазбегнуць паўтарэння. + Дубляванне назвы ўлюбёнай мясціны + Назва ўлюбёнай мясціны была змененая на \"%1$s\", каб пазбегнуць паўтарэння. Націсніце на любы элемент спіса для прагляду больш падрабязнай інфармацыі, доўга ўтрымлівайце, каб змясціць у архіў ці выдаліць. Дзейныя даныя прылады (%1$s вольна): Ананімны карыстальнік Вы ўвайшлі як %1$s @@ -1479,7 +1481,7 @@ Запомніць выбар Абнавіць Спампаваць - Спампоўваецца… + Спампоўванне… Спампаваная Памылка ўводу/вываду Нечаканая памылка @@ -1490,9 +1492,9 @@ Паказаць усе Паказаць на мапе Мапа - Улюбёнае - Улюбёныя - Дадаць ва «Улюбёныя» + Улюбёныя мясціны + Улюбёныя мясціны + Дадаць ва ўлюбёныя мясціны Мае мясціны Аўдыё Відэа @@ -1526,7 +1528,7 @@ Змяніць назву не атрымалася. д. таму абнаўлялі Дата выпуску - Улюбёныя + Улюбёныя мясціны Ачысціць гісторыю\? Задайце час затрымкі на экране планавання маршруту. Пачаць пакрокавае суправаджэнне праз… @@ -1710,8 +1712,8 @@ %1$s спамповак засталося Вікіпедыя Дарогі - Звесткі пра ўлюбёнае - Дадаць улюбёнае + Звесткі пра ўлюбёную мясціну + Дадаць ва улюбёныя Запіс падарожжа Навігацыя Працуе ў фоне @@ -1731,7 +1733,7 @@ хв/м хв/км м/с - Ізалініі вышынь выключаныя + Контурныя лініі выключаныя Спампоўваецца - %1$d файл Паказваць банер бясплатнай версіі нават у платнай версіі. Паказваць банэр бясплатнай версіі @@ -2041,7 +2043,7 @@ Пачаць Паліўна-ашчадны маршрут Разлічвае паліва-ашчадны маршрут (звычайна найкарацейшы). - Вы сапраўды хочаце замяніць улюбёнае %1$s\? + Вы сапраўды хочаце замяніць улюбёную мясціну %1$s\? Абнавіць усе мапы зараз? Ачысціць кэш сеціўных мапаў Не правяраць новыя версій і зніжкі ад OsmAnd. @@ -2151,14 +2153,14 @@ Дадаць пункт да следу Дадаць дзеянне Рэдагаваць дзеянне - Дадаць улюбёнае + Дадаць ва ўлюбёныя Дадаць дзеянне Выдаліць дзеянне Сапраўды выдаліць дзеянне \"%s\"\? Месца - Паказаць/схаваць улюбёныя - Паказаць улюбёныя\' - Схаваць улюбёныя + Паказаць/схаваць улюбёныя мясціны + Паказаць улюбёныя мясціны + Схаваць улюбёныя мясціны Паказаць/схаваць POI Паказаць %1$s Схаваць %1$s @@ -2334,7 +2336,7 @@ Схаваць OSM-нататкі Пераключальнік адлюстравання OSM-нататак на мапе. Адсартавана па адлегласці - Пошук ва ўлюбёных + Пошук ва ўлюбёных мясцінах Убудова Набудзьце і ўсталюйце ўбудову \"Контурныя лініі\" для адлюстравання градыентаў вертыкальных абласцей. Каляровая схема @@ -2355,9 +2357,10 @@ \n• Адаптуе мапу ў напрамку вашага руху (ці компаса) \n• Паказвае, дзе вы знаходзіцеся і куды вы глядзіце \n• Дзяліцеся сваім месцазнаходжаннем, каб сябры змаглі знайсці вас -\n• Захоўвае вашы самыя важныя месцы ва «Ўлюбёных» +\n• Захоўвае вашы самыя важныя месцы ва ўлюбёных мясцінах \n• Дазваляе вам абраць як адлюстроўваць назвы на мапе: на англійскай мове, мясцовай мове, ці фанетычным напісаннем -\n• Адлюстроўвае адмысловыя сеціўныя тайлы, спадарожнікавыя здымкі (з Bing), розныя адзнакі, як турыстычныя/навігацыйныя GPX-сляды і дадатковыя пласты з наладжваемай празрыстасцю +\n• Адлюстроўвае адмысловыя сеціўныя тайлы, спадарожнікавыя здымкі (з Bing), розныя адзнакі, як турыстычныя/навігацыйныя GPX-сляды і дадатковыя пласты з наладжваемай празрыстасцю +\n Язда на ровары \n • Вы можаце знайсці роварныя шляхі на мапе \n • GPS-навігацыя ў роварным рэжыме будуе маршрут выкарыстоўваючы роварныя шляхі @@ -2527,7 +2530,7 @@ Дадаць лінію Дадаць GPX-файлы Імпартаваць GPX-файлы ці запісаныя сляды. - Дадаць улюбёныя + Дадаць улюбёныя мясціны Імпартаваць улюбёныя ці дадаць з адзнак на мапе. Імпартаваць GPX-файл Файл %1$s не змяшчае пункты шляху, імпартаваць як след\? @@ -2598,7 +2601,7 @@ Назад Праглядзець Пункты шляху дададзеныя ў адзнакі мапы - могуць быць імпартаваныя як «Улюбёныя» ці як GPX-файл. + могуць быць імпартаваныя як улюбёныя мясціны ці як GPX-файл. Імпартаваць як GPX-файл Імпартаваць як улюбёныя Імпартаваць файл @@ -2612,15 +2615,15 @@ Змяніць назву адзнакі Два Адзін - Абярыце катэгорыю ўлюбёных, каб дадаць у адзнакі. + Абярыце катэгорыю ўлюбёных мясцін, каб дадаць у адзнакі. Пункты следу - Катэгорыя ўлюбёных + Катэгорыя ўлюбёных мясцін Дадаць групу - Імпартаваць групы з улюбёных ці GPX-пунктаў. + Імпартаваць групы з улюбёных мясцін ці GPX-пунктаў. Стварыце адзнакі на мапе! Дакраніцеся да патрэбнага месца, а потым націсніце кнопку адзнакі. Імпартаваць групы - Імпартаваць групы ўлюбёных ці пункты шляху як адзнакі. + Імпартаваць групы ўлюбёных мясцін ці пункты шляху як адзнакі. Адзнакі, пазначаныя як пройдзенныя, з\'явяцца на гэтым экране. Паказвае лініі накірунку ад вашага становішча да актыўнай адзнакі. Паказвае адну ці дзьве стрэлкі, якія паказваюць накірунак да актыўных адзнак. From d8c8c8ff1bcb3bedf3b42fc64f5fd8023a68b2bb Mon Sep 17 00:00:00 2001 From: Viktar Palsciuk Date: Thu, 16 Jan 2020 11:14:19 +0000 Subject: [PATCH 80/82] Translated using Weblate (Belarusian) Currently translated at 94.4% (2927 of 3101 strings) --- OsmAnd/res/values-be/strings.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/OsmAnd/res/values-be/strings.xml b/OsmAnd/res/values-be/strings.xml index 3e6eaa26f3..b19bce1b0c 100644 --- a/OsmAnd/res/values-be/strings.xml +++ b/OsmAnd/res/values-be/strings.xml @@ -1132,7 +1132,7 @@ Капіяванне даных OsmAnd у новае месца (%s)… Капіяванне даных OsmAnd… Грузавік - Задайце хуткасць вымаўлення для TTS. + Задайце хуткасць вымаўлення для text-to-speech. Хуткасць вымаўлення Адключыць складаную маршрутызацыю Адмалёўка мапы @@ -1831,9 +1831,9 @@ Доступ з мапы Выдаліць пункт шляху GPX\? Рэдагаваць пункт шляху GPX - Пазбягаць лесвіц + Без лесвіц Пазбягаць лесвіц - Пазбягаць перасячэння меж + Без перасячэння меж Выкарыстоўваць панэль кіравання Панэль кіравання ці меню Калі ласка, ўвядзіце правільны тып POI або мініце яго. From 1c801a57d2e0e2b16f432c5c46e6df7c1c867109 Mon Sep 17 00:00:00 2001 From: xmd5a Date: Thu, 16 Jan 2020 16:09:57 +0300 Subject: [PATCH 81/82] Add phrases --- OsmAnd/res/values-ru/phrases.xml | 14 ++++++++++++++ OsmAnd/res/values/phrases.xml | 16 ++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/OsmAnd/res/values-ru/phrases.xml b/OsmAnd/res/values-ru/phrases.xml index c431149358..d9f3e4afb5 100644 --- a/OsmAnd/res/values-ru/phrases.xml +++ b/OsmAnd/res/values-ru/phrases.xml @@ -3644,5 +3644,19 @@ Сеть Парковочное место + Шлаковый конус + Стратовулкан + Щитовой + Маар + Калдера + Лавовый купол + Грязевой + Последнее извержение + Потухший + Спящий + Активный + Неактивный + Число извержений + \ No newline at end of file diff --git a/OsmAnd/res/values/phrases.xml b/OsmAnd/res/values/phrases.xml index 349b9b43a4..989b50f5d7 100644 --- a/OsmAnd/res/values/phrases.xml +++ b/OsmAnd/res/values/phrases.xml @@ -129,6 +129,8 @@ Cash withdrawal Type Open air + Type + Status Store @@ -4161,4 +4163,18 @@ URL + Scoria + Stratovolcano + Shield + Maar + Caldera + Lava dome + Dirt + Last eruption + Extinct + Dormant + Active + Inactive + Number of eruptions + From 8f52d725244105fac778d2fe8f82dca3d016bdb3 Mon Sep 17 00:00:00 2001 From: Dmitry Date: Thu, 16 Jan 2020 15:16:24 +0200 Subject: [PATCH 82/82] Modify map location icon color --- .../map_bicycle_location_center.png | Bin 1011 -> 1028 bytes .../drawable-hdpi/map_car_bearing_center.png | Bin 951 -> 955 bytes .../drawable-hdpi/map_car_location_center.png | Bin 879 -> 882 bytes .../map_default_location_center.png | Bin 566 -> 576 bytes .../map_nautical_bearing_center.png | Bin 752 -> 771 bytes .../map_bicycle_location_center.png | Bin 674 -> 717 bytes .../drawable-mdpi/map_car_bearing_center.png | Bin 688 -> 708 bytes .../drawable-mdpi/map_car_location_center.png | Bin 589 -> 619 bytes .../map_default_location_center.png | Bin 378 -> 387 bytes .../map_nautical_bearing_center.png | Bin 499 -> 505 bytes .../map_bicycle_location_center.png | Bin 1380 -> 1422 bytes .../drawable-xhdpi/map_car_bearing_center.png | Bin 1211 -> 1214 bytes .../map_car_location_center.png | Bin 1147 -> 1161 bytes .../map_default_location_center.png | Bin 798 -> 811 bytes .../map_nautical_bearing_center.png | Bin 1020 -> 1013 bytes .../map_bicycle_location_center.png | Bin 2155 -> 2209 bytes .../map_car_bearing_center.png | Bin 1984 -> 1999 bytes .../map_car_location_center.png | Bin 1774 -> 1867 bytes .../map_default_location_center.png | Bin 1371 -> 1383 bytes .../map_nautical_bearing_center.png | Bin 1611 -> 1618 bytes .../map_bicycle_location_center.png | Bin 3074 -> 3090 bytes .../map_car_bearing_center.png | Bin 3031 -> 3042 bytes .../map_car_location_center.png | Bin 2614 -> 2657 bytes .../map_default_location_center.png | Bin 2030 -> 2039 bytes .../map_nautical_bearing_center.png | Bin 2263 -> 2263 bytes 25 files changed, 0 insertions(+), 0 deletions(-) diff --git a/OsmAnd/res/drawable-hdpi/map_bicycle_location_center.png b/OsmAnd/res/drawable-hdpi/map_bicycle_location_center.png index 189087522df3a455b8b282bd6f3f445aa1634c42..fa9db76c8003c141d11393ffc5cae302aaf210ba 100644 GIT binary patch delta 1006 zcmVyrhX3clicL5HZo;1S1SB^oCxD)y?XEPL zX*z=oyQU{-IYG+_8cxu%C#g9B*^~{~kCB>WN+yjZOEO`2-ddKQKL796lVpNiO9_zh zSx!Iz6(~di2_QEU5e12YL_ux@L_u!+#DhdZq98W{q98YZ;(tM+AW@JT0a1_}Kk=Yd zRZzUgaa6-50WX-*q6l>`>N;M+m>DTCQYL)PGhCz}D0S09xu+{vP;;N(fbbeX%O+$7 zu8DCnJfbt3=Um%X1}NU+R#d|&0kLDyDHw-UfeH>N-r;)m1P27{ID+}(aR&PNEe_K@ zjeYhz-&asT6MvsMCty9$Akr*DJET7a12lni=^>?x*an3Z1kfa{t}1||;VA>pZ_y5s zZb1MwI(+QgbBbi7JZY5BZc#hi``!UfrtwqTKzy_(Li_7G8u;jI+J|>QjSk;bm0Alx zq{D>PRu)ic^$^BjTrlICE~Fz}U9Xn{&Dio;BY9O&qkqH7n9Zkj1t!PtLjzL4nRE?h zQ(O*)3AKHx$QvLvt=DR}u?Wm)dM;BgWZ^%hXPRc0zZcc9@Wtv3co41uTFHKAUlh0i_MpVj@_*6l?7B4UthnS2}ppWsF+gj}qE2 zNyVZz-croMK-K<)^>V;!ns=B8g3V%Qx444%BuD10R6# z(dU_$i62!CXd2Y)7d*mCX2g1{xa{|Z-ASZyF0N6#!ASNdWQP{rEB?-YURL0N#OU4ve{Myo4(ZkbsZ?_=0lfh+1FM--Ta=D~KD59|8W5L2{9f2^SB!5u_aXmV9TGBHxwE5VChQJ3+ zM^Go!iEC0S5(6|kTV2`@%x-zkwOx4HuTuSTs7B9A4p1XXcgnkV!QYY@3!^{zqfDQqyn!8LR+{ia1 zUZKc#&&0cSo5Rsm31a?}nSqI*%l~f2f!i&opy&*Y^PxrYYY?qEff+aF?r+oPC<k`{e??bJ>n^LLxi^$x?ox_lo0bC?OezfC#5}T3@9!8 zJb$YkJH1`>qR9z<^;iCxvQOqkS~xU6^5Brtf?=idUTV+t(2T@Qda{$O%KD<*689wL zJzV!&A=2vh9D)NH`%=CN#RCtO6ELkw7YHBAhr$5e0mZzY!@y4f`XpKNGMj|(PTHo! zF{tq;cz6p&6(v;fe1gZEe)p3?IsdOd!B%sDI190br`Rk^+GPw1$UsX0DIk}Gx*w|w zQU$4k{0OLm{P?K{se)8NegsrOe*DyfR6(jBKLV;CKYr>#27Z44fi!zqFbemw00000 LNkvXXu0mjf_vFgR diff --git a/OsmAnd/res/drawable-hdpi/map_car_bearing_center.png b/OsmAnd/res/drawable-hdpi/map_car_bearing_center.png index a64378bdf41e3e29898cd3effb09084582983941..eee499e1f45f9d1a28a45e31fe51e104e079f36d 100644 GIT binary patch delta 850 zcmV-Y1FihG2fGK5Bxiz2L_t(|UhSH(P83lThW|5bp|)FTiNsiFV!Is=0Po;y5Fs%! zKw_elBtC$pjV(|DF&3LZvjag3goHo^F03qb%pDd(7IbIsxpU{v>c-uP>tVqlVh zW3v-4=%6>;3AH+PYGC=S zkND>T9p}83%Kds~c+aM}c@beAj0sQ*@aE^lfQ*1m2Ckqn)|s)kyFgc9e{1;34A0#A z*eow1!4m?e{=>q++hoH2^|p=}>t_kp>Skj;cr!dn4AXm41Uwog69aJsbc~e)8)Ir< ztu8|*7d+E@_b)M*!M!=gGdHhl~iGPy0d~G9q{-*%!=^ z5yLClzEX#b7+xs$l`&+TzzfX2Ohe|J@kM&d;{;x)_Kh4e3EoT28=b)m+`eIszX5!r z1YdU+Xlc~Z+P{A84Bo)L`H1n{ocGyYkf&UafzJTG?at8$+cllRe=|?jIKiu|2c@<}CKAE|3=+s&L4cmY{wEZYKMYXGck9zG?Ew$!q_V2j}eV4VSG zEZZ{M(%hu6tif3Qe|3b|m1Tv%E6uv0@=v>ruyTHg)gpm8+qNZGS6KPmbf9S4db7?$ z`Fn-u!8)(y?-gD_)|FQN-rza6E`aj)2G5aoL6yH3cw*}UEq^cYEUgQ^{0oPd)4EEP zf8p>lSy$2WFBIO0*J>+Y{)NK(`$9M41qiKlu^N?sq3{OBGVIr{)iwz@^>OTDb5p)D zx&OBvpXOE)p@j(D#w9k2KKAhi!e*V^@N5>TYewM-zFCElkt-%CJOKegRLxU(0s?}l cnkRtw2Y3arZZe)mr2qf`07*qoM6N<$f}wSv+5i9m delta 861 zcmV-j1ET!92e${1B!7NML_t(|UhSH{P83lT#=o;mw!o4~TUTSDi7lNE0Po;y(BLL2 zR7%MkSlZYEB@kn=2^8+IQ47LWRQ$_=GsoP!!60s6=AJuu?o7^hB>U|he*Ert*gHee zmoou!PHGSePauK9Q+NUbf~cCO@B{<|Q8iED2?z+HYM#Oq5R-fZ8GnU@$4lLLwDHoe z*+HL{hdYAxYaK0Q9xrznL9_ty9Dp%Er(iw?Q-U^cP;YoxYZ?VFJ~uq>J(>kSSVP87 z0lc#7FpoeqK#LOlbBaTBcmo$R39WuVE_f}qdwYI(OV8%eNmr1u0cQZ-e4PLop@ltw zCeSkM;CH%Bt3M`S8-Mu94bO`9rn`m=j{z*+!NS1XLkmZLw>7YXtC{Vl*;ou-@5urf zi%2umeGhZUl%S0Pm`0Oroh9hdc2kB-L3pP3X5Z(q?>1MntrN5`Xwr}=1kY~W;`aRu zvOz<}0iLsc(`>BukSPq$i+%r>Wi5w{BRp^RO`AEj88S}rN`JDic0)!0uT=YLF=U+K z1+p*dAtQtr(7p(Vj0j#u_C+&fJix2ezDkFT7+ys71s^h=;6-I$&LPwOB0c5t0xw$o z?i(_f=?BSqqepmA+jkq|CBUD+^p)NX*K-`LO?`_uc-FqQ`Wy;h&OF^E5d z=^MQresuj{Z-4OYU9}FqE^tuldd-5Iz31{1paT%bxWYQE9Q0j3&>y^bts8@IfDFIT zrXzsQks?8wZA$vi0QUkfPV0CC&>o0J*0PKTXmcO9*rndlxvOnAbAI5(W8E0QK8W@$ zFk_j$iHZhP_oDQ%&1mVfxNtQ>fiS$C`ajb%iez}Z%r zz`SkS3al%w{9QUwv~9!vUsrzl2Za~Fx}fDB7G61BS6TT7gXiD6>dQYIJU`Y&RsKQX z$*qgC{KLR=vo8AbFCAV%>uOd0<-^NmT|LXcRCs*%W3{y}|8n77KhVwm0*v{|V$CW4 zQsG%t*Dnt?W;_R?(-6l#F27W$OyTdgc4*8P^T?dY?v{P*6AFaOI)&l6EYj4B!V~;u n6_JZFA5Y;42neETo&eq-rEQmP4rnaQ00000NkvXXu0mjfPnVxv diff --git a/OsmAnd/res/drawable-hdpi/map_car_location_center.png b/OsmAnd/res/drawable-hdpi/map_car_location_center.png index 6bcc605ba3174bdd2a60c7bc4196df747fa525ef..3fe4224e0c7008c16804d97cdc856663f92d38d6 100644 GIT binary patch delta 859 zcmaFQ_K9tRO1-70i(^Pd+}l~cMVB1}TH{Y2?dsjxn6tTk4#RJ@hb%|bJ2rD~TV1d! zAVK^&i=n!Qh2t5{2HQd|YOD(Vf-^1kk5u+X#-J}_BRO7G5D&IMWR`b(1i zruF#vNU@eox~liSy3pZs?jNo9E-JT#7k+%J%d48Bo72I(s;nYrO7>bt!B)o5Z(m*`WrPYidbHbXF~EFsr{EHT~*QGsRWg zDt%Js*6WIVH27R@&-KFL(2N<~p>dxNe7+R(`JMc+;~(a@^vNVOd|5DKVR!AXs~yQ9 zOD=6l;+pk7Wqajm%S-<>B_-<4y(^A+j)-Xan@1$ zL$3tOH?mHQn*KXMM%*hSY?_#^pB3|y?>pZ7ZCcqWIyJVZ{*fl%znPo*71y^O*8Owb zbjg+kiN{N?%uK&K3269hHiLIzzk26Y_$0*~v%gsUFl_bf0=^8%9k*+aOu6@I!@hq` zEz3$8KjiZTN-U^e&?hf&pgo~x!kWrlLDeTlUAK9*-Ab!u?f=juSvN~7a&Oc01g927 z=J?6(J36cWpA_A*Md;hRopOEUyKUjX)EeSg#sb8DOxSR- cQ$PG>4%)^Mp&NVjJ_8VVy85}Sb4q9e0JpQ0d;kCd delta 856 zcmV-e1E>7*2JZ%tB!4zZL_t(|UhSG+ZrVT)#=ikqed!;11EM%m-`bp@;RfjmT27GU z9RkF851b(M1ZhtIJwej9N;SegL8+Rz0#n%#D}0E*J;Y4OrNoH@ME zz^}&@8|h{TP{TbF_nagl70{-Zf0WcM?f2q<=F9kb+JT7lXH@9a?~BBm2eANXdze{j z-6O#Pd4sLo0@|p0Vk%UX+#`u9h->bpy(N8RUG&NGD}O8Z&gxxk{%$pt8kkX>$CEPE zhTn~1NP7_1-EgOTCNU_17)Rv!ZGkutOEIpy7XbDp24xB6AZ75>AR0(DMJ5HN_GD z)i?Qyv41c&!WEtPyAtUtmtwV@E+{%{&O`e|o-eZHkOQO}#e@`_m2vX%s!?>dq>f?5 z6f|GSda27f(g`W(KjF}X0Yx>h%^a4+pmTiOF;medSF@ZSm_>l10wKaw+dz|5k9dmR z5aHwPHkb}FCB)pJ(}8SpQrd%JKw;VEiPOvObbpZp{F?0kGi9GB)wFP!oIutgg#|;$ zc`LQ&d1ywW%ltz>5LH>96`SIo#N5I4q-i6qZqLIypxBq9dqLBNdCiOiFjb`sgn!G2 z%mCd1#eA@af%gIWAX)QDHVNUK^eR6XgNm=<;SCsN6i~i%1&=wr_Y*?-@?TxSO9L?v zeNi({u{=yV%@`C=0xbokfYKz?{l2OoRgfykjDRZ0jGuatDo7P%MnDy0#!o#+6{HF> iBcKX0Af4WMvka?-|qmA>l)!?>VovM-w$X92urIY<@EBmL}h&=+99P z!v4INrqD2H-JPc~tJg5|sZU?_cky!l51URgT2?ROIL})3d)raJjnP|Or!sq;TgrKG zFTVoEt;vm&RadLTLisZGE88X)JiNS~u2o#%D=jj)Z%e`hr(It*70WCQ zPYc-<5E!u2vC#k3MIL=S+vx7StDY|ens4A49&&KB!Pr@EdM$pz`Gps2w{2c``+{F#)YpO?w<-;q!)8Y`+;Vb$ma*eGo5x#eH^qZG zzi)FmypHAG-rQi88^H6t>AwDD1*s?Le9pTR%;OB>Ha4wF$ytmiOmPPP{&M-4D$lk% SW>&zI!QkoY=d#Wzp$P!F-}HI_ delta 542 zcmX@WvW;beay{c;PZ!6KinzDa9sLdk2(+aK?J~J2oiO2us@y^82b?X^FXWOq-+g5J z!dArGui!1L`i*T?N#rcUOjX5;m!3=4tUoqiwK8~F{QjRajUH~E%+P#3kBK29nS+6G zf}Tr)08f*n6_bI-aehgb=7b4-3_O=UI^E)itXA*7d6VMzRyTK7pIsp2W1#%#;P<^=K8_Y2IZsI|bo$+% zlFsk)C)4-p<0&moAMS{&=r^2sn6tpsDYNca`N`b}L*9Jtkau`|Zco)3E#I!nT~hD9 zzN_cednOZ*dH&bc1>4uVU-~*RyZa8aROzoHHTkR^6(=q~zp?Jxx>L*xCU?xpTXRcv z)`z#=DWTbsEDpZWBB^&|1y0_1)yP(K@M2aXQ1r>Y1xc1Udn3O}Z|RGD?|hC?R9|Ru zo{!FS`(~B@kMs92gzQVQxt4!1x_i;`+*{p_tSWozv##(5FlNqmzxr6saOuyjub&p| zF3xAmH4kh$RpoL=dtbVr##u4DgE_ylSr$}X|1+0i!7|;he=!?=r%JFizd7URAzgI1 zBk>4N=t>K=W?*<<5^Qj^sym?olr3QahPb>D2Qa*486}oHZU;t&frmQ-+shw{Fs0&F Zb@F|FwVqxt#kClKz|+;wWt~$(696q9?$iJP diff --git a/OsmAnd/res/drawable-hdpi/map_nautical_bearing_center.png b/OsmAnd/res/drawable-hdpi/map_nautical_bearing_center.png index 9e9d79e0c20d43a59ff78add44e9a2280db0e763..3b3ed315cdc128c9e074ba8ceaad2a7d320b5c2a 100644 GIT binary patch literal 771 zcmeAS@N?(olHy`uVBq!ia0vp^{vgc31|(OR%xGg^U^?aL;uum9_x9HL!dng!tRKER z7L{8CY$#TjeZV(|t4Z5qhv9*qM72%D+$$A!G+k)C%&2)FNu$x*Px51G%JcK8>^HUx zO?v)w&GNf{KYq|-YW~;6s$;QIp~ZcQL&YIwmW~y()NPy^I#yMZ%gHGCJZa(gDBUj| z8&7viZQCt#`mFoyDaHr(?`C_bs{DQ%@9ItJ?)T~^KA$nQQ=;X%d5~j z^E{Q2?crSCJ@(8BH@hUSl5qUFc-87+uD`s${k z%#VG)8$X}Dv+d2^e@`^`q`XpJJ70rga)hwfXFJvhR$H%cJhtFNm#2!e|E=>InjWiM zTjI6vyps1@qhk^#afY4Y%J1L3sxSHZ`ssn1xwjfvdz!v)Xzba;e^|WCDfH=G!`S%S zJ(BuTK$V+2{qIT_{;M`fW?cNp^aBU;{lpFXHdcBtFMe$LmgBSZ+WAY%sx=ZcD}1dF zG2BR7xpxKoy$h4Wq|1FR|1;i5S-E!&YuseJN}GnaAJlele0uStRr3Fo1HYZsi`Km6 zmAJFq^oD_z@_wVkUm^tB`?A|^{$=N$m%oK~vGK?9XB@Xa@yC|*ypG(F#25Hs*0+y5 zedlj(z4$*WW6z_54u{LG-PYM!H|3j=d8Sm%S~*YCmmWc@+ZXa$PrCBl@XyO5`VW4b z+VfQV%rqwPJ-1)2K7M?p@6XE^$Kgmo_txcEi31{iv9LpCI^5fg>{1uO$i=E$i z$0z$&arfV_k6+evRo%9$o%T0OW6$3?|Ei~cXmRHd2sHJtXkicx{Y*Zm|G;n7eHNzz UY!YUO0~0rcr>mdKI;Vst063OyBLDyZ literal 752 zcmeAS@N?(olHy`uVBq!ia0vp^{vgc31|(OR%xGg^VA}5K;uum9_x9HLTwzBE)(_v0 zo)pw9Nodh6G?7)2ZQ&}=QrM{^y#D_kL(vBz4ptnp7Vaw7CV8J|l=ifH;@h%A;q>RU zYu2Z_r`+B*cjo+gwvV^+{^Azf@L)-kfLtKcL(YByg+*EOK5#H9t$Ic_=iu4Tj?Xy` z{MsK`-xj^)+xj&>HhS4^RIt(CWqaqh($^#$UTYFCn8poOJSYHy?hbgrG^Xj03pY`h7 zOMUCVB~NKPbeeyiWB-yb1|}Q!SIT-yeUZ4wzTQ9Ko9>0Z&myFDJh*%9>(%7Yh6TKf ze{FU6yua#C-?e|4tKR1{e_YkyEWg|K%}>v>>kpniZ2I@P*zE8RHtRU5ZrbtBI=for yUfSaSaf&t%1({qz&I-#ZI=Eb=fTR53AH)BnCj)$ASqycM;k6@4f%2C&HdTwCCrC zC-A==^bU9j92M{_z@~uVhStl2=F;A8BTY`(wEi zfoRNEM2KAuz>IitLy2t-YXX(>3@7#KL-Pt3woX_PsCxbteps|klhCCQcxy8gRs{MJ zmIM32*7gQmmVc*oVp`Lf!1~5{)NGUyAz41-p_oxQn6kW9CE@ofocM`Dx!#0?F@b2p zBLeQ4HjxLPU(?RP9!xoA##IxR8Oh>iH@0y<6Si_~f5P7s_x*jI(wVBJ25;O(#t!tS z{M0nOL^zpWQ>G%YZYL?iuBXUTIx-Q}oWO*+X@fi^ZGXKm=3ej%PcAh!vDyu{H|i@0 zv>ifKjW!}U5s1e8_!82#*tKb)@REl?fTk8I^OO$%b_=P7SUZH8cZe3hP0qN5qA|xr z%B!$3+vu{BO{6d;pc}%qLNYFYE^aB4-w1e(;~=O=E915hI5LeB#spft3rt#gbFKCr zva7Hafq%}!9HA7;e;DSZ5`zhkSP>~qY#`ubp4xrbSUFH1PM2-kkWgi(R`@oHl+i#s zA#WwqPf9{bjKo&?`bhIhb4y)Llcfi6^Zso@=PQLhW^ b-aGIc!07TZZ{ef-00000NkvXXu0mjfy{ST2 delta 650 zcmV;50(Je(1)>FzB!6j1L_t(&L+w{VQrkcf?6H(vl7b(Ypj72ZegH2>evt42oO7^| z5%>59m><9k;=CXna}b4ofUCk$FsW6HQ4wo*XV(g)s@EFY5UH5db{5 zfC{QPm2mKAajt{`t1-K7Tzkm8pn1gW%-~v&6PU)}0 zllW!$S`^^)T_1PlDWEQHvv`W=#dsY+yaDj&?E%0k7#lWMuTiH|8B>-|L~&0xdja54 zas)=|a{&-iI?l(gIh+Ah%rkqjSG)8VS0$VPR5gEJ{uGx@6V1xxz4*P0C)@xGw@(53 z>?(Uh+>Ek(Pk)+I3}Df5t_=sxltFP@UectP^I@`E0Ve*Wjr(10s{IlWasb0*0N`8W zA*!>SH;x!?1Yva5YvN_{-UWh7T%l-x9$m$64D`AiEy zl@mdcuwrpR+0~YWQ#pWP!i{ofxiMcgZoGYGxaY*-1Q7$UR^%;a~ZA3Z^sFkt)-^ zjCU6OUq5a~@s@O)5Cf>Lr~Ma5D!9Ja{0~``*$qI~hq+3HuWttE^_oWtnGoXIe@O47 zz(cTcwtuk!p_!d*!o2`2m56%kW!AkX(vGt>6E{h_cq@Da z@BxIKM^(50r~u;!Zp(>u=GT>ycL~|lX`6cjfHv8+$sH81VX4hML4h{ewaFb6uwkjq kJwbss*|o{tc?JFecFpQBqsRW^00000NkvXXt^-0~f@mEx_W%F@ diff --git a/OsmAnd/res/drawable-mdpi/map_car_bearing_center.png b/OsmAnd/res/drawable-mdpi/map_car_bearing_center.png index 26eaaa57dbb0d4f7d2637ce7a4b92e9c1799ce93..3c3b8dc658ff20d1035832c72d055a19cd7a5cff 100644 GIT binary patch delta 684 zcmV;d0#p641;hoAB!7!ZL_t(&L+zMBYZE~ffWNmnd9D``QPLj#3;hpz^=eNFUJF7} z1wl!`KOp!MJbRL+;3e@S!Q^1JG4`Md6g?HK#X3(`Db#e`o!RWpO59vCvv0oly?Hac z!jk=D$#|%M{&l03p~{fw3{)lOIpNOXDnrgG^E~1IGIX(_D}U$Uh6?9J=pP!oAKUWT zbJCr{B^p|7>IMO~RJkHBQei5F*HWW9ekeVsNS+2K0@b(l4sciC^2vG>!T?4_7>Xg3 zW46bS<%6g7riMubT5IUK31|phk9pDoLZ~nj!&|AbeRxb*c1fl-g?dw42pa+y{+1qv zSyYlhh|*J~JAY|Qn3~Q42BZR|SejqbK?E1TzzAWW^n5pxRG?_ZHkM+N9d*Nj??z$; zcNSuHQw3OIL0z-e? zl4mx@mNSqCOK~On0_Dl1C7m=VccA;aj-jFP*P*m{S%3aNQg|5{9*o=R7h-3i`aNx- z$ycE)tDc*4gfdfM2#gUrlSlI0=DAKlYem~pW(eH#@ul delta 664 zcmV;J0%!fi1+WE>B!72FL_t(&L+zNcZWBQeK;QTr|3GL`AdnKI`~v>~EiI`)qK$-P z2`mdF@(KI{H5G~@(b!bT!Y<;o2^7e#QlSu8iEq#uAvs{YyLY#DV9u>~J^SX(%&kvY zvyZG94<*pwZnQL18p=5XWy$57aOZHPA?K9kyy5>cr1jlRf`7|a`)A!V*EsasfDN;_04M01O5FVr4SU68ez<`K8Dj|U$ zN^|rjr}G-atOly@+@?w$xVz++z5*c?2F&D`njUgq4T~;G<51AX&I=;lLuBiZ=~12h zC`k#4=x{k}%YVU1XiTSv1!kbtmVP}_Y;8h?9!d<<$$O9(f#MTeS^7QO@igq^JxJ_; z+$=3Cq}&FH6;KLG%SzJgAh8EZZ|N$Wr$J&3l%XZBgTxIeYfBymi4%}VONK#0SDuev z**vz~f&5!qR+4X!=%qY6X_=t@1)wSLmJOOV7h-oHn}4g2DUIgur=Sy5`UH#+X-RYV z+Pn?7H>c{o+~#+}Pas27KQNOcYG7BU2`-t@CB^78F&fg`qu}r-cP)a*j8+`tMDe7in zBRNnaJAdgL+|+!DfE?{)+TebGtnBz{@XUb>cDy%u_CQaz_ksO|7bLkhc=kYz?fW1P zQQbmhoaPCh4{GpcDk3is~ z9SjZx2OJd$E#xSmb9ivTSwhDI!GT2qqds@nKI4!G+sufF5Pwa-6Dlx%GjKgIxGK-6 zbQFFb?!|%V8%LcEE&yy>7ItY2G9N^o3B*G_Bp?N&Ygv2)t9XKJd`cr>+%vcnfq1~j zL`Yox7EHwC6wJm!fS}30)b3EzL}*2=o%J2llJh z_7!nAMNT`?oPS~hvm575dXNp?JYc;XQDuW|Fk%96!hHhHC5PBznURf8NOUQP3G@>F zA-L~tYj1GkHj)z<^1a95eMzt^a@vrvmJ>*rB?m~cMNXocMBuuZUfT)81HPLtX;OLL z##cp7>u0KLQG&b$p52_ zE{mKFB!p|Mih%cJj!>D$cUxk+0#lvz|n24`>|0u(Ac~=XW1c6MMfX-#CUgFOOv zLHN?R!b^;jX!`zq{DYBn=YLHUuLLaB_X-OHyvnIa793EB<~1ZZ;8jjVvfzM1G_N7S g0k3i@lC|D}Cp^QiG5)uwGXMYp07*qoM6N<$f-}bx>Hq)$ delta 564 zcmV-40?YmD1kD7HB!3i1L_t(&L+w~iGQ?02{(2HiYTRHDRhHa<6L15Zz*sXg8L>Av z;0T-mCtzt2B{witEJLegeoPI+>wZtERK0BTb-(_;ulrRego-~@@%rHj{I`SN0q=mN z0=|VT1+)(L4p>WQnZP?RDIhl+bu5GjU~B^10H{&EC-lL%2Y+ydAiSjbA+r>I9PY#c zj@KG^%g=$LaFd5G5X^O55V0n}?bQQ-V=(F_rB6s#xYDI0?TO;1z*Ypf9d*EnZ3+M( zrjxX*&7mexD$i`C-bB%dS|?Nl%ASAE@5F60OXgz8YvG1wCUgW^E9U_1X>FeocSA|K zCCw=&FuZY|q<;q);a~Da>ScW+><}a;(2AM>&LoEzV~bnqG!{&iNHlMTzvv7Pva#`D(`Q2LZ433#ou6) z?==ooe29;u7=(^QB>`5vQpg=BcK-SBSx}TYGzgcZ>wkopz;KZNppE!~lE-~>wgaS& zK-HJI(uJetCTcZTD}}iCM^3367zMM7fmZB4R@dlskCsjZwc^XHdY_bICyJTK-(nE& z8V=zNf^c7Y<9wIfs)fF|G59;N17I73^-otg11JOI7O#0vy7T`eicN|yb0#4;r zB=Zg^L@jd~;vH}*ry`kmKp~pb5buCfITgt&@4yFYK&dfoZa-cC0000u=lt{hYz4^KS3t zxjtNHadlvs#QTCvmD}gEt3qsIQ3Hnx7UqFSju_oNGkgLL7BC-YZP1lD|Mu9tNp<^A zzGPfCJ#Oa0cgC;!e&r@>r*UL8yu9>2p~5Eh0?+5Wx3;YjxWmBzk7>b=qj$FD=KPCi z{=ty^d)vm-jL+F*9|~#w{re-s|KFb6o^SED7M%N7@+LeZtmwTG#T{}F3Z~j!fB801S@K)K9=WrZuRRZ+wwa}4o8(1J ohb5-V+*oGhx}|jz#eBwmi`(AN&OP%zFmM?>UHx3vIVCg!0PkU^KmY&$ literal 378 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezr3(Fgkj=IEG|6znywE@NfW6OSr59 z|1&>MPgMu`pM{UUForaFKREZgv1EZy&W?uT=R9UJo_}M#f9lrXFHg43l%HMse?sGa zH4P@E2|fjus7=S$4PI#PoI-_!2GIM zU)6>{=iJ|$l4mWD`tbFx@`Lk>d99|EY3QD2x#{qgEy3_&Otx?2zi?)|n=>9}{4TPt ze1C{LhH3Vz&#y1`)!m!r^jmN3g`LUq=WAPjeXXoxS3W*(#_K6w3l?u!_3E9xL5YmD z^^}LA)eq17-{WR}p+9K5pZu=g6pKS2`}S4d`t`@GNR;`YfwPe$$5A(tP6op>0h)qD bG3PQo6tOilVN6R0hAD%mtDnm{r-UW|Y0{ne diff --git a/OsmAnd/res/drawable-mdpi/map_nautical_bearing_center.png b/OsmAnd/res/drawable-mdpi/map_nautical_bearing_center.png index 6e31e6801638309f17a674db6c1b159dede3cb3d..7153af9cc4c9df6d1461a42d184a2a1534c0927b 100644 GIT binary patch delta 479 zcmV<50U-YK1Nj4xB!9q3L_t(&L+w{VP69y?tRB31;R!3~9iPAtc!It_xG9hbQP3Os z19<^Yz#qU}mh2O_8)&n}cr@LU-5Ij!Jy&;iRqgi95GwXi#q_`goqD2{kR=q@0ej^F z8?L6agw&P=F0h0G8?L6agw&P=F0h0G8?L4kCDa)3jDW7XyMMBPfekU<(kZ?f&#EN>4X;2K4L+6!{nY5SNjo_NC}F-ImY$pls1xHDnWU}t3J1m4l6L~ z5`uy-d&g)?M1QFT{eDj!FqQ=kD{Ye<4rphul>JxWB`9xrIp8h>GwC!1;j(l>7o`Yl z^!bqpqk;yNwkbzY^MN~X6?x_IO;t4}!yO`XoQB zinm;hqYnYS?WBaGPmGO5gz@&7)LT@PQ0VJ}ub6!I%UA@3yFPq?u_*n5C;jW40#20B zDGVx|!30U2iiNX;VmUA6wS=Tj#ll%av7DFkT0&B%V&N>ISk6m%Eg`8>v2c}3=o{g^ Vdo^lKgQfrg002ovPDHLkV1fgS;cox{ delta 473 zcmV;~0Ve+W1M>rrB!9X|L_t(&L+zJMP69y?gatGemNOlsEs`px%V|I82y_E5oiU_k%9QESK=ikyHg zxyXU5?W`enWRV5dP~^bXcGi$Ovd98!D01LxJ5fX2OGenCt$&_fD`3n)^hCqOvsU^& zUIx@j*ww&EM@VU~?7L`XK;7CHOgAnD&KgH35m5G0+(}*lw47hiO?XSgBL>P_N-wL}eoO(XN)7fhZc7b%T+AhNserzqF6!9v6pV_* zU@v0`@7PdN0)M3j%AxLSEf8gUD&oUyl#iQ~zO8>Vbppzv?#|mNl|~VXGS@W?S7%{> zx=9a=v=BgrT5|bGx7*C39||REQu_Bvr`kgYJGRTzkicZiUkt?A#d=zvMZbeU*P4%2 zIZ%;4efSV38lz7SOZ6!#YKUY1J~+aN_YlYXeRu_EqEgv2Kkq?NLvb%pKQ{yN%P+jz z8VaAWpMy2zmtT0bH55K$KL=~bFTe0=Ybboieh$`D2{Tx048!34;UjRc~ P00000NkvXXu0mjf%&6RY diff --git a/OsmAnd/res/drawable-xhdpi/map_bicycle_location_center.png b/OsmAnd/res/drawable-xhdpi/map_bicycle_location_center.png index 09eceefe2abcd94cdce1293cc76f435c65445c38..bfc3321bbd24def58a210e1491a5fe34b9c2477c 100644 GIT binary patch literal 1422 zcmb7^eLT|%9LIk)GaHu2IH8%fJe(%$m^?J)`O2j7Y#}cVd78vo%R-*IQ65euEY&V@ z*-n?vJgi~l>6$wtWR{25Fp@k!o%{R#x%=bu`TX_y* z&%F%#NAhxeF20wD2LQ+gR|os^NhIk*d&;nrvSUgb>4~Rrhb7bHa+E}t6N4<}^}*0m z)%*)AWBt;qZ%>x;zQEAsyiQp6oRW&&O%A)34Y>+euJlke1#oHMhT&e}ZQp$DPFXsT zHbs!#&N3!c2*1Ot(?6p;064)%X8iLE06|vMW0Ml-AZ0HCzTr4QM&1OeL(*je=^Dz2 z8iWVHhs$SrLk)poNP5e2usWR$;*a;s{Ht#0#iVr{_$7wjVrqkND!FM2XUhl#6_z*@ z%0cmT_TuGyF>0fzLj1hz6}cL0E=-GwBcvZD?0B!^GUNI}wHV-7gX{E`Nez1+0j(~agH6mObH;3h0USxRN)HY!Fo_S86r$yrFfleNxNTkm1=OEdM1UR^ z`99Jcp1Wm`Jb9F)*J(|k%NS0k*MY2>U54?lZ0V+8PM7fWA2`ql#|W3}<+iT_bIHS( zuhak!3Rjyk=D1vJ`$W_wkrJUS+3((ZKwt((JfUXs7}l1tZIZAg#~hw623Cw2?$0c-XptM?R7$W=L0^^ST>q>n4}melsGpmc=iZtpy;A3*Rdww1@% zMzLYsd}o?nsA$#GtvbB$I==(~XGdKrxB`=fP zzt~1V_YR&e51q{XO6)?vVMz#X42MDVCnIrbm~LY3)2AH*RR6 zw6Gw-Z0zZw-l|tbDRA7jOyvUB7HxFR!1=e0d3qwxsjb;iM;I10vuP+u*zCrrx!7H@ z-e9mWH1AEHE3)EPhkb!Rjz_+KHY&pc_$pSq{^tZ7IA4N(e>S?awZt5;3&?G~35Di^ zq(fOBx$I^~cxvR~WGK^eoLlU%ZPfAEzGG5vq(ar7YE^L!5Kv=zu8w_}?biXa6fUyF z&G3_r&Yv%OXuObR@a`>72NHZObsq~w$$8wR*>C*ldm_(kIya#3WX@C|72YWqbT+r6 zJ%*B0g%g28&Kn0~Z%@ubld*fl^i+NOr*KhjrO~}(ht?2Sh6z&vuGdH0->CqUe&WilAYw?ZKH*%&>GxRpmR83{m;N=Va0TP literal 1380 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 diff --git a/OsmAnd/res/drawable-xhdpi/map_car_location_center.png b/OsmAnd/res/drawable-xhdpi/map_car_location_center.png index a6e3ea1a9f987e68edd3911dbff75d86b3d39d09..4202db3ab5ba7d08b25d344f5387a150dec97765 100644 GIT binary patch literal 1161 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>Udukr`}tBea*?Y59%s1&kbV0S2M(0R{Uz>vaz;?q3JxB+h* zvZKRinQvU?dq>pOyRrJx0WJ~k&5J_~g${Z&8VBwr&Yhq;9GK=plpNoW9b|7=0BWz_y5m^!#aoaa#nV5IqY72KIP}Jc;|&(|9%FP zO=l?4jCEmL@YN-{SFMj_$Mz|kwce#nNv)7@mU_WpWgFX`kbm;&G6}{BNj+zuEZw7d z*&;+*tHJZ6;1}n)F*ECKs&=v|uzh}>mza5-m8;=gaI7=4durN>#M!+m3hQ~lss%k` z_{5#}naz*WbpMIlCZ`MT|2mYzx8Uw&ZpJ9rJcE7bZI>A z8foTiX$)#hmv?fXzPWWl*sR)vuQL2EvG%VonIYNW=g-fO6Cx$Ma$_o&55tv=Z|5h> zUV4DVVfkulfhU|R&K}odRb#kiYik))_=e6&X zU}q0F{;Am2VdG4mrv@opP0ShPrT#3@ivCI=_gCGpmp@gu;-Bv{B`aIoxGz(aP6+E? z-To-oXv)^0T=ATgi4EKnEvCzPRhW6PZHiiS_mFQB^NTMb;&QV8512@vcst>60R!th zHD=CNffvqwE?!;96j0A#{Y&%E*8i76mwsco75laOgM2}|zN2*&i|d8xotG}}tUCPQ zwBSL;AI&%BuViO`;4PTKuy)@%ll>2azkd1Lf5K=@Tb-x84ddnLi??*$Bla#ZXT0z( zE1u>2kK$d2IC#RGe8nCYP4tx9b;NbG;5mtX(i!QRNtJ#PP+?0)?E-@ojmxX2ZBy<<8BE`?6%tvt28#-^X*2;Yo7`Bh%%Y&$}1I-_$<<<*{_<5#Q^=iT?^d+=j@`(*tuapx~3&ob-bJFxY6E1TSkgxC6IVe>m4#P%FJ zf6h3H!G5Vy`^5jVr4Gi1ZdvzsoA44VH!a>dFD2wzEl%%yU~%$vaSW-5dppP1PufwSH9m2( z4~x0MCgoK2I}CXY>I{AiHg*ysz%6{pH>R`m30ndfy#<$Z(?f0HX!NCZ;DJ-Z8K{gf+%gEQThQV@=^#R5Sq6+Qh>=>FiiC)-xisfFf zK7$qS0;U%{E@}&ARIFGV>#&O*WJ3RHFl0PV zX5D*_k;Qm%)yC`Z7spOH_B^?OS+*fBWIDr5$=qF%42vJgT;HX1d+uRIFLrGw)(OjG zT$OL!<}FGt@>;~$;q=Ga!G%MFVOLyi!-<0myjRxryx5dex^KqO-MlG$3U3S6SF1m> zwD-Qb#9u=Dd{p_FZw#-l20Lg)Rt5Z9mvOSJ`kK);&4v}9{&{O@o2Bl~H8U_^p0I4* z>U%3wUrT9)P3o%qzAR;VwOz>HIaA*-Tv=V+p!2-O&aco}d27ps_%`e8gYWoT>^0Yay>;=zd=ck;KNG(H z(>nX@P=af_w&*=ZLw(zntYxv8Wy_4Z_bzN;Y?!t0;m;kRtj{-HoyYT2fKS0WHgj8Z zmdKZ9CwFJ=J;3K-b@CANjTLiUw||?jyj(=Sq5RPLN83CcPcA>cz}1X7c!6Q??k%_u3fTSV)>R%7bdO!ApatlVa;_Z z0TtRGh_3YWHtp~=hmXecix*fCnbgpvoB%jdcw5$TK=ns zLpu(H0@@o$M4%sXa^yI5F<#iq=ewveG?oxQ=i z-~GA{%mTbDi+(&?yx{q68Gd*3IUPG4a4pe|)fUhIAwBkLU# z=Pb~lF7B+qCACw&m08X{<-^UQDihJ&)7T9*DY!gru;X~S@a<|gm+712>K^RB&(&|g zckYF1TlTtTx0^09zVP=BFAj*UJ$&v}vc|rn8aBCVbGElGS-f;hzehrh`u}BVQWw19 z>nE12sN(bBUbSB#SvMv|?%1_k^Q*sS$QtmhP`XygkdnoRGh>mREC1;q;z=&}613zh Quux&}boFyt=akR{0P<7+NB{r; diff --git a/OsmAnd/res/drawable-xhdpi/map_default_location_center.png b/OsmAnd/res/drawable-xhdpi/map_default_location_center.png index 4367f4c64f43789bf7a417e6b31df89bca581ebe..ea47d0986d5fd5f7068814a738354ab635a7a469 100644 GIT binary patch literal 811 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VEW|g;uum9_jbnFT&YBfmgigh zcLp%U1vLaadU3pD2p6c~QD6)@;69n_4d0w86Sy8R9rEXlsp+1{k@Uo+i|38r%>1Pf zPwjjE#_oKdL;L}G&Bh7KtYyR$>Ns@{Fdbnz@-eT0wS%+c@m&UP0bzmTyBWn4)D-&4 znROg|9Aw_JMKsK4u(-#&fx(cmaF28XV-nM&3UkUezVTmhFYWCU(J03~ss(b5zp7>( zs1@L5h+qDA$KCqH|4yAUS@3b9@0>?$F1hU6SUVC!T|%53u01VfcJ-pdw<#_u?sIYv>xzPl+fNYKkn#sC+j|oIa?amoUVNE zojD`_>+;1#yWo%;ds{B2FLt*Rbo1s2^ZW|9gDq;On!M-T+!OeN@JAYP3 zom&@__oC8s6VoQW{pt45-T9>1 z0=tB_U(}yf%j|nwH06!`g0H>m+6kYX?<5N!xvO_bzi$4A+w=D{sB;Pn$ba(aIPl^4 z@)M;KrmO3p_qoJ-!|uXsId+v_?6wLYE3NvP`!?|3iobMps=$U!r*>VoU)KE3nY?Wt zDLoawV1GB%?ZCHX=Itfw74D1n*{)L9*dcsp@{es*2Xa@b&;PIG`;=wMl|L!hA{ruE iS!opML?*L8`iZwDBr5FMe;=3$7(8A5T-G@yGywpUn_N2p literal 798 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>V0!B5;uum9_jabE-|YYq*Z18s zf;P4+*ipQzNpIl><_O2cc@tRD{dO_ka6B!vt0^tcJ%zKwFEH+D0M{z6gXhe@NA8mR z{XcvDV`*!Bw%QdeJ+syocrg4_o4~-SAgpkFHKUM&nnPbWvr2pQ;_DCr(rZ7FJFm+%$!E)kbRs+if&IymNQm*ks6;s`vy9d8rQ*7vOc+Yq(c5T_2 zgb0SR)Su^1Uw?nXev>Khhq`=u+1(Av&r@^uF<3p`){)W5AfNU;;?a&vf3qZRMjEc$ z(pFGV!B{to_o2kqq{|1d96Rc{c5D6?jV%oFd+b^MBq@u%V>g>we>T5sp(UfK_WmxjA4m57KFl5AY4O(g;kTXB7?0mjbKUD0xAwrR?n8B~ zwtGe1rz=aeP1QU9x7+vGRks^cnJ&rP;bQ#0pZnCw7ezbDEW-KjPpcEDWcn2no6TY~ z=gWM>yXqFZ`WJV7iZ__e_@ghre0rez{Qs|gUb8IGteX?7((uNKiJsAqnc)7Jf85`i V$ljl~ADHeLJYD@<);T3K0RYoRR73y( diff --git a/OsmAnd/res/drawable-xhdpi/map_nautical_bearing_center.png b/OsmAnd/res/drawable-xhdpi/map_nautical_bearing_center.png index ebcfa3dcecc7cc0b33a05143506fcc4667426bc0..b87c2195336840ba14603a0ac6f2a4b8db9e62b3 100644 GIT binary patch literal 1013 zcmeAS@N?(olHy`uVBq!ia0vp^86eET1|(%=wk~8~VBX{D;uum9_ja~pkZ_3H{$t%$jgL0zECYlYGjw!4yk3UeBi7pN;#d!FGv;}q^Si;GoyEz_=Nd*{vD zWB>YG$@AaKo|oP`!|{XD*TE_L_#+3$gZ@lhixxa!X_|hVkKVMFYrylhWnp0-SP#5@ zu>a@BPb|h7ZUJ**&wnia<+-fCUen)Y6W^K@-eA zGVdu`waDIbn)3RZ@0FK0tuD+DSX1?%;e3s+hnHGLZv1a0i!UtKT=eoiPqOGHl=6R( z=~}CHpz_%j%Wr$GEm_iJRU5nZ-vg(HQvU?rr?=$zpXijoThb(URPWf^tfyf?>g6AO z<@X2W)Ywl8JZCkDJ4)ntR{ZtnqI%P6GZ+k3i_ErEO%*KJE|=?AIPdctuA(soYGsd;-j?0+4|&St0|GI zCLePR@O-?TY4J%1vnbUSTRuu3cv+!ft*NrJ)(vreW8lEz9xlJ+TIY*fj@!@c z+8j=0tS)JIlv1O!yVUxwZ-D3SI}GQJG2dLLo&K>_+;MJf?Am#cH?>3yto^e%>df40 zW_e#lOg3)K-#n%0)q1C!*A_G#d#N+Gc)eNof}~@a2iMHn{$^Ua=i`#sa#EU^bKF|z zeyp}!yZ@9;P0Nz$JA#g7GJadfX2*Y7T{z^_k!eZwXD^k$Wcm8#_@?(F6{kISUA_GF zWzhb*OD%J*G)?==s&~*w#62$i-2UnNQ>O1otzivfx&QCqA%myMA=AF9XR=2M8~@8> znN)h=@+HGlUJXraj?8(ic|vlBsVr+`r{(eB3C0E4R$QBeiu;x;q(8V;B9fx|Ovc~w z+<~<(HBNY)v7Fa5r!o3+;Do6&ifvdenYS-nte|c9yn?HUEzj58F)ZoaN0BEycV_j` c%HVfwfg9K=&Q)?{1G6)Or>mdKI;Vst0J{d@F8}}l literal 1020 zcmeAS@N?(olHy`uVBq!ia0vp^86eET1|(%=wk~8~U_R{W;uum9_jb0w-|YZ__Vh_* z*S)^5tymH?y`cFSn+&60K*V%=&yHQW7LF%5t6H|GH>9dI&5}0ZF5|UHxt!O*OJfw_-*v<$IY;Z=S>+)V`aOAxr+X&FHqnr@;gvj`G(%~f*6+8d%sI}M%IW< zKAoY^vmea>MY7yqv*R$hxAeB66X zMC6qPLxkVdd3?)iBlhj@e8g$>>d!QV>=(=p&sIAI**LP#owq{9x$){m9v#hD3z|YL z-qZ+Bd~3C%vH0EMb)JQ+Z`ZCrxmsK}@FolM;pLY%EN)(1`07X?>(tngzT5R`O1tLm z`f=-f{o?3fKR+p@%3fr>>s_^7b9>^XgBJ{@x0VHac`2=!QnF#A?y94vD~VSF0bR+=`d#s%LLmWh zkIPps`!q=)CLrwb_ERzJm(4?Wt&nqcpPS5iX?4&KubkaoO`jqYHS(C2u0Nc))Lv;z z^QqP=w~tmnzW(CW=L(Cf53j~u^=s!ml{MA+MMV2_>(Hknx1Cv9AGv)k{cY3jF0i^{ z@vO6xuZ70E;@s(z(;2p9^1MeH%YTJx%v?}&>}ARMrb)b#HR@Y6ftlVj-HNkQsYw4`NKRtPilDM;;vB!Lmzx_2(|MdU*U)|-rS&!5wIM$u`nk4es zRO|Ft^(^*CVdFYWri)e?J4<>t2`y02HY~7VZETFb95`XBgvGq30|(Z=)HvbABjfLw z@ZegBNQx?3-*N?mf@~|UO+w7ag9RjZn98z7b~ZlN-5tY{ m9#n8KF>hbCm^Q}lX7)B@sd#i#q~xi*SGV2&07Ss=L)8kRm0H5*COGL6t&ig7{9F>#5e zEJDq#)I`lm$F;z6DJ|1na2b~r^J$vC-hc7V`*80)_niCfo^#K=MWqn8sqaWOeZ2qZm9imp!W=5X<{%AHu%P?c&gXzt~PQywc zOdC0nPR}-YfT#nqtaiv0pl~C=u|R;e=}kRF}foI$A{t}&E>1GM?K7{G!r#fMA>@`Ift1xsH z2pP;yCFsZy4)aRpP*P@E*=_qMYxs(rV9RsRWW_y27wBW*6P+(d!H6`gvU`YHzl2U2 zr`;RqskJU4=#;_(^XVY+J6QE}7urUXA66kSzf#Vngim%mG(&wLqhvuacOWKQrlxUh z-wRTVuHVE=xvh_CCGh<6`2C1UOPdwuppVj#qOf2SkocH9CrK7!Vxvl(i2Foy?M_PT$9XE94Bp&dP!uOX7O z^3=bI4`Noo>b3XYo=?{D;xrDB%H#-6;&7DL^nr!zy>ybLV?Lulp{a5^J)hmvQQ z?<;5x1q$8}%%J}zC$Xz}(t3HYMm-QYZs&g;u*SFyJ;>gf7YuIQH~MBFVQ#QZcyH_X zIj^x8SZ$pP*9sEhDN;M^@dVdXJ z4~r2;2#o2BEazTO&m3=anq5b9rN4B3xIrRcw3(FbVNSWVL@t4znNM`*;u5_sY3s9o z)R~{(myEvO;M%Vvv~a>P4*r01v>()ra=KL4vpk2QH}#kD#mT-|w!W`-0hTUH*k0z2 zNu{9AutUUXFf#cx6P{{_%`L0=Q!yUd!xTm(P?n4c?0u=CN}c>~7R`Xjs&s)9^QE%E zNA|9)W3!hjloqVib2{{viegP9R^QsG4G(lL;m$oSvQXy|5d za>dO@81sN>8|p*tGo{Cj=?CQARn94*T*!gGlT|xk&GUE1bjMR@>n@pZEWZ4{{!#>b zTe>Q?f-uquM4t@pO5K}v5#Hn0;AjJy8nu|ym0*y2qamh%D6C^*84D+3M)K1QKfJrL zk>tYlC*vuvsDUQDyy%wSXsb?VJ}0+iyQ@)W0z;1qN0EPX-de-WKkYrsR21$Ostd}^ z)8r1Gj~AQH+(DfcgLtbbl&$j?UtZI_jr~X0Z*;f6fj_07ELMfJ_9cn6tEI;u_oDnh zx1TQBvxq03$T6echCQha;qJ&x67!~ET_F%f+>wW)OqOqgQKlI>E z!~XT_?XG+BhRUOw$Df%5=9abdn%DV9w&SNKY8Lw>JAl;=UrODw(JWs;lg)(3Nk&;i z!h!8S*U$wu^zc@retN&ytK+rASnAh#^|oiH$;^Ppa>0@qyLG&15{7wgtmEvg9FiUP zXpP`mAXd=NoY$aS`21?oAtjqdUnxZIiN2uz2X29tmTJW=USQvej}!!Z{j>EFqoh?4 zye+gbH9bf@Ie0`^%Zv+jdtV3%+HLl0wcOPxK{$@!XrJp%KS-X3na4MOtW}{f6E3q! zk6cj}Yg1M1`a;#VqkQBViHjt*a>JC`9QjDe|EbvoAy`TcgB#bweqImYxHAR+^ysh-TCVc-`R~1d@Ok^3(_dSwDp1T7QAU{?? zngFnKJnjI%TX?n?fc^A8WpBdCL9arm+_ae=awFvrlTw-H&3XgLto%)~9RKf%Rc+=G zX6B)&l}CGgR&O&Wr$D(kw(W2!sR@czXrWFC5D_7tU^&Vb-1{M88B<}1IpbzE};mU|kqD(*(Z+2v*a@O4YvsLRGXxXIE%J^N*8W1JI~aT$O7 zEok(u4n>w2rJpr=R_K07D9*SrQO`k*tz3zekY_5_Yg-GwA#L66g{gc^Ee2S+sw&% z$jR1tmS}2cRNf~0q?B|JmSMS15(y_@iJwPTtzjXo!?Fg-80#~1B7 z@3^_B1d`M)v1(GAsj0@aGYgUaofmax@pdO!8h;W&Z^7_`X5Do!E(U3Md@h}wE6^nl zu<$B46RRJU?n6eiIlCTy!^09yo3c&Kzd^4W6M#tl+1BU#@To@-eDj~Hg6|uX^QWgm z(cT;oEe~AO;8`Pzt+9}!D0e4fvGc`-#7>;m16 z(AZAgn$S?K!94kF+=H(A!t^_BxpMM~_-1X3#X)07!o2vvWgWY@A<7A2380GhoU3U+ z3OyIIdE1RIf1fONR-#uzO)@m&sB4-T;ee|qIQNnOaRj60><+Iu?~GB{@Oqf}8b%_v0(H%dji=%U&{uZZtKiYCj80zIt z4p;Vx7|jQXZIkx&UabB&q`;|FDtTbi+Y0O zMv9?oK#9oa6QVil$^ zY^TY#HD73c@Vi>NEb+l~l3p9yX8~H)ZAyB3t9BoQ9uP6f@hP0z)ToV8-+iFWkvw#Ox3Pk*RtW<=^lKDIJ_xRZLNTpi1i{tyv4G&>&hgL zT$fS0qh6Pd7LH2V)YML$8B6Mc$rQydgBVQ__qr>}7oVV~lWrSp7yvW2xt%X8yrt z<|U^tSVU!T?(Qw>cvI7Ze~~XB({au?qWWtsMk1mM9njMrtD0vpvLQ{-)@zB;wW*Z! zMzm-F)HcdiF>!3B;&sGkd8c9$Ti)R&-^9+KmOHM+Mn2g0hpw!HZ%6DaLG`|u$Wro< zl&_5a=|tT1-T!n~@(rcrAlG3;Bw;Wq1Q<%nLDv1Bh7-u|Giy!xP6ZC9Cjzjxus3fs HyOaD61#Zi* diff --git a/OsmAnd/res/drawable-xxhdpi/map_car_bearing_center.png b/OsmAnd/res/drawable-xxhdpi/map_car_bearing_center.png index 2e4bd781b7876f50792bd5e83c8a2a370e7c62d2..00a50386235c82d6445584f06d2ddec1bff6b1e3 100644 GIT binary patch literal 1999 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 IoTvWlKkPY`1ONa4 diff --git a/OsmAnd/res/drawable-xxhdpi/map_car_location_center.png b/OsmAnd/res/drawable-xxhdpi/map_car_location_center.png index 5c51d05a34661e4cae4b2568b8cf19c125f339fe..6f30e3a987b76ad9640d475082b6410e857faa2a 100644 GIT binary patch literal 1867 zcmcgt=UlAtRpB&FUqZn2fN(U3HjzJdB8A%?S60KN7km@8F8 zo%G0)oIjM9VoWQ<2591`I4a^5*|YA|Azs9$gLo6);mt>WtBv8U2midbo_>|suBa;I z0Yax6^i=@}7H%h_#K-JS<^$Pm3_{8yD>2fIB?7aca2(mjOc$hM$Pg$}8+}3rLr^LQ zATl|b_oS87q`X)FqQ9>fen$?j53*9`LqnmC5-CUwXtz<1hhSm;k`1f9Wc=cUoRT(Q7(+;w=0Q9fQq#jxG&Gc+b)=@svjhdc z|M~q{+PgZYW)E~lC$tj*z5#EZZ{+N$b;h`}?Ub(7GcNaEpvs(=x z%T58YKQ36Q246bA!k%ZNX^i zDRsnkOaGKJ>&hJ~!KVs!P7aK*%9(S5MIDRVIoF_-Vu^lGA#CCz!L89l`*jt={0o1^ zdT=MnA3qwZv4$4n=kzwKYz$0z;WdNCk>vzRt{k|U(b{O^%nS@UJ>~#@qf?rWg&9?r zXdiw%^4m+drH8+TI26tSg1<1!wZALU!muZo_c}61Wc2ns~K> ztAF#Yx=sxugb^$&QfV!nmTBJv*`R$%C+duPiVVR^mis`8-)Kn7?e$YeF_VZYK{ECL z{nq>4`X?r3&41;wGwYV?(X+(?$Vl3alf$3x_k>JqgKj}Qys)r06572PN97wA^gf1` z54xz{N}iY>%{OP=`WAh;>@(tQ&GXShgVK{z9T zTexct!Gd;xkmg8vo$0h`(k%6=JOYC%S?TXJk&oI)NN|evTmC)C?JRe;+@bO-_ql3( z3?O`-i|1;d4tw#FK@2|5UdH&DTHbT1&B2Tszmy&0I`NwF-CD~cSk>6*nD|(6cuVS_ zu;Zy2$6v7<1ui@pN!0p42p7vRo&fa<%~-PjcL7$(U39p5W&QB(@^rmT*R3$lxue%k z8%ryVPF7g9)AtEQol6<`dx0zwW1k?eRN8wWDf(l7qGy+3mMSlJm9g#k$)qbMT&&3n z-sv*_t;nrF;*O`3STPJQpS6RdTkq%Buv>d~Eo4k>y1EWt2_jy`uKp!_BG&Sl9hnK7 z^@-bVj!8|>MO=x8?uW5bIWWVE)*(;`Pa>DBcdjU&J0dq= zWEB}^b5h)5v3wnu-K5h(^U0dXaHzCr28T9sR%Y8zDIs;ib6S(>>G2XSLGm*04 zv`K}DG?gpV<8uln3w?B}OASPkQ*Jlp2Yo2qn$neJ zEpjMLX)IeJBHKCvW znvq8Nw~Hk=jgkeWuK(`0fZiJ?8W=F^kXZyty`o2TH1DCky%Rf8Z{d6g#2obkvm~@T z`hI6G+w=#@rC^nmo_6iyVD!AS`WgL5?xIg^H8m{`7l7TRvd6BwN5nqzry_;c5pT%` zi9hohClzdy?cZs>rkkr+%VJt|YoJpvU_E)9aW%FGL?Vu}%S20kILO9_Wt^4{=tA8SY_E@GTbiQxGljy?wKgKM!!BRD9&(HocbU2cLvy;1H JjeT&+e*hD0IUfK3 literal 1774 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 MHL@_o>wCoi8>U^4N&o-= literal 3074 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 V&+rFuuq|&7jvk?q%T3*`{|7PWUI73A diff --git a/OsmAnd/res/drawable-xxxhdpi/map_car_bearing_center.png b/OsmAnd/res/drawable-xxxhdpi/map_car_bearing_center.png index be0332383f7ed69d295f4c475f0f019535a140d0..abd9a130378df6d408c442f1c81a970ef2816069 100644 GIT binary patch literal 3042 zcmeHJ`#Y5D8lIDB7&6W!he0A1Sx)6phR`^Tp<~UFU0sP7Fk?Z=$9cSM#yTClgOy!N9n3UU76%R z8>pD-iwA0Jw7?%5B-O#NnupjVOrYOIJE~jQS66~m(!C1>8fiEb$x8ZoCUlp>PrmB9yhy7M)CN-#XJeV_>P#js_9gFt0@{Ldbh#y>7dZQmn&rQ`9oQYY&r-Mj3!3h&X=V@G#%2Lw=pW5Hqw89WXn66T0yv zmb1&H#Y-AsmyF3UMnN@;D@IgFYaEfGA@G^j&2Zms z`m)-T&oG<2AXVtU!i3puYC3dUmsB|H8`wQj@M1Ys6%pG1S>aF{u!5JA9+;QXlL%gY zYOxUKsni~o;~gx0Aepo+WHoyQattElF0UBaJeFeXJNy}}Ca>;y4FAD9SkwqEo|(tG z9u{=$;bl3~>=3wkqsOjOEBitTg2sH56|>uSRw~fQEWSWQ`n;U~ik_Lx)U3mhPe^uJtv4pZyH>t_C2mQ(4s~QgJ1Y0^jP2f^THwLTxVTJ`x(3SonN<`tUq7bcpq>d3H=4ul7J-ZRW1L*kG(0jr zcPhK92Sq(91SG55GZ7EU1wR4k(BxOQQVsoK$ILnw1`?B$Wt_rsnQ4+Bg}mIeNxo4{_E#iz`MyyWiiw@ zY-PnhF?J+@3CQxaD+U&k#E(bP(w~rC)zKd7*5Nm6t_xb`6f3#lgWdkV z;-tLG*fZ`UU)6b-gNvQ}?f&PMQELcdERwh)QG0D#rOw81GSsdsuWjchKtjj z`%x-f^dZNj&f<3SQuXJ5+$U8GKez6d#NFdY8SfU5ETKA>DhpQbuf#Os-zOZeq zd|1gdj;6dcm~-=CCvZkHI}*PbKW*77$Pk2Rd|P98kUyL?NjNe0sXVN)WBZS2cFZQ$ zw|{%`K+o$O+0-SeCUcwS7A|Gqt#Wd`)fnzWo?NI^-k{p*=D!3AL^y#a2VVpk|}y03TG_!h0=!+h2I&<4rWr2t+09I>`>@g)2$$VkF`c}vjXeKCNw$DwJ?6hrs)!U-Zq z-F_z{2XH&D(Ocnv2$9=OAh@^!;lBp`_)`xK>B8hl0Hqf#B#RwF7~az_?Z|Z65*{># z5-~|LJvls}aCXa8^ndpMPOihZeJwcT@r@Ln2R=ZWw=e^grttHLK;XyODlE7GhYW4w zW1F7|J>5~raRvgBZ7-7kh3w6s#8*Ed{&CV1Sc!O#Kr{;f(fh8gHq$X$84mFtyRCNB z`Z)7`6aX@F3C&~xI7R}1!5 zjZQ7Zd=n5?fU_xb5T-v5C|EV4!Qr8*c&>nWDO9lC>j?AoT$P($Uj>_MP}W#K?p@YL z1s~F!R8;ptQlQ~_Lv_S~qvvmY7{l~);(6wHflhy2}qwc)=US#MpP1JHO8 zsSKKmpBgjWH*a);Z!xma^QE-ApvnNnt5iBwp$a}i)ZK|#+ukUp$0Z!C%DT6oNyPMC zX=sfX42xkeuhnaekjt}gHQLr2r>Bb6pR{!hn*3P!_x4}*il%dBW?p+}0CVJL$C#T| z`K11d!0ay-oZ=6Co!27bIU577>*0`42|cN2G0b9X+(3Zo$fK>ekO7m>GYRG4Jmb*E z&>c5*KP~*tiD^EvZO@)-$kZrPmEqXpn%6xOXino}4edzCH;9EecqgI1JKa`1O4BY`i0w38bT?Vd$HE$xq zWML@H48t{qHUx3SrZ}PzorLiye{}8_2@G0$t%xiHhP_kGH1GZ&OHJg1!y(1mmN1?v QaCZmU+2E{et^Dr%4J}+GP5=M^ literal 3031 zcmeHJ`9D;B8y?3PlXVCq>kKCQJS2)NgCVBD6rmXDv8z;;L4=7ZOG0*DhAhvNHIi(J z2ai3YkU`2$$dVLSzOVbb?{m)e{l<_i&+~GLaX}yuUUM`2 zCGa_LbirZZol^MS9|GadHOCv;1Uaqb=-qS}5sr9|CW|E|73E5}zHpPhkVYXCx8~?^ zW=@si?5upqnYXTbDd~!gvW7~kbqakKX) zbCqfgC(rb4d0j21JY-ECJ`^%UxdSa6rw#%~3hno4jBx>GjkbM0QmZ}IJlsf(XnPJeb0lHSD>uv=jkAQ_LrZEaY>6ba7#GQ0U!R3Ga-Y7B-1aLJSoUO&%Qcwtd-s0Gs_KTF`Vd_Lb)ZSV$k8p4CU;)EN9cMa~-mzED$j6GU^Gq zavH#V1~X>7J7YuIF(ketpu{GYkk?y}h2lCIg#0&zH3y-|Ykb66gHmaKviN^Zh?OK!MXEKCpaQ^wJ z0j+_$rTCA_4|X}8ai^9+-cIMMJQo`=`2#`jR2mEYCsO$JlA#wIk9?6knhb~Wzn&p< zV9*FM!&NI?)n$#u-qwD;P!?R51I}wCq`82(DXN|nf5jj~D3bGhsn;<)(wDe1cn8KW z;-4%Sjde}>x`gJDQc}BM1;){S=wRK}Dg~W=0Vd6M?o|v2j}$gPs~A*vQciK72;r?f0X8a zxU>= zX`mCoi>WozHsc%X4s4uamqusG62rfFgoJzg81Kt_e4zIJoxM{uR(C)4nc5lrOu3$z z3_IeiNK(3=!6A|FVur`w=TY2bIdjZyVh{cM zMwz#_*)B{BPhHXiEsF7pS!Nf>xE-*1$BP@k6H_^y#slrAzgBA))I29Md7w)3@e^2f z1-bFFmUYy3T@J7E8T!f7>!=!^3L`3I9a0 z*ier|T8SQC|DfL7GgN1wO?Wb~@FRtpcb`{@fm@-IL=*dgsU3{F{!(5VMH&W(a7gILSyHbK-QSJEc^-4zPO!{N^9KR!W$}wQLxI_``=W5X z&2E4sMv1zytj_~oQW_SeA5X{qJc?4c4Pp0)HO!?JcTZoS59jf30NTw_75<3=!RA7NosP+fj_vi8elTTpD z-ST&BJKV}7i6gEl6N!yo&>|;6AWEgtahp$`lyQ`i-W@+9WeD9k0`Qk^k4nlu#x*wu zSm|thRqSgWM^>bX4Yx8-uqiUcg446IpvYV5t2INRz7vH32WahU{^__t4GGN;bBBU#e34st}}kvkj(%5 z3M>QBy@&sVA>i@@{uyfb&YtPVrt)i~7`=A0SzZ_}F?@~?G0a1Q+esEBKL&3gHgRnM zk0hrZ_TY>$?_9`msIaFJb7sfLcjbxDT!BeaFUf}9wH}14y=$)V(n0`^9awHBh9Br@ zV~6n#HwHB-YMKu%tda9|2u38%1{k`F&ShhxLlK?wx3;^VKmfP&OW2uY2=KG8&uLTu zm$!VWn-(gFL(yN2DxU-3DP%%jq7?w2N!AK+I}f2&T~I`Bm_w+cgYFf}a1@E6IBTST z43%ibT27T@gLY$!96RONpd04dO;xfHxY42%?w@iIIDM~bI|>w`(2(Mb{$DKqn?F@* VN;$c|^5_T;F*mWqmm4`h_&2>?E%g8Z diff --git a/OsmAnd/res/drawable-xxxhdpi/map_car_location_center.png b/OsmAnd/res/drawable-xxxhdpi/map_car_location_center.png index 70fe9f45a097ac3e579a4d5625847f80dff1e5d6..d723f1b709da695464ec57465c8589f37ad2e15f 100644 GIT binary patch literal 2657 zcmeHJ`8U*!8vo81jIn0l&1B7F3lTAkJ<{-E?4;s)6|%4I49b=WT@hn>?RzC=!Z0tT zS0P)-zJ;MtvS*p=p8GG{U+y{ghv)No&iS14{P3Lfd_GSK&f1I{CJqAtfZM{{*!GNR z|1K!o8QM0l(aPvB{W$5hA>f!~0-M;*Jo z^{jMMmO};f^X>6lCRB8y!kXb`0>FI`+L3`|v`EikhCF5_t4fvEO_&zCzYj`{x4~(- zbQEgJ@|UU-!wx5CNfp z>pssggba-^?eSVen=#DDHaXR%zy~hHn zWf3*k+2M5@rgpb1T|Z!}k8^M)%?}o37%j5+*O|JH%!QId_spHWeRTHjA@@ z(Y~N!A39O(yUKuqlMzn1FOIa{(d@^v0-66-RDNKFQTc;2SAf_=Fa*iv<#Xop7q>~t zD6QWa;}4Xco=knB4RRNcdfMAw6E;1?S-U++v6#AJN*rp6nT*o80JIbpphIia>a7y{ zp|s`jpIHCar1IVuQlOT_+BcET!6P4(eNdX+Z~?ITaUS)GLn1~2;(4GM4HDe_yX)4( zJt)nsDBP3C6CJ%U6RpUDJ1x0A1NPkSNbV*Ymte~1Iq=xoURDI1HmTCH^Z>Fc{ zc~ctK0m#gb+cyGRc^V*2{KH2gp7)Ur>~wls@TY~eX-RwskiP|o#G0856r$6j_QFtt zCx#CfS=ao{Hko;`41%uLs2cSIx8qm#L4=5;h1;Lj%(*ke)Gp3BvG7Y$B0$1AOKp5B zdsHfit=2dq)dQyDPTUMT?p~O3TX~m?2~dls|tXQJy#4zKnoUYVIw#;0J4lyT0 zBnOkdSfC~Pu{fLGl4?N4Rx0S(v@a6Golcec$XF}8mlirJ4#{P@609!E-W1bm+i!3C z11~69izQ5zR6=y$Z3;_g*dFt(Z7?YOvZ&;|Khq_?f8g~JFSR7gqEf8h2MwDa%LUnb z<+b=+&=Q!C=yIkAwQjm^85Oq*>=Tlc>T^0sv0@a%^BE?2&vv#w>-7JI@b&MU}@J^%UtyuMlSzuELXk z7|j)ak70Q!a!*GEKw>%M)uYZj+FC2nDPnyyE~U+|k>#ep(3+Q-*>~QK%5ke?iRi&b z<$7ldy}ukN4T$TfR1~j1wxn&RCngzsKf^TEjBkcr#Vu=J6L=%JTZcc`$mpRr(h-C2 z{8;Kc?K&+fnmmFnHfIMN#DsIzH3cHjB;ys9ThCq{-e;Qd`$MYqPx`%G#o4IRZGw{i z6RFOpXMPhwZ$*M~1?OzXR1DTnM0u!!orfF1xO|q2ylOVba8EupaK8Fr28Iil z9bXJr0lG^xL6SVt)7J5gzoHryd+Y}-!!64&31hh0LWOqx*SQ(F17+wgzi(|lK3y)b zc{FmQoeeawR&esf`~9)dQkBo=qRFkmOuqsS18|IKbw{`oo5AJ%dwg2B!9?<%fhjpO z5ea?VAWm+U6^oqrAGFzZm&p0P-d;c0c%%=WMi0=)7!<@HYWp``e`omEz7bL5l4}7J zlfc)!vDGyuN+O!OV literal 2614 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 diff --git a/OsmAnd/res/drawable-xxxhdpi/map_nautical_bearing_center.png b/OsmAnd/res/drawable-xxxhdpi/map_nautical_bearing_center.png index 54fd3a255c2675fd82b9b765f102c2a19a2c3a2f..9e059e7a15002a5d86ba6b933a180b3972637ce3 100644 GIT binary patch delta 1462 zcmV;n1xfnX5!VrrE?sgHR}hB#$;m1kasyRt_T~om4ag1f2?9G}y9!f@47)fd2%G?J zU~>Z42f1_uw8<)EbxMR(r9voc^h-Vc-h5uao}Ty3|JB&-XSo<(5P-ni1j^c#6hZ(3 zhCqaqVF+N8UI=58UI=58UI=58UI+|-fwTgRAN#@1jyKRjo|jqwch&D5q!j48V}DYLo%M@`?kfb!xn8L`Iw3`L@R0-gA!nH{Y0%qU4lUCPHkasbfFs1zP59@5CRv*)L?T83N5nRE0pF-b5GX_CqrfVk1pRREi4qU%YySL@EI5{U73tuecQ^}b(BC*|nY zRS6eVClKT9gelsJbJYsOcsnfDp^a*jsA_>2 zZ--_(tXWNmPpcP*@pf3QqZ?Im__PUu7;i^sJEmU^hfkXji1BtzpnK?&{_trt0x{n1 zA>J`9Qy=+hN+8DDF^TSfp-WncniGieb`SB6X_-=@CIw==9h2zjE*TG>HY*V0?dW*N z^vibmv}u7DZ^wkXhc0OjpEfNJ<*;nU^?V!R!c=swyk?EC4n^16@K|MVP$ zK#aHhjM!FtUri_FaH}0|x%glNV!YjF%(m8hKAn_rw|4avE<7lIf%w;vDiZuYH~$9WGqwW* z9ofq5*XenA7}@gwdNnQ3_@Un!ePeI=fcm~;w(sHl&-|A`wVqD!{Xtve4HhHRj z12L}NR)l-JZj!^HT?th824Y;@^$}OGKF#6KuC%HWh;en-$D4nBw!@)aiB%;KQysY$+`-E4u^Innf6;a#?@UPW&ZUw91iVDF{MC^tGhnN3f5P0IJ7ItlmhLZ_-|&G z;!{_;0%iT@1Zp}Q+V%OR6KMC?A6T)aKzubopvLoUU9jg9=)^D0?4ZjgSeuhT>++b%707*qoM6N<$f(+r}F#rGn delta 1471 zcmV;w1wi`O5!VrrE?;gGR}hBld7ND$ksF{ema;TAux~(a04E4+6OTQ{Rx+U7Oh}8*RTV(>L9}2mJ{tP(2(US+(h)S0=~JUzn8_<>c-29GAQL zs|+Vlo$l<~hx&T;x5^pUN1$HY=$ri^K9S-HG#USCW)If4*qnKd1fG6dr&;rdRI=J`1O6hhd@M(fTTibrZ3pAJL*B>6+*4FP$1buwm^)xJ)`Z|E6(QArUhcW?U-rr zRzWtOHZKt4ZSQ0|_N(=$a(eaBvE%<*4MHHs+nbEoT6e!3e~7dy_F+ zQ}1Fo<$vky`!$_?q0!71*+W-QokF$<^}bej@gR) z*YcvAzJ0jjvo3YIwguwv3@sIk&_!(J@mZeA#DC2Pv}YGKllss`9v{xWUHEkd7v7Ak zT`)U0i78J9p{ehI7*{*z+NE7wd72W4akWdDeVcSI71=8LWg7R-LN@UPVqEQ;YqxHr zazC;>%{+lB<7&4|`!(A9E`vqxHT@HaiQ6K}obDK2?d!2*$m2oTxkt6*aypwjcU`(& z+J7eylg$&7pmXH=keSE;pp?!g+5r~Of-=&RyeC#bci_%LW5b`X#oLP=*L!J~< zIL6gkq*(Mi+mR={K#Z#w4P}z!5^N6bOMf!#mvD@$`z~dI;}dKS?MpGFK#Z&VE@Ot{ zb8HUnOERWFlY7t1N{F|v^aaZCUnG!bb7^wB9&-&g7#|I^laDQ7Lk^u!8 zpPSiUpPS&=padG1C*%~a9**Df3f`bX^tr47$P-hb$+-4eCyotBU?B3u6o@BKKz}28 zT+)E#i7C*8?}2*6HO`^k4@oW~7>CHiG&*GBcoitRC#3y`7t zmuU6ItX!JeD;sUU9O4t_zbg?|pcDX+;SwNlD**($6%hwO;Ohhsh;*}22XFzC?*Szi Z@DB?y{oscb{^S4v002ovPDHLkV1n$D;&lK3