From 633f741a515c4def5b326cca0a49ade6cbdc6799 Mon Sep 17 00:00:00 2001 From: Alexander Sytnyk Date: Tue, 27 Jun 2017 18:25:41 +0300 Subject: [PATCH 01/25] Remove drawerListener --- .../osmand/plus/activities/MapActivity.java | 29 ------------------- .../osmand/plus/views/MultiTouchSupport.java | 5 ++++ .../osmand/plus/views/OsmandMapTileView.java | 12 ++++++-- .../osmand/plus/views/RulerControlLayer.java | 2 +- 4 files changed, 16 insertions(+), 32 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java index 928301e577..13346a3581 100644 --- a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java +++ b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java @@ -187,8 +187,6 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven private boolean mIsDestroyed = false; private InAppHelper inAppHelper; - private DrawerLayout.DrawerListener drawerListener; - @Override public void onCreate(Bundle savedInstanceState) { long tm = System.currentTimeMillis(); @@ -290,30 +288,6 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven mapActions.updateDrawerMenu(); drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); - drawerListener = new DrawerLayout.DrawerListener() { - @Override - public void onDrawerSlide(View drawerView, float slideOffset) { - mapView.setMultiTouch(false); - mapView.setMultiTouchEndTime(0); - mapView.getLayerByClass(RulerControlLayer.class).refreshMapDelayed(); - } - - @Override - public void onDrawerOpened(View drawerView) { - - } - - @Override - public void onDrawerClosed(View drawerView) { - - } - - @Override - public void onDrawerStateChanged(int newState) { - - } - }; - drawerLayout.addDrawerListener(drawerListener); IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_OFF); screenOffReceiver = new ScreenOffReceiver(); @@ -1005,9 +979,6 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven if (inAppHelper != null) { inAppHelper.stop(); } - if (drawerLayout != null) { - drawerLayout.removeDrawerListener(drawerListener); - } mIsDestroyed = true; } diff --git a/OsmAnd/src/net/osmand/plus/views/MultiTouchSupport.java b/OsmAnd/src/net/osmand/plus/views/MultiTouchSupport.java index 43fec23941..34f59ba568 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 onActionPointerDownOrMove(float x1, float y1, float x2, float y2); public void onActionPointerUp(); + + public void onActionCancel(); } private boolean multiTouchAPISupported = false; @@ -86,6 +88,9 @@ public class MultiTouchSupport { } int actionCode = event.getAction() & ACTION_MASK; try { + if (actionCode == MotionEvent.ACTION_CANCEL) { + listener.onActionCancel(); + } Integer pointCount = (Integer) getPointerCount.invoke(event); if(pointCount < 2){ if(inZoomMode){ diff --git a/OsmAnd/src/net/osmand/plus/views/OsmandMapTileView.java b/OsmAnd/src/net/osmand/plus/views/OsmandMapTileView.java index cb5df2bf7b..e88e65811d 100644 --- a/OsmAnd/src/net/osmand/plus/views/OsmandMapTileView.java +++ b/OsmAnd/src/net/osmand/plus/views/OsmandMapTileView.java @@ -167,6 +167,7 @@ public class OsmandMapTileView implements IMapDownloaderCallback { private float secondTouchPointY; private boolean multiTouch; private long multiTouchEndTime; + private boolean multiTouchCancelled; public OsmandMapTileView(MapActivity activity, int w, int h) { this.activity = activity; @@ -332,8 +333,8 @@ public class OsmandMapTileView implements IMapDownloaderCallback { return multiTouch; } - public void setMultiTouch(boolean multiTouch) { - this.multiTouch = multiTouch; + public boolean isMultiTouchCancelled() { + return multiTouchCancelled; } public long getMultiTouchEndTime() { @@ -1054,6 +1055,7 @@ public class OsmandMapTileView implements IMapDownloaderCallback { secondTouchPointX = x2; secondTouchPointY = y2; multiTouch = true; + multiTouchCancelled = false; } } @@ -1064,6 +1066,7 @@ public class OsmandMapTileView implements IMapDownloaderCallback { secondTouchPointX = x2; secondTouchPointY = y2; multiTouch = true; + multiTouchCancelled = false; } @Override @@ -1078,6 +1081,11 @@ public class OsmandMapTileView implements IMapDownloaderCallback { } } + @Override + public void onActionCancel() { + multiTouchCancelled = true; + } + @Override public void onZoomStarted(PointF centerPoint) { initialMultiTouchCenterPoint = centerPoint; diff --git a/OsmAnd/src/net/osmand/plus/views/RulerControlLayer.java b/OsmAnd/src/net/osmand/plus/views/RulerControlLayer.java index 818069757b..7f43bfa140 100644 --- a/OsmAnd/src/net/osmand/plus/views/RulerControlLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/RulerControlLayer.java @@ -122,7 +122,7 @@ public class RulerControlLayer extends OsmandMapLayer { cacheMultiTouchEndTime = view.getMultiTouchEndTime(); refreshMapDelayed(); } - if (!view.isZooming() && view.isMultiTouch() || System.currentTimeMillis() - cacheMultiTouchEndTime < DELAY) { + if (!view.isMultiTouchCancelled() && !view.isZooming() && view.isMultiTouch() || System.currentTimeMillis() - cacheMultiTouchEndTime < DELAY) { float x1 = view.getFirstTouchPointX(); float y1 = view.getFirstTouchPointY(); float x2 = view.getSecondTouchPointX(); From 14f232cc417d06ba4333d748676ce76195687e5e Mon Sep 17 00:00:00 2001 From: Alexander Sytnyk Date: Tue, 27 Jun 2017 18:37:46 +0300 Subject: [PATCH 02/25] Increase the delay, check the condition in the layer --- .../src/net/osmand/plus/views/OsmandMapTileView.java | 9 +-------- .../src/net/osmand/plus/views/RulerControlLayer.java | 10 ++++++++-- .../plus/views/mapwidgets/MapInfoWidgetsFactory.java | 3 ++- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/views/OsmandMapTileView.java b/OsmAnd/src/net/osmand/plus/views/OsmandMapTileView.java index e88e65811d..3016c7be1c 100644 --- a/OsmAnd/src/net/osmand/plus/views/OsmandMapTileView.java +++ b/OsmAnd/src/net/osmand/plus/views/OsmandMapTileView.java @@ -167,7 +167,6 @@ public class OsmandMapTileView implements IMapDownloaderCallback { private float secondTouchPointY; private boolean multiTouch; private long multiTouchEndTime; - private boolean multiTouchCancelled; public OsmandMapTileView(MapActivity activity, int w, int h) { this.activity = activity; @@ -333,10 +332,6 @@ public class OsmandMapTileView implements IMapDownloaderCallback { return multiTouch; } - public boolean isMultiTouchCancelled() { - return multiTouchCancelled; - } - public long getMultiTouchEndTime() { return multiTouchEndTime; } @@ -1055,7 +1050,6 @@ public class OsmandMapTileView implements IMapDownloaderCallback { secondTouchPointX = x2; secondTouchPointY = y2; multiTouch = true; - multiTouchCancelled = false; } } @@ -1066,7 +1060,6 @@ public class OsmandMapTileView implements IMapDownloaderCallback { secondTouchPointX = x2; secondTouchPointY = y2; multiTouch = true; - multiTouchCancelled = false; } @Override @@ -1083,7 +1076,7 @@ public class OsmandMapTileView implements IMapDownloaderCallback { @Override public void onActionCancel() { - multiTouchCancelled = true; + multiTouch = false; } @Override diff --git a/OsmAnd/src/net/osmand/plus/views/RulerControlLayer.java b/OsmAnd/src/net/osmand/plus/views/RulerControlLayer.java index 7f43bfa140..608346a66b 100644 --- a/OsmAnd/src/net/osmand/plus/views/RulerControlLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/RulerControlLayer.java @@ -27,7 +27,7 @@ import gnu.trove.list.array.TIntArrayList; public class RulerControlLayer extends OsmandMapLayer { - public static final long DELAY = 1500; + public static final long DELAY = 2000; private static final int TEXT_SIZE = 14; private final MapActivity mapActivity; @@ -40,6 +40,7 @@ public class RulerControlLayer extends OsmandMapLayer { private float maxRadius; private int radius; private double roundedDist; + private boolean showTwoFingersDistance; private QuadPoint cacheCenter; private int cacheIntZoom; @@ -64,6 +65,10 @@ public class RulerControlLayer extends OsmandMapLayer { this.mapActivity = mapActivity; } + public boolean isShowTwoFingersDistance() { + return showTwoFingersDistance; + } + @Override public void initLayer(final OsmandMapTileView view) { app = mapActivity.getMyApplication(); @@ -122,7 +127,8 @@ public class RulerControlLayer extends OsmandMapLayer { cacheMultiTouchEndTime = view.getMultiTouchEndTime(); refreshMapDelayed(); } - if (!view.isMultiTouchCancelled() && !view.isZooming() && view.isMultiTouch() || System.currentTimeMillis() - cacheMultiTouchEndTime < DELAY) { + showTwoFingersDistance = !view.isZooming() && view.isMultiTouch() || System.currentTimeMillis() - cacheMultiTouchEndTime < DELAY; + if (showTwoFingersDistance) { float x1 = view.getFirstTouchPointX(); float y1 = view.getFirstTouchPointY(); float x2 = view.getSecondTouchPointX(); diff --git a/OsmAnd/src/net/osmand/plus/views/mapwidgets/MapInfoWidgetsFactory.java b/OsmAnd/src/net/osmand/plus/views/mapwidgets/MapInfoWidgetsFactory.java index 63ed075c6e..94b0180739 100644 --- a/OsmAnd/src/net/osmand/plus/views/mapwidgets/MapInfoWidgetsFactory.java +++ b/OsmAnd/src/net/osmand/plus/views/mapwidgets/MapInfoWidgetsFactory.java @@ -187,6 +187,7 @@ public class MapInfoWidgetsFactory { final TextInfoWidget rulerControl = new TextInfoWidget(map) { boolean needNewLatLon; long cacheMultiTouchEndTime; + RulerControlLayer rulerLayer = map.getMapLayers().getRulerControlLayer(); @Override public boolean updateInfo(DrawSettings drawSettings) { @@ -197,7 +198,7 @@ public class MapInfoWidgetsFactory { cacheMultiTouchEndTime = view.getMultiTouchEndTime(); needNewLatLon = true; } - if (!view.isZooming() && view.isMultiTouch() || System.currentTimeMillis() - cacheMultiTouchEndTime < RulerControlLayer.DELAY) { + if (rulerLayer.isShowTwoFingersDistance()) { if (needNewLatLon) { float x1 = view.getFirstTouchPointX(); float y1 = view.getFirstTouchPointY(); From a714571d5f880545248c704134ccd75fcb367672 Mon Sep 17 00:00:00 2001 From: Alexander Sytnyk Date: Tue, 27 Jun 2017 18:55:19 +0300 Subject: [PATCH 03/25] Delete unnecessary fields --- OsmAnd/src/net/osmand/plus/views/OsmandMapTileView.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/views/OsmandMapTileView.java b/OsmAnd/src/net/osmand/plus/views/OsmandMapTileView.java index 3016c7be1c..42b4e32354 100644 --- a/OsmAnd/src/net/osmand/plus/views/OsmandMapTileView.java +++ b/OsmAnd/src/net/osmand/plus/views/OsmandMapTileView.java @@ -995,8 +995,6 @@ public class OsmandMapTileView implements IMapDownloaderCallback { private LatLon initialCenterLatLon; private boolean startRotating = false; private static final float ANGLE_THRESHOLD = 30; - private int cacheIntZoom = getZoom(); - private double cacheFractionalZoom = getZoomFractionalPart(); @Override public void onZoomOrRotationEnded(double relativeToStart, float angleRelative) { @@ -1065,9 +1063,7 @@ public class OsmandMapTileView implements IMapDownloaderCallback { @Override public void onActionPointerUp() { multiTouch = false; - if (cacheIntZoom != getZoom() || cacheFractionalZoom != getZoomFractionalPart()) { - cacheIntZoom = getZoom(); - cacheFractionalZoom = getZoomFractionalPart(); + if (isZooming()) { multiTouchEndTime = 0; } else { multiTouchEndTime = System.currentTimeMillis(); From ecd2dc47637b204c0b242631d5357387e421198a Mon Sep 17 00:00:00 2001 From: PavelRatushny Date: Thu, 29 Jun 2017 11:30:24 +0300 Subject: [PATCH 04/25] Open needed location by clicking on bitmap --- OsmAnd/src/net/osmand/plus/myplaces/TrackSegmentFragment.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/OsmAnd/src/net/osmand/plus/myplaces/TrackSegmentFragment.java b/OsmAnd/src/net/osmand/plus/myplaces/TrackSegmentFragment.java index ad0d58db9c..84f5a3eb30 100644 --- a/OsmAnd/src/net/osmand/plus/myplaces/TrackSegmentFragment.java +++ b/OsmAnd/src/net/osmand/plus/myplaces/TrackSegmentFragment.java @@ -277,7 +277,8 @@ public class TrackSegmentFragment extends OsmAndListFragment { headerView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - LatLon location = new LatLon(generalDisplayItem.locationStart.lat, generalDisplayItem.locationStart.lon); + LatLon location = new LatLon((generalDisplayItem.analysis.bottom + generalDisplayItem.analysis.top) / 2, + (generalDisplayItem.analysis.left + generalDisplayItem.analysis.right) / 2); final OsmandSettings settings = app.getSettings(); settings.setMapLocationToShow(location.getLatitude(), location.getLongitude(), settings.getLastKnownMapZoom()); From e320813f6c7ee27bff204bfdb6156d1504ea9e83 Mon Sep 17 00:00:00 2001 From: josep constanti Date: Thu, 29 Jun 2017 05:56:00 +0000 Subject: [PATCH 05/25] Translated using Weblate (Catalan) Currently translated at 99.2% (2331 of 2348 strings) --- OsmAnd/res/values-ca/strings.xml | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/OsmAnd/res/values-ca/strings.xml b/OsmAnd/res/values-ca/strings.xml index 5ef581de01..131c46def8 100644 --- a/OsmAnd/res/values-ca/strings.xml +++ b/OsmAnd/res/values-ca/strings.xml @@ -1685,15 +1685,17 @@ Afganistan, Albània, Alemanya, Antilles Holandeses, Algèria, Andorra, Angola, Segments de traça Punts de traça Vista turística del mapa - "En activar el canvi en l\'estil de la vista del mapa de l\'OsmAnd a «Vista turística del mapa», es mostra una vista especial de gran detall per viatgers i conductors professionals. + En activar el canvi en l\'estil del mapa de l\'OsmAnd a «Vista de viatge», es mostra una vista especial de gran detall per viatgers i conductors professionals. +\n +\nAquesta vista proporciona, a qualsevol nivell de zoom del mapa, el màxim detall disponible a les dades del mapa per viatjar (particularment carreteres, pistes, camins i senyals d\'orientació). +\n +\nTambé es discrimina amb nitidesa tots els tipus de carreteres pel codi de colors, la qual cosa és molt útil, per exemple, conduint vehicles pesats. \n -\nAquesta vista proporciona, per a qualsevol nivell de zoom al mapa, la quantitat màxima de detalls de viatge disponibles a les dades del mapa (particularment carreteres, pistes, camins i senyals d\'orientació). -\n -\nTambé es discrimina amb nitidesa tots els tipus de carreteres pel codi de colors, la qual cosa és molt útil, per exemple, conduint vehicles pesats. -\n -\nNo cal baixar un mapa específic, aquesta vista es crea amb els nostres mapes estàndards. -\n -\nAquesta vista es pot desfer tornant a fer la mateixa selecció, o en canviar l\'«Estil del mapa» de «Configuració del mapa» a la vista que es desitgi. " +\nI ofereix opcions de viatge concretes com representar les rutes ciclistes o d\'alpinisme a la muntanya. +\n +\nNo cal baixar un mapa específic, aquesta vista es crea amb els nostres mapes estàndards. +\n +\nAquesta vista es pot desfer tornant a fer la mateixa selecció, o en canviar l\'«Estil del mapa» de «Configuració del mapa» a la vista que es desitgi. El nom de grup ha de tenir una mida mínima de 3 caràcters! "Esteu a punt de pujar %1$d modificacio(ns) a OSM. N\'esteu segur?" Voleu esborrar l\'històric? From 7f7628fce3c57218ee0869b79dbddf3ab38bb3d6 Mon Sep 17 00:00:00 2001 From: ezjerry liao Date: Thu, 29 Jun 2017 08:01:18 +0000 Subject: [PATCH 06/25] Translated using Weblate (Chinese (Traditional)) Currently translated at 97.7% (3032 of 3102 strings) --- OsmAnd/res/values-zh-rTW/phrases.xml | 86 ++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) diff --git a/OsmAnd/res/values-zh-rTW/phrases.xml b/OsmAnd/res/values-zh-rTW/phrases.xml index c7c2a44639..b7c155d6d5 100644 --- a/OsmAnd/res/values-zh-rTW/phrases.xml +++ b/OsmAnd/res/values-zh-rTW/phrases.xml @@ -3266,4 +3266,90 @@ 希臘旋轉烤肉 拉丁餡餅 可麗餅 + 烤肉 + 泰式火鍋 + 烏龍麵 + 啤酒店 + 珍珠奶茶 + 日式烤雞肉串 + 蘋果酒 + 肉類食物 + 雞翅膀 + 格子鬆餅 + 巧克力 + 葡萄酒 + 馬鈴薯 + 早午餐 + 潛艇三明治 + 口袋餅 + 葡式蛋塔 + 墨西哥捲餅 + 照燒 + 沙威瑪 + + 區域性的 + 意大利料理 + 中式料理 + 墨西哥料理 + 日本料理 + 德國料理 + 印度料理 + 美式料理 + 亞洲料理 + 法式料理 + 希臘料理 + 泰式料理 + 多國式料理 + 土耳其料理 + 西班牙料理 + 越南料理 + 韓國料理 + 地中海料理 + 巴伐利亞料理 + 黎巴嫩料理 + 俄式料理 + 菲律賓料理 + 葡萄牙料理 + 喬治亞料理 + 波蘭料理 + 巴西料理 + 阿拉伯料理 + 丹麥料理 + 印尼料理 + 非洲料理 + 加勒比海料理 + 阿根廷料理 + 巴爾幹料理 + 秘魯料理 + 克羅埃西亞料理 + 玻利維亞料理 + 馬拉加斯料理 + 波斯料理 + 摩洛哥料理 + 奧地利料理 + 馬來西亞料理 + 愛爾蘭料理 + 餐酒吧 + 衣索比亞料理 + 匈牙利料理 + 寮國料理 + 歐洲料理 + 烏玆別克料理 + 捷克料理 + 古巴料理 + 英國料理 + 拉丁美洲料理 + 尼泊爾料理 + 蒙古料理 + 中東料理 + 烏克蘭料理 + 阿富汗料理 + 比利時料理 + 巴斯克料理 + 瑞士料理 + 廣式料理 + 瑞典料理 + 牙買加料理 + 亞美尼亞料理 + 夏威夷料理 From 143297bee9cc4d811e5246daa2cfc95dd85c06b6 Mon Sep 17 00:00:00 2001 From: Alexander Sytnyk Date: Thu, 29 Jun 2017 12:03:50 +0300 Subject: [PATCH 07/25] Delete zero writing in the multiTouchEndTime field --- .../net/osmand/plus/views/OsmandMapTileView.java | 13 ++++++++++--- .../net/osmand/plus/views/RulerControlLayer.java | 10 +++------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/views/OsmandMapTileView.java b/OsmAnd/src/net/osmand/plus/views/OsmandMapTileView.java index 42b4e32354..1812fa255f 100644 --- a/OsmAnd/src/net/osmand/plus/views/OsmandMapTileView.java +++ b/OsmAnd/src/net/osmand/plus/views/OsmandMapTileView.java @@ -167,6 +167,7 @@ public class OsmandMapTileView implements IMapDownloaderCallback { private float secondTouchPointY; private boolean multiTouch; private long multiTouchEndTime; + private boolean wasZoomInMultiTouch; public OsmandMapTileView(MapActivity activity, int w, int h) { this.activity = activity; @@ -336,8 +337,12 @@ public class OsmandMapTileView implements IMapDownloaderCallback { return multiTouchEndTime; } - public void setMultiTouchEndTime(long multiTouchEndTime) { - this.multiTouchEndTime = multiTouchEndTime; + public boolean isWasZoomInMultiTouch() { + return wasZoomInMultiTouch; + } + + public void setWasZoomInMultiTouch(boolean wasZoomInMultiTouch) { + this.wasZoomInMultiTouch = wasZoomInMultiTouch; } public void setIntZoom(int zoom) { @@ -1048,6 +1053,7 @@ public class OsmandMapTileView implements IMapDownloaderCallback { secondTouchPointX = x2; secondTouchPointY = y2; multiTouch = true; + wasZoomInMultiTouch = false; } } @@ -1064,9 +1070,10 @@ public class OsmandMapTileView implements IMapDownloaderCallback { public void onActionPointerUp() { multiTouch = false; if (isZooming()) { - multiTouchEndTime = 0; + wasZoomInMultiTouch = true; } else { multiTouchEndTime = System.currentTimeMillis(); + wasZoomInMultiTouch = false; } } diff --git a/OsmAnd/src/net/osmand/plus/views/RulerControlLayer.java b/OsmAnd/src/net/osmand/plus/views/RulerControlLayer.java index 608346a66b..e0df425c9f 100644 --- a/OsmAnd/src/net/osmand/plus/views/RulerControlLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/RulerControlLayer.java @@ -44,7 +44,6 @@ public class RulerControlLayer extends OsmandMapLayer { private QuadPoint cacheCenter; private int cacheIntZoom; - private double cacheFractionalZoom; private double cacheTileX; private double cacheTileY; private long cacheMultiTouchEndTime; @@ -118,16 +117,13 @@ public class RulerControlLayer extends OsmandMapLayer { final QuadPoint center = tb.getCenterPixelPoint(); final RulerMode mode = app.getSettings().RULER_MODE.get(); - if (cacheIntZoom != view.getZoom() || cacheFractionalZoom != view.getZoomFractionalPart()) { - cacheIntZoom = view.getZoom(); - cacheFractionalZoom = view.getZoomFractionalPart(); - view.setMultiTouchEndTime(0); - cacheMultiTouchEndTime = 0; + if (view.isMultiTouch() && view.isZooming()) { + view.setWasZoomInMultiTouch(true); } else if (cacheMultiTouchEndTime != view.getMultiTouchEndTime()) { cacheMultiTouchEndTime = view.getMultiTouchEndTime(); refreshMapDelayed(); } - showTwoFingersDistance = !view.isZooming() && view.isMultiTouch() || System.currentTimeMillis() - cacheMultiTouchEndTime < DELAY; + showTwoFingersDistance = !view.isWasZoomInMultiTouch() && !view.isZooming() && (view.isMultiTouch() || System.currentTimeMillis() - cacheMultiTouchEndTime < DELAY); if (showTwoFingersDistance) { float x1 = view.getFirstTouchPointX(); float y1 = view.getFirstTouchPointY(); From 641d2e3f2cab4ee656a86edc9e7ec05b9abff51a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sveinn=20=C3=AD=20Felli?= Date: Thu, 29 Jun 2017 09:09:20 +0000 Subject: [PATCH 08/25] Translated using Weblate (Icelandic) Currently translated at 76.0% (2360 of 3102 strings) --- OsmAnd/res/values-is/phrases.xml | 125 ++++++++++++++++++++++++++++++- 1 file changed, 123 insertions(+), 2 deletions(-) diff --git a/OsmAnd/res/values-is/phrases.xml b/OsmAnd/res/values-is/phrases.xml index e0ac556ff8..f6b7e412e1 100644 --- a/OsmAnd/res/values-is/phrases.xml +++ b/OsmAnd/res/values-is/phrases.xml @@ -132,7 +132,7 @@ Smálest Skólaföt Skýli - Óvirkt + Fatlaðir Borg Lækur Opinbert @@ -1519,7 +1519,7 @@ Skuggaleikhús Hljómsveitarpallur - Menning: byzantínsk (285 e.Kr. – 1453 e.Kr.) + Menning: býsantínsk (285 e.Kr. – 1453 e.Kr.) Menning: mýkenönsk Dýraþjálfun Sögutími: steinöld / bronsöld (óráðið) @@ -2447,4 +2447,125 @@ Kort yfir almenningssamgöngur Drykkir og sælgæti Krosslaga + Útibú + + Staur + Koshinto + Blár skjöldur + Jizo + Götusteinn + Stupa + Prasat + Veggskreyting + + Söguleg grjótnáma + + Malarblanda + Antímon + Berýl + Krómít + Byggingasteinn + Brúnkol + Glimmer + Steinefnaolía + Mór + Títansandur + Steinþynnur;járngrýti;kopar + Þynnur + Zirkon + + Engi + Möl + Klettótt + + Skorsteinn + Án bekkja + Með ruslafötu + Án ruslafötu + + Nestisaðstaða + Setskýli + Einfaldur kofi + Dýraskoðunarskýli + Skýli í klettaskúta + Skýli fyrir búpening + Gerð skýlis: tjald + Gerð skýlis: yfirgefið + + Tegund listaverks: staur + Byggingastíll: konstrúktívismi + Byggingastíll: bindingsverk + Byggingastíll: fornrússneskur + Byggingastíll: póstkonstrúktívismi + Vatnsgöng + Vegagöng + Göng fyrir fótgangandi + Vegabrú + Bátabrú + Upplýst: já + Upplýst: nei + + Yfirborð: steinlagt + Yfirborð: götusteinar + Yfirborð: hellusteinar + Yfirborð: grassteinar + Yfirborð: jarðvegur + Yfirborð: mold + Sala á notuðum reiðhjólum + Sala á notuðum reiðhjólum: nei + Stöð til að gera sjálf við reiðhjól + + Athugasemd + Módelflugsvæði + Sögulegur kílómetrasteinn + + Sögulegur herragarður + Tegund kastala: bústaður + Tegund kastala: varnarvirki + Tegund kastala: virki + Tegund kastala: höll + Tegund kastala: rússneskur (kreml) + Tegund kastala: varnarvirki, bústaður + Tegund kastala: rómverskur (castrum) + Tegund kastala: japanskur (shiro) + + Sambýli + Búseta með stuðningi + Útbreiðsla + Matarbanki + Heimahlynning + Aldraðir + Börn + Munaðarleysingjar + Sjúklingar með geðrænar truflanir + Ungmenni + Heimilislausir + Farandfólk + Bágstaddir + Eiturlyfjafíklar + Atvinnulausir + Sjúkir + Börn: ungmenni + + Menning: núrísk (18. öld f. Kr – 2. öld e.Kr.) + Menning: kínverska keisaraveldið (221 f. Kr – 1911 e. Kr) + Menning: grísk-egypsk (332-30 f.Kr) + Menning: rómversk- og býsantísk-egypsk + Sögutími: núrískur + Bátageymsla + + Almennar heimilislækningar + Augnlækningar + Barnalækningar + Húðlækningar + Þvagfæralækningar + Almennar skurðlækningar + Geislalækninar + Geðlækningar + Taugalækningar + Hjartalækningar + Áfallalækningar + Svæfingalækningar + Tannlækningar + Reiki From f13a391b56de50c3f7247c6634650ab53b6c959f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sveinn=20=C3=AD=20Felli?= Date: Thu, 29 Jun 2017 09:20:00 +0000 Subject: [PATCH 09/25] Translated using Weblate (Icelandic) Currently translated at 92.8% (2179 of 2348 strings) --- OsmAnd/res/values-is/strings.xml | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-is/strings.xml b/OsmAnd/res/values-is/strings.xml index 92430be7e1..77257efbe6 100644 --- a/OsmAnd/res/values-is/strings.xml +++ b/OsmAnd/res/values-is/strings.xml @@ -1433,7 +1433,7 @@ og leiðsögn Veldu á milli staðarheita og enskra heita Veldu uppruna nettengdra korta eða kortatígla í biðminni Lágmarkshraði skráningar - Hreyfiskynjun skráningar + Skráning minnstu hreyfingar Lágmarksnákvæmni skráningar Jólastaðir Settu inn borg, heimilisfang, merkisstað @@ -2222,4 +2222,16 @@ Stendur fyrir svæði: %1$s x %2$s Leiðrétt fjarlægð Bæta ljósmyndaþekju með Mapillary Fela í aðdráttarstigi + Endurnýja + Endurlesa kortaflísar til að sjá uppfærð gögn. + Tiglaskyndiminni + Rangt notandanafn! + Til + Frá + Skoða myndir sem bætt hefur verið inn á tilteknu tímabili. + Dagsetningar + Settu inn nafn á notanda + Skoða myndir sem tiltekinn notandi hefur bætt við. + Notandanafn + Þú getur síað myndir eftir sendanda eða dagsetningu. Síum er aðeins beitt í miklum aðdrætti. From bcfce50305c139b9838112be5f53f863f0b20074 Mon Sep 17 00:00:00 2001 From: Alexander Sytnyk Date: Thu, 29 Jun 2017 13:12:57 +0300 Subject: [PATCH 10/25] Show points by location, not by pixels --- .../osmand/plus/views/MultiTouchSupport.java | 6 +-- .../osmand/plus/views/OsmandMapTileView.java | 37 ++++--------------- .../osmand/plus/views/RulerControlLayer.java | 17 +++++---- .../mapwidgets/MapInfoWidgetsFactory.java | 30 +++++---------- 4 files changed, 28 insertions(+), 62 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/views/MultiTouchSupport.java b/OsmAnd/src/net/osmand/plus/views/MultiTouchSupport.java index 34f59ba568..166d3f04ee 100644 --- a/OsmAnd/src/net/osmand/plus/views/MultiTouchSupport.java +++ b/OsmAnd/src/net/osmand/plus/views/MultiTouchSupport.java @@ -33,8 +33,6 @@ public class MultiTouchSupport { public void onGestureInit(float x1, float y1, float x2, float y2); - public void onActionPointerDownOrMove(float x1, float y1, float x2, float y2); - public void onActionPointerUp(); public void onActionCancel(); @@ -111,9 +109,7 @@ public class MultiTouchSupport { angleDefined = true; angle = (float) (Math.atan2(y2 - y1, x2 -x1) * 180 / Math.PI); } - if (actionCode == MotionEvent.ACTION_DOWN || actionCode == MotionEvent.ACTION_MOVE) { - listener.onActionPointerDownOrMove(x1, y1, x2, y2); - } else if (actionCode == MotionEvent.ACTION_UP || actionCode == MotionEvent.ACTION_POINTER_UP) { + if (actionCode == MotionEvent.ACTION_UP || actionCode == MotionEvent.ACTION_POINTER_UP) { listener.onActionPointerUp(); } if (actionCode == ACTION_POINTER_DOWN) { diff --git a/OsmAnd/src/net/osmand/plus/views/OsmandMapTileView.java b/OsmAnd/src/net/osmand/plus/views/OsmandMapTileView.java index 1812fa255f..0f670da124 100644 --- a/OsmAnd/src/net/osmand/plus/views/OsmandMapTileView.java +++ b/OsmAnd/src/net/osmand/plus/views/OsmandMapTileView.java @@ -161,10 +161,8 @@ public class OsmandMapTileView implements IMapDownloaderCallback { private boolean afterDoubleTap = false; private boolean wasMapLinkedBeforeGesture = false; - private float firstTouchPointX; - private float firstTouchPointY; - private float secondTouchPointX; - private float secondTouchPointY; + private LatLon firstTouchPointLatLon; + private LatLon secondTouchPointLatLon; private boolean multiTouch; private long multiTouchEndTime; private boolean wasZoomInMultiTouch; @@ -313,20 +311,12 @@ public class OsmandMapTileView implements IMapDownloaderCallback { } // ///////////////////////// NON UI PART (could be extracted in common) ///////////////////////////// - public float getFirstTouchPointX() { - return firstTouchPointX; + public LatLon getFirstTouchPointLatLon() { + return firstTouchPointLatLon; } - public float getFirstTouchPointY() { - return firstTouchPointY; - } - - public float getSecondTouchPointX() { - return secondTouchPointX; - } - - public float getSecondTouchPointY() { - return secondTouchPointY; + public LatLon getSecondTouchPointLatLon() { + return secondTouchPointLatLon; } public boolean isMultiTouch() { @@ -1048,24 +1038,13 @@ public class OsmandMapTileView implements IMapDownloaderCallback { this.x2 = x2; this.y2 = y2; if (x1 != x2 || y1 != y2) { - firstTouchPointX = x1; - firstTouchPointY = y1; - secondTouchPointX = x2; - secondTouchPointY = y2; + firstTouchPointLatLon = currentViewport.getLatLonFromPixel(x1, y1); + secondTouchPointLatLon = currentViewport.getLatLonFromPixel(x2, y2); multiTouch = true; wasZoomInMultiTouch = false; } } - @Override - public void onActionPointerDownOrMove(float x1, float y1, float x2, float y2) { - firstTouchPointX = x1; - firstTouchPointY = y1; - secondTouchPointX = x2; - secondTouchPointY = y2; - multiTouch = true; - } - @Override public void onActionPointerUp() { multiTouch = false; diff --git a/OsmAnd/src/net/osmand/plus/views/RulerControlLayer.java b/OsmAnd/src/net/osmand/plus/views/RulerControlLayer.java index e0df425c9f..f9e620d346 100644 --- a/OsmAnd/src/net/osmand/plus/views/RulerControlLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/RulerControlLayer.java @@ -13,6 +13,7 @@ import android.os.Message; import android.view.View; import net.osmand.Location; +import net.osmand.data.LatLon; import net.osmand.data.QuadPoint; import net.osmand.data.RotatedTileBox; import net.osmand.plus.OsmAndFormatter; @@ -125,11 +126,13 @@ public class RulerControlLayer extends OsmandMapLayer { } showTwoFingersDistance = !view.isWasZoomInMultiTouch() && !view.isZooming() && (view.isMultiTouch() || System.currentTimeMillis() - cacheMultiTouchEndTime < DELAY); if (showTwoFingersDistance) { - float x1 = view.getFirstTouchPointX(); - float y1 = view.getFirstTouchPointY(); - float x2 = view.getSecondTouchPointX(); - float y2 = view.getSecondTouchPointY(); - drawFingerDistance(canvas, tb, center, x1, y1, x2, y2, settings.isNightMode()); + LatLon firstTouchPoint = view.getFirstTouchPointLatLon(); + LatLon secondTouchPoint = view.getSecondTouchPointLatLon(); + float x1 = tb.getPixXFromLonNoRot(firstTouchPoint.getLongitude()); + float y1 = tb.getPixYFromLatNoRot(firstTouchPoint.getLatitude()); + float x2 = tb.getPixXFromLonNoRot(secondTouchPoint.getLongitude()); + float y2 = tb.getPixYFromLatNoRot(secondTouchPoint.getLatitude()); + drawFingerDistance(canvas, x1, y1, x2, y2, settings.isNightMode()); } else if (mode == RulerMode.FIRST) { drawCenterIcon(canvas, tb, center, settings.isNightMode()); Location currentLoc = app.getLocationProvider().getLastKnownLocation(); @@ -151,12 +154,10 @@ public class RulerControlLayer extends OsmandMapLayer { handler.sendEmptyMessageDelayed(0, DELAY + 50); } - private void drawFingerDistance(Canvas canvas, RotatedTileBox tb, QuadPoint center, float x1, float y1, float x2, float y2, boolean nightMode) { - canvas.rotate(-tb.getRotate(), center.x, center.y); + private void drawFingerDistance(Canvas canvas, float x1, float y1, float x2, float y2, boolean nightMode) { canvas.drawLine(x1, y1, x2, y2, lineAttrs.paint); drawFingerTouchIcon(canvas, x1, y1, nightMode); drawFingerTouchIcon(canvas, x2, y2, nightMode); - canvas.rotate(tb.getRotate(), center.x, center.y); } private void drawFingerTouchIcon(Canvas canvas, float x, float y, boolean nightMode) { diff --git a/OsmAnd/src/net/osmand/plus/views/mapwidgets/MapInfoWidgetsFactory.java b/OsmAnd/src/net/osmand/plus/views/mapwidgets/MapInfoWidgetsFactory.java index 94b0180739..ab47bd1c0f 100644 --- a/OsmAnd/src/net/osmand/plus/views/mapwidgets/MapInfoWidgetsFactory.java +++ b/OsmAnd/src/net/osmand/plus/views/mapwidgets/MapInfoWidgetsFactory.java @@ -150,7 +150,7 @@ public class MapInfoWidgetsFactory { RulerMode mode = rulerMode.get(); if (mode == RulerMode.FIRST) { return RULER_CONTROL_WIDGET_STATE_FIRST_MODE; - } else if (mode == RulerMode.SECOND){ + } else if (mode == RulerMode.SECOND) { return RULER_CONTROL_WIDGET_STATE_SECOND_MODE; } else { return RULER_CONTROL_WIDGET_STATE_EMPTY_MODE; @@ -184,31 +184,23 @@ public class MapInfoWidgetsFactory { public TextInfoWidget createRulerControl(final MapActivity map) { final String title = map.getResources().getString(R.string.map_widget_show_ruler); - final TextInfoWidget rulerControl = new TextInfoWidget(map) { - boolean needNewLatLon; - long cacheMultiTouchEndTime; + final TextInfoWidget rulerControl = new TextInfoWidget(map) { RulerControlLayer rulerLayer = map.getMapLayers().getRulerControlLayer(); + LatLon cacheFirstTouchPoint = new LatLon(0, 0); + LatLon cacheSecondTouchPoint = new LatLon(0, 0); @Override public boolean updateInfo(DrawSettings drawSettings) { RulerMode mode = map.getMyApplication().getSettings().RULER_MODE.get(); OsmandMapTileView view = map.getMapView(); - if (cacheMultiTouchEndTime != view.getMultiTouchEndTime()) { - cacheMultiTouchEndTime = view.getMultiTouchEndTime(); - needNewLatLon = true; - } if (rulerLayer.isShowTwoFingersDistance()) { - if (needNewLatLon) { - float x1 = view.getFirstTouchPointX(); - float y1 = view.getFirstTouchPointY(); - float x2 = view.getSecondTouchPointX(); - float y2 = view.getSecondTouchPointY(); - LatLon firstFinger = view.getCurrentRotatedTileBox().getLatLonFromPixel(x1, y1); - LatLon secondFinger = view.getCurrentRotatedTileBox().getLatLonFromPixel(x2, y2); - setDistanceText(firstFinger.getLatitude(), firstFinger.getLongitude(), - secondFinger.getLatitude(), secondFinger.getLongitude()); - needNewLatLon = false; + if (!cacheFirstTouchPoint.equals(view.getFirstTouchPointLatLon()) || + !cacheSecondTouchPoint.equals(view.getSecondTouchPointLatLon())) { + cacheFirstTouchPoint = view.getFirstTouchPointLatLon(); + cacheSecondTouchPoint = view.getSecondTouchPointLatLon(); + setDistanceText(cacheFirstTouchPoint.getLatitude(), cacheFirstTouchPoint.getLongitude(), + cacheSecondTouchPoint.getLatitude(), cacheSecondTouchPoint.getLongitude()); } } else if (mode == RulerMode.FIRST || mode == RulerMode.SECOND) { Location currentLoc = map.getMyApplication().getLocationProvider().getLastKnownLocation(); @@ -218,10 +210,8 @@ public class MapInfoWidgetsFactory { setDistanceText(currentLoc.getLatitude(), currentLoc.getLongitude(), centerLoc.getLatitude(), centerLoc.getLongitude()); } - needNewLatLon = true; } else { setText(title, null); - needNewLatLon = true; } return true; } From 02f345418594fe6f0b380074dec2fc68c6e09eaa Mon Sep 17 00:00:00 2001 From: PavelRatushny Date: Thu, 29 Jun 2017 13:16:11 +0300 Subject: [PATCH 11/25] Open rect by clicking on bitmap --- OsmAnd/src/net/osmand/plus/activities/MapActivity.java | 4 ++++ .../net/osmand/plus/myplaces/TrackSegmentFragment.java | 10 +++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java index 689bfa3640..32f917d08a 100644 --- a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java +++ b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java @@ -47,6 +47,7 @@ import net.osmand.core.android.AtlasMapRendererView; import net.osmand.data.LatLon; import net.osmand.data.PointDescription; import net.osmand.data.QuadPoint; +import net.osmand.data.QuadRect; import net.osmand.data.RotatedTileBox; import net.osmand.map.MapTileDownloader.DownloadRequest; import net.osmand.map.MapTileDownloader.IMapDownloaderCallback; @@ -841,6 +842,9 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven mapContextMenu.showMinimized(latLonToShow, mapLabelToShow, toShow); mapLayers.getMapControlsLayer().getMapRouteInfoMenu().updateMenu(); MapRouteInfoMenu.showLocationOnMap(this, latLonToShow.getLatitude(), latLonToShow.getLongitude()); + } else if (toShow instanceof QuadRect) { + QuadRect qr = (QuadRect) toShow; + mapView.fitRectToMap(qr.left, qr.right, qr.top, qr.bottom, (int) qr.width(), (int) qr.height(), 0); } else { mapContextMenu.show(latLonToShow, mapLabelToShow, toShow); } diff --git a/OsmAnd/src/net/osmand/plus/myplaces/TrackSegmentFragment.java b/OsmAnd/src/net/osmand/plus/myplaces/TrackSegmentFragment.java index 84f5a3eb30..681e6f50b5 100644 --- a/OsmAnd/src/net/osmand/plus/myplaces/TrackSegmentFragment.java +++ b/OsmAnd/src/net/osmand/plus/myplaces/TrackSegmentFragment.java @@ -277,11 +277,15 @@ public class TrackSegmentFragment extends OsmAndListFragment { headerView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - LatLon location = new LatLon((generalDisplayItem.analysis.bottom + generalDisplayItem.analysis.top) / 2, - (generalDisplayItem.analysis.left + generalDisplayItem.analysis.right) / 2); + LatLon location = new LatLon(generalDisplayItem.locationStart.lat, + generalDisplayItem.locationStart.lon); final OsmandSettings settings = app.getSettings(); settings.setMapLocationToShow(location.getLatitude(), location.getLongitude(), - settings.getLastKnownMapZoom()); + settings.getLastKnownMapZoom(), + new PointDescription(PointDescription.POINT_TYPE_WPT, generalDisplayItem.name), + false, + getRect() + ); MapActivity.launchMapActivityMoveToTop(getActivity()); } From 65e9374eb581d821a6e104e9e15e5c331bf636db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A1=D0=B5=D1=80=D0=B3=D1=96=D0=B9=20=D0=94=D1=83=D0=B1?= =?UTF-8?q?=D0=B8=D0=BA?= Date: Thu, 29 Jun 2017 10:27:58 +0000 Subject: [PATCH 12/25] Translated using Weblate (Ukrainian) Currently translated at 100.0% (3102 of 3102 strings) --- OsmAnd/res/values-uk/phrases.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OsmAnd/res/values-uk/phrases.xml b/OsmAnd/res/values-uk/phrases.xml index 12d6ddb7be..481c7030e7 100644 --- a/OsmAnd/res/values-uk/phrases.xml +++ b/OsmAnd/res/values-uk/phrases.xml @@ -1610,7 +1610,7 @@ Історичний період: перший перехідний період (2181 - 2055 р. до н.е.) Для просунутих Історичний період: другий перехідний період (1650 - 1550 р. до н.е.) - "Історичний період: третій перехідний період (1069 - 664 до н.е.) " + Історичний період: третій перехідний період (1069 – 664 до н.е.) Для новачків Експерт Історичний період: перший перський період @@ -2567,7 +2567,7 @@ Мінімальний вік Брассери (стейк і чіпси) - "ПРО100 " + ПРО100 Пакети для екскрементів тварин Заболочений луг Тип: нафтова промисловість From 73a17e271d374eb835a8172e0399645ce32d0daa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A1=D0=B5=D1=80=D0=B3=D1=96=D0=B9=20=D0=94=D1=83=D0=B1?= =?UTF-8?q?=D0=B8=D0=BA?= Date: Thu, 29 Jun 2017 10:34:52 +0000 Subject: [PATCH 13/25] Translated using Weblate (Ukrainian) Currently translated at 100.0% (2348 of 2348 strings) --- OsmAnd/res/values-uk/strings.xml | 46 ++++++++++++++++++++------------ 1 file changed, 29 insertions(+), 17 deletions(-) diff --git a/OsmAnd/res/values-uk/strings.xml b/OsmAnd/res/values-uk/strings.xml index 970da1b164..4e9887445b 100644 --- a/OsmAnd/res/values-uk/strings.xml +++ b/OsmAnd/res/values-uk/strings.xml @@ -73,7 +73,7 @@ Видимість Теги Опис - Будь ласка, вкажіть ім’я користувача і пароль в OSM для завантаження GPX файлів в OSM. + Будь ласка, вкажіть ім’я користувача і пароль в OSM для вивантаження GPX-файлів в OSM. Підтримка Підтримати розробку нових функцій Відображати масштаб @@ -136,12 +136,12 @@ Оффлайн редагування Завжди використовувати оффлайн редагування Змінення POI в застосунку не впливають на POI завантажені з інтернету, всі зміни записуються в локальний файл. - Завантаження … - {0} POI/Нотатки завантажено в OpenStreetMap - Завантажити все + Вивантаження … + {0} POI/нотатки вивантажено у OpenStreetMap + Вивантажити усе - Завантажити зміни в OSM + Вивантажити зміни в OSM Вилучити створені Асинхронне редагування OSM: Локально збережені POI/Нотатки @@ -259,8 +259,8 @@ Файл з таким ім’ям вже існує. Зберегти - Відіслати GPX файли на OSM сервер. Вони будуть використані для покращення мап і завантажені на osm.org. - %1$d з %2$d об’єктів успішно завантажено. + Вивантажити GPX-файли на сервер OSM. Вони будуть використані для покращення мап. + %1$d з %2$d об’єктів успішно вивантажено. Відправити в OSM Показати більше деталей Відображати деталі (дороги та інше) починаючи з малого масштабу @@ -606,8 +606,8 @@ Закладки Очистити все Історія - Завантаження даних… - Завантаження… + Вивантаження даних… + Вивантаження… Нічого не знайдено Пошук… Пошук адреси… @@ -1593,10 +1593,10 @@ OsmAnd має відкриті сирці і активно розвиваєть Інформація для відлагодження Налаштування параметрів моніторингу та встановлення персонального каналу моніторингу OsMo - Цей втулок частково надає можливості OpenStreetMap Monitoring, дивіться https://osmo.mobi -\n -\nВи можете відстежувати пристрої учасників з вашої групи в поточному часі. Також, ви можете бачити точки та треки завантажені в групу, до якої ви належите. -\n + Цей втулок частково надає можливості OpenStreetMap Monitoring, дивіться https://osmo.mobi +\n +\nВи можете відстежувати пристрої учасників з вашої групи в поточному часі. Також, ви можете бачити точки та треки вивантажені в групу, до якої ви належите. +\n \nГрупи, що не були вилучені впродовж місяців, повинні привести свій стан у відповідність до груп створених на сайті OsMo.mobi OpenStreetMap моніторинг Показувати положення завжди в центрі @@ -1974,7 +1974,7 @@ OsmAnd має відкриті сирці і активно розвиваєть Повернутись до мапи Координати:↵\n Шир %1$s↵\n Дов %2$s Дата випуску - Ви збираєтесь надіслати %1$d змін до OSM. Ви впевнені? + Ви збираєтесь вивантажити %1$d змін до OSM. Ви впевнені? Бажаєте очистити історію? Вкажіть час очікування для перебування на екрані планування маршруту Відкрито @@ -2535,8 +2535,8 @@ Facebook: https://www.facebook.com/osmandapp Частина від передплати спрямовується до спільноти OSM та виплачується кожному маперу за його внесок. Якщо вам подобається OsmAnd та OSM, ви можете у такий спосіб підтримати їх. - Ви можете додати Нотатку в OSM анонімно, або скориставшись вашим обліковим записом на OpenStreetMap.org. - Надіслати Нотатку OSM + Ви можете додати нотатку в OSM анонімно, або скориставшись вашим обліковим записом на OpenStreetMap.org. + Надіслати нотатку в OSM Назва файлу містить неприпустимі символи Слідуйте за нами Звукова ідентифікація напрямку @@ -2604,7 +2604,7 @@ Facebook: https://www.facebook.com/osmandapp Колірна схема горизонталей Мінімальна швидкість для запису Виберіть мінімальну швидкість, при перевищенні якої точка буде записана в трек - Мінімальна дистанція для запису + Мінімальне зміщення для запису Виберіть відстань, при перевищенні якого точка буде записана в трек Мінімальна точність запису Виберіть мінімально допустиму точність для точки, щоб бути зажурнальованою @@ -3095,4 +3095,16 @@ Facebook: https://www.facebook.com/osmandapp OsmAnd не може імпортувати файл. Будь ласка, перевірте, чи OsmAnd має дозвіл на читання файлу з його місця розташування. Двоточкова лінійка Радіусна лінійка + Перезавантажити + Перезавантажити тайли, щоб переглянути актуальні дані. + Тайловий кеш + Невірне ім\'я користувача! + до + від + Переглядайте зображення, додані за певний період. + Дати + Введіть ім\'я користувача + Переглянути зображення, додані певним користувачем. + Ім\'я користувача + Ви можете відфільтрувати зображення за подавачем чи за датою. Фільтри застосовуються лише для масштабування крупним планом. From acd258cbb87c9eda69a2e0efd53ca3175da43ccc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A1=D0=B5=D1=80=D0=B3=D1=96=D0=B9=20=D0=94=D1=83=D0=B1?= =?UTF-8?q?=D0=B8=D0=BA?= Date: Thu, 29 Jun 2017 10:37:18 +0000 Subject: [PATCH 14/25] Translated using Weblate (Ukrainian) Currently translated at 100.0% (2348 of 2348 strings) --- OsmAnd/res/values-uk/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OsmAnd/res/values-uk/strings.xml b/OsmAnd/res/values-uk/strings.xml index 4e9887445b..071a0b868a 100644 --- a/OsmAnd/res/values-uk/strings.xml +++ b/OsmAnd/res/values-uk/strings.xml @@ -2214,7 +2214,7 @@ OsmAnd має відкриті сирці і активно розвиваєть Оцінити цей додаток Будь ласка, дайте оцінку OsmAnd на Google Play Розкажіть нам, чому. - Не вдалося завантажити + Не вдалося вивантажити Видалити зміни Успішно вивантажено {0}/{1} Спробуйте ще раз @@ -2312,7 +2312,7 @@ OsmAnd має відкриті сирці і активно розвиваєть Виберіть або завантажте голосові вказівки для вашої мови Виберіть дороги, яких ви бажаєте уникати під час навігації Звук - POI буде видалено після того, як ви завантажите ваші зміни + POI буде вилучено після того, як ви вивантажите ваші зміни Ви впевнені, що бажаєте завантажити мапу з дорогами, хоча ви вже маєете стандартну (повну) мапу? Додаток не має дозволу для запису на SD-карту Останнє оновлення: %s From d4a29aa0cf6efa40e5e8acd468a9c68f99c1729f Mon Sep 17 00:00:00 2001 From: PavelRatushny Date: Thu, 29 Jun 2017 15:56:13 +0300 Subject: [PATCH 15/25] Change click from header to image --- OsmAnd/src/net/osmand/plus/myplaces/TrackSegmentFragment.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/myplaces/TrackSegmentFragment.java b/OsmAnd/src/net/osmand/plus/myplaces/TrackSegmentFragment.java index 681e6f50b5..979cbc5587 100644 --- a/OsmAnd/src/net/osmand/plus/myplaces/TrackSegmentFragment.java +++ b/OsmAnd/src/net/osmand/plus/myplaces/TrackSegmentFragment.java @@ -274,7 +274,8 @@ public class TrackSegmentFragment extends OsmAndListFragment { } private void updateHeader() { - headerView.setOnClickListener(new View.OnClickListener() { + imageView = (ImageView) headerView.findViewById(R.id.imageView); + imageView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { LatLon location = new LatLon(generalDisplayItem.locationStart.lat, @@ -290,7 +291,6 @@ public class TrackSegmentFragment extends OsmAndListFragment { MapActivity.launchMapActivityMoveToTop(getActivity()); } }); - imageView = (ImageView) headerView.findViewById(R.id.imageView); final View splitColorView = headerView.findViewById(R.id.split_color_view); final View divider = headerView.findViewById(R.id.divider); final View splitIntervalView = headerView.findViewById(R.id.split_interval_view); From ef2a1e9926d60a158770a1d5348113b8400300b2 Mon Sep 17 00:00:00 2001 From: jan madsen Date: Wed, 28 Jun 2017 09:19:47 +0000 Subject: [PATCH 16/25] Translated using Weblate (Danish) Currently translated at 100.0% (2349 of 2349 strings) --- OsmAnd/res/values-da/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/OsmAnd/res/values-da/strings.xml b/OsmAnd/res/values-da/strings.xml index 89e355315c..937b7955f2 100644 --- a/OsmAnd/res/values-da/strings.xml +++ b/OsmAnd/res/values-da/strings.xml @@ -2969,4 +2969,5 @@ Tidligere destination bliver sidste mellemliggende punkt. Genindlæs Genindlæs kortbrikker for at se opdaterede data. Kortbrik-cache + Nulstil From 18731e84516e67e6ce782a35924bce3ea2ad2c6f Mon Sep 17 00:00:00 2001 From: Dmitriy Prodchenko Date: Thu, 29 Jun 2017 17:17:07 +0300 Subject: [PATCH 17/25] Split interval icon. --- .../drawable-hdpi/ic_action_split_interval.png | Bin 0 -> 1212 bytes .../drawable-mdpi/ic_action_split_interval.png | Bin 0 -> 1130 bytes .../drawable-xhdpi/ic_action_split_interval.png | Bin 0 -> 1286 bytes .../drawable-xxhdpi/ic_action_split_interval.png | Bin 0 -> 1507 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 OsmAnd/res/drawable-hdpi/ic_action_split_interval.png create mode 100644 OsmAnd/res/drawable-mdpi/ic_action_split_interval.png create mode 100644 OsmAnd/res/drawable-xhdpi/ic_action_split_interval.png create mode 100644 OsmAnd/res/drawable-xxhdpi/ic_action_split_interval.png diff --git a/OsmAnd/res/drawable-hdpi/ic_action_split_interval.png b/OsmAnd/res/drawable-hdpi/ic_action_split_interval.png new file mode 100644 index 0000000000000000000000000000000000000000..1065af2302e192abf856f4d50f173bcb86279516 GIT binary patch literal 1212 zcmaJ>UufM_7!OYBc6GWt~*PlkvoC|rpiIJ9=u3dxdGcm`|T@^f8 zVwOpb)ko+`7$aI?RbUH}NEdZhP;^m~pQc4#P&r=a1RV&HL2j9+S1yKliyhZ!nAH_u z?Y!H??oRl`BDk|>fgE`<>%usrAcSzKN11UJzCG}hEknllmN8Yl^;Vw=>%-I0Sy z?(Xa;QzUGR;n*WZfh{w%r+gIPnptAV7uN9{LslHevQ!m_swxAWmvx})jtEpFAjP(1 zxUuSk+42!lnvTown)L}*qOsiK#2Y%NGI3~ZG9_A=jHtV|T|fHf*H zf;fzuVc5#MU}Pf1VKNa$bfuD2U11fvw+?MD$iz=(rCN^MM6oxGoN65UbT`+Aw-yg1 zO0Mo`06|LvGE^j>A>;r7DyrlP2uWIzS;0HE<#4%IiG;)w<&+H7hN>+~Jb;?T1A(Lw zSgx%A+m$saX__Ppkl_eLE^D9L+9?;29?iC^!$A(KiaGu}v#)A*P^zntMPfqq+eu#tZ&OQ6p>-Sx zLwnC2->{3iYt!r0-6!|2D=dD$bd8&R?!@q^zh3?7wKK)Vdw)BE7oI=cyYQ&?V|&|E z2j02y$AO<)OY_@a8TJp)oh!UqELQ(Lz30Wx=fl~{J>PyfcXVrObm3BGZt06JN7!3C zTfb{JK6v0rsd>2nqk~t|i&wbOC+=T-U!AXfif?_r<+QeNy|_Ln;QhUMA9Zu~rn~)J R=Xmx%sSOU9pOyC={0}^~mq!2q literal 0 HcmV?d00001 diff --git a/OsmAnd/res/drawable-mdpi/ic_action_split_interval.png b/OsmAnd/res/drawable-mdpi/ic_action_split_interval.png new file mode 100644 index 0000000000000000000000000000000000000000..960ce5684062c132952829b0d0fcc06a67ad7c87 GIT binary patch literal 1130 zcmaJ=%WKp?7>`>ODHQ8LQ7?w{V1-Uzlcbx_wd`*CSa56EE?5+ylVs9{HV>1jn^ut0 zdZ-{?ym$~1q{V{>o;|c41icB0pn{0~1EhG7qSQ&ZTRjv*l9~DD`~AN6?a`5;j`q{- z48wF(hRqsXPiEhd!}R~PQTR!hQ)FPAjD;>~pcpenC$unI@zEr%VdTtRdxQHJrfu1) zkCXB01;Y+~9%VXw>PHmKFn#@LgzRZdSPM^jL4o`JVvS=xr@&oOt70`O<0)@=KE`A7 zBXxUz+SVPe|2*558kE4t1hJ_<6C_4j;C6Toy3fP{$L^?*=>peuYP>qimctmcDz5=s zf->8y^OCB|d8LPyMM)DxMUZqLL4&@E$nHKIwH7fkrmF80!KYK<{B>?Vq) zOh{2ANW3Wceiqk`c0y|SuN(VnC-u1q3pJdCv$0L<;dZsaGm->ENXmvsh0*S--Zo``f^QjVFg5pSW{* zef{9d$Ay&ZTwD5fdsMOx1i#rc%;v4_`xCkP-II65`g@kYb7cJyO>O#lz+1%!p?uX3rt`E5fTSM?u#{TwYZh>iIuKrL~SL&TN Pvgxl3jF`_#6N`TUy~Jxy literal 0 HcmV?d00001 diff --git a/OsmAnd/res/drawable-xhdpi/ic_action_split_interval.png b/OsmAnd/res/drawable-xhdpi/ic_action_split_interval.png new file mode 100644 index 0000000000000000000000000000000000000000..0b2e728bd7d2ddb1a3b148c8fb8e3619daecf476 GIT binary patch literal 1286 zcmaJ>TWB0r7@k&I;$l>=+E^`4CNI4>JNL=VkWI6>J! zlLx5@p{*1j#9I4Ms8AtPXdbi_O4S&4rdXK6;HXr5wZlHn9|^EAGC5y+dX7nE$G zd({^@MTlYFcNB^$l}h0f7q;CYgq3BAW+|2>kp}6FSw1L}mekbs`%8jf$+79Lmx zs$KLW1Y)`pg6X8wYlbavHBl&KR2euF6Q(KC4C1P5dwv%FOJhTAFE{2uDhoZk=xV4Q zg|-G5UYef@Ueku_m(3h}o=n60Bx~hsI$%-OR$}}&NvaGYD z2pK47Dh~^)-mtSFzCFsx-F#f&IF4bG?Q$%}Mq@~r=oYxR9BW`xmgfUYgALyX^36!7 zfFhq1I5zp8SS9X4;M;D_wnrOXkQugp+Z(nWJRT3KE`$YqR~l%B6^M5SrCNzR0bSz= z)Vp2V#Ot|Mj1743kmU-pE|CzZ9LWQLBP9rRk^zFq6&MIPshwEG>+5p3(yK^vrePq0EcBYxmsWt~^DBGDkOWJBMxA)wQX<{c2XlP;WXJNCqx;wy`(*V5|!N0#=C sR_Cs5y?d~-Fmru9=Yam5cgI6C_WrM@zUX|A&jf#_RI)d5F*Z2y4zsovev~-UE*O!?B&+ec$)l z=l49n=W81a^Vcn0uyg@}APar#Jps6`Pdq8};rrE_$JfDSiS8}dH>e>!#%lm^ifRy` zKAA5A0lM2}7Y4m) zVu%ZPa%OzNlLHIudW0j0SS)6WQ6^O@gIJa&%of68!J!5otyXm2z?EoL(t-y>1x6oWyA!7U6! zS{EsMo_mqQFW`yimvkWf}|wGFCS3kd4{uq1qmD-Ymde`rt>x~cOUW}w21i!-Cv&cRtTd+eOlkA4W1jD>iP6xW z+R1(6*@W`s@WpTT{V;fK5iwq$IdCCmxT9Te9ypr*biq*W!N$9fm*wx?PZv(UOB^4` jTl)X0-rCxIhd6_rs@gQvw)?M&#BbN<&G#I0y;=7!fRQLq literal 0 HcmV?d00001 From 1a18eb98606bd66f0796d563a37b068581f22840 Mon Sep 17 00:00:00 2001 From: ezjerry liao Date: Thu, 29 Jun 2017 13:33:44 +0000 Subject: [PATCH 18/25] Translated using Weblate (Chinese (Traditional)) Currently translated at 98.2% (3048 of 3102 strings) --- OsmAnd/res/values-zh-rTW/phrases.xml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/OsmAnd/res/values-zh-rTW/phrases.xml b/OsmAnd/res/values-zh-rTW/phrases.xml index b7c155d6d5..4f4bc03e80 100644 --- a/OsmAnd/res/values-zh-rTW/phrases.xml +++ b/OsmAnd/res/values-zh-rTW/phrases.xml @@ -3352,4 +3352,21 @@ 牙買加料理 亞美尼亞料理 夏威夷料理 + 巴基斯坦料理 + 臺灣料理 + 英格蘭料理 + 德-墨料理 + 荷蘭料理 + 敘利亞料理 + 澳洲料理 + 卡郡料理 + 埃及料理 + 塞內加爾料理 + 猶太料理 + 保加利亞料理 + 西藏料理 + + 派對用品 + 電器產品店 + 鎖匠店 From dd5661f35466ec9fd0b96807643dde9e255ee9c9 Mon Sep 17 00:00:00 2001 From: ezjerry liao Date: Wed, 28 Jun 2017 09:04:16 +0000 Subject: [PATCH 19/25] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (2349 of 2349 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 99d86cef9f..cf6cb87799 100644 --- a/OsmAnd/res/values-zh-rTW/strings.xml +++ b/OsmAnd/res/values-zh-rTW/strings.xml @@ -2882,4 +2882,5 @@ Facebook:https://www.facebook.com/osmandapp 重新載入 請重新載入圖磚,以查看最新的資料。 圖磚快取 + 重置 From cdfec093efcfc28f5387ef069ac93d2c0e44a904 Mon Sep 17 00:00:00 2001 From: Dmitriy Prodchenko Date: Thu, 29 Jun 2017 19:00:51 +0300 Subject: [PATCH 20/25] Add new icons for new Split interval screen. --- .../ic_action_altitude_average_16.png | Bin 0 -> 1240 bytes .../ic_action_altitude_descent_ascent_16.png | Bin 0 -> 1195 bytes .../ic_action_altitude_range_16.png | Bin 0 -> 1226 bytes .../res/drawable-hdpi/ic_action_max_speed_16.png | Bin 0 -> 1327 bytes OsmAnd/res/drawable-hdpi/ic_action_speed_16.png | Bin 0 -> 1307 bytes .../res/drawable-hdpi/ic_action_time_end_16.png | Bin 0 -> 1359 bytes .../drawable-hdpi/ic_action_time_moving_16.png | Bin 0 -> 1382 bytes .../res/drawable-hdpi/ic_action_time_span_16.png | Bin 0 -> 1376 bytes .../drawable-hdpi/ic_action_time_start_16.png | Bin 0 -> 1368 bytes OsmAnd/res/drawable-hdpi/ic_action_track_16.png | Bin 0 -> 1293 bytes .../ic_action_altitude_average_16.png | Bin 0 -> 1136 bytes .../ic_action_altitude_descent_ascent_16.png | Bin 0 -> 1141 bytes .../ic_action_altitude_range_16.png | Bin 0 -> 1141 bytes .../res/drawable-mdpi/ic_action_max_speed_16.png | Bin 0 -> 1163 bytes OsmAnd/res/drawable-mdpi/ic_action_speed_16.png | Bin 0 -> 1170 bytes .../res/drawable-mdpi/ic_action_time_end_16.png | Bin 0 -> 1180 bytes .../drawable-mdpi/ic_action_time_moving_16.png | Bin 0 -> 1218 bytes .../res/drawable-mdpi/ic_action_time_span_16.png | Bin 0 -> 1204 bytes .../drawable-mdpi/ic_action_time_start_16.png | Bin 0 -> 1199 bytes OsmAnd/res/drawable-mdpi/ic_action_track_16.png | Bin 0 -> 1170 bytes .../ic_action_altitude_average_16.png | Bin 0 -> 1275 bytes .../ic_action_altitude_descent_ascent_16.png | Bin 0 -> 1238 bytes .../ic_action_altitude_range_16.png | Bin 0 -> 1315 bytes .../drawable-xhdpi/ic_action_max_speed_16.png | Bin 0 -> 1427 bytes OsmAnd/res/drawable-xhdpi/ic_action_speed_16.png | Bin 0 -> 1392 bytes .../res/drawable-xhdpi/ic_action_time_end_16.png | Bin 0 -> 1465 bytes .../drawable-xhdpi/ic_action_time_moving_16.png | Bin 0 -> 1556 bytes .../drawable-xhdpi/ic_action_time_span_16.png | Bin 0 -> 1513 bytes .../drawable-xhdpi/ic_action_time_start_16.png | Bin 0 -> 1475 bytes OsmAnd/res/drawable-xhdpi/ic_action_track_16.png | Bin 0 -> 1433 bytes .../ic_action_altitude_average_16.png | Bin 0 -> 1444 bytes .../ic_action_altitude_descent_ascent_16.png | Bin 0 -> 1389 bytes .../ic_action_altitude_range_16.png | Bin 0 -> 1499 bytes .../drawable-xxhdpi/ic_action_max_speed_16.png | Bin 0 -> 1624 bytes .../res/drawable-xxhdpi/ic_action_speed_16.png | Bin 0 -> 1585 bytes .../drawable-xxhdpi/ic_action_time_end_16.png | Bin 0 -> 1747 bytes .../drawable-xxhdpi/ic_action_time_moving_16.png | Bin 0 -> 1845 bytes .../drawable-xxhdpi/ic_action_time_span_16.png | Bin 0 -> 1806 bytes .../drawable-xxhdpi/ic_action_time_start_16.png | Bin 0 -> 1748 bytes .../res/drawable-xxhdpi/ic_action_track_16.png | Bin 0 -> 1601 bytes 40 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 OsmAnd/res/drawable-hdpi/ic_action_altitude_average_16.png create mode 100644 OsmAnd/res/drawable-hdpi/ic_action_altitude_descent_ascent_16.png create mode 100644 OsmAnd/res/drawable-hdpi/ic_action_altitude_range_16.png create mode 100644 OsmAnd/res/drawable-hdpi/ic_action_max_speed_16.png create mode 100644 OsmAnd/res/drawable-hdpi/ic_action_speed_16.png create mode 100644 OsmAnd/res/drawable-hdpi/ic_action_time_end_16.png create mode 100644 OsmAnd/res/drawable-hdpi/ic_action_time_moving_16.png create mode 100644 OsmAnd/res/drawable-hdpi/ic_action_time_span_16.png create mode 100644 OsmAnd/res/drawable-hdpi/ic_action_time_start_16.png create mode 100644 OsmAnd/res/drawable-hdpi/ic_action_track_16.png create mode 100644 OsmAnd/res/drawable-mdpi/ic_action_altitude_average_16.png create mode 100644 OsmAnd/res/drawable-mdpi/ic_action_altitude_descent_ascent_16.png create mode 100644 OsmAnd/res/drawable-mdpi/ic_action_altitude_range_16.png create mode 100644 OsmAnd/res/drawable-mdpi/ic_action_max_speed_16.png create mode 100644 OsmAnd/res/drawable-mdpi/ic_action_speed_16.png create mode 100644 OsmAnd/res/drawable-mdpi/ic_action_time_end_16.png create mode 100644 OsmAnd/res/drawable-mdpi/ic_action_time_moving_16.png create mode 100644 OsmAnd/res/drawable-mdpi/ic_action_time_span_16.png create mode 100644 OsmAnd/res/drawable-mdpi/ic_action_time_start_16.png create mode 100644 OsmAnd/res/drawable-mdpi/ic_action_track_16.png create mode 100644 OsmAnd/res/drawable-xhdpi/ic_action_altitude_average_16.png create mode 100644 OsmAnd/res/drawable-xhdpi/ic_action_altitude_descent_ascent_16.png create mode 100644 OsmAnd/res/drawable-xhdpi/ic_action_altitude_range_16.png create mode 100644 OsmAnd/res/drawable-xhdpi/ic_action_max_speed_16.png create mode 100644 OsmAnd/res/drawable-xhdpi/ic_action_speed_16.png create mode 100644 OsmAnd/res/drawable-xhdpi/ic_action_time_end_16.png create mode 100644 OsmAnd/res/drawable-xhdpi/ic_action_time_moving_16.png create mode 100644 OsmAnd/res/drawable-xhdpi/ic_action_time_span_16.png create mode 100644 OsmAnd/res/drawable-xhdpi/ic_action_time_start_16.png create mode 100644 OsmAnd/res/drawable-xhdpi/ic_action_track_16.png create mode 100644 OsmAnd/res/drawable-xxhdpi/ic_action_altitude_average_16.png create mode 100644 OsmAnd/res/drawable-xxhdpi/ic_action_altitude_descent_ascent_16.png create mode 100644 OsmAnd/res/drawable-xxhdpi/ic_action_altitude_range_16.png create mode 100644 OsmAnd/res/drawable-xxhdpi/ic_action_max_speed_16.png create mode 100644 OsmAnd/res/drawable-xxhdpi/ic_action_speed_16.png create mode 100644 OsmAnd/res/drawable-xxhdpi/ic_action_time_end_16.png create mode 100644 OsmAnd/res/drawable-xxhdpi/ic_action_time_moving_16.png create mode 100644 OsmAnd/res/drawable-xxhdpi/ic_action_time_span_16.png create mode 100644 OsmAnd/res/drawable-xxhdpi/ic_action_time_start_16.png create mode 100644 OsmAnd/res/drawable-xxhdpi/ic_action_track_16.png diff --git a/OsmAnd/res/drawable-hdpi/ic_action_altitude_average_16.png b/OsmAnd/res/drawable-hdpi/ic_action_altitude_average_16.png new file mode 100644 index 0000000000000000000000000000000000000000..284b9b22538527e5bfea056a5a50629140a8a0cd GIT binary patch literal 1240 zcmbVMOH3SP93NN;(uPQ~hG47mbx5%`%zI{+nXu5^9cVY{0&X{T6HV+qzGWvckIsB_ z2W%?!m90(Fd)olU3kPG`L}RKX4YrNeg9mTwp{9D*8V{H%>o>5A9!L*PX1?d|_kaKA z;?%^kuD$#B5(LqeJFXV++#7vQwd3)pYH9;d&!VvsI_Z{CRr4W{HeDTpoUKj60@Td; zGxy;zLBtlUVhNSG?OB?jVk4* zK-Tpkkmv+uZ~_mKGR;XcKO_zUp5+n@D>9r+ae{(hkp+#1#M*qbtQ6GohAzBIkrjkI zg<-1IDqR(5*Pq5*S!P(C;du%ps9@efT1YuTe^Y`A1H-pGWVsHABx<@lhf*ZAblU~n z%jb6lJ3%8*IAlzyc??IhjBQ7LZJ`5Hfd87YD>^97dypx>z@76AoR4yUlZ<2cWJM7W zTcb?+7EX#btGdRV4IPwIQzX8jP0Lh<3`0mH1et=8%u?bIuTeuh&*FjACCSvwx-K^5 z?8X-bnIB_$UJ^u}H~rfv)CZg9CLa+RzPHRSq5 z*PU%v!BoXXZcuSOkj+L}muLwb&TEF{M8_{hsoM5jg}!wbn&ZA}gRNLA)-HA=j3k%P zIDwLrB2S41c3;+wB$X6QiPPi+YqA{K;G6$9h72}}i3;XF1=KvkRT(XJ+5vBN8VWkN zi+tQJ6P?e0gIn#7oSH6%Kj?qe>!UHMB_6xHzPcxSr}Y$A>bN_ozW-tC6n|*()q3{m z$ki}jTx(lCpLy@c*rUGHbl-(i>k+5@?(GjAE?+1uJ-4rIabx|>;*IVjpS9=D#pRxl zHm-DTw%nw;uMv-47jJ>WVD0gh1J^tBGFWc^SWZ~X&(+LM?7 literal 0 HcmV?d00001 diff --git a/OsmAnd/res/drawable-hdpi/ic_action_altitude_descent_ascent_16.png b/OsmAnd/res/drawable-hdpi/ic_action_altitude_descent_ascent_16.png new file mode 100644 index 0000000000000000000000000000000000000000..b254cc1baa8322bbf6aa4c8dcd86e251bb125bcf GIT binary patch literal 1195 zcmbVMOK22l93S&g8(oojQ7dISLTPH|{n(u$qwelx*A+KeH(Omqv9mK@l4&xJ%zW!^ z_9Tl47NIST0bA+=LjpZ`5JYSR(_U(B=BTIy#2_)Yr5C-~Z<5`#hv1>Z%=i5L{_p=> z$n~Wo9lJX)42xtAX?Zm748P4A(YR1i-=b+3>@C6pcMw)|A7F9QEde}Z>q8(9baQ-c z4)kDHYt1SYVKI9|FE?I%VfPI z7`6`8d@xY!D;TvALpF&6`|+Ntf&|zA>Uh;2bpoZT5-V~Qv<{DH0$+i^5tUdqs+i5; zN!JIsNJ*r@@*EzODOQxZn9z-L3@g!$K(jK*@(Owd25&qB(&n3kN?uDfbfKL}3`6KC zG+n7ws0vTH{t)8IGR<%_$B_s@2ICIYtE3a`ZA#EUVEC2?E!V+AiF(N`LzO_5uDW1* z+3cENCujr;g^aH19?en=ZQG$=E9d~`!M|p#iw+9o9-#9eaLc}d@-eu#Nk*}IzoHO` ztWo-X3nfJ#)m)=&0|#a_l|VO?X_-pQFnCGgWfF)oLkclYCu1DPpn)lgqFEX&m4v38 z_4ooWbG-~FiM+tEY;ROfB)E7Y8t1i?$S37Qlbdk@s5=H|>b8*X23LG9S4sLnhpu06 z-O*+hN<5oINv zVxE_$-a}=wr_vjceX7(cPh4JPu-ZveyoFUU>8C@*ApOTR3(Jh(W8 z&wi4|E{ofj)Aygxv|K4KoOovTzw)NLed!&T@BU*VvPJp1xcCv--mIZ75AH{g?{2*!iE?-5IiOc6X9yshft)irb5Je!k6)$^2yI zi#v%2LsCmZf2iJ6&_X@*AQr^-VnG)oBGiNQP%MI4p~p(>MX=5KO|qNz5PEQ!`Mz)7 zd7t-v-oII!oH((!f2f}zh`q&ewT$;e(X*!)ufI1k|KM#9jaJc=TSE=aheXbFbqI>K zHVw;AGZ*H5gu?_8TeK=wR4u)x7_Logkq#Z&9!3+ya5nTbV+JCi!)eROkbiyiEeR|$ zL%t!E*pgR(b!&Xlhf|9a6=QM6kWDiCDi{tGY`}&{1ED?Z1WK48x9lqT9ElkcY^k7` z47p9JTABm}*M~r&la#>;JV?njC&_$TJPvr4OERp;a5BXS3cf`av@a5S^Ua!4R>#`D z@LPtgBjhOz(`Yp4hCsXiG{(v@!}1KzQ&@uv796C7loK53SWsbL_?Cw(*8!15O?T%} zhQv&_L$JM4X~(b=v=fC>#)O*3a5T%uHHm}7Cce@XQPy5!t=y`ql!()T# zR<`Hs{pFLF{@6eA_{F!Ihr!L4?{+7_n|J!pKV2CDwch)WT5~I*P7&{KoP6n`yHq{2`e^gdzR#AbYnS5}Ms6iaM(@7! z-5dY5&Nk;jtvQ_={P^6Rk=s4%iOmBq49%TB)4!hmU|=(@Cys8OSdL%$d}hVzV)p$u zHkJNlb@luB!x(q?tN8h!2X3vLd-uV6e>cmQf4Oi~x_2!;5L+T*1hMha#@V&EqQ4bU M9Gy_V%%55Q4*;T(lmGw# literal 0 HcmV?d00001 diff --git a/OsmAnd/res/drawable-hdpi/ic_action_max_speed_16.png b/OsmAnd/res/drawable-hdpi/ic_action_max_speed_16.png new file mode 100644 index 0000000000000000000000000000000000000000..f4b2d7f2746869db4089981584e52e3379ea29fe GIT binary patch literal 1327 zcmbVMZEO=|96wezbc(_vx;Z45n=v+Uz4vx^u47%hO1HJlvdCn9*!AvdcWn2vyBqB~ zBHKiq7|?)#fe2`felWo?MTaIbbxd?(!UShD>M{*6K{7Q#iK6)2woX4ReDHGjy#9Xw z_y0ZB5PNWG;oXG@f-H@!3&r7F?0h#Bz;QC|zY3=kyQazBpeOCLXaXc4>j{8HR51nO zK$N>WJ_Z#C;>s$GO?FeXUXXOvBRUvQMl~QCK`Pc}3{h$WHktq_Me}3R@1DX?MfPJG zxhNSmf}mAdmo>qLY^+hrwn@B1Sse6;u6KssE_wh98Z_CYfze`yadS-6pvGk0AH3w=N=4dGv%ZZ4~6G+ z!JQv#wQWNnh;%ybNi!bZOhGQs6C_R0G!7BC)uq{D2G^{zoP-dtBvUbLMb}VAqL|P- zZ9fJropnJqqS1N5nl%?F7&0Ow8U*Db2~~Ccnn7E39Q

f@rI;%K$_iSbC=^!F(jk za%3308!K{v&>CUAslcR&?IB(2RDotkLVgV1cw|Ku$|Z^MdKn%E98cnGIW6MlG)=;R zOmLi>NG1|&PR>Gnmf>06M^YTa(iBzWE0`OBe?%uahTCRUw!Nu^sm6zubwBjxToJQnfP;0-}0uO7k~by zo3)9 zoodeRynXkj3lBXp&6f|B-D(fl@8%AKe;j(u-9No@;*-ER&D|cpaw7H75%&D`L)R|l bS1v9_z;bWT3-|S(c79=znpo&qbxYqr$tBIv literal 0 HcmV?d00001 diff --git a/OsmAnd/res/drawable-hdpi/ic_action_speed_16.png b/OsmAnd/res/drawable-hdpi/ic_action_speed_16.png new file mode 100644 index 0000000000000000000000000000000000000000..24a526f3e7066cd2bf94403583fab3e07ce78cac GIT binary patch literal 1307 zcmbVMZEO=|9KWu%8)IzCL_#rU=ds`hT<@*d_Ac$ZwcS|7j;72}5##RV>3XicJFZvT zRU$AUqRs>jAv16bMTps}1V z4w68SCl6i+0R*v^m64R0iod{1TFxz47D(F}mHZZ9rT42}9YH^p+a-?I~?NysOwgs z?i!bSESHZMKrl69MANeMDoA8BQ_E*G9gRe+tg~(w?T!nQqFTp2R;pG!j{-w^9ms=* zmP40g%`0oz;gx)pSD+Z2^Lc38BSH5$QS#wFMrJ92^O7=2VKu(|e`82MqX?^D{!>8p zBUqKza6(yg zKYurLqlL|G%D%mQ&RGd`ZEn4GAThsmHhnfVHoZ|;D77559r$BmXq{c&7Wil|^81;- zLmy7bhdW+#HbtMkYv0j5Kixbz(R1qZuFHL!p8w?2DaUuSmpV?29XtKm>@U|_Du?(|F(Wtv4P>}h49$aKg$TQ A7ytkO literal 0 HcmV?d00001 diff --git a/OsmAnd/res/drawable-hdpi/ic_action_time_end_16.png b/OsmAnd/res/drawable-hdpi/ic_action_time_end_16.png new file mode 100644 index 0000000000000000000000000000000000000000..dce17068586ca76f66f84054916bfc8ade8ef409 GIT binary patch literal 1359 zcmbVMeN5bR7%rfQhb(FYhe51m2@ZGt?j7y8k-O^wH+IO_WjljJdToJ*yY|)=?l=>J zpmAHwjIuemurcS1PIPWA(-;=Gp<$U!w>jMh%iMI+#DuxA5JOCi{t6uW2iYGs?eFt> z-tV`Y>+7oXY>(L>2+H%<@C{&IYJEA`V7wN0&48)U^o7iIT8kMMbQy9>T3CktQK40C zkOir0<4L&!g0hlIFl2@TYdBGhqJo7%6VVu8Lr_I!A|{CKvI&RfRz-Cow}wU#Sdm=F z1}1<9VqUpTsY&Ycx@28YOty=xgjBAAD-s+K5S2{adFhMZ!)NB^Z`0r&quvPB<`}#t7C2YI-Z+vMh#^7)jaz!fte_rjW3!MoC%%FB_t+#7sp~VN0SA z);dfV0xX?#AsPz=76hxte4s$cu!Io92o%SnQOmDcv|%>L|C+HV+6Z>VWUN6pv<_Va z`DiIglR@n6uE+ucYq)201tdj?@S4~Wl~vQvyAW`LN{Ymliz4N4P^?{MSlmvRlY+gR zBylj{VTO^yE#WYoma`b2rdXW8y&i_5NrLb>S&xTwdz@~HuVN@K>q&F{s$mMMD5rHR zK=(Y?eOE5$)n&od^q{6i(p6C3rkR@2ro~{d*UCDBGVoIYK~z-hc)69TInQ}nS2|^> zO4p+BY^*tD5jz~BlW+(GWoMlHureh4B9j7-M9U8^N*=f&yCcCr-t)wa_CKw^V(01q4Sq3o&4M5{+BZ^yqSMFxqsk;vO{+s|0<`byAjW-C9e;8|1?wg(0}hKUUJE8E0!*9 zJDof5$<40k`fm01yPv<7IqmLyAeBF&ym0UCr5Q)>XxV||pSA92oPOgqzc({e8oMz{ zeNp(Xk6by{S^V8p-(W4Wb~txz$v0YO!EWPNM%U&@a9C{LI=W()k>C69;DzbJmCmcV zgO464(z*)<#zVbCWsB?LNL%6A>HXDk=;RYc=WI>yj89!Dy?tuxqn_0A6Qx(59Jsx= zU@QH@ueIl{bFZvlR{!Cd$@LrWo7nSxr19f@8{WTkvnTJ+{ePt1J3Fb5EjyfRuQ%I%cO8A`k(nJ&A9?F98xA%7wrTR!kq*iF#rb`8 J{6SB1&p)`X;v)b6 literal 0 HcmV?d00001 diff --git a/OsmAnd/res/drawable-hdpi/ic_action_time_moving_16.png b/OsmAnd/res/drawable-hdpi/ic_action_time_moving_16.png new file mode 100644 index 0000000000000000000000000000000000000000..2b8c535b78006a4bfd15f7ec98ff1fe0dc477f86 GIT binary patch literal 1382 zcmbVMe@v8R96!Vz;IN#v60myrvQbob@2`8`yZ4O~k2_9}I=~b4Lfm-oeV^lA;l20m zeP6r-auUrgOjgn=$y}C8C>_pebITP`TZ4fyjTVs;bmm;Lnu0T|ww@O_>JR20y?fv1 z=jZeN{e9aj%QviCk-NfTv8)Vi^o8KO#{4p^aGXrI|A14DQ5rTjD^VlCYrx_Wl?Xrr zGG7NmfESxy8U#faOM0_Z6*j`b7dSzY?YxPxCuJ3~EtaC&|ELDB3ir-DN1rsfD8;CNy-gzolCmWIk_BMo5vW6 z%t4HLH#%=rI9Q2z6%8P?ov{f7MIuhtPS7mray*NWIKg1J10z@)L2>YP;K;&*LT#ED zIc0hOxW9A`=L$;VLuZ9*UUO?r;(?EydcHR<3cl4^Pc;F zChY>EUsGgcF4mm1gdL3FBp9BcY^>8k+8hFOpN$Ako0Af0f@c|A#0hkPFaF;cV$dke zESUckQ0fR)rMX;e2e?^mC=iETq``JsGyQ9q#gf(*@Oi3|Jml#2&)jIW_Pkkeul)Se^acb4C= zv-|*ZrTNvn`I5rC*L#Z$Pc{yW9c<10`^-r9RL1EG!$)$`%W9^3)?OSO871!QSl>Mn zI$2pfyZTb)*-zd`Uww^f8U69gO{a#QpdSI_)BCfwcl|beF(z*vdM@B=D*qvNy~mZY zrDAYv$EH*F-r~<%ulJ+jj17@7FjKgs@Kgzm#8Dl@DI@~%Ql?|8-^?-MkZ<^OgAz%9cIfOamh?@`a7WLA7p=cx%)jo zpYQv7-L?Mb^Kw_`YBZWW&qj9u&c*7d%ZB50+`Mfqxis%^?qfbPlkgd^FZb(EKt_3Iv3z`Jcj^6xo7)1o$ zj)o|o!54LbW?^GW2Afmh1A}&b=2&Fe;9AP983#}(8nzWjpLr4Q*#tkN%pfSQ|gRjYeEIugICi7ui zz+Jtl3-0V_v!X<8I3AD3^>L$KlA9oxrf~y_lOzTaSS%?jOac>QWoZd+5aVPastA&Z zs1g}gYE$eev~FK;N8yd07kHbM3S&nZqTC1$IiKL7sk|3%qw9`pCoEC@CT}>HXv@^~1h%to` zIgr*ZK;4U6;(=V7O9qT0$w5hKO;WO4)&?fp3r_((%F`CgWWefe5Y`HoaiYOvQ7?Vly(+I^TXR*;WZV&oAq5@S~|Y>}aU=Si!B({n5h(<)!T}vpxK- z(x;K_{a(FuUBes1=RsLpP&5AB?t_oaP5(af(m;LVCh8qOzG})+gjr+{n=lwC$(q&mG89Qc#HbtW9N#BnWpKT_`Zx)6I$;XU1jn5TsG_e)jbEs cIBfWQe1Md-B!3iQRca0ekV z8<=IubXzv2+t?hZnI9aO2{A!*!!Ir-xNMmpbVj|I36U6CaEY+^!GD26KahQ}Y5%X! z?|FXDTaVUMy_B7mn*~8ocBmpy3+Csn?}CS#suFzqtS8_hbk&5Uun2zdoHD#9U| zYZq%pPUw66Yq11^()*=IquCg)WO-G#bC!%fE^7b{K_z8zjpMsS6OM}QlHx%Yr>`Th zBzTYpI*f-kzt|yF^y^|>e^rF<@8TH&DJz9b;w(@gizWxh%<|7z`&dl0<<7YV;{47e^H%Kcyic8oVxPrlcyc zrICxOJ*Ec%OxIkHwQzVtv0|(T3WN-ca~ek2aZHvizgDFUvsV0<#-`Fnq)!vETG3E@ zbROiREk6YYv3tBBOAxSOt91z^h3gKee2*+DW+>o6z>Qsy1lG;-4yV(>pd!uSDCH(O z)J>8&81N`f3(>Y{luGH@3{N>2oW}hw+Ch;7QSM@VKGN%Rc^!cu?eH_c6gH$7Ca3UX z%C-b-uVbB$#j<`~q zUQr0@stm8jnw2);;pAO}lOr4`h?!1vdnxf$VuB@w=a&xqe_P@zhs2x4%ed#>OYF zHhGzWE#7K$Ytd9}=fgc!V*{Cs**06?nJehfMBUJx;HSmsm(hWfV&x}O%{LG2J?Q+i z@cY@y`rUkFX!*1`eDCnN30rXCx6jh%t_{8mO(%1YeR=xWigKK7*3z2ZsNQkp_q>eQ z<)*9)g{3VA%1Y;p;SX;Yx-(w6RNkK)G3qaRT?H>*UBYtTn(1tPr|4T^GW5}wjuXQp zU4&YG_dEFP2Ei{@8#{@{^RI_d$WmW#}o4_bJzCl zD>yWI{O7-#9wv|*Ik)B}J}#WvUp)FvZ0h;@h3A5kPqzF}5#7IXfp2=h=!!A0JtKZU z{%Zcr&KpN=J6EAmDQt$cJZMH#KtMBY( z!wKtO N7b>p`jQd&-{{xov+!z1= literal 0 HcmV?d00001 diff --git a/OsmAnd/res/drawable-hdpi/ic_action_track_16.png b/OsmAnd/res/drawable-hdpi/ic_action_track_16.png new file mode 100644 index 0000000000000000000000000000000000000000..3115a6582dee626617a025f1dfad1a8e7dc8323f GIT binary patch literal 1293 zcmbVMOKjU@95=9)Qms71VP$BY>rU#%=64*&R^2wQZh@w>NwkG%z#RKa;x@K3$0bQ6 z5PMt@5(A+QCgzq!*s!YsL6FAK;Xnk=P0m+e2ghnbT87g-b}(*7&6Hh`Er57cGYQa;E~h~R z$ZF}tJZMLdTZXk*+>VEPM8(tz*})J+JqOtc(%xCj$;u$G(IiM~hJ^k0!3>6Ks)QZo z!c;it2N~_~umz&Sy)k8YP!UwDvjc4}ico+KY#A-;StBnNC2UQu2-nUriJ@x{dr-pG zjf#i+P`_yblq1}@LbD9Y3k1yxjK_5lWhmNBQZAAfaGDk2>!Q$&2ZP!yH6=y@-5a{# zPQo&_ofAp2P$&=umN2a}tPMSlu zgh5N!UC?vk@TOoRzY!=HGO{S=NSdHXU3dIiL+9-X_}7dr(fL>@2gnG>n?sfY^O0(; zkzwp^tjGaEYs3dF4JJj-225p02ZkLANEo~!R818*ZJ%L(@TC@c9_8kN2{HZjSW}z8W`Vb+f#W zrCC0BL$2tzfNYyq%rvvLD(K6YwwceEIn?iWvd$44x-Tp%n&BMpcT%q}2V?gb; zOdVZ|wWw`jhg;!kw@kCRz`GdSr9k(Eq{8Dot8%m~xG9yQu?@cZe`82Oqe!P<{!>7; zBUqKraPE zx6|>{XFAURn*L+QHff4^f1>G*W1r8`8~vBtshB`o~*aK z66Mx8qB=JJZ0nz~A9vpM?v*-rsx3M&;=j1C>*alCue~-IJW~J8p$oIm9PcadI8YkF zr{72%cp;(76AOuf@YAVJ-y8qE=j?YmW9IhTnlGhW+_&m_UEAWp;SxeNE<{H!6|VVL zmZq03M(>xNkBskC?tQ(v|MIaT!QHD9&rP&{ztXup_UMx>#aCC~%#NqGfBV)qytjAf qZ1$*cPqc9L{PkC!nE!iQ6Vm)sN9D7}?>p`MphCgkz@+c^seb^hUcw&$ literal 0 HcmV?d00001 diff --git a/OsmAnd/res/drawable-mdpi/ic_action_altitude_average_16.png b/OsmAnd/res/drawable-mdpi/ic_action_altitude_average_16.png new file mode 100644 index 0000000000000000000000000000000000000000..5e9b08d079321029fd1c1df0e602b9e0a323bbcf GIT binary patch literal 1136 zcmbVM&ubJ{9G@7}RGT7-zmYs92vwZlGrK!O*0{Tqm<2b6b*T#;^v#>M$&j6S?M=i>y@)w^P*g++sBGUPyU|1N;4t%kem>vd-}!ND z^kDD09qTxb>n)DhWj1d}zMeH~?0eIKY}!tTs`Ln{(FTk#mvf1OLD7ffxQwAYeez#C zz;WF(UZqN_r9&1Xz6cYH*z`lj=D2~uW(d(Froh4DUXbNq{&|ZBo}1;58YQ_D7Vv~O zG85q=GouwWGl@)>AKVWHnidn_V+ujjuLrT!%<_wJEw)aMB_1q7=wy~(GOAh{0|gRc zV2CLJDVhq>rl=UEn$hW`F`TpB08pJ{LzdR(Q#!u#8Mf@WGX@|AGQ7tnZ@q&iV`5R#yT8% zEGe*V6Ex-HfEMj6&u&E5bFB*JPcdB4) zf>07qkPs9KN!AU~0N<7%@`B`ePm-!7&utuer?5L55g#nZ+VWPgBZbmR3M!glrgc@& z5p&;kP+CZ9uAx9PCA+f1xB2du#!zBLNlC$cQb3&}R+Y(exgFSMxuI~tx+r4p0#W8F zYqiToJ6CBwcHXyIgWbDlPd?ju`(oj@?zx-uPy4xlR#(F(XM1|?-T494e|>RoL8{#K z!IrLhGIHkBnKiFgz5cuP`}J*eryne2dVl%Qx9P97&SvoaPxrRosm*TP(0cdtu0vh( zb$$P(uKa=b&j*87JLlfcF6`ZSeEom3n_FL9cyZwQx%++J6t6km+^Vm+@7CUUbmif( Qbn*`<4vpG>$isy^MBKP?p-V;l2V98@HzGce@}3ficiN=7C@vgk?!D*S^E=;XRx2|n zhj*oRQ4}>?nl`FrA4$HQLu4KO(t~6>fG6vC)}O~M7$T}*`z8V<7cQVGg7)&cS7@A~ zcC?*Z9oNgJG|P8cn8>iP8xS-_jpyS4T8jt+6D>Gij{f}YISm{;NB^ai`EpQ14QIL? zqS^LL&1x@Ns!iulfbm!(3S5LCh}|VG(&8Mwu2&=Hgw4@lT?8-Y=nbdpQLPJkWX1Bpgx`c0gpiKiPOxIwwRso0D9 zi6SZEVi<4&%X6-q#I-IR;VSy!#+K4iZ8<<(6-9nCv`9VX#|B`MyI&hh1c^7=>ChoX zflG#OHC^Q4l98jy4Qo5LmbEM?ot9JvDJsv%SrIZ>QRK8yA$PuTwq+xz)paF|?Wpdmc2SRKP6!ORvg=AdLT)%LZ zjM}Y|QK-dl&2PP4e#hZEt1CJm4?m>d_olnOig2oPc&^*||MR7toz;~WqYn>VZR0l| zCc10+?cm_QqsJC*zNQXq>lZsU4>f3hTribV~DZO;JL5<8&O(FH*{GOs8dn8Lux{Ia#v!|-58zUS}vfB$o7c<5Ni_U`Qj zL39)cwKASNqpy7{9``M+0z7r0{!w(&9Y;0bLn3FoIwXrWn1E#n%=+{z*hdiYS*tRN zMoY(4!?hU@VVKbNFqIwhC5l2?FLYjDI%X+y4T2`q)VfilrD3w*`jC{F1a0u5 zKqeK2mlYu;9U%pdPq3WC@(Rt1Dt;x7Y(5m$=9}YcSsQ5T!n-t8MaWZGwpOb#HIZ@s z3CvX#mJ?V(pfQ3D>J9=S?F9Q<5;PbXzU3jyb;w8}(A^o7rm&^!F4$hFv?16Dnt{S0 zV?*GvJj1cJ9r?9}4p15XF=JD7P^o*6EyKW_@eQ1h@%=3_j@`c%ML=wgdcwDGQoxkv z8Z$O@P*F=$_=YhpQ%xC$m`I2U4P}L+rIY~Zlpt_;;B;9w^>JO7T5>ky%PGD;ml%*` zQ4)B*KdI#NLN1@oiQ0fH7LsMTNs#OKURTsHI z)%D0iA&u{_^wT^#agvCu_Iw5`2^raT1iR*Eg9H- zMK_XkQZ!{AC<)Hwc&f=a|2Kv#Hj0f3=C1;39pS2smK*JWHyaHF9o$7eZkIO~>{Gba zt`xOgCH$bTtgdF_y^ZP5JbH}-!>#;A{m2LMA_PpwS*Vz3e zb~<}*=i&OUg&&RO5c^LH1+y%ox$m5f|y3&u^3-ypMha M#r`4fL4NG~Z$WV}XB<0;aBA!5cHY#~ta;54cr=q$|L zLm7riEV|VisTEHdHuiWJWB8^QP&UJ4Mw$V%XAuDwns)sx`||fcSl~KY_Ka2(i$NaE zxF;7wbb7H=wHIe?-C;+LgG|$)0z5<@XnJ)&GMZU-TdqOZ@v*>yZ3vmovO7lAie-?; zAp#no71k(^i@UBdRVG0bf%1oInmNZcUg9ZkiZax zMx((u6ds4ul&kB4C=0U8Q3Mw)_yjgNKN@OFFi~WOZa`e@gIFT8@I1+~)Y2Unyr5Xz z73@c?K+%v1O&ACgFAAO)`?ZaZNCkZ`V^4HcT?mj+K@px0ZJLj%p*ESu?$e55AhpJr z3|*QOSU0gf?;)QQ%q&Z9c*k{&v~4TNq@r_3(?w2A%aBXUvPcKf(lp1KvMjYNXD_~% zmQ^J=E^CS^OVW5s&*kK?Txv`)Cp0Cm=i1zY9}(!=sIA+jx?5c7lUySoB1mvp#kk(C zg7OR|IGVu$$mip%YrF=I7NPC>@$t8Ds&+g#QRrSk&P0ekupMi|-NTNgosyDJQaC-O z%A9Ib_jSuoaVf>oB&a7vN0itW-}&4a3e+eeE|`xBsC`7MGG6Ys1KsR46!K{og|uC+ zuHQOFTkTrG9IG~;SnsyBMiO5y%{?Eu&B#p8Pt4pv@7a#O50@|Q`|;-RT>>pSasszVW!M)q0phrqfCcUtfWV-!{&Xgn8xHXOFu7d|N)VHaNg+K0VUW z|7`iq!S(F^{!)AqEV4(7u^@ZH8t(I`eAM zB3M0DWKVk$1<`{d2o=GT3R>ubf*wRf@n#RQ>}4$;gi`3fX_M|AiiaI$-skW4|NhUF z;^@iFj-NUxit5ad=p{0DM_+pz8T-DjLoyw}xe7k*jpI5D5H)0Z1_F5pPM{Kk*38sP zl%lBEtX;0)O5v1ddJYRC4BK#g!ltOyK*NXTB*MTz6SkYC|9Dke;IXh{p7CmqRq#7C#;2;b^!>PHU)=1MEay7D!jyW1^K=5Rm-ZZLGD1xjP zAfT{u#uOwGBve*VR52;{1CbZv94~W%$_SE1UYQ5YhbGzrYg{Yo!%baem!_*2`x?j9 z>vgs+v0gAixT?zWA}5LrK``Nri(!Lt!-FjeIttCe_Ob1`Ad(0TZyKj*V(F#}j$bHj z33kI~ph(EL2J|_BMTryb1X4Qtt!mNZQ%9+y-GDJsv%Nf9zhQRKY6r5}YAEEAE(%Dy z=&!#WA+5HM*N4iDkH*^i`atZ^+|-}F&nc1Wyh=^=cAwk1+*iD?WB$gi;OJj(ls&PP zlJTArGSX(1H(Q1c?tm81caeJ(KK4AA%1KGv`0& zKmYgN|JmQ)w`s-l)ypZ0T9MhT=LlUHel1O8UHj}6B%}kU3wVoL!WHNvDq*@s1Tr=p zKsf}>kzF@YH$^R}S@{AkWP3HkwOJU-uvOb5Xo~9ISoNSWh%hLk0n3TgPcK}ifn~<& zZE}{+dMQ-4HrIT#rPh}>YJ-Mq(i^`3-Bpb!un~r!Y7aSqR*loMdNr~S*&GdKMetyp zo^z^@?FT8>M?hv3#t}ecVsZ`jC#Jc_f!Ky09i<~GjM1l!M91N?B6Rc}!&{1IcmWM6Z0ii}%bcb=A zCZ5iPV0+o@ykaM)CyJzut3r^_|edSxEC~!!3jbR%(IHSjDa>JUIsl^OKQWQyLkgW1dBql;8CW<^+_@XSE z#Zs{tY3Nx9FUN#*Lg^7?DIy9&I;tjw$NP3SfrPO2tn{fgR9RoFNTf}x9%fAz= zrF;aj>*rl}sL=)eWf!|a+4Vpw6;@qlWw1UA4a*7HpN6HHi(E&(wHui|zH5WoTx-?> zekev%P@o_&YBVA;5rc%U7L6zql}uTHs=}MRK-cl+`{s}%PH|zwywyMr7U{}xJ3kKO zFh5YpAyed&ak=!#_Elum&S&&QzWV>kLqgj=zBPTbQ}}3CTiZRg^4LB-v-tP1&%RlC ze_Fe9;HTc!iL*0596f&E!_R;Daa4M+yLGDh#hJa#xxH7U-!hZUA5Tq82IEJLHJ4yl z7r&oo{z1)yKT=R>gC06 V|7^KD@^|>Z$fW!9iR8}jUITBKf~5ce literal 0 HcmV?d00001 diff --git a/OsmAnd/res/drawable-mdpi/ic_action_time_moving_16.png b/OsmAnd/res/drawable-mdpi/ic_action_time_moving_16.png new file mode 100644 index 0000000000000000000000000000000000000000..1e45bcc8d37ec56ead70b51c151533e920373b41 GIT binary patch literal 1218 zcmbVMUufKP9FHxV-DYP6rF1Y2nP8RWe{#8G&Dy)m)gGF*-cEK?kmk?t?qZw#Vv^gX z9f<3T)<2c8hpj`OR&YZt1;-HfutQvn4+=6L>MX+t{~$j2FhsWw<}Yop`cU>@NPd4m zpYQ)~W=4mf?cBX@H-=%Ig(0no=C0)H*onp`ZrwA`)Dz{)(GggQ8b$!Hj15hI7hIzX ziomcZU;7I5VOaZ=Qz}Pg{dvWLE@dPbDt3Lu#<0Hr*f*?k5aA}MI-W}Wapfw3JGM$3 z6?I1UbD-u7O$Fe{)Nsj~8nF=8isxVeaFI%p7Rz(EBvY&?b7|oq&M|C?W(1m*NtRd8D=_%xLm+K|T~UhK;HECL zQ;Av>`3g-p8V#z!Q!uC^t}N3GM{^vB5M(&%MMg||;enO}4TM(U_>luWJdtRaupX%d zvUI}**Vpwe!Ctr-C=@a}Hhh|;7}|9czt+)VR0RK;u`N0*P5OW?f)LgN3+1D7phZTp zyT76Yh^$dY0tY3ksc~X`Hjub59zHC|&De<<*8gh!U8J5`O+y6I)G%|`#3g$lr)H*^{nJl;3 z0d2M#3V5iC0@N;Vod4)=)M_^iTBa1=m_N<#ogV1QpPYVs^wsp6XV_Po=MI%uZv1fU z+@Eb9EDyDJcI^Ls`L4bM&WxS?X-DPwFQ3izWIwGhE`8DSz#4w{=-8?JY`N{xT619E z((I47PmHV%EVl3O&FsDWWOd@w=}%5w+x5<#=SoH9srs(f+mBtju(P}CIz4yjky`xX z%gvR!*S}evY1Y1fcOc(?{+{}N-}Q^1Ke*8IFh}ipY4O*!uV09NzJ=XfV4wN+%d_u& ztm>tO$LIGfudFTgcK>$GgKr(1pOsIJG!K5)e#vYjt(gz6-l^W{V6g7eUk_a#I(#De Ns}%CX+Cp}0`X79tm{b4& literal 0 HcmV?d00001 diff --git a/OsmAnd/res/drawable-mdpi/ic_action_time_span_16.png b/OsmAnd/res/drawable-mdpi/ic_action_time_span_16.png new file mode 100644 index 0000000000000000000000000000000000000000..0fa88b208df1c60cfa93666f46414b06990ec6f0 GIT binary patch literal 1204 zcmbVMU1%It6rNI>w2O_}inbc!I7Muw^Z&OqW?g1?Htm9&E}OM3;zRDt+)bv*%pGTL zvYW-eP^2K_K?Qv%q);er(bR`lG}h{yf(VsHDkA!zcaq)cL+FFU%)RHH zd%p93=Jo36zO9)DG89E^E$_E$WWPK8HusVBp<90gvhBpB1|CCA+yXJAEDt%5E(c%& z)*$fap8FgQQ`E+eUvJ<>LkJ_nM4s?ET&agIhEdB0j?jW>^*6zRwK7z?9W1PBt`+fl55jn#}Ccb zMGc5DYv_u^DlQ4%a9o|$Wlt4>p$VQKGF`m)e{;war}(sC{?kA`7U{~ATpI^+SQ{u9 zk|~PGxCCEXgJjgMlx?ftzJB_cIB;ILv$SX9*w^=bl|(x)Y&xFw_Z^%KUtZkQ8M5zh zY+GDfe)YxEpH=4Hd8RXe<68dcFU_Uv7Y8r*-SMNPJvIKGvB4U6?3A@nar>jYZoyyg z`}EX?%=8iGi*Ln8-u~pwTW1%?W`+j0_pZBd9m6oar5#p<&UeJ$+BI~%|Bt@`o$e)t5i*Qxqya+2WF2fHw&a02 zsvzJ@J$(lCGtA8`w>m;b%8#26djg0tLemQF5H3I<05n*jqcl``^?f40fb)5{i zOD{|1Adkk}9jy=zw+5@QH4Y7j+x7_C-!!QJ4-vpNy$L@un;C9Nu1VMNvB)I53zY1B32iYJd{<1O&Nl$8%kQ+!YY!S6eUfR4PI7F`f3u}emJTvbZTbBDz(P#(_Rls4Lat%Y26j4!lir}LupMWOsM~RLE3q>$=1L9(zjU@sbPm&Br zEnRlO3(Dmc!G6>Z6b+f!1c4|ElIVG{UrXqSRM5X>tcs4RQvnhyD8iE=r1_{NI%FEV z8!L)|)Ee`N(4|QM6BdS(9`Z@a%5d~Xa9qbsL#QT`s=*`Oka#Vv06wiK5*;L4*B!fN z+geA?YJ5E{TUx4E&{a*5R|#&E#q^KsU7L1#CY0d)QN_@Ove%br^(boU^q7-ElIinZykVn-6D z(GeO0ou)#l|R`%m_slGYavy#y~NW}~_F_Dx^UKj*zaH}G>dz?(l^ zv+K{h`qB^1zW#Rgv+Ex&Tzm7L#L=1ar;b8@StE1J(SXvw2C6cH_2}F5Ii`{ywBh7 z|NWnfLjxbD+V{3o6qPFUTO~4gB;U3+GIp)30y6Ev`3gRcYPb$UNcB3X3h9Ce#$gEp zXXeZ=u!o|yHr#RrSBjq+Hu5--V7S-|2%DmMj>ZA7Cn2V*aNPB?%s)4NW@y*RGQ(<7 zC&^@t11b7ewI`*dg$cVGdnp}gdlVhHt*C2Q@%d8t! zDGt#&6hd0%(yT4Y60PZ+sOnNiIYdi>nC1nA7j;&Y4e}}i-Fz6LEp%!|$?9wBBD*Xz zfpK8)e7#=h>N1DIal+MgUXXZ6VhMtcW_%1{){nYd5-b?mp&MWq`E()?RM9lfGQ`q# z7rdZY+z{+X%|MZm@i7Q^krQ~&OZ-|xN4Nyvn6W83D$fLvFTn^+hc?Mat-D1gv3s|o z1W2qg21A!51x#7Up7x-R3s#mPH=N@-M#i?~bXwL~sOkc%WF)|5BuOBHP*qi@TB}x- zmYmJ_imWTTCa9{cNTQh6bkmf2O|4h9`cyfmn=Nj^k1+6U*wXD1-A%6YPOgy)A;2gs zBQ({jf}sh7Q8a-9I+shbu5v1Upa^W&PmT{Jsap5kf}wjBI(;GX=(SiI?k0AmZB0xA zQD${bkyynh?(0=sV>Q`PMWCkzM-Z7N-+A8{^28`UDVVnksC7iDGFfi41KDge6!b|K zg`{2n-hXLLrZ@cH+NlD zuY4jbkJZh2=lcK5(~*a_RL<)-_CfbzWqx$~v$52VW49Z_S@Yhx&**QDl%glgA1$4X z{~G=6ig|a~n7elheDUYrySwiEH+=f}LQV5`&s`lsDI@rOU)T1>%IH^1r@#B5W93-> z0sqafvlluu%eQxDuJb!e7pV^y`@c>fo?Bi0eCL)nN)5Ya^DEsW$zP(7AF!^OW9MH3 DkwbsQ literal 0 HcmV?d00001 diff --git a/OsmAnd/res/drawable-xhdpi/ic_action_altitude_average_16.png b/OsmAnd/res/drawable-xhdpi/ic_action_altitude_average_16.png new file mode 100644 index 0000000000000000000000000000000000000000..894b938a0120cc7b7faef72eaaef9faed5065fdd GIT binary patch literal 1275 zcmbVMOKjU@9CwzAq-Et55E@!m&qK6``E4h$X_lmMOCy>t%OZ%Fkm|>m)@}X3cF98s zl^vi|3{f`FE*lvLX&Mr6;xZwIs7g5?aTu3r5(6;~plTE$ZAcyAbDIqICW&ns zRn8aCtmOcdCt|otvkV#+2$~m|1a}Z+C^|+`97zi}&5H2lD75`xP@AJw#G*9P)&+M- zY|8U&ktD0tDp6$#%bA2+K_DrHWEdPGaJO!Hat$}#104wxa8*aQJ>4=z76loZ~Uz=#xD}sN`*b(iP>NX&Yz_sQa73QOIphJeS zyR#x62(1whJ335?JS$o1oB>QPCnYg>Luk4tCRCM;#aICcyg=bxf|2nA!%%Rb6rR_V zilT5GIXm&$cqS{vIF4sIhNg$(!q5O zup_3%>6lEjxDe+UoKvCuf}+OpIIHorEW{{{qOmq#`@btB2Hd?LJSLt0VM?!Ci6PE+QHRQ1ezITyzuIFbu zFwix6=}c=sdTOk`du;LgN_rzS{bd&YW&e@0Sm@Kh`iHIa%`;u~#c1JXUt|MO=FYz) z1nP@>o5AH&OAS4FZu)9?_2e2-K@a`amkJ-h@ch&1vj;;Dw)%IcyWhNf;rjfoC-&9f zjy88K|L}Jt^jx!Xp?fv5h7`K%*HY`qscWTIPDdB4AD8;C1opIYp=0M7pNCf?9x_0r zZuj5YmHxJTIKA(a;Agk{`>qC+arBwxrI#oENJQ_u`JVG#7yr?_^MkJjADzF2KeYGv z=)ybmr-KVOep>q4zVvJBa`0HQ(ulm(XWW0n_xyu;H~&!{gG& ILlejU0n^5$wEzGB literal 0 HcmV?d00001 diff --git a/OsmAnd/res/drawable-xhdpi/ic_action_altitude_descent_ascent_16.png b/OsmAnd/res/drawable-xhdpi/ic_action_altitude_descent_ascent_16.png new file mode 100644 index 0000000000000000000000000000000000000000..8bfa93627f86755b84a32c58471ecded70b06523 GIT binary patch literal 1238 zcmbVMTWB0r7@lThYf_3*-Im^9n53}P%>A}AW}EKrWX)PPjhhAY5F~Rsn;nw5bmqjp z)CZ$d>4Vr8V-aZ!Z6b(hYH1Z3vB7&qXqA2K@WHS$tENyuP!1Ini4vIjx z>IXjqy%-j2*rgFTQg~7|J%`dG3{`V{#Ky4RzM8L_69D1{7`NRN@#}?;3EZ|)#M5Gd zDfn4Xu?HFf7;X%f%*KSNSVZ4mytk$z0S5;PE+f$c-vbMZ)`Zg^8LMIcL8 zTyXqCVO6jjHUou1M%Q$oW+{etoXD?bbO?*!Uo+N3ho!m?=pqQcslY_}D0j8UD0cT& z6akSn>Vd#UNzo@Y&zy3A3-elvKsS_STWZoYc}e0G5{L>z3Q0~UlN`sOfiXnUGRlS_ zwB)SC=jC)(k%Xkk3mnV#%StB0r89Dx*K#7CRWdDZ-VLGdnxLiIM!K6^`JP-g8vq@8 zLCNzbTU9Vr@t_x0JRi?yqpXXRh$jlVX}i(!o+wo-o@*emp9NMf@Em+O)~daR9g-=t zlFss^A`2WTn8KZf5L-e*o_Vojw2n literal 0 HcmV?d00001 diff --git a/OsmAnd/res/drawable-xhdpi/ic_action_altitude_range_16.png b/OsmAnd/res/drawable-xhdpi/ic_action_altitude_range_16.png new file mode 100644 index 0000000000000000000000000000000000000000..85c234f07c237e99cf9fa37489740120c9887f9e GIT binary patch literal 1315 zcmbVMOK2Qr9G_%kVv0$(2x%=e`#FVTYi8%YyEA6pXJQt!=_Xywg0IZuOLk0lW;!!z zHjC(DYKh>*DsA;3SPup%dhkW4&@FC|QUX0x;^Sb5rWnBom`fmb{U*sq51|K#neX}g z{ont2Ei>>$+rGp5Fbr!;^(BYU4BYSjW;EKR(mI+Ra(Z&kDPz=`k}QbDR6~X!RglKu z5R}yE(>Gu@hIvX_Hs|Eh{i0$N{F00D7Yin0V_0{jXiCaBbbt)UG(C*}arGJwG&PJ5 z^Jyw=CSYFcD_QVVX&|eV#uY)uBaegbqKE_(pd*1|VM4dXVi@0&E26b~OyXb*;*5v! zZKHDO3`iIj1iU{$C^XA}px~!@feCS4fT8FBNpU1C5Hu^Im!rVWgClL0Iw}q&dv|o9 zT^P?hjwzDl)YO!JiuD`T7~%>7NiihD5C}oo)4C%S3Ee(gmym?EVrizM89Hz!O0qHO zgmGl)whIL_o!%9!+dF|mAtQ^DNz#6bEEHV7w$QdS1phT-Pqdw#HX%6#ZDZ0>P(DVF z*2yS#_g3Trku~B;OG8PKCX$9SS%A8eN``TC<5x9R3@Hj52(SVHd4VFh5F-&GhM~|v z$vm&hqq5A^9!;33asnaknU|R zi-7mwiU|u!j$vgDW1?OKnY`f`cHS^SBH?D8_w(S9w4`XddwkqY)wbtJXlZAl+G`mF zuoY`j+ry545~KqX%@RV8V+c+`?hCRKB!aBU(~=ONREoxT`0D?SA&HD4-Gcc~0o9LC zRl3XFc0ilmhJrfkA`7+4ycXHOu!cw~8Os*Gmp5y*$XC(EW9J&0-)}!OS()?9{f6~| zcU!AhJgem{FyL9~zWi+e!uiaBS+arN?|r#Zo&+z&KK5ew{XH?a3MwttBgwU!hYeq( z@4ed%&qX&6F5Y@OGyik#?Da=M2Uu!25#8)utbBcI9eAp~yAQS;JO2}wk+04!P$%a$ zKd)71evDpu@%|tV=@2H}99}CWM$WmvtyIrI@}v03EB^p8p}S=O literal 0 HcmV?d00001 diff --git a/OsmAnd/res/drawable-xhdpi/ic_action_max_speed_16.png b/OsmAnd/res/drawable-xhdpi/ic_action_max_speed_16.png new file mode 100644 index 0000000000000000000000000000000000000000..a21ce70a5e265003f8e7b3ae277e5517cad2708e GIT binary patch literal 1427 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 TohkLYpu*JC)z4*}Q$iB}wMP#D literal 0 HcmV?d00001 diff --git a/OsmAnd/res/drawable-xhdpi/ic_action_time_moving_16.png b/OsmAnd/res/drawable-xhdpi/ic_action_time_moving_16.png new file mode 100644 index 0000000000000000000000000000000000000000..8688e6ea54c94009867054d7e9ff3768c268f878 GIT binary patch literal 1556 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 RYWqNiucxb@%Q~loCIAb8B5eQw literal 0 HcmV?d00001 diff --git a/OsmAnd/res/drawable-xhdpi/ic_action_time_start_16.png b/OsmAnd/res/drawable-xhdpi/ic_action_time_start_16.png new file mode 100644 index 0000000000000000000000000000000000000000..94db2e911903a6473770b29f19e3b5778177694c GIT binary patch literal 1475 zcmbVMdrT8|96!K8tFl)kGBs#VrWE;5cSD{yDXCH_rD`R_$UJ1>Bo7Ze{EU}( z@eJ2ke~~YOprnZ4u2QO;t7%s9qf88ghW!D+hM=P2aDZWJc?I_HUO_Z##!jEnzyfF1 ztR+;G!@M1o(M{fy4efF-V8ani;t?SjUbr4Lk!; zYR#HiqpF_h^7NnX9H< z_R=|BU}x6&6eU1oSSS=iLpoHFy?{$mn3li@0s#ml*eEJY7!iZHaS3)l$jU-M5hM|g zNn|`ygJRYIOJ`m12b|7%!D4VOP#|PjmS^Nm|rvKpyJ~HHDf_^(A^l|F&7_{ z8e|saqdGTE2C;j%q8JcZL%$&lASq0pU1A&jyr?+rW(~MOIf0{1EUPmZbQHpqlorvO z2nI0`gcb~14@q*KYL7=Bm$MLGXS7&M2ECQk=?NS!F;Z45VX+!5I(sRpvr*PK*C7TK zMr8T8ZUN|?<60idrEN0LD3a`!q`G(&l=~z_3i_k~Y_r9(PNF27?_^j(j2*uiOVzCB zc3u`X^IWMc`Qe#Z)4~FF7+522U~nBm8TACBXMy{ahczNb9Y^8}Wzce3Tr8T2JLd{@?<&$CERq_E$;B(NGHDP{HvL5&s;6& zTbFU9G?4LR-rvoCL67C^eDH|+(Q8+pbEh3GXmF(<{d9qdj=o>ES?DwLrbxf0I_0J5 z>WS#BsN6VqZ+K#=x5|<+^5+k2^4sG1tREdiL~S&5HoN=fL$!w%7eo__TAuc8O$qdS zKf5-aXi^>f&8XgDQ*DnzO{zP`&wnu<-OYOI2MczbXh~Q1oLhb)(eU-QdUVBwrv6<+ zWIjiJdTHbHgG=^TY71}YtV%9$jPGeRSUQJ(xo~;O`V(IC<~`S{OU!~B%%ey|P+0^zkieCRbA*pg;w0!FO@eTE7nWpX*Z_>%zs^13` zcj8s`)R*U)*S_P+%dXy8gKP;G6FatocUO*mv1? zpsaN4ZeH3lOZUW4PxRn}-IkIbgH@2_yC#()k?@Rdj+`v@#^uF=2GaYAC anUL`9cY}A<;v=!&s-vXL{)u(d)_(vkD-~}5 literal 0 HcmV?d00001 diff --git a/OsmAnd/res/drawable-xhdpi/ic_action_track_16.png b/OsmAnd/res/drawable-xhdpi/ic_action_track_16.png new file mode 100644 index 0000000000000000000000000000000000000000..44b29cf6c4c95dccccba2c540ae5fbb7db11cb20 GIT binary patch literal 1433 zcmbVMdr%a09A5zuNCKq@)5&$oAno>bk7X|o;qG{xa6HbNz-AoS+g;!WZui_>yaPpv za)h)&g-J35rO{>(32R`cfzp!!hKk8(V!%Hb1G6bD#%9hKQLY}W{l^#rFG7?G z1F~dPku@JSi4qTMQJsn<)Fe#ND50gvB+Uyji4!^u*I)##BGh{DYH)b@L4Y=iE7jY~ z8OyrB&VZCFid&Ci9*+n0s8LZW16-QMa1tX)6+o!uYC&PVDnX79NHFs>bYQxsso zM8+XjDFy^sy5xe(ZMCil7UbnXfskQd#*Gmuj=5ZZzZTK5V&nfcV^y?luXgj8jhDqL zi3Ry6jSrAP>>jPi4+Pfe^CTxo3R7to*(w(=C>FB;0XHb;TqZRa#rJ$X*gw6lSx{&h9rn|iZ&X_G$WO!HfLznCfXR_S_D~P z1eOozb^_hYTGuv*jf69w&96MZZ2rZruifBvza!Z@<-ST+Y{zT{2XQv-8*fCMI*)mp3 z)m~eR3}ugBee!P6oSeFTe|ui{Z?2gjBBv?;TaWor)=ay{@p(&dO2~;`YP$_T`oly^ z@Qt{$pEQg#9Vjqbny`f%pu<5A5&zB4R$&kZCD4jt-zKo9?U`_}2{ zlXG9BysSY#%r-f)PxR*~d4rbkppOra%zV^URk8E>rRsC{&K7PBGRM3K3k3x`yVp(0 k!r0`IjK4FlzXt_F7cXV~b)mS`=>J(-(sRu{#*+Gf0IduA@&Et; literal 0 HcmV?d00001 diff --git a/OsmAnd/res/drawable-xxhdpi/ic_action_altitude_average_16.png b/OsmAnd/res/drawable-xxhdpi/ic_action_altitude_average_16.png new file mode 100644 index 0000000000000000000000000000000000000000..ba4762ae789fbd22079b3a6b215e3a119a27abb2 GIT binary patch literal 1444 zcmbVMZA=?w950oz1%?`?Y)n2}4weDqdN1v@y^{_~3#^O9S{espbl1D1oY1>^chDE) zZIjF`5J1cvF$$BBO`XJKpQeJKB)$ZdxCQ4%Mp(>XYOHZ21Qg>_ptujqK6rWVdAr~5 z|Ng&|uJW?f3oW2CBKe|VRRvX0I)Thg2GUMVe5Dm^71}Gw7}6%K7%2F zv%p74C*};;_*&smMCL0ZgE-x zL1sZdYO>;F5W5E}iUEN&^wY8clET#6CAPuOi>kwJfx#CYCvdcxW%Wj*ohAgoD3_7vFqGesx~~g z^Rm#$bEUH6ht^|F3-__Z$eM5?gXWFQa&3*4u?tO+scITB|mBgSDkyvgVOZwygj z6dEg-dkQFi1*$T(-D(GL*lH+V1YIP9cF9WVxv9}4j63XBPw4t@{e?NNGMQgS&38VB za^0ssc3;cLcTc6KA3xbKpEQ*|obPj|r}s^8J+FVuO%LyJ9X{N9b!AuKoT>ZQiKd0M z(P;EC-7>d&HFa)zxnN+VDLT4v%l_Db1<&L+1$l$o&GE`W^xgP4)1 z7VR9nP=uJz2OQPP=`+oE`_7KEi>obcxSjdIXz?T zm0NTFoE4I)Tra*`(VMxL=!1kAG3DB_<=HCT{B5@8N=BV>rE@I$&ef-rTlF Y^Zx8gpUbic#r~U)l5+b<@zG=d0(Wo*!vFvP literal 0 HcmV?d00001 diff --git a/OsmAnd/res/drawable-xxhdpi/ic_action_altitude_descent_ascent_16.png b/OsmAnd/res/drawable-xxhdpi/ic_action_altitude_descent_ascent_16.png new file mode 100644 index 0000000000000000000000000000000000000000..9794eaa46166d427872a1f7e1133524f366de28e GIT binary patch literal 1389 zcmbVMeN5D57%#9e2a+stW&;Un3IyEN>(}*;Hk{lS%rhJiJOeCq(rXJe(DrD{?l_YT zx1j@!X32~Y6C+bI+%o2vVVe$(Gy6~og2crUndo9*gG3z*i^FAm3wLaP5dT>7^!<4H z{GRWp9TjCSrKMz~KoFGX+v=?ZJ8r(~lEGS)_;4TC(v9M3W4l^sggH%wT!I=DVV}&^ zi4rEy`3(h7RL*Qi* zqtSt^I92VhfIX@v!nDPP@&rY~cE&=`3|U}(5hiiMhT&F>U{Hc$0ahEF2D7!jwhT>H(HvFr36l5(N^d-l`Z}1Xc9xxCXDN^O_VgBvpY; zja*P|F&qf+bR`5i)na*Rr&3REqz)v8J>hXbp*2rKqbd z8V~AGmmLR#+&$iqDG0n_%QXoUg=_Mve2Xk9hR^Fjz!!@k32Xt+Q#KpLpd!uSsI`FP z&;pXg!GZ^AS_sw!gVwm7weX}1w-F3Q(3F)Vh+;eAc9Sl*-9>pzXv)L5<5-`f8=S(6 zaoZBG9mC>}#j+kv;|C>V$IE9%F z^PdKavp`px$JKEFm(_t16);5_7?+&fr`~~}gbttA6^KmE_gvg|$@%o&&s-@{>DXdg zrwX5RL>JP3oyb3<-uB&dzwlFG*Ooog*^#l2_8p*3@5!{CJ2KVNedW=8Pp>?%i&}bj zFd6Ffl+|QLo^d9`Xu1fxS$lDu?Vstd87;NzJv+HSrpx}ys9Ibcs+qC(gpWUaBX7R% zZtKJsiT#giu}`m_O8q{eo7;7I!>tEN(0k?ciA&=%S>2Q6uYZky^TA^E#CfRUm8|)V z(^p2a^qe$jc5~Oxl;@hIgK`dfX0P&~rVpL7G~T(Eo9E0M`u64g6T_LQ;xBY^o9)J? z!ENIP0^LpBopr4-{nYS>vqd}hzdGDz`F!MT>G<3a_Oqh%@Iu1P(CAQ9{&8y4w6C*$ za-ie-?8f`;8=(2guQL4CPrlv${_m4d6kIwV{BHlkaGLYs;L@F;FFSlY4vuskPWiaG zYVHtp;K^gdfuW;g>!xnMb!e<3r=+iEchbP$p{+@?SD%05=<(58ZNHWHK50wLkJI|i c7ZTS)Cw}hjz1))fr}+c)6_+kn} z|KIxZvgamb=Vv1bGQqQeuYfb5e_0uDTxPue8k{C;Zl6}E1hlxI0>mLHet>$yLM^BO zg4Fm*A1FqUw4_|+(|q1iPE^8XLC2UA;V5JyNb%f6R1oWchWbIR9I<0Jx_dBGmh9Lv z#!GmkE)bL#BvnwEEUOZebs{Tab4$?T1P29#fhM4da3~Vv5_W7JF=HP1~(6I-D+EgjPRq*r2 zbith+3u;=F!|`}LZjRGtMXiNgmchddj%ub~bZP~`?7 z%~zE$IvQ(Eeuy1b(MDPYk~Xn63uUs1(0$e~+DtZDVn~6t5)wgTV|?lV#t?@_;d;UR zr+`vNuqyTCgLZ(M2Mq-xu!~gKE~WcAb|8ph#KSwP65n3i<}KtGKlSPxljl}8TlmdS zEWGUr?e;A=w6#?#Xblxw^FpD|A}xh8woIBeWxO>n@9?hmzS0#7LwnX^mlBIMa##CT z4*tF3mzBSEcHU{|xnUn^r$?%%iL(o~U+qA0*BHx@?0JSlWZc27GpqL>H5iBTYtlC~ z4QcI8_drHV@04JAeCW6IJol~Yqcv|$+;w2i&6xu^2L@ih_vNQPB_cnGJ5B@Q&GUzE?Te&GbFw5}Ro~1ooOWwEsU?|yrx%=eaAHNTD z4&}5Q&)Ssf&z~?mnE0+fuWLucv8;pO+{v9+#;=(bc*!34i|k&vvUgMO?}4F_maktt zvtnw?Mc=9S2Ks8QTt;6`oSwJkg|7}@s9cAibGgqO`g%USHuU5Xc5+SC;$i+~167+l zjx9^ymvJ_uwcl}IIIy;Euzm1)#&9$3&S|{UE_~58v8;JJ@p6Sz!rR{GZjhO?h_`5FVVN}IF!LdTmO`tR1`F5|nLHBJ8j|7sc5 literal 0 HcmV?d00001 diff --git a/OsmAnd/res/drawable-xxhdpi/ic_action_max_speed_16.png b/OsmAnd/res/drawable-xxhdpi/ic_action_max_speed_16.png new file mode 100644 index 0000000000000000000000000000000000000000..33d0a547867b798b24927d2eaa36d5616d1129e3 GIT binary patch literal 1624 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%vG5o5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8`4?pZBPB7%B|o_|H#M)s)5TT^D5IB>nPO#;oNR1n zW^AdOYHDeqYhq!PsB2+lWB?=#l1xoglG2irOkn0<({JQxVD4mWWMXP;Vq|FOYHsP| zWaQ{%?r7}dW@_wg=>*g3nO9trn3tRivpW-LH&Cycp{20}UcFY%MX8A;`9&f5`8lvu z5Rj2yl3$#WU!dUZ42pGAJyQh@-^Aq1Jdm&^D5@YncS$YEEK5ysE6UGR0Ee|zCKh*? zC7T6#=1y>FS6Y_4l=oMLL2XlZ7UVqmBQ)t^Fc80rHZr4LFlNC^lg z1Wc76COkU;Iq(dXng`59MZoN`Pd$1a0|OH<_8dbhZoQe|=q>Fia=g5IiRFu<2@97i zu?Pz)S$512I~ezet&ZuV(qEQ))!9ey?Wq#@lGFWYp{2HY8 zJHVsSDEL9@3-iXHxMuGHo^J=rKM4OZm5W?+gl)<}t&FN)7nkfy73M9p?rY9}aL|~4 z;$v-%qZc1#y=&d{K>5c4js3`Iyg<11cGtpO_~o zGCnloo^re2tT#7BLI3X06Xj}Z!d)Lf74oJmoh5#fOS9{{ria?AC9by*q)&Tdb?W>~ zg~=w%uqq~^`qVAoIkr4lq#+G-1lWmVHHcgRj#XPK-%1YjThylG&Yq! za@_hh;H{f@WOZ}c)wrXAHRg6ZuJQ=iR!^_%PRWu@LmRg<%N zc31Dn9TDB{|2Wino2ii|nfQ|1!%!RUEvresES+--5yRW%^ zbP7>^@++$07$39pn%WO8N4hO|F5EC=Ul+0VY0$dLkKaR&)HVBD551wXFI7BkUPndy zmLG-E-`tM@?nW9|o2Gl$W_mWe4x@k>C<^BsgvpsGd^3u?e z(_XJ8F~#mTZ;@20P-ac_772lDL3{5SK9$yrH)}6ETkZPRM=JTHT+YqQnb`-VHn6Q> f1XB@z#1j}cv}Cb0Oy8jdD(gL6{an^LB{Ts5HGp0K literal 0 HcmV?d00001 diff --git a/OsmAnd/res/drawable-xxhdpi/ic_action_speed_16.png b/OsmAnd/res/drawable-xxhdpi/ic_action_speed_16.png new file mode 100644 index 0000000000000000000000000000000000000000..6c6671d2acef43ae9f31742bf76acb0b527fcd9a GIT binary patch literal 1585 zcmbVMeM}Q)7(bOL0}(ovs7Q96y7|HNKH6)0#Zp?@VzsRupw_q;uGd34+Piu^Xdy1^ zV3}et(XnhUQ3sMJCc`a`Z8&j?;zXxI;ub$}!?2l5MZ_=-INkOhQnx>hf9!JizR&x- z&+qwuuGa0!Pf41S1VK=WeYvFo?6~|TP6q4RiKAPBrh+)e(3HEXu{k#FWcl0;{ z`+WvvE#<_Wp**hCzr0H13aea2Y*iUc`w(Leyez5*3WA)(z|mlU59^}_WK6Ff&@vlC z;4u-Y%z!*~%Hwpyd4kBnlv0DTgo=cNu1DNxEdp9lu+rxtH$B+2LaYZ zUx~iJVjH&wP6nh@l0te6i$o&Ih)OAl8v&N4F`UFm5(N@yxRRHcD9VTD$2C~EFe~~) zl3(CqStH{W$|VB=JbfBMFywSTQ_P3Q69rO+MVSyrC~+(pl;awc4od~xzivENI$Ts4 z;;;fPER>5Zs7J~CI2h#a#fD@-;EjHj=m$k%0v3TS4|2R@w-^v`qxAWGdL7HEG#V9+ zaukiDY8}a-I+Db}f_o{-=PmJi)p0$~!;>alL(nRUQmILTuxe?unKYTTCY8lTsq$!Z z9Bb#p62r4x+_oRs9>=O*h}Gwb93u&0kst)(UEnSiBq3ZXgy6h9x$2aXf)_a%*3ZlA z#d4{hMsDFme+B2Wi9!$_%eCJB96vOyme4SS3Z=Db5>>MxeA>%uQLV~H5e%)teK>)P z<9+`(hZt}QlN;tg4HRdAu9V4V;{XoN28!ds6p3J5R=%h2f}n{`yTw!#y*BW1_R7xO zv@_FpUNS3M)0Qfx88U7r(VNxRMy%5^?oYqcJF3fGpKL0ddHUpc`IYd<39};Eq@#7# zo=YRCj^gV+>MY-um_1Z;r0a+C#;XGZw%$#1?-^W#3GWLYHq$om*WvbZGb0yPZkDb0c6Z%& zap_B4Ns*jC_SBwTp8IX!jR`F$cSmYc7I@mv#Nd67FD>bxcUHH*Te*AAVz;Y1y(uYl zc{DY>Vb&LE-Tigw;rp)~&Y73dj(w_GGbzDy@^)+Hn%uo9j}mH9X6#_!>R(#gt7y&G z!~OMY`A@d1Gp`_h>2D?vbfOLC2CujEf8YElA?x;)y{iw}ZcSeloA%Y$w7uiQzMm`l zcJ!I36{+gN^L7Nt;#hHcNZ?WVU|hl@I64fWHNiW zZ1KxOSqFO}$gjqL6Kfds82cAKSaOH;AL&J$m7QwYFtT`~D}H7p;>&C>>tC&{%I#_CBufju#fxH#YJR ZJpq}hMn#}K?VkJ-w_9D7L+0Y@e*h`WLEr!Y literal 0 HcmV?d00001 diff --git a/OsmAnd/res/drawable-xxhdpi/ic_action_time_end_16.png b/OsmAnd/res/drawable-xxhdpi/ic_action_time_end_16.png new file mode 100644 index 0000000000000000000000000000000000000000..4f0c4eeda77b15264809e1782829688a3a322032 GIT binary patch literal 1747 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 HK$4BgQUVn%&{5DL z4k9Yz7_UaOr4CgKViD{>g=rzRR6(rbQ7(^y#Y&;J-5}WhaQxAo-S2#!_kL#!*UQ6a zI=eYjD3qC!2(f~kA=~HVNRF}gf9xcug+yo^5rrocnTP?S1gUT(21v9>3Z}piRo0dk z%%4JeCtDpIN5sjbLKN3B5gUeS(&|Yzh2kG*(j#a(MgU4IMXeLjf33Sh2h=JNJ(eqj zWcm;+RUMISz@oC{(P(x$Dp1h_0|0-MkQAWB2m~-`H9DivB%)8q6_RV)F-Qj{AVj)| z{>rF0*?J%ZH(&sl$zz}}n+5O%OqeTR`EphPEC}X-5C?<>445q>Uk(IJK6Fx>L6t02 zh{GmzkvkDRl_2y&5X{WXWM;CNxFLn)3Irg;0$D5uiC`GBbOd5z=!~9I62zDhHK_H3 z8rK0fiHH)^ zFfgtFVsLy}2*a1fg2(|?=CEKmlrIPlW(5WFgV^FQ zE;~dJJjIphj0B=Xu_@hZQuibmdMj5LV!#jrH$>yOW~vI-r{V-|OvUv;NQf=#TqYM- zE<;eY&UWl$OVumS#h5|;0j3Hw;96iJ)i z3nKy^q=I1jBwzJ^V+fK)fwqGAPXSFGkyUA1zHSF{^SYrh9oa<&vRwjB2)9ru_CpeJ zP_*gRH~so|R8YuzH^wAaNORbK)gN=eFZdLh5;Q^!byLBb2<2$v^ zvIsNqSpG}R_`bAb&OdtOJy}}H?|!(lbhy*iw>NZt2M@25-k~mQ*pqzV(}c9X#uTfB z*Jj-vS?Tt5%VIFi0jK*tWJ|Y2TPo_CM?$Ilp9SZ~ot#s1ZR7yWwI=}V_tKXP9HzN; zD#y%ndy(|-Ucm0@ZxL)EYgy5@+cO@+FHh$$>Wt&eBHEX{Mdhc&GUj2O%kgm$x_^05Wf4-nOWk#N_WR%&o<7BM*oA9Sf9PLT+kZw9Di>D;C*}PE9z>j= literal 0 HcmV?d00001 diff --git a/OsmAnd/res/drawable-xxhdpi/ic_action_track_16.png b/OsmAnd/res/drawable-xxhdpi/ic_action_track_16.png new file mode 100644 index 0000000000000000000000000000000000000000..62e745ead437794832a8df92a4c54fa470e733fd GIT binary patch literal 1601 zcmbVMdrT8|9B&bH7MZMyMor0Cbz>XXd-cJUR_TLBkupMyt)SbkcSoskcir`n!cZ#_ z9WIXf*c3Mdi-1!$&5Rm{%ngkuB2HYU!%a3bXT(K8T$~Y5cSY*nNa0(x&^mAM^AE$iU{+lf{b58OC*LxK|ev3(gNV2y*}2c96a`|67W$* zrAuRn?S2bg;>)VyX-8GAldLKwaZ0&pAz%pVMF9*g5I~SAV*~o2Q8^}8FP_6>NC}Lw z2&G2l6QkVrJix;7G@wywK@!1GK!>Xk4UVR$lK~V)v=FR@5FA7>z4)qOVEj>v+IXs1 zpKr|=*CpPJ$`V2F>mjJ3qC!=HsW{#%VsRXTQ3yprkpm1=vH}qV*}%Mr1S=gNd7oeK zaV!v)NO-t%!Kf51ec}S+x7(izW&`7a5<>l}g zUk#_~iRV_D_pPL<44z|vu~_SU&#*&F>JTk~U?8qjqoA4;-N!wo4%A_k1|e`QOu>k9 z98dk<7(${^P`F_JQ$P`tSe4=9({>OqPaBG6#V+E-cIo?Z;I>2(wcKVkIfFmnYB-;L zGA;h}98=7f!_gc2)2FWZE|H(M;^NHsPTkN|OTWo9)mU{`8a*}9DoY%#kT)+WOs_9= zevvd3n@hNJw8v~)6VN-mf1$i*=5KwlrS5t=JFuw8HPBczBTXEk_JqzCk4nMc*B?3e zO5$2qh6R;=uvp9~+Q|k>x75ER4SN4-P%Miri< zP0VYzng-S?;NMztrmbi8-k3c3_Z@2vs`C6a%aq8^@wR_ElHF8JHoJpxQ2kx)wKA)L0moeF1f7tGsw(U@| z%4Ay{eQNp-Gp0N8vx@R^ZpQjzvkPBt{qRWBjxFZl8c$Y&Jf_9e_g;HW-lNd_M19R$ z2YM#gwP1TrYEt7fJI@oVFMiH^l(e$zben8-^?>cubIS`p?rj)tTED&9TUfFYY;7>t z9a@muXMEI#bVy}QjY&P)uMop5@4H5sf;o3XJ{*tCZQj~g;4Hd((ADKGXiPl2{ib8v zPyA?foPWySou4(G=&F}rc6B9(!h^b<8Inpo( Date: Thu, 29 Jun 2017 15:44:34 +0000 Subject: [PATCH 21/25] Translated using Weblate (Chinese (Traditional)) Currently translated at 98.5% (3057 of 3102 strings) --- OsmAnd/res/values-zh-rTW/phrases.xml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/OsmAnd/res/values-zh-rTW/phrases.xml b/OsmAnd/res/values-zh-rTW/phrases.xml index 4f4bc03e80..e749d1eb61 100644 --- a/OsmAnd/res/values-zh-rTW/phrases.xml +++ b/OsmAnd/res/values-zh-rTW/phrases.xml @@ -3369,4 +3369,16 @@ 派對用品 電器產品店 鎖匠店 + 照明燈具 + 樂透彩票 + 賭博場地 + + 樂透 + 小鋼珠 + 吃角子老虎 + 投注 + 賓果 + + 鐵路機車 + From 059c618050e81eb4a84d00b71f11bd34c7673387 Mon Sep 17 00:00:00 2001 From: Franco Date: Thu, 29 Jun 2017 17:29:40 +0000 Subject: [PATCH 22/25] Translated using Weblate (Spanish (Argentina)) Currently translated at 100.0% (2349 of 2349 strings) --- OsmAnd/res/values-es-rAR/strings.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-es-rAR/strings.xml b/OsmAnd/res/values-es-rAR/strings.xml index c44a3f9b3b..e63330aa25 100644 --- a/OsmAnd/res/values-es-rAR/strings.xml +++ b/OsmAnd/res/values-es-rAR/strings.xml @@ -2821,7 +2821,7 @@ Representa el área: %1$s x %2$s Buscar favoritos Reiniciar búsqueda Aumentar radio de búsqueda - Nada encontrado :( + ¡Nada por aquí! 😞 Modifica la consulta de búsqueda o aumenta el radio de búsqueda El destino se ubica en un área de acceso privado. ¿Quieres acceder en este viaje a los caminos privados? Mapillary @@ -2857,4 +2857,5 @@ Representa el área: %1$s x %2$s Recargar Recarga las teselas para ver la información actualizada. Caché de teselas + Restablecer From 109a5bd0af7d7481d6b556e360b79cbfa8ff6454 Mon Sep 17 00:00:00 2001 From: Verdulo Date: Wed, 28 Jun 2017 18:50:10 +0000 Subject: [PATCH 23/25] Translated using Weblate (Esperanto) Currently translated at 100.0% (2349 of 2349 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 3c75c469ee..12df8a4401 100644 --- a/OsmAnd/res/values-eo/strings.xml +++ b/OsmAnd/res/values-eo/strings.xml @@ -2848,4 +2848,5 @@ Indikas lokon: %1$s x %2$s" Vidi bildojn aldonitajn de iu uzanto. Uzantnomo Vi povas filtri bildojn laŭ alŝutinto aŭ laŭ dato. Filtriloj aplikiĝas nur je pligrandigo. + Reagordi From 686eec1707362b78b5b785f1d1cb9409ee5dbb74 Mon Sep 17 00:00:00 2001 From: Viktar Vauchkevich Date: Wed, 28 Jun 2017 13:34:05 +0000 Subject: [PATCH 24/25] Translated using Weblate (Belarusian) Currently translated at 100.0% (2349 of 2349 strings) --- OsmAnd/res/values-be/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/OsmAnd/res/values-be/strings.xml b/OsmAnd/res/values-be/strings.xml index 0ac21fd9c8..ba4fc79f8f 100644 --- a/OsmAnd/res/values-be/strings.xml +++ b/OsmAnd/res/values-be/strings.xml @@ -2972,4 +2972,5 @@ OsmAnd мае адкрыты зыходны код і актыўна разві Абнавіць Абнавіць фрагменты, каб убачыць актуальныя даныя. Кэш фрагментаў + Скінуць From fce2dc5b5f0a85a7a157b5b763e8151c964b382f Mon Sep 17 00:00:00 2001 From: Viktar Vauchkevich Date: Wed, 28 Jun 2017 13:34:23 +0000 Subject: [PATCH 25/25] Translated using Weblate (Belarusian (latin)) Currently translated at 100.0% (2349 of 2349 strings) --- OsmAnd/res/values-be-rBY/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/OsmAnd/res/values-be-rBY/strings.xml b/OsmAnd/res/values-be-rBY/strings.xml index 10b0f1beff..ecfe318365 100644 --- a/OsmAnd/res/values-be-rBY/strings.xml +++ b/OsmAnd/res/values-be-rBY/strings.xml @@ -2923,4 +2923,5 @@ Moduli: Abnavić Abnavić frahmienty, kab ubačyć aktuaĺnyja danyja. Keš frahmientaŭ + Skinuć