From 5c2e8fe866ea6fd20563f2f7ff6e94b3b81527d3 Mon Sep 17 00:00:00 2001 From: Skalii Date: Tue, 12 Jan 2021 02:36:46 +0200 Subject: [PATCH 001/173] Use "ic_action_street_name" for "Copy address"; Show POI Name in line (and distance) - wikipedia as well; Don't show for public transport. --- .../src/net/osmand/plus/mapcontextmenu/MenuBuilder.java | 9 ++++++--- .../plus/mapcontextmenu/builders/AmenityMenuBuilder.java | 3 ++- .../builders/TransportStopMenuBuilder.java | 1 + .../net/osmand/plus/mapcontextmenu/other/ShareMenu.java | 2 +- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MenuBuilder.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MenuBuilder.java index d11d27d34c..f6a80885b5 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MenuBuilder.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MenuBuilder.java @@ -357,9 +357,10 @@ public class MenuBuilder { } protected void buildNearestPoiRow(View view) { - buildNearestRow(view, nearestPoi, processNearestPoi(), - nearestPoi.isEmpty() ? 0 : AmenityMenuController.getRightIconId(nearestPoi.get(0)), - app.getString(R.string.speak_poi)); + if (amenity != null) { + buildNearestRow(view, nearestPoi, processNearestPoi(), AmenityMenuController.getRightIconId(amenity), + app.getString(R.string.speak_poi) + " \"" + AmenityMenuController.getTypeStr(amenity) + "\" (" + nearestPoi.size() + ")"); + } } protected void buildNearestRow(View view, List nearestAmenities, boolean process, int iconId, String text) { @@ -1164,6 +1165,8 @@ public class MenuBuilder { if (Algorithms.isBlank(name)) { name = AmenityMenuController.getTypeStr(poi); } + float dist = (float) MapUtils.getDistance(latLon, poi.getLocation()); + name += " (" + OsmAndFormatter.getFormattedDistance(dist, app) + ")"; button.setText(name); button.setOnClickListener(new View.OnClickListener() { diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/AmenityMenuBuilder.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/AmenityMenuBuilder.java index c0db653e3e..1a107eb61b 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/AmenityMenuBuilder.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/AmenityMenuBuilder.java @@ -678,7 +678,8 @@ public class AmenityMenuBuilder extends MenuBuilder { if (processNearestPoi() && nearestPoi.size() > 0) { AmenityInfoRow poiInfo = new AmenityInfoRow( - "nearest_poi", AmenityMenuController.getRightIconId(amenity), null, app.getString(R.string.speak_poi) + " (" + nearestPoi.size() + ")", true, + "nearest_poi", AmenityMenuController.getRightIconId(amenity), null, + app.getString(R.string.speak_poi) + " \"" + AmenityMenuController.getTypeStr(amenity) + "\" (" + nearestPoi.size() + ")", true, getCollapsableView(view.getContext(), true, nearestPoi), 0, false, false, false, 1000, null, false, false, false, 0); buildAmenityRow(view, poiInfo); diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/TransportStopMenuBuilder.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/TransportStopMenuBuilder.java index daf43689d2..52e370108c 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/TransportStopMenuBuilder.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/TransportStopMenuBuilder.java @@ -23,6 +23,7 @@ public class TransportStopMenuBuilder extends MenuBuilder { AmenityMenuBuilder builder = new AmenityMenuBuilder(mapActivity, amenity); builder.setLatLon(getLatLon()); builder.setLight(light); + builder.setShowNearestPoi(false); builder.buildInternal(view); } } diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/ShareMenu.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/ShareMenu.java index aba6ca8277..f688212204 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/ShareMenu.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/ShareMenu.java @@ -36,7 +36,7 @@ public class ShareMenu extends BaseMenuController { public enum ShareItem { MESSAGE(R.drawable.ic_action_message, R.string.shared_string_send), CLIPBOARD(R.drawable.ic_action_copy, R.string.shared_string_copy), - ADDRESS(R.drawable.ic_action_copy, R.string.copy_address), + ADDRESS(R.drawable.ic_action_street_name, R.string.copy_address), NAME(R.drawable.ic_action_copy, R.string.copy_location_name), COORDINATES(R.drawable.ic_action_copy, R.string.copy_coordinates), GEO(R.drawable.ic_world_globe_dark, R.string.share_geo), From c457f8859dc95621b4174aead82d5bb9af1f8194 Mon Sep 17 00:00:00 2001 From: Skalii Date: Tue, 12 Jan 2021 10:51:39 +0200 Subject: [PATCH 002/173] recovering deleted code (for show POI Name in line) after merge --- .../mapcontextmenu/builders/AmenityMenuBuilder.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/AmenityMenuBuilder.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/AmenityMenuBuilder.java index 0d097eabfb..e27bdfcc50 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/AmenityMenuBuilder.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/AmenityMenuBuilder.java @@ -684,18 +684,18 @@ public class AmenityMenuBuilder extends MenuBuilder { if (processNearestWiki() && nearestWiki.size() > 0) { AmenityInfoRow wikiInfo = new AmenityInfoRow( - "nearest_wiki", R.drawable.ic_plugin_wikipedia, null, app.getString(R.string.wiki_around) + " (" + nearestWiki.size() + ")", - null, true, - getCollapsableView(view.getContext(), true, nearestWiki), + "nearest_wiki", R.drawable.ic_plugin_wikipedia, null, + app.getString(R.string.wiki_around) + " (" + nearestWiki.size() + ")", + null, true, getCollapsableView(view.getContext(), true, nearestWiki), 0, false, false, false, 1000, null, false, false, false, 0); buildAmenityRow(view, wikiInfo); } if (processNearestPoi() && nearestPoi.size() > 0) { AmenityInfoRow poiInfo = new AmenityInfoRow( - "nearest_poi", AmenityMenuController.getRightIconId(amenity), null, app.getString(R.string.speak_poi) + " (" + nearestPoi.size() + ")", - null, true, - getCollapsableView(view.getContext(), true, nearestPoi), + "nearest_poi", AmenityMenuController.getRightIconId(amenity), null, + app.getString(R.string.speak_poi) + " \"" + AmenityMenuController.getTypeStr(amenity) + "\" (" + nearestPoi.size() + ")", + null, true, getCollapsableView(view.getContext(), true, nearestPoi), 0, false, false, false, 1000, null, false, false, false, 0); buildAmenityRow(view, poiInfo); } From 925e42546dbdbc1b3cadf1b3e755f71bcb1c9ee8 Mon Sep 17 00:00:00 2001 From: Kseniia Date: Tue, 12 Jan 2021 17:52:03 +0200 Subject: [PATCH 003/173] add condition for BuildingInterpolation.ALPHABETIC --- .../main/java/net/osmand/data/Building.java | 25 ++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/data/Building.java b/OsmAnd-java/src/main/java/net/osmand/data/Building.java index 7668d16a30..9d11828dbf 100644 --- a/OsmAnd-java/src/main/java/net/osmand/data/Building.java +++ b/OsmAnd-java/src/main/java/net/osmand/data/Building.java @@ -106,25 +106,32 @@ public class Building extends MapObject { public float interpolation(String hno) { - if(getInterpolationType() != null || getInterpolationInterval() > 0 - //|| checkNameAsInterpolation() // disable due to situation in NL #4284 - ) { + if (getInterpolationType() != null || getInterpolationInterval() > 0 + // || checkNameAsInterpolation() // disable due to situation in NL #4284 + ) { int num = Algorithms.extractFirstIntegerNumber(hno); String fname = super.getName(); int numB = Algorithms.extractFirstIntegerNumber(fname); - int numT = numB; + int numT = numB; if (num >= numB) { String sname = getName2(); - if(fname.contains("-") && sname == null){ + if (getInterpolationType() == BuildingInterpolation.ALPHABETIC) { + char ch = hno.charAt(hno.length() - 1); + char chF = fname.charAt(fname.length() - 1); + if (chF < ch) { + return -1; + } + } + if (fname.contains("-") && sname == null) { int l = fname.indexOf('-'); sname = fname.substring(l + 1, fname.length()); } if (sname != null) { numT = Algorithms.extractFirstIntegerNumber(sname); - if(numT < num) { + if (numT < num) { return -1; } - } + } if (getInterpolationType() == BuildingInterpolation.EVEN && num % 2 == 1) { return -1; } @@ -137,8 +144,8 @@ public class Building extends MapObject { } else { return -1; } - if(numT > numB){ - return ((float)num - numB) / (((float)numT - numB)); + if (numT > numB) { + return ((float) num - numB) / (((float) numT - numB)); } return 0; } From a5594a240f801ebfabddca2315a0f621a8177d85 Mon Sep 17 00:00:00 2001 From: Dima-1 Date: Tue, 12 Jan 2021 21:04:31 +0200 Subject: [PATCH 004/173] Fix open on map --- .../plus/wikivoyage/WikivoyageWebViewClient.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/wikivoyage/WikivoyageWebViewClient.java b/OsmAnd/src/net/osmand/plus/wikivoyage/WikivoyageWebViewClient.java index c2c42551e2..9433d6c854 100644 --- a/OsmAnd/src/net/osmand/plus/wikivoyage/WikivoyageWebViewClient.java +++ b/OsmAnd/src/net/osmand/plus/wikivoyage/WikivoyageWebViewClient.java @@ -12,8 +12,10 @@ import androidx.annotation.Nullable; import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentManager; +import com.jwetherell.openmap.common.MoreMath; + import net.osmand.AndroidUtils; -import net.osmand.GPXUtilities; +import net.osmand.GPXUtilities.GPXFile; import net.osmand.GPXUtilities.WptPt; import net.osmand.data.LatLon; import net.osmand.data.PointDescription; @@ -29,6 +31,7 @@ import net.osmand.plus.wikivoyage.explore.WikivoyageExploreActivity; import java.io.File; import java.util.List; +import static com.jwetherell.openmap.common.LatLonPoint.EQUIVALENT_TOLERANCE; import static net.osmand.plus.wikipedia.WikiArticleHelper.WIKIVOYAGE_DOMAIN; import static net.osmand.plus.wikipedia.WikiArticleHelper.WIKI_DOMAIN; @@ -91,15 +94,15 @@ public class WikivoyageWebViewClient extends WebViewClient { double lat; double lon; try { - lat = Double.valueOf(coordinates.substring(0, coordinates.indexOf(","))); - lon = Double.valueOf(coordinates.substring(coordinates.indexOf(",") + 1, - coordinates.length())); + lat = Double.parseDouble(coordinates.substring(0, coordinates.indexOf(","))); + lon = Double.parseDouble(coordinates.substring(coordinates.indexOf(",") + 1)); } catch (NumberFormatException e) { Log.w(TAG, e.getMessage(), e); return true; } for (WptPt point : points) { - if (point.getLatitude() == lat && point.getLongitude() == lon) { + if (MoreMath.approximately_equal(point.getLatitude(), lat, EQUIVALENT_TOLERANCE * 2) + && MoreMath.approximately_equal(point.getLongitude(), lon, EQUIVALENT_TOLERANCE * 2)) { gpxPoint = point; break; } From b57b7ef268e1d9450a765f1ad461baa62b7e2492 Mon Sep 17 00:00:00 2001 From: Kseniia Date: Wed, 13 Jan 2021 09:40:20 +0200 Subject: [PATCH 005/173] fix interpolation for alphabetic --- .../main/java/net/osmand/data/Building.java | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/data/Building.java b/OsmAnd-java/src/main/java/net/osmand/data/Building.java index 9d11828dbf..379b399fe9 100644 --- a/OsmAnd-java/src/main/java/net/osmand/data/Building.java +++ b/OsmAnd-java/src/main/java/net/osmand/data/Building.java @@ -113,15 +113,20 @@ public class Building extends MapObject { String fname = super.getName(); int numB = Algorithms.extractFirstIntegerNumber(fname); int numT = numB; - if (num >= numB) { - String sname = getName2(); - if (getInterpolationType() == BuildingInterpolation.ALPHABETIC) { - char ch = hno.charAt(hno.length() - 1); - char chF = fname.charAt(fname.length() - 1); - if (chF < ch) { - return -1; - } + String sname = getName2(); + + if (getInterpolationType() == BuildingInterpolation.ALPHABETIC && num == numB) { + char ch = hno.charAt(hno.length() - 1); + char chF = fname.charAt(fname.length() - 1); + char chS = sname.charAt(sname.length() - 1); + if (chS < chF && chF < ch) { + return -1; } + if (chS > chF && ch < chF) { + return -1; + } + } + if (num >= numB) { if (fname.contains("-") && sname == null) { int l = fname.indexOf('-'); sname = fname.substring(l + 1, fname.length()); From 469e2e6ee7b0d672cfcba1f0e19fa6e39055881f Mon Sep 17 00:00:00 2001 From: Dima-1 Date: Wed, 13 Jan 2021 10:18:41 +0200 Subject: [PATCH 006/173] Fix open on map --- .../src/net/osmand/plus/wikivoyage/WikivoyageWebViewClient.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/src/net/osmand/plus/wikivoyage/WikivoyageWebViewClient.java b/OsmAnd/src/net/osmand/plus/wikivoyage/WikivoyageWebViewClient.java index 9433d6c854..f9f3016725 100644 --- a/OsmAnd/src/net/osmand/plus/wikivoyage/WikivoyageWebViewClient.java +++ b/OsmAnd/src/net/osmand/plus/wikivoyage/WikivoyageWebViewClient.java @@ -122,7 +122,7 @@ public class WikivoyageWebViewClient extends WebViewClient { fragmentManager.popBackStackImmediate(); File path = app.getTravelHelper().createGpxFile(article); - GPXUtilities.GPXFile gpxFile = article.getGpxFile(); + GPXFile gpxFile = article.getGpxFile(); gpxFile.path = path.getAbsolutePath(); app.getSelectedGpxHelper().setGpxFileToDisplay(gpxFile); MapActivity.launchMapActivityMoveToTop(activity); From b4264077c47af4c8beb2b1493b7c09be6b46a129 Mon Sep 17 00:00:00 2001 From: Dima-1 Date: Wed, 13 Jan 2021 10:34:50 +0200 Subject: [PATCH 007/173] Fix open on map npe --- .../src/net/osmand/plus/wikivoyage/WikivoyageWebViewClient.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/src/net/osmand/plus/wikivoyage/WikivoyageWebViewClient.java b/OsmAnd/src/net/osmand/plus/wikivoyage/WikivoyageWebViewClient.java index f9f3016725..beafb51ec4 100644 --- a/OsmAnd/src/net/osmand/plus/wikivoyage/WikivoyageWebViewClient.java +++ b/OsmAnd/src/net/osmand/plus/wikivoyage/WikivoyageWebViewClient.java @@ -87,7 +87,7 @@ public class WikivoyageWebViewClient extends WebViewClient { } else if (isWebPage) { WikiArticleHelper.warnAboutExternalLoad(url, activity, nightMode); } else if (url.startsWith(PREFIX_GEO)) { - if (article != null) { + if (article != null && article.getGpxFile() != null) { List points = article.getGpxFile().getPoints(); WptPt gpxPoint = null; String coordinates = url.replace(PREFIX_GEO, ""); From f2dce5a073f4ad4c83e134712516f411566b913f Mon Sep 17 00:00:00 2001 From: Skalii Date: Wed, 13 Jan 2021 11:01:51 +0200 Subject: [PATCH 008/173] "Show on map" as last button - wikipedia as well, show on map open map UI + search bar with category name (already implemented) / Hide POI (if already visible) --- .../plus/mapcontextmenu/MenuBuilder.java | 73 ++++++++++++++++--- .../builders/AmenityMenuBuilder.java | 8 +- .../builders/FavouritePointMenuBuilder.java | 4 +- 3 files changed, 69 insertions(+), 16 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MenuBuilder.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MenuBuilder.java index f6a80885b5..64f2e0668d 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MenuBuilder.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MenuBuilder.java @@ -66,8 +66,10 @@ import net.osmand.plus.openplacereviews.AddPhotosBottomSheetDialogFragment; import net.osmand.plus.openplacereviews.OPRConstants; import net.osmand.plus.openplacereviews.OprStartFragment; import net.osmand.plus.osmedit.opr.OpenDBAPI; +import net.osmand.plus.poi.PoiFiltersHelper; import net.osmand.plus.poi.PoiUIFilter; import net.osmand.plus.render.RenderingIcons; +import net.osmand.plus.search.QuickSearchDialogFragment.QuickSearchToolbarController; import net.osmand.plus.transport.TransportStopRoute; import net.osmand.plus.views.layers.POIMapLayer; import net.osmand.plus.views.layers.TransportStopsLayer; @@ -117,6 +119,9 @@ public class MenuBuilder { private boolean showOnlinePhotos = true; protected List nearestWiki = new ArrayList<>(); protected List nearestPoi = new ArrayList<>(); + protected final String keyWiki = "nearest_wiki"; + protected final String keyPoi = "nearest_poi"; + private PoiUIFilter poiFilter; private List menuPlugins = new ArrayList<>(); @Nullable private CardsRowBuilder onlinePhotoCardsRow; @@ -353,20 +358,20 @@ public class MenuBuilder { protected void buildNearestWikiRow(View view) { buildNearestRow(view, nearestWiki, processNearestWiki(), - R.drawable.ic_action_wikipedia, app.getString(R.string.wiki_around)); + R.drawable.ic_action_wikipedia, app.getString(R.string.wiki_around), keyWiki); } protected void buildNearestPoiRow(View view) { if (amenity != null) { buildNearestRow(view, nearestPoi, processNearestPoi(), AmenityMenuController.getRightIconId(amenity), - app.getString(R.string.speak_poi) + " \"" + AmenityMenuController.getTypeStr(amenity) + "\" (" + nearestPoi.size() + ")"); + app.getString(R.string.speak_poi) + " \"" + AmenityMenuController.getTypeStr(amenity) + "\" (" + nearestPoi.size() + ")", keyPoi); } } - protected void buildNearestRow(View view, List nearestAmenities, boolean process, int iconId, String text) { + protected void buildNearestRow(View view, List nearestAmenities, boolean process, int iconId, String text, String amenityKey) { if (process && nearestAmenities.size() > 0) { buildRow(view, iconId, null, text + " (" + nearestAmenities.size() + ")", 0, true, - getCollapsableView(view.getContext(), true, nearestAmenities), false, 0, false, null, false); + getCollapsableView(view.getContext(), true, nearestAmenities, amenityKey), false, 0, false, null, false); } } @@ -1156,7 +1161,7 @@ public class MenuBuilder { return new CollapsableView(textView, this, collapsed); } - protected CollapsableView getCollapsableView(Context context, boolean collapsed, List nearestAmenities) { + protected CollapsableView getCollapsableView(Context context, boolean collapsed, List nearestAmenities, final String amenityKey) { LinearLayout view = (LinearLayout) buildCollapsableContentView(context, collapsed, true); for (final Amenity poi : nearestAmenities) { @@ -1180,6 +1185,54 @@ public class MenuBuilder { view.addView(button); } + final PoiUIFilter filter; + if (amenityKey.equals(keyPoi)) { + filter = poiFilter; + } else if (amenityKey.equals(keyWiki)) { + filter = app.getPoiFilters().getTopWikiPoiFilter(); + } else { + filter = null; + } + if (filter != null) { + TextViewEx buttonShowAll = buildButtonInCollapsableView(context, false, false); + buttonShowAll.setText(app.getString(R.string.shared_string_show_on_map)); + buttonShowAll.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + final PoiFiltersHelper ph = app.getPoiFilters(); + ph.clearSelectedPoiFilters(); + ph.addSelectedPoiFilter(filter); + final QuickSearchToolbarController controller = new QuickSearchToolbarController(); + controller.setTitle(filter.getName()); + controller.setOnBackButtonClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + mapActivity.showQuickSearch(filter); + } + }); + controller.setOnTitleClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + mapActivity.showQuickSearch(filter); + } + }); + controller.setOnCloseButtonClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + ph.clearSelectedPoiFilters(); + mapActivity.hideTopToolbar(controller); + mapActivity.refreshMap(); + } + }); + mapContextMenu.hideMenues(); + mapActivity.showTopToolbar(controller); + mapActivity.refreshMap(); + } + }); + + view.addView(buttonShowAll); + } + return new CollapsableView(view, this, collapsed); } @@ -1248,9 +1301,9 @@ public class MenuBuilder { if (showNearestPoi && latLon != null && amenity != null) { PoiCategory pc = amenity.getType(); PoiType pt = pc.getPoiTypeByKeyName(amenity.getSubType()); - PoiUIFilter filter = app.getPoiFilters().getFilterById(PoiUIFilter.STD_PREFIX + pt.getKeyName()); - if (filter != null) { - nearestPoi = getSortedAmenities(filter, latLon); + poiFilter = app.getPoiFilters().getFilterById(PoiUIFilter.STD_PREFIX + pt.getKeyName()); + if (poiFilter != null) { + nearestPoi = getSortedAmenities(poiFilter, latLon); return true; } } @@ -1276,8 +1329,8 @@ public class MenuBuilder { return nearestAmenities; } - private List getAmenities(QuadRect rect, PoiUIFilter wikiPoiFilter) { - return wikiPoiFilter.searchAmenities(rect.top, rect.left, + private List getAmenities(QuadRect rect, PoiUIFilter filter) { + return filter.searchAmenities(rect.top, rect.left, rect.bottom, rect.right, -1, null); } diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/AmenityMenuBuilder.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/AmenityMenuBuilder.java index e27bdfcc50..8b0d02546a 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/AmenityMenuBuilder.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/AmenityMenuBuilder.java @@ -684,18 +684,18 @@ public class AmenityMenuBuilder extends MenuBuilder { if (processNearestWiki() && nearestWiki.size() > 0) { AmenityInfoRow wikiInfo = new AmenityInfoRow( - "nearest_wiki", R.drawable.ic_plugin_wikipedia, null, + keyWiki, R.drawable.ic_plugin_wikipedia, null, app.getString(R.string.wiki_around) + " (" + nearestWiki.size() + ")", - null, true, getCollapsableView(view.getContext(), true, nearestWiki), + null, true, getCollapsableView(view.getContext(), true, nearestWiki, keyWiki), 0, false, false, false, 1000, null, false, false, false, 0); buildAmenityRow(view, wikiInfo); } if (processNearestPoi() && nearestPoi.size() > 0) { AmenityInfoRow poiInfo = new AmenityInfoRow( - "nearest_poi", AmenityMenuController.getRightIconId(amenity), null, + keyPoi, AmenityMenuController.getRightIconId(amenity), null, app.getString(R.string.speak_poi) + " \"" + AmenityMenuController.getTypeStr(amenity) + "\" (" + nearestPoi.size() + ")", - null, true, getCollapsableView(view.getContext(), true, nearestPoi), + null, true, getCollapsableView(view.getContext(), true, nearestPoi, keyPoi), 0, false, false, false, 1000, null, false, false, false, 0); buildAmenityRow(view, poiInfo); } diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/FavouritePointMenuBuilder.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/FavouritePointMenuBuilder.java index 03110c8b32..ca404569b1 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/FavouritePointMenuBuilder.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/FavouritePointMenuBuilder.java @@ -59,9 +59,9 @@ public class FavouritePointMenuBuilder extends MenuBuilder { } @Override - protected void buildNearestRow(View view, List nearestAmenities, boolean process, int iconId, String text) { + protected void buildNearestRow(View view, List nearestAmenities, boolean process, int iconId, String text, String amenityKey) { if (originObject == null || !(originObject instanceof Amenity)) { - super.buildNearestRow(view, nearestAmenities, process, iconId, text); + super.buildNearestRow(view, nearestAmenities, process, iconId, text, amenityKey); } } From 847f99fbd52be54f6dc4d6579aeafeb2bedc8758 Mon Sep 17 00:00:00 2001 From: Skalii Date: Wed, 13 Jan 2021 16:07:28 +0200 Subject: [PATCH 009/173] "URL with all parameters will ..." is now above url --- .../osmand/plus/onlinerouting/OnlineRoutingEngineFragment.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/src/net/osmand/plus/onlinerouting/OnlineRoutingEngineFragment.java b/OsmAnd/src/net/osmand/plus/onlinerouting/OnlineRoutingEngineFragment.java index 59df4ef698..e6ca05991b 100644 --- a/OsmAnd/src/net/osmand/plus/onlinerouting/OnlineRoutingEngineFragment.java +++ b/OsmAnd/src/net/osmand/plus/onlinerouting/OnlineRoutingEngineFragment.java @@ -284,7 +284,7 @@ public class OnlineRoutingEngineFragment extends BaseOsmAndFragment { return false; } }); - exampleCard.setFieldBoxHelperText(getString(R.string.online_routing_example_hint)); + exampleCard.setFieldBoxLabelText(getString(R.string.online_routing_example_hint)); exampleCard.setButton(getString(R.string.test_route_calculation), new View.OnClickListener() { @Override public void onClick(View v) { From 5a8a39ecf51bc8e93f70b385b296e0b8af051e1f Mon Sep 17 00:00:00 2001 From: Skalii Date: Wed, 13 Jan 2021 16:59:50 +0200 Subject: [PATCH 010/173] fix previous; "Vehicle" block, descrease padding below scroll buttons --- .../net/osmand/plus/onlinerouting/OnlineRoutingCard.java | 6 ++++++ .../plus/onlinerouting/OnlineRoutingEngineFragment.java | 4 +++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/OsmAnd/src/net/osmand/plus/onlinerouting/OnlineRoutingCard.java b/OsmAnd/src/net/osmand/plus/onlinerouting/OnlineRoutingCard.java index 1b9e7f3b29..6c49386c47 100644 --- a/OsmAnd/src/net/osmand/plus/onlinerouting/OnlineRoutingCard.java +++ b/OsmAnd/src/net/osmand/plus/onlinerouting/OnlineRoutingCard.java @@ -5,6 +5,7 @@ import android.text.TextWatcher; import android.view.View; import android.view.View.OnClickListener; import android.view.View.OnFocusChangeListener; +import android.view.ViewGroup; import android.widget.EditText; import android.widget.TextView; @@ -127,6 +128,11 @@ public class OnlineRoutingCard extends BaseCard { rvSelectionMenu.setAdapter(adapter); } + public void removeBottomMarginSelectionMenu() { + ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) rvSelectionMenu.getLayoutParams(); + params.bottomMargin = 0; + } + public void setDescription(@NonNull String description) { showElements(tvDescription); tvDescription.setText(description); diff --git a/OsmAnd/src/net/osmand/plus/onlinerouting/OnlineRoutingEngineFragment.java b/OsmAnd/src/net/osmand/plus/onlinerouting/OnlineRoutingEngineFragment.java index e6ca05991b..b70fcc89a3 100644 --- a/OsmAnd/src/net/osmand/plus/onlinerouting/OnlineRoutingEngineFragment.java +++ b/OsmAnd/src/net/osmand/plus/onlinerouting/OnlineRoutingEngineFragment.java @@ -230,6 +230,7 @@ public class OnlineRoutingEngineFragment extends BaseOsmAndFragment { return false; } }); + vehicleCard.removeBottomMarginSelectionMenu(); vehicleCard.setFieldBoxLabelText(getString(R.string.shared_string_custom)); vehicleCard.setOnTextChangedListener(new OnTextChangedListener() { @Override @@ -284,7 +285,8 @@ public class OnlineRoutingEngineFragment extends BaseOsmAndFragment { return false; } }); - exampleCard.setFieldBoxLabelText(getString(R.string.online_routing_example_hint)); + exampleCard.setDescription(getString(R.string.online_routing_example_hint)); + exampleCard.showFieldBox(); exampleCard.setButton(getString(R.string.test_route_calculation), new View.OnClickListener() { @Override public void onClick(View v) { From f81673d047b496bb651c84ec6621f338edfb58bc Mon Sep 17 00:00:00 2001 From: androiddevkotlin <64539346+androiddevkotlin@users.noreply.github.com> Date: Wed, 13 Jan 2021 17:11:46 +0200 Subject: [PATCH 011/173] My Place: GPX Context menu --- .../net/osmand/plus/activities/MapActivity.java | 6 ++++++ .../net/osmand/plus/track/TrackMenuFragment.java | 16 +++++++++++++++- .../plus/views/layers/ContextMenuLayer.java | 5 +++++ .../plus/views/layers/MapControlsLayer.java | 16 ++++++++++------ 4 files changed, 36 insertions(+), 7 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java index e41792225b..be0d93dd8d 100644 --- a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java +++ b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java @@ -140,6 +140,7 @@ import net.osmand.plus.settings.fragments.BaseSettingsFragment.SettingsScreenTyp import net.osmand.plus.settings.fragments.ConfigureProfileFragment; import net.osmand.plus.settings.fragments.DataStorageFragment; import net.osmand.plus.track.TrackAppearanceFragment; +import net.osmand.plus.track.TrackMenuFragment; import net.osmand.plus.views.AddGpxPointBottomSheetHelper.NewGpxPoint; import net.osmand.plus.views.AnimateDraggingMapThread; import net.osmand.plus.views.OsmAndMapLayersView; @@ -2222,6 +2223,11 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven return getFragment(SnapTrackWarningFragment.TAG); } + @NonNull + public TrackMenuFragment getTrackMenuFragment() { + return getFragment(TrackMenuFragment.TAG); + } + public void backToConfigureProfileFragment() { FragmentManager fragmentManager = getSupportFragmentManager(); int backStackEntryCount = fragmentManager.getBackStackEntryCount(); diff --git a/OsmAnd/src/net/osmand/plus/track/TrackMenuFragment.java b/OsmAnd/src/net/osmand/plus/track/TrackMenuFragment.java index 595c456858..2896eb48cd 100644 --- a/OsmAnd/src/net/osmand/plus/track/TrackMenuFragment.java +++ b/OsmAnd/src/net/osmand/plus/track/TrackMenuFragment.java @@ -58,6 +58,7 @@ import net.osmand.plus.myplaces.TrackActivityFragmentAdapter; import net.osmand.plus.routepreparationmenu.cards.BaseCard; import net.osmand.plus.routepreparationmenu.cards.BaseCard.CardListener; import net.osmand.plus.track.SaveGpxAsyncTask.SaveGpxListener; +import net.osmand.plus.views.layers.MapControlsLayer; import net.osmand.plus.widgets.IconPopupMenu; import net.osmand.util.Algorithms; @@ -84,6 +85,7 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card private BottomNavigationView bottomNav; private TrackMenuType menuType = TrackMenuType.TRACK; private SegmentsCard segmentsCard; + private MapControlsLayer.MapHudButton layersHud; private int menuTitleHeight; @@ -170,6 +172,7 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = super.onCreateView(inflater, container, savedInstanceState); if (view != null) { + view.setOnLongClickListener(closeOnLongTap); bottomNav = view.findViewById(R.id.bottom_navigation); routeMenuTopShadowAll = view.findViewById(R.id.route_menu_top_shadow_all); TextView title = view.findViewById(R.id.title); @@ -179,6 +182,7 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card if (isPortrait()) { updateCardsLayout(); } + setupCards(); setupButtons(view); enterTrackAppearanceMode(); @@ -187,6 +191,15 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card return view; } + private View.OnLongClickListener closeOnLongTap = new View.OnLongClickListener() { + + @Override + public boolean onLongClick(View view) { + dismiss(); + return true; + } + }; + private void setupCards() { MapActivity mapActivity = getMapActivity(); if (mapActivity != null) { @@ -237,6 +250,7 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card public void onDestroyView() { super.onDestroyView(); exitTrackAppearanceMode(); + updateStatusBarColor(); } private void enterTrackAppearanceMode() { @@ -550,7 +564,7 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card @Override public void gpxSavingFinished(Exception errorMessage) { if (selectedGpxFile != null) { - List groups = displayHelper.getDisplayGroups(new GpxDisplayItemType[] {GpxDisplayItemType.TRACK_SEGMENT}); + List groups = displayHelper.getDisplayGroups(new GpxDisplayItemType[]{GpxDisplayItemType.TRACK_SEGMENT}); if (groups != null) { selectedGpxFile.setDisplayGroups(groups, app); selectedGpxFile.processPoints(app); diff --git a/OsmAnd/src/net/osmand/plus/views/layers/ContextMenuLayer.java b/OsmAnd/src/net/osmand/plus/views/layers/ContextMenuLayer.java index cc017d23ac..8236ac5651 100644 --- a/OsmAnd/src/net/osmand/plus/views/layers/ContextMenuLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/layers/ContextMenuLayer.java @@ -805,6 +805,7 @@ public class ContextMenuLayer extends OsmandMapLayer { return true; } else if (selectedObjects.size() > 1) { + hideVisibleMenues(); selectedObjectContextMenuProvider = null; showContextMenuForSelectedObjects(pointLatLon, selectedObjects); return true; @@ -1036,6 +1037,10 @@ public class ContextMenuLayer extends OsmandMapLayer { } private boolean hideVisibleMenues() { + if (activity.getTrackMenuFragment() != null) { + activity.getTrackMenuFragment().dismiss(); + return true; + } if (multiSelectionMenu.isVisible()) { multiSelectionMenu.hide(); return true; diff --git a/OsmAnd/src/net/osmand/plus/views/layers/MapControlsLayer.java b/OsmAnd/src/net/osmand/plus/views/layers/MapControlsLayer.java index b2697cecf2..a200d786fb 100644 --- a/OsmAnd/src/net/osmand/plus/views/layers/MapControlsLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/layers/MapControlsLayer.java @@ -44,10 +44,6 @@ import net.osmand.plus.OsmAndLocationProvider; import net.osmand.plus.OsmAndLocationSimulation; import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandPlugin; -import net.osmand.plus.settings.backend.OsmandPreference; -import net.osmand.plus.settings.backend.OsmandSettings; -import net.osmand.plus.settings.backend.CommonPreference; -import net.osmand.plus.rastermaps.LayerTransparencySeekbarMode; import net.osmand.plus.R; import net.osmand.plus.TargetPointsHelper; import net.osmand.plus.TargetPointsHelper.TargetPoint; @@ -60,13 +56,17 @@ import net.osmand.plus.dialogs.DirectionsDialogs; import net.osmand.plus.helpers.AndroidUiHelper; import net.osmand.plus.mapcontextmenu.MapContextMenu; import net.osmand.plus.mapcontextmenu.controllers.SelectedGpxMenuController.SelectedGpxPoint; +import net.osmand.plus.rastermaps.LayerTransparencySeekbarMode; import net.osmand.plus.rastermaps.OsmandRasterMapsPlugin; import net.osmand.plus.routepreparationmenu.MapRouteInfoMenu; import net.osmand.plus.routepreparationmenu.MapRouteInfoMenu.PointType; import net.osmand.plus.routing.RoutingHelper; import net.osmand.plus.search.QuickSearchDialogFragment.QuickSearchType; import net.osmand.plus.settings.backend.ApplicationMode; +import net.osmand.plus.settings.backend.CommonPreference; import net.osmand.plus.settings.backend.OsmAndAppCustomization; +import net.osmand.plus.settings.backend.OsmandPreference; +import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.plus.views.OsmandMapLayer; import net.osmand.plus.views.OsmandMapTileView; import net.osmand.plus.views.corenative.NativeCoreContext; @@ -859,6 +859,10 @@ public class MapControlsLayer extends OsmandMapLayer { } boolean routeFollowingMode = !routePlanningMode && rh.isFollowingMode(); boolean trackDialogOpened = mapActivity.getTrackDetailsMenu().isVisible(); + boolean trackMenuFragmentOpened = false; + if (mapActivity.getTrackMenuFragment() != null && mapActivity.getTrackMenuFragment().isVisible()) { + trackMenuFragmentOpened = true; + } boolean contextMenuOpened = !mapActivity.getContextMenu().shouldShowTopControls(); boolean showRouteCalculationControls = routePlanningMode || ((app.accessibilityEnabled() || (System.currentTimeMillis() - touchEvent < TIMEOUT_TO_SHOW_BUTTONS)) && routeFollowingMode); @@ -881,7 +885,7 @@ public class MapControlsLayer extends OsmandMapLayer { mapZoomIn.updateVisibility(showZoomButtons); mapZoomOut.updateVisibility(showZoomButtons); - boolean forceHideCompass = routeDialogOpened || trackDialogOpened || isInMeasurementToolMode() + boolean forceHideCompass = routeDialogOpened || trackDialogOpened || trackMenuFragmentOpened || isInMeasurementToolMode() || isInPlanRouteMode() || contextMenuOpened || isInChoosingRoutesMode() || isInTrackAppearanceMode() || isInWaypointsChoosingMode() || isInFollowTrackMode(); compassHud.forceHideCompass = forceHideCompass; @@ -892,7 +896,7 @@ public class MapControlsLayer extends OsmandMapLayer { if (layersHud.setIconResId(appMode.getIconRes())) { layersHud.update(app, isNight); } - boolean showTopButtons = !routeDialogOpened && !trackDialogOpened && !contextMenuOpened + boolean showTopButtons = !routeDialogOpened && !trackDialogOpened && !trackMenuFragmentOpened && !contextMenuOpened && !isInMeasurementToolMode() && !isInPlanRouteMode() && !isInChoosingRoutesMode() && !isInTrackAppearanceMode() && !isInWaypointsChoosingMode() && !isInFollowTrackMode(); layersHud.updateVisibility(showTopButtons); From c4707e415be148985a27115a18d0ce7358cf550e Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Thu, 14 Jan 2021 10:31:04 +0200 Subject: [PATCH 012/173] Gpx options initial commit --- .../bottom_sheet_item_with_switch_pad_32.xml | 45 +++ ...ments_container.xml => card_container.xml} | 0 OsmAnd/res/layout/track_menu.xml | 10 +- .../res/menu/track_menu_bottom_navigation.xml | 8 +- OsmAnd/res/values/strings.xml | 5 + OsmAnd/src/net/osmand/FileUtils.java | 3 +- OsmAnd/src/net/osmand/plus/GPXDatabase.java | 5 +- OsmAnd/src/net/osmand/plus/GpxDbHelper.java | 5 +- .../net/osmand/plus/GpxSelectionHelper.java | 4 + .../SelectedGpxMenuController.java | 4 +- .../plus/myplaces/GPXItemPagerAdapter.java | 8 +- .../plus/myplaces/SegmentActionsListener.java | 2 +- .../plus/myplaces/TrackSegmentFragment.java | 2 +- .../osmand/plus/osmedit/OsmEditingPlugin.java | 2 +- .../net/osmand/plus/track/OptionsCard.java | 356 ++++++++++++++++++ .../net/osmand/plus/track/SegmentsCard.java | 2 +- .../osmand/plus/track/TrackDisplayHelper.java | 30 +- .../osmand/plus/track/TrackMenuFragment.java | 273 ++++++++++++-- 18 files changed, 696 insertions(+), 68 deletions(-) create mode 100644 OsmAnd/res/layout/bottom_sheet_item_with_switch_pad_32.xml rename OsmAnd/res/layout/{track_segments_container.xml => card_container.xml} (100%) create mode 100644 OsmAnd/src/net/osmand/plus/track/OptionsCard.java diff --git a/OsmAnd/res/layout/bottom_sheet_item_with_switch_pad_32.xml b/OsmAnd/res/layout/bottom_sheet_item_with_switch_pad_32.xml new file mode 100644 index 0000000000..4658df14df --- /dev/null +++ b/OsmAnd/res/layout/bottom_sheet_item_with_switch_pad_32.xml @@ -0,0 +1,45 @@ + + + + + + + + + + diff --git a/OsmAnd/res/layout/track_segments_container.xml b/OsmAnd/res/layout/card_container.xml similarity index 100% rename from OsmAnd/res/layout/track_segments_container.xml rename to OsmAnd/res/layout/card_container.xml diff --git a/OsmAnd/res/layout/track_menu.xml b/OsmAnd/res/layout/track_menu.xml index 598372776f..9d33f73e88 100644 --- a/OsmAnd/res/layout/track_menu.xml +++ b/OsmAnd/res/layout/track_menu.xml @@ -54,11 +54,15 @@ android:layout_weight="1" android:orientation="vertical"> - - - - - + \ No newline at end of file diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index e390145312..80ed944fcf 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -12,6 +12,11 @@ --> + Change folder + Rename track + Edit track + Upload to OpenStreetMap + Analyze by intervals (split interval) Empty Select folder or add new one Select folder diff --git a/OsmAnd/src/net/osmand/FileUtils.java b/OsmAnd/src/net/osmand/FileUtils.java index fed5346212..580450df60 100644 --- a/OsmAnd/src/net/osmand/FileUtils.java +++ b/OsmAnd/src/net/osmand/FileUtils.java @@ -8,8 +8,6 @@ import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentManager; -import net.osmand.GPXUtilities.GPXFile; -import net.osmand.GPXUtilities.Metadata; import net.osmand.plus.GpxSelectionHelper; import net.osmand.plus.GpxSelectionHelper.SelectedGpxFile; import net.osmand.plus.OsmandApplication; @@ -107,6 +105,7 @@ public class FileUtils { SelectedGpxFile selected = helper.getSelectedFileByPath(src.getAbsolutePath()); app.getGpxDbHelper().rename(src, dest); if (selected != null && selected.getGpxFile() != null) { + selected.resetSplitProcessed(); selected.getGpxFile().path = dest.getAbsolutePath(); helper.updateSelectedGpxFile(selected); } diff --git a/OsmAnd/src/net/osmand/plus/GPXDatabase.java b/OsmAnd/src/net/osmand/plus/GPXDatabase.java index c010b2964e..74dc02be9c 100644 --- a/OsmAnd/src/net/osmand/plus/GPXDatabase.java +++ b/OsmAnd/src/net/osmand/plus/GPXDatabase.java @@ -465,7 +465,7 @@ public class GPXDatabase { return false; } - public boolean rename(File currentFile, File newFile) { + public boolean rename(@Nullable GpxDataItem item, File currentFile, File newFile) { SQLiteConnection db = openConnection(false); if (db != null){ try { @@ -478,6 +478,9 @@ public class GPXDatabase { GPX_COL_DIR + " = ? " + " WHERE " + GPX_COL_NAME + " = ? AND " + GPX_COL_DIR + " = ?", new Object[] { newFileName, newFileDir, fileName, fileDir }); + if (item != null) { + item.file = newFile; + } } finally { db.close(); } diff --git a/OsmAnd/src/net/osmand/plus/GpxDbHelper.java b/OsmAnd/src/net/osmand/plus/GpxDbHelper.java index d5e05e8db3..c27c74f636 100644 --- a/OsmAnd/src/net/osmand/plus/GpxDbHelper.java +++ b/OsmAnd/src/net/osmand/plus/GpxDbHelper.java @@ -68,9 +68,8 @@ public class GpxDbHelper { } public boolean rename(File currentFile, File newFile) { - boolean res = db.rename(currentFile, newFile); - itemsCache.remove(currentFile); - return res; + GpxDataItem item = itemsCache.get(currentFile); + return db.rename(item, currentFile, newFile); } public boolean updateColor(GpxDataItem item, int color) { diff --git a/OsmAnd/src/net/osmand/plus/GpxSelectionHelper.java b/OsmAnd/src/net/osmand/plus/GpxSelectionHelper.java index cb1ad6b79d..879dad90d1 100644 --- a/OsmAnd/src/net/osmand/plus/GpxSelectionHelper.java +++ b/OsmAnd/src/net/osmand/plus/GpxSelectionHelper.java @@ -861,6 +861,10 @@ public class GpxSelectionHelper { return color; } + public void resetSplitProcessed() { + splitProcessed = false; + } + public List getDisplayGroups(OsmandApplication app) { if (modifiedTime != gpxFile.modifiedTime || !splitProcessed) { update(app); diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/SelectedGpxMenuController.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/SelectedGpxMenuController.java index af83eff49a..065015c88f 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/SelectedGpxMenuController.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/SelectedGpxMenuController.java @@ -77,7 +77,7 @@ public class SelectedGpxMenuController extends MenuController { rightTitleButtonController.startIconId = R.drawable.ic_action_analyze_intervals; } - private static class OpenGpxDetailsTask extends AsyncTask { + public static class OpenGpxDetailsTask extends AsyncTask { private OsmandApplication app; @@ -87,7 +87,7 @@ public class SelectedGpxMenuController extends MenuController { private ProgressDialog progressDialog; private WeakReference activityRef; - OpenGpxDetailsTask(SelectedGpxFile selectedGpxFile, WptPt selectedPoint, MapActivity mapActivity) { + public OpenGpxDetailsTask(SelectedGpxFile selectedGpxFile, WptPt selectedPoint, MapActivity mapActivity) { app = mapActivity.getMyApplication(); this.activityRef = new WeakReference<>(mapActivity); this.selectedGpxFile = selectedGpxFile; diff --git a/OsmAnd/src/net/osmand/plus/myplaces/GPXItemPagerAdapter.java b/OsmAnd/src/net/osmand/plus/myplaces/GPXItemPagerAdapter.java index 465f85b617..81d9ee9d72 100644 --- a/OsmAnd/src/net/osmand/plus/myplaces/GPXItemPagerAdapter.java +++ b/OsmAnd/src/net/osmand/plus/myplaces/GPXItemPagerAdapter.java @@ -254,6 +254,7 @@ public class GPXItemPagerAdapter extends PagerAdapter implements CustomTabProvid @Override public void onClick(View v) { if (displayHelper.setJoinSegments(!displayHelper.isJoinSegments())) { + actionsListener.updateContent(); for (int i = 0; i < getCount(); i++) { View view = getViewAtPosition(i); updateJoinGapsInfo(view, i); @@ -337,6 +338,7 @@ public class GPXItemPagerAdapter extends PagerAdapter implements CustomTabProvid @Override public void onClick(View v) { if (displayHelper.setJoinSegments(!displayHelper.isJoinSegments())) { + actionsListener.updateContent(); for (int i = 0; i < getCount(); i++) { View view = getViewAtPosition(i); updateJoinGapsInfo(view, i); @@ -461,7 +463,7 @@ public class GPXItemPagerAdapter extends PagerAdapter implements CustomTabProvid if (!chartClicked) { chartClicked = true; if (selectedWpt != null) { - actionsListener.onPointSelected(selectedWpt.lat, selectedWpt.lon); + actionsListener.onPointSelected(segment, selectedWpt.lat, selectedWpt.lon); } } } @@ -496,7 +498,7 @@ public class GPXItemPagerAdapter extends PagerAdapter implements CustomTabProvid WptPt wpt = getPoint(chart, h.getX()); selectedWpt = wpt; if (chartClicked && wpt != null) { - actionsListener.onPointSelected(wpt.lat, wpt.lon); + actionsListener.onPointSelected(segment, wpt.lat, wpt.lon); } } @@ -565,7 +567,7 @@ public class GPXItemPagerAdapter extends PagerAdapter implements CustomTabProvid chart.highlightValue(h); WptPt wpt = getPoint(chart, h.getX()); if (wpt != null) { - actionsListener.onPointSelected(wpt.lat, wpt.lon); + actionsListener.onPointSelected(segment, wpt.lat, wpt.lon); } } } diff --git a/OsmAnd/src/net/osmand/plus/myplaces/SegmentActionsListener.java b/OsmAnd/src/net/osmand/plus/myplaces/SegmentActionsListener.java index d5ebc2235f..4033dedd7a 100644 --- a/OsmAnd/src/net/osmand/plus/myplaces/SegmentActionsListener.java +++ b/OsmAnd/src/net/osmand/plus/myplaces/SegmentActionsListener.java @@ -17,7 +17,7 @@ public interface SegmentActionsListener { void scrollBy(int px); - void onPointSelected(double lat, double lon); + void onPointSelected(TrkSegment segment, double lat, double lon); void openSplitInterval(GpxDisplayItem gpxItem, TrkSegment trkSegment); diff --git a/OsmAnd/src/net/osmand/plus/myplaces/TrackSegmentFragment.java b/OsmAnd/src/net/osmand/plus/myplaces/TrackSegmentFragment.java index 4a66e09d99..c10fa883ad 100644 --- a/OsmAnd/src/net/osmand/plus/myplaces/TrackSegmentFragment.java +++ b/OsmAnd/src/net/osmand/plus/myplaces/TrackSegmentFragment.java @@ -284,7 +284,7 @@ public class TrackSegmentFragment extends OsmAndListFragment implements TrackBit } @Override - public void onPointSelected(double lat, double lon) { + public void onPointSelected(TrkSegment segment, double lat, double lon) { if (fragmentAdapter != null) { fragmentAdapter.updateSelectedPoint(lat, lon); } diff --git a/OsmAnd/src/net/osmand/plus/osmedit/OsmEditingPlugin.java b/OsmAnd/src/net/osmand/plus/osmedit/OsmEditingPlugin.java index a9a3262216..f734b1c718 100644 --- a/OsmAnd/src/net/osmand/plus/osmedit/OsmEditingPlugin.java +++ b/OsmAnd/src/net/osmand/plus/osmedit/OsmEditingPlugin.java @@ -456,7 +456,7 @@ public class OsmEditingPlugin extends OsmandPlugin { } } - public boolean sendGPXFiles(final FragmentActivity activity, AvailableGPXFragment fragment, final GpxInfo... info) { + public boolean sendGPXFiles(final FragmentActivity activity, Fragment fragment, final GpxInfo... info) { String name = settings.USER_NAME.get(); String pwd = settings.USER_PASSWORD.get(); String authToken = settings.USER_ACCESS_TOKEN.get(); diff --git a/OsmAnd/src/net/osmand/plus/track/OptionsCard.java b/OsmAnd/src/net/osmand/plus/track/OptionsCard.java new file mode 100644 index 0000000000..bd71459084 --- /dev/null +++ b/OsmAnd/src/net/osmand/plus/track/OptionsCard.java @@ -0,0 +1,356 @@ +package net.osmand.plus.track; + +import android.graphics.Typeface; +import android.graphics.drawable.Drawable; +import android.view.View; +import android.view.View.OnClickListener; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; + +import net.osmand.AndroidUtils; +import net.osmand.GPXUtilities.GPXFile; +import net.osmand.plus.OsmandPlugin; +import net.osmand.plus.R; +import net.osmand.plus.UiUtilities; +import net.osmand.plus.activities.MapActivity; +import net.osmand.plus.base.bottomsheetmenu.BaseBottomSheetItem; +import net.osmand.plus.base.bottomsheetmenu.BottomSheetItemWithCompoundButton; +import net.osmand.plus.base.bottomsheetmenu.BottomSheetItemWithDescriptionDifHeight; +import net.osmand.plus.base.bottomsheetmenu.SimpleBottomSheetItem; +import net.osmand.plus.base.bottomsheetmenu.simpleitems.DividerItem; +import net.osmand.plus.base.bottomsheetmenu.simpleitems.DividerSpaceItem; +import net.osmand.plus.helpers.FontCache; +import net.osmand.plus.osmedit.OsmEditingPlugin; +import net.osmand.plus.routepreparationmenu.cards.BaseCard; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +import static net.osmand.plus.myplaces.TrackActivityFragmentAdapter.isGpxFileSelected; +import static net.osmand.util.Algorithms.capitalizeFirstLetter; + +public class OptionsCard extends BaseCard { + + public static final int SHOW_ON_MAP_BUTTON_INDEX = 0; + public static final int APPEARANCE_BUTTON_INDEX = 1; + public static final int DIRECTIONS_BUTTON_INDEX = 2; + public static final int JOIN_GAPS_BUTTON_INDEX = 3; + public static final int ANALYZE_ON_MAP_BUTTON_INDEX = 4; + public static final int ANALYZE_BY_INTERVALS_BUTTON_INDEX = 5; + public static final int SHARE_BUTTON_INDEX = 6; + public static final int UPLOAD_OSM_BUTTON_INDEX = 7; + public static final int EDIT_BUTTON_INDEX = 8; + public static final int RENAME_BUTTON_INDEX = 9; + public static final int CHANGE_FOLDER_BUTTON_INDEX = 10; + public static final int DELETE_BUTTON_INDEX = 11; + + private TrackDisplayHelper displayHelper; + private GPXFile gpxFile; + private List items = new ArrayList<>(); + + public OptionsCard(@NonNull MapActivity mapActivity, TrackDisplayHelper displayHelper) { + super(mapActivity); + this.displayHelper = displayHelper; + this.gpxFile = displayHelper.getGpx(); + } + + @Override + public int getCardLayoutId() { + return R.layout.card_container; + } + + @Override + protected void updateContent() { + ViewGroup itemsContainer = (ViewGroup) view; + itemsContainer.removeAllViews(); + items.clear(); + + items.add(createShowOnMapItem()); + items.add(createAppearanceItem()); + items.add(createDirectionsItem()); + + items.add(createDividerItem()); + items.add(createJoinGapsItem()); + items.add(createAnalyzeOnMapItem()); + items.add(createAnalyzeByIntervalsItem()); + + items.add(createDividerItem()); + items.add(createShareItem()); + items.add(createUploadOsmItem()); + + items.add(createDividerItem()); + items.add(createEditItem()); + items.add(createRenameItem()); + items.add(createChangeFolderItem()); + + items.add(createDividerItem()); + items.add(createDeleteItem()); + + if (gpxFile.path != null && !gpxFile.showCurrentTrack) { + + } + items.add(new DividerSpaceItem(mapActivity, AndroidUtils.dpToPx(app, 6))); + + inflateItems(); + } + + private BaseBottomSheetItem createDividerItem() { + DividerItem dividerItem = new DividerItem(mapActivity); + int start = app.getResources().getDimensionPixelSize(R.dimen.measurement_tool_options_divider_margin_start); + int verticalMargin = AndroidUtils.dpToPx(app, 6); + dividerItem.setMargins(start, verticalMargin, 0, verticalMargin); + + return dividerItem; + } + + private BaseBottomSheetItem createShowOnMapItem() { + + final Drawable showIcon = getActiveIcon(R.drawable.ic_action_view); + final Drawable hideIcon = getContentIcon(R.drawable.ic_action_hide); + boolean gpxFileSelected = isGpxFileSelected(app, gpxFile); + + final BottomSheetItemWithCompoundButton[] showOnMapItem = new BottomSheetItemWithCompoundButton[1]; + showOnMapItem[0] = (BottomSheetItemWithCompoundButton) new BottomSheetItemWithCompoundButton.Builder() + .setChecked(gpxFileSelected) + .setIcon(gpxFileSelected ? showIcon : hideIcon) + .setTitle(app.getString(R.string.shared_string_show_on_map)) + .setLayoutId(R.layout.bottom_sheet_item_with_switch_pad_32) + .setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + boolean checked = !showOnMapItem[0].isChecked(); + showOnMapItem[0].setChecked(checked); + showOnMapItem[0].setIcon(checked ? showIcon : hideIcon); + + CardListener listener = getListener(); + if (listener != null) { + listener.onCardButtonPressed(OptionsCard.this, SHOW_ON_MAP_BUTTON_INDEX); + } + } + }) + .create(); + return showOnMapItem[0]; + } + + private BaseBottomSheetItem createAppearanceItem() { + return new SimpleBottomSheetItem.Builder() + .setIcon(getActiveIcon(R.drawable.ic_action_appearance)) + .setTitle(app.getString(R.string.shared_string_appearance)) + .setLayoutId(R.layout.bottom_sheet_item_simple_pad_32dp) + .setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + CardListener listener = getListener(); + if (listener != null) { + listener.onCardButtonPressed(OptionsCard.this, APPEARANCE_BUTTON_INDEX); + } + } + }) + .create(); + } + + private BaseBottomSheetItem createDirectionsItem() { + return new SimpleBottomSheetItem.Builder() + .setIcon(getActiveIcon(R.drawable.ic_action_gdirections_dark)) + .setTitle(app.getString(R.string.get_directions)) + .setLayoutId(R.layout.bottom_sheet_item_simple_pad_32dp) + .setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + CardListener listener = getListener(); + if (listener != null) { + listener.onCardButtonPressed(OptionsCard.this, DIRECTIONS_BUTTON_INDEX); + } + } + }) + .create(); + } + + private BaseBottomSheetItem createJoinGapsItem() { + final Drawable joinGapsEnabledIcon = getActiveIcon(R.drawable.ic_action_join_segments); + final Drawable joinGapsDisabledIcon = getContentIcon(R.drawable.ic_action_join_segments); + boolean joinSegments = displayHelper.isJoinSegments(); + + final BottomSheetItemWithCompoundButton[] joinGapsItem = new BottomSheetItemWithCompoundButton[1]; + joinGapsItem[0] = (BottomSheetItemWithCompoundButton) new BottomSheetItemWithCompoundButton.Builder() + .setChecked(joinSegments) + .setIcon(joinSegments ? joinGapsEnabledIcon : joinGapsDisabledIcon) + .setTitle(app.getString(R.string.gpx_join_gaps)) + .setLayoutId(R.layout.bottom_sheet_item_with_switch_pad_32) + .setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + boolean checked = !joinGapsItem[0].isChecked(); + joinGapsItem[0].setChecked(checked); + joinGapsItem[0].setIcon(checked ? joinGapsEnabledIcon : joinGapsDisabledIcon); + + CardListener listener = getListener(); + if (listener != null) { + listener.onCardButtonPressed(OptionsCard.this, JOIN_GAPS_BUTTON_INDEX); + } + } + }) + .create(); + return joinGapsItem[0]; + } + + private BaseBottomSheetItem createAnalyzeOnMapItem() { + return new SimpleBottomSheetItem.Builder() + .setIcon(getActiveIcon(R.drawable.ic_action_analyze_intervals)) + .setTitle(app.getString(R.string.analyze_on_map)) + .setLayoutId(R.layout.bottom_sheet_item_simple_pad_32dp) + .setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + CardListener listener = getListener(); + if (listener != null) { + listener.onCardButtonPressed(OptionsCard.this, ANALYZE_ON_MAP_BUTTON_INDEX); + } + } + }) + .create(); + } + + private BaseBottomSheetItem createAnalyzeByIntervalsItem() { + return new SimpleBottomSheetItem.Builder() + .setIcon(getActiveIcon(R.drawable.ic_action_analyze_intervals)) + .setTitle(app.getString(R.string.analyze_by_intervals)) + .setLayoutId(R.layout.bottom_sheet_item_simple_pad_32dp) + .setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + CardListener listener = getListener(); + if (listener != null) { + listener.onCardButtonPressed(OptionsCard.this, ANALYZE_BY_INTERVALS_BUTTON_INDEX); + } + } + }) + .create(); + } + + private BaseBottomSheetItem createShareItem() { + Drawable shareIcon = getActiveIcon(R.drawable.ic_action_gshare_dark); + return new SimpleBottomSheetItem.Builder() + .setIcon(AndroidUtils.getDrawableForDirection(app, shareIcon)) + .setTitle(app.getString(R.string.shared_string_share)) + .setLayoutId(R.layout.bottom_sheet_item_simple_pad_32dp) + .setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + CardListener listener = getListener(); + if (listener != null) { + listener.onCardButtonPressed(OptionsCard.this, SHARE_BUTTON_INDEX); + } + } + }) + .create(); + } + + private BaseBottomSheetItem createUploadOsmItem() { + OsmEditingPlugin osmEditingPlugin = OsmandPlugin.getEnabledPlugin(OsmEditingPlugin.class); + if (osmEditingPlugin != null) { + return new SimpleBottomSheetItem.Builder() + .setIcon(getActiveIcon(R.drawable.ic_action_export)) + .setTitle(app.getString(R.string.upload_to_openstreetmap)) + .setLayoutId(R.layout.bottom_sheet_item_simple_pad_32dp) + .setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + CardListener listener = getListener(); + if (listener != null) { + listener.onCardButtonPressed(OptionsCard.this, UPLOAD_OSM_BUTTON_INDEX); + } + } + }) + .create(); + } + return null; + } + + private BaseBottomSheetItem createEditItem() { + Drawable editIcon = getActiveIcon(R.drawable.ic_action_edit_dark); + return new SimpleBottomSheetItem.Builder() + .setIcon(AndroidUtils.getDrawableForDirection(app, editIcon)) + .setTitle(app.getString(R.string.edit_track)) + .setLayoutId(R.layout.bottom_sheet_item_simple_pad_32dp) + .setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + CardListener listener = getListener(); + if (listener != null) { + listener.onCardButtonPressed(OptionsCard.this, EDIT_BUTTON_INDEX); + } + } + }) + .create(); + } + + private BaseBottomSheetItem createRenameItem() { + Drawable renameIcon = getActiveIcon(R.drawable.ic_action_name_field); + return new SimpleBottomSheetItem.Builder() + .setIcon(AndroidUtils.getDrawableForDirection(app, renameIcon)) + .setTitle(app.getString(R.string.rename_track)) + .setLayoutId(R.layout.bottom_sheet_item_simple_pad_32dp) + .setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + CardListener listener = getListener(); + if (listener != null) { + listener.onCardButtonPressed(OptionsCard.this, RENAME_BUTTON_INDEX); + } + } + }) + .create(); + } + + private BaseBottomSheetItem createChangeFolderItem() { + String folder = new File(gpxFile.path).getParentFile().getName(); + Drawable changeFolderIcon = getActiveIcon(R.drawable.ic_action_folder_move); + + return new BottomSheetItemWithDescriptionDifHeight.Builder() + .setMinHeight(app.getResources().getDimensionPixelSize(R.dimen.setting_list_item_group_height)) + .setDescriptionColorId(nightMode ? R.color.text_color_secondary_dark : R.color.text_color_secondary_light) + .setDescription(capitalizeFirstLetter(folder)) + .setIcon(AndroidUtils.getDrawableForDirection(app, changeFolderIcon)) + .setTitle(app.getString(R.string.change_folder)) + .setLayoutId(R.layout.bottom_sheet_item_with_descr_pad_32dp) + .setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + CardListener listener = getListener(); + if (listener != null) { + listener.onCardButtonPressed(OptionsCard.this, CHANGE_FOLDER_BUTTON_INDEX); + } + } + }) + .create(); + } + + private BaseBottomSheetItem createDeleteItem() { + String delete = app.getString(R.string.shared_string_delete); + Typeface typeface = FontCache.getRobotoMedium(app); + return new SimpleBottomSheetItem.Builder() + .setTitleColorId(R.color.color_osm_edit_delete) + .setIcon(getColoredIcon(R.drawable.ic_action_delete_dark, R.color.color_osm_edit_delete)) + .setTitle(UiUtilities.createCustomFontSpannable(typeface, delete, delete)) + .setLayoutId(R.layout.bottom_sheet_item_simple_pad_32dp) + .setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + CardListener listener = getListener(); + if (listener != null) { + listener.onCardButtonPressed(OptionsCard.this, DELETE_BUTTON_INDEX); + } + } + }) + .create(); + } + + private void inflateItems() { + for (BaseBottomSheetItem item : items) { + item.inflate(mapActivity, (ViewGroup) view, nightMode); + } + } +} \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/plus/track/SegmentsCard.java b/OsmAnd/src/net/osmand/plus/track/SegmentsCard.java index 3a6fce7271..b3921a6889 100644 --- a/OsmAnd/src/net/osmand/plus/track/SegmentsCard.java +++ b/OsmAnd/src/net/osmand/plus/track/SegmentsCard.java @@ -34,7 +34,7 @@ public class SegmentsCard extends BaseCard { @Override public int getCardLayoutId() { - return R.layout.track_segments_container; + return R.layout.card_container; } @Override diff --git a/OsmAnd/src/net/osmand/plus/track/TrackDisplayHelper.java b/OsmAnd/src/net/osmand/plus/track/TrackDisplayHelper.java index 5ab0a6740f..39ce84eedf 100644 --- a/OsmAnd/src/net/osmand/plus/track/TrackDisplayHelper.java +++ b/OsmAnd/src/net/osmand/plus/track/TrackDisplayHelper.java @@ -101,19 +101,7 @@ public class TrackDisplayHelper { return new ArrayList<>(); } if (gpxFile.modifiedTime != modifiedTime) { - modifiedTime = gpxFile.modifiedTime; - GpxSelectionHelper selectedGpxHelper = app.getSelectedGpxHelper(); - displayGroups = selectedGpxHelper.collectDisplayGroups(gpxFile); - originalGroups.clear(); - for (GpxSelectionHelper.GpxDisplayGroup g : displayGroups) { - originalGroups.add(g.cloneInstance()); - } - if (file != null) { - SelectedGpxFile sf = selectedGpxHelper.getSelectedFileByPath(gpxFile.path); - if (sf != null && file != null && sf.getDisplayGroups(app) != null) { - displayGroups = sf.getDisplayGroups(app); - } - } + updateDisplayGroups(); } if (useDisplayGroups) { return displayGroups; @@ -122,6 +110,22 @@ public class TrackDisplayHelper { } } + public void updateDisplayGroups() { + modifiedTime = gpxFile.modifiedTime; + GpxSelectionHelper selectedGpxHelper = app.getSelectedGpxHelper(); + displayGroups = selectedGpxHelper.collectDisplayGroups(gpxFile); + originalGroups.clear(); + for (GpxDisplayGroup g : displayGroups) { + originalGroups.add(g.cloneInstance()); + } + if (file != null) { + SelectedGpxFile sf = selectedGpxHelper.getSelectedFileByPath(gpxFile.path); + if (sf != null && file != null && sf.getDisplayGroups(app) != null) { + displayGroups = sf.getDisplayGroups(app); + } + } + } + @NonNull public List getOriginalGroups(GpxDisplayItemType[] filterTypes) { return filterGroups(false, filterTypes); diff --git a/OsmAnd/src/net/osmand/plus/track/TrackMenuFragment.java b/OsmAnd/src/net/osmand/plus/track/TrackMenuFragment.java index 595c456858..e079cb054b 100644 --- a/OsmAnd/src/net/osmand/plus/track/TrackMenuFragment.java +++ b/OsmAnd/src/net/osmand/plus/track/TrackMenuFragment.java @@ -5,12 +5,14 @@ import android.content.res.ColorStateList; import android.os.AsyncTask; import android.os.Build; import android.os.Bundle; +import android.view.Gravity; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.FrameLayout; +import android.widget.ImageView; import android.widget.TextView; import androidx.annotation.DrawableRes; @@ -25,36 +27,47 @@ import com.github.mikephil.charting.interfaces.datasets.ILineDataSet; import com.google.android.material.bottomnavigation.BottomNavigationView; import net.osmand.AndroidUtils; +import net.osmand.FileUtils; +import net.osmand.FileUtils.RenameCallback; import net.osmand.GPXUtilities.GPXFile; import net.osmand.GPXUtilities.Track; import net.osmand.GPXUtilities.TrkSegment; import net.osmand.GPXUtilities.WptPt; import net.osmand.PlatformUtil; +import net.osmand.data.LatLon; import net.osmand.data.QuadRect; import net.osmand.data.RotatedTileBox; -import net.osmand.plus.GPXDatabase.GpxDataItem; import net.osmand.plus.GpxDbHelper; import net.osmand.plus.GpxSelectionHelper.GpxDisplayGroup; import net.osmand.plus.GpxSelectionHelper.GpxDisplayItem; import net.osmand.plus.GpxSelectionHelper.GpxDisplayItemType; import net.osmand.plus.GpxSelectionHelper.SelectedGpxFile; import net.osmand.plus.OsmandApplication; +import net.osmand.plus.OsmandPlugin; import net.osmand.plus.R; +import net.osmand.plus.UiUtilities; import net.osmand.plus.activities.MapActivity; +import net.osmand.plus.activities.MapActivityActions; import net.osmand.plus.base.ContextMenuFragment; import net.osmand.plus.base.ContextMenuScrollFragment; import net.osmand.plus.helpers.AndroidUiHelper; import net.osmand.plus.helpers.GpxUiHelper; import net.osmand.plus.helpers.GpxUiHelper.GPXDataSetType; import net.osmand.plus.helpers.GpxUiHelper.OrderedLineDataSet; +import net.osmand.plus.mapcontextmenu.controllers.SelectedGpxMenuController.OpenGpxDetailsTask; +import net.osmand.plus.mapcontextmenu.other.TrackChartPoints; import net.osmand.plus.mapcontextmenu.other.TrackDetailsMenu; import net.osmand.plus.measurementtool.GpxData; import net.osmand.plus.measurementtool.MeasurementEditingContext; import net.osmand.plus.measurementtool.MeasurementToolFragment; +import net.osmand.plus.myplaces.AvailableGPXFragment.GpxInfo; import net.osmand.plus.myplaces.GPXTabItemType; +import net.osmand.plus.myplaces.MoveGpxFileBottomSheet; +import net.osmand.plus.myplaces.MoveGpxFileBottomSheet.OnTrackFileMoveListener; import net.osmand.plus.myplaces.SegmentActionsListener; import net.osmand.plus.myplaces.SplitSegmentDialogFragment; import net.osmand.plus.myplaces.TrackActivityFragmentAdapter; +import net.osmand.plus.osmedit.OsmEditingPlugin; import net.osmand.plus.routepreparationmenu.cards.BaseCard; import net.osmand.plus.routepreparationmenu.cards.BaseCard.CardListener; import net.osmand.plus.track.SaveGpxAsyncTask.SaveGpxListener; @@ -68,28 +81,46 @@ import java.util.List; import static net.osmand.plus.activities.TrackActivity.CURRENT_RECORDING; import static net.osmand.plus.activities.TrackActivity.TRACK_FILE_NAME; +import static net.osmand.plus.myplaces.TrackActivityFragmentAdapter.isGpxFileSelected; +import static net.osmand.plus.track.OptionsCard.ANALYZE_BY_INTERVALS_BUTTON_INDEX; +import static net.osmand.plus.track.OptionsCard.ANALYZE_ON_MAP_BUTTON_INDEX; +import static net.osmand.plus.track.OptionsCard.APPEARANCE_BUTTON_INDEX; +import static net.osmand.plus.track.OptionsCard.CHANGE_FOLDER_BUTTON_INDEX; +import static net.osmand.plus.track.OptionsCard.DELETE_BUTTON_INDEX; +import static net.osmand.plus.track.OptionsCard.DIRECTIONS_BUTTON_INDEX; +import static net.osmand.plus.track.OptionsCard.EDIT_BUTTON_INDEX; +import static net.osmand.plus.track.OptionsCard.JOIN_GAPS_BUTTON_INDEX; +import static net.osmand.plus.track.OptionsCard.RENAME_BUTTON_INDEX; +import static net.osmand.plus.track.OptionsCard.SHARE_BUTTON_INDEX; +import static net.osmand.plus.track.OptionsCard.SHOW_ON_MAP_BUTTON_INDEX; +import static net.osmand.plus.track.OptionsCard.UPLOAD_OSM_BUTTON_INDEX; -public class TrackMenuFragment extends ContextMenuScrollFragment implements CardListener, SegmentActionsListener { +public class TrackMenuFragment extends ContextMenuScrollFragment implements CardListener, + SegmentActionsListener, RenameCallback, OnTrackFileMoveListener { public static final String TAG = TrackMenuFragment.class.getName(); private static final Log log = PlatformUtil.getLog(TrackMenuFragment.class); private OsmandApplication app; private TrackDisplayHelper displayHelper; - - private GpxDataItem gpxDataItem; private SelectedGpxFile selectedGpxFile; private View routeMenuTopShadowAll; + private TextView headerTitle; + private ImageView headerIcon; private BottomNavigationView bottomNav; private TrackMenuType menuType = TrackMenuType.TRACK; private SegmentsCard segmentsCard; + private OptionsCard optionsCard; + + private TrackChartPoints trackChartPoints; private int menuTitleHeight; public enum TrackMenuType { TRACK(R.id.action_track, R.string.shared_string_gpx_tracks), - POINTS(R.id.action_points, R.string.shared_string_gpx_points); + POINTS(R.id.action_points, R.string.shared_string_gpx_points), + OPTIONS(R.id.action_options, R.string.shared_string_options); TrackMenuType(@DrawableRes int iconId, @StringRes int titleId) { this.iconId = iconId; @@ -140,26 +171,20 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card GpxDbHelper gpxDbHelper = app.getGpxDbHelper(); displayHelper = new TrackDisplayHelper(app); - String gpxFilePath = ""; - boolean currentRecording = false; Bundle arguments = getArguments(); - if (savedInstanceState != null) { - gpxFilePath = savedInstanceState.getString(TRACK_FILE_NAME); - currentRecording = savedInstanceState.getBoolean(CURRENT_RECORDING, false); - } else if (arguments != null) { - gpxFilePath = arguments.getString(TRACK_FILE_NAME); - currentRecording = arguments.getBoolean(CURRENT_RECORDING, false); + if (arguments != null) { + String gpxFilePath = arguments.getString(TRACK_FILE_NAME); + boolean currentRecording = arguments.getBoolean(CURRENT_RECORDING, false); + if (currentRecording) { + selectedGpxFile = app.getSavingTrackHelper().getCurrentTrack(); + } else { + File file = new File(gpxFilePath); + displayHelper.setFile(file); + displayHelper.setGpxDataItem(gpxDbHelper.getItem(file)); + selectedGpxFile = app.getSelectedGpxHelper().getSelectedFileByPath(gpxFilePath); + } + displayHelper.setGpx(selectedGpxFile.getGpxFile()); } - if (currentRecording) { - selectedGpxFile = app.getSavingTrackHelper().getCurrentTrack(); - } else { - File file = new File(gpxFilePath); - displayHelper.setFile(file); - gpxDataItem = gpxDbHelper.getItem(file); - selectedGpxFile = app.getSelectedGpxHelper().getSelectedFileByPath(gpxFilePath); - } - displayHelper.setGpxDataItem(gpxDataItem); - displayHelper.setGpx(selectedGpxFile.getGpxFile()); } public GPXFile getGpx() { @@ -172,14 +197,19 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card if (view != null) { bottomNav = view.findViewById(R.id.bottom_navigation); routeMenuTopShadowAll = view.findViewById(R.id.route_menu_top_shadow_all); - TextView title = view.findViewById(R.id.title); - String fileName = Algorithms.getFileWithoutDirs(getGpx().path); - title.setText(GpxUiHelper.getGpxTitle(fileName)); + headerTitle = view.findViewById(R.id.title); + headerIcon = view.findViewById(R.id.icon_view); if (isPortrait()) { updateCardsLayout(); + } else { + int widthNoShadow = getLandscapeNoShadowWidth(); + FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(widthNoShadow, ViewGroup.LayoutParams.WRAP_CONTENT); + params.gravity = Gravity.BOTTOM | Gravity.START; + bottomNav.setLayoutParams(params); } setupCards(); + updateHeader(); setupButtons(view); enterTrackAppearanceMode(); runLayoutListener(); @@ -187,18 +217,46 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card return view; } + private void updateHeader() { + if (menuType == TrackMenuType.OPTIONS) { + headerTitle.setText(menuType.titleId); + AndroidUiHelper.updateVisibility(headerIcon, false); + } else { + String fileName = Algorithms.getFileWithoutDirs(getGpx().path); + headerTitle.setText(GpxUiHelper.getGpxTitle(fileName)); + AndroidUiHelper.updateVisibility(headerIcon, true); + } + } + private void setupCards() { MapActivity mapActivity = getMapActivity(); if (mapActivity != null) { ViewGroup cardsContainer = getCardsContainer(); cardsContainer.removeAllViews(); if (menuType == TrackMenuType.TRACK) { - if (segmentsCard != null) { + if (segmentsCard != null && segmentsCard.getView() != null) { + ViewGroup parent = (ViewGroup) segmentsCard.getView().getParent(); + if (parent != null) { + parent.removeAllViews(); + } cardsContainer.addView(segmentsCard.getView()); } else { segmentsCard = new SegmentsCard(mapActivity, displayHelper, this); + segmentsCard.setListener(this); cardsContainer.addView(segmentsCard.build(mapActivity)); } + } else if (menuType == TrackMenuType.OPTIONS) { + if (optionsCard != null && optionsCard.getView() != null) { + ViewGroup parent = (ViewGroup) optionsCard.getView().getParent(); + if (parent != null) { + parent.removeAllViews(); + } + cardsContainer.addView(optionsCard.getView()); + } else { + optionsCard = new OptionsCard(mapActivity, displayHelper); + optionsCard.setListener(this); + cardsContainer.addView(optionsCard.build(mapActivity)); + } } } } @@ -239,6 +297,46 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card exitTrackAppearanceMode(); } + @Override + public void onResume() { + super.onResume(); + MapActivity mapActivity = getMapActivity(); + if (mapActivity != null && trackChartPoints != null) { + mapActivity.getMapLayers().getGpxLayer().setTrackChartPoints(trackChartPoints); + } + } + + @Override + public void onPause() { + super.onPause(); + MapActivity mapActivity = getMapActivity(); + if (mapActivity != null) { + mapActivity.getMapLayers().getGpxLayer().setTrackChartPoints(null); + } + } + + @Override + public void renamedTo(File file) { + updateFile(file); + } + + @Override + public void onFileMove(@NonNull File src, @NonNull File dest) { + File file = FileUtils.renameGpxFile(app, src, dest); + if (file != null) { + updateFile(file); + } else { + app.showToastMessage(R.string.file_can_not_be_renamed); + } + } + + private void updateFile(File file) { + displayHelper.setFile(file); + displayHelper.updateDisplayGroups(); + updateHeader(); + updateContent(); + } + private void enterTrackAppearanceMode() { MapActivity mapActivity = getMapActivity(); if (mapActivity != null) { @@ -311,7 +409,102 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card @Override public void onCardButtonPressed(@NonNull BaseCard card, int buttonIndex) { + MapActivity mapActivity = getMapActivity(); + if (mapActivity == null) { + return; + } + if (card instanceof OptionsCard) { + final GPXFile gpxFile = getGpx(); + if (buttonIndex == SHOW_ON_MAP_BUTTON_INDEX) { + boolean gpxFileSelected = !isGpxFileSelected(app, gpxFile); + app.getSelectedGpxHelper().selectGpxFile(gpxFile, gpxFileSelected, false); + mapActivity.refreshMap(); + } else if (buttonIndex == APPEARANCE_BUTTON_INDEX) { + app.getSelectedGpxHelper().selectGpxFile(gpxFile, true, false); + Bundle args = new Bundle(); + args.putString(TRACK_FILE_NAME, gpxFile.path); + args.putBoolean(CURRENT_RECORDING, gpxFile.showCurrentTrack); + args.putInt(ContextMenuFragment.MENU_STATE_KEY, MenuState.HALF_SCREEN); + + TrackAppearanceFragment fragment = new TrackAppearanceFragment(); + fragment.setArguments(args); + TrackAppearanceFragment.showInstance(mapActivity, fragment); + } else if (buttonIndex == DIRECTIONS_BUTTON_INDEX) { + MapActivityActions mapActions = mapActivity.getMapActions(); + if (app.getRoutingHelper().isFollowingMode()) { + mapActions.stopNavigationActionConfirm(null, new Runnable() { + @Override + public void run() { + MapActivity mapActivity = getMapActivity(); + if (mapActivity != null) { + mapActivity.getMapActions().enterRoutePlanningModeGivenGpx(gpxFile, null, + null, null, true, true, MenuState.HEADER_ONLY); + } + } + }); + } else { + mapActions.stopNavigationWithoutConfirm(); + mapActions.enterRoutePlanningModeGivenGpx(gpxFile, null, null, + null, true, true, MenuState.HEADER_ONLY); + } + dismiss(); + } + if (buttonIndex == JOIN_GAPS_BUTTON_INDEX) { + displayHelper.setJoinSegments(!displayHelper.isJoinSegments()); + mapActivity.refreshMap(); + + if (segmentsCard != null) { + segmentsCard.updateContent(); + } + } else if (buttonIndex == ANALYZE_ON_MAP_BUTTON_INDEX) { + new OpenGpxDetailsTask(selectedGpxFile, null, mapActivity).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); + dismiss(); + } else if (buttonIndex == ANALYZE_BY_INTERVALS_BUTTON_INDEX) { + FragmentManager fragmentManager = mapActivity.getSupportFragmentManager(); + TrkSegment segment = gpxFile.getGeneralSegment(); + GpxDisplayItemType[] filterTypes = new GpxDisplayItemType[] {GpxDisplayItemType.TRACK_SEGMENT}; + List items = TrackDisplayHelper.flatten(displayHelper.getOriginalGroups(filterTypes)); + if (segment != null && !Algorithms.isEmpty(items)) { + SplitSegmentDialogFragment.showInstance(fragmentManager, displayHelper, items.get(0), segment); + } + } else if (buttonIndex == SHARE_BUTTON_INDEX) { + GpxUiHelper.shareGpx(mapActivity, new File(gpxFile.path)); + } else if (buttonIndex == UPLOAD_OSM_BUTTON_INDEX) { + OsmEditingPlugin osmEditingPlugin = OsmandPlugin.getEnabledPlugin(OsmEditingPlugin.class); + if (osmEditingPlugin != null) { + GpxInfo gpxInfo = new GpxInfo(); + gpxInfo.gpx = gpxFile; + gpxInfo.file = new File(gpxFile.path); + osmEditingPlugin.sendGPXFiles(mapActivity, this, gpxInfo); + } + } else if (buttonIndex == EDIT_BUTTON_INDEX) { + String fileName = Algorithms.getFileWithoutDirs(gpxFile.path); + MeasurementToolFragment.showInstance(mapActivity.getSupportFragmentManager(), fileName); + dismiss(); + } else if (buttonIndex == RENAME_BUTTON_INDEX) { + FileUtils.renameFile(mapActivity, new File(gpxFile.path), this, true); + } else if (buttonIndex == CHANGE_FOLDER_BUTTON_INDEX) { + FragmentManager fragmentManager = mapActivity.getSupportFragmentManager(); + MoveGpxFileBottomSheet.showInstance(fragmentManager, this, gpxFile.path, true); + } else if (buttonIndex == DELETE_BUTTON_INDEX) { + String fileName = Algorithms.getFileWithoutDirs(gpxFile.path); + + AlertDialog.Builder builder = new AlertDialog.Builder(UiUtilities.getThemedContext(mapActivity, isNightMode())); + builder.setTitle(getString(R.string.delete_confirmation_msg, fileName)); + builder.setMessage(R.string.are_you_sure); + builder.setNegativeButton(R.string.shared_string_cancel, null).setPositiveButton( + R.string.shared_string_ok, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + if (FileUtils.removeGpxFile(app, new File((gpxFile.path)))) { + dismiss(); + } + } + }); + builder.show(); + } + } } @Override @@ -378,6 +571,7 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card if (type.iconId == item.getItemId()) { menuType = type; setupCards(); + updateHeader(); break; } } @@ -391,6 +585,9 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card if (segmentsCard != null) { segmentsCard.updateContent(); } + if (optionsCard != null) { + optionsCard.updateContent(); + } setupCards(); } @@ -405,8 +602,19 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card } @Override - public void onPointSelected(double lat, double lon) { - + public void onPointSelected(TrkSegment segment, double lat, double lon) { + if (trackChartPoints == null) { + trackChartPoints = new TrackChartPoints(); + trackChartPoints.setGpx(getGpx()); + } + MapActivity mapActivity = getMapActivity(); + if (mapActivity != null) { + int segmentColor = segment != null ? segment.getColor(0) : 0; + trackChartPoints.setSegmentColor(segmentColor); + trackChartPoints.setHighlightedPoint(new LatLon(lat, lon)); + mapActivity.getMapLayers().getGpxLayer().setTrackChartPoints(trackChartPoints); + mapActivity.refreshMap(); + } } @Override @@ -551,10 +759,8 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card public void gpxSavingFinished(Exception errorMessage) { if (selectedGpxFile != null) { List groups = displayHelper.getDisplayGroups(new GpxDisplayItemType[] {GpxDisplayItemType.TRACK_SEGMENT}); - if (groups != null) { - selectedGpxFile.setDisplayGroups(groups, app); - selectedGpxFile.processPoints(app); - } + selectedGpxFile.setDisplayGroups(groups, app); + selectedGpxFile.processPoints(app); } updateContent(); } @@ -582,6 +788,7 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card TrackMenuFragment fragment = new TrackMenuFragment(); fragment.setArguments(args); + fragment.setRetainInstance(true); mapActivity.getSupportFragmentManager() .beginTransaction() From 9c9b4ea6deee9fe79045c76b3ca3ee9de05407bb Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Thu, 14 Jan 2021 11:32:54 +0200 Subject: [PATCH 013/173] Fix appearance screen with disabled track --- .../osmand/plus/activities/MapActivity.java | 27 +++++++-------- .../net/osmand/plus/helpers/GpxUiHelper.java | 18 ++++++++++ .../SelectedGpxMenuController.java | 21 +----------- .../net/osmand/plus/track/OptionsCard.java | 25 +++++++------- .../plus/track/TrackAppearanceFragment.java | 33 +++++++------------ .../osmand/plus/track/TrackMenuFragment.java | 18 ++++------ 6 files changed, 62 insertions(+), 80 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java index e41792225b..4e3cbd2885 100644 --- a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java +++ b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java @@ -67,8 +67,7 @@ import net.osmand.plus.AppInitializer; import net.osmand.plus.AppInitializer.AppInitializeListener; import net.osmand.plus.AppInitializer.InitEvents; import net.osmand.plus.GpxSelectionHelper.GpxDisplayItem; -import net.osmand.plus.mapmarkers.MapMarker; -import net.osmand.plus.mapmarkers.MapMarkersHelper.MapMarkerChangedListener; +import net.osmand.plus.GpxSelectionHelper.SelectedGpxFile; import net.osmand.plus.OnDismissDialogFragmentListener; import net.osmand.plus.OsmAndConstants; import net.osmand.plus.OsmAndLocationSimulation; @@ -80,7 +79,6 @@ import net.osmand.plus.TargetPointsHelper.TargetPoint; import net.osmand.plus.Version; import net.osmand.plus.activities.search.SearchActivity; import net.osmand.plus.base.BaseOsmAndFragment; -import net.osmand.plus.base.ContextMenuFragment; import net.osmand.plus.base.FailSafeFuntions; import net.osmand.plus.base.MapViewTrackingUtilities; import net.osmand.plus.chooseplan.OsmLiveGoneDialog; @@ -108,10 +106,11 @@ import net.osmand.plus.helpers.ScrollHelper.OnScrollEventListener; import net.osmand.plus.importfiles.ImportHelper; import net.osmand.plus.mapcontextmenu.AdditionalActionsBottomSheetDialogFragment; import net.osmand.plus.mapcontextmenu.MapContextMenu; -import net.osmand.plus.mapcontextmenu.MenuController; import net.osmand.plus.mapcontextmenu.builders.cards.dialogs.ContextMenuCardDialogFragment; import net.osmand.plus.mapcontextmenu.other.DestinationReachedMenu; import net.osmand.plus.mapcontextmenu.other.TrackDetailsMenu; +import net.osmand.plus.mapmarkers.MapMarker; +import net.osmand.plus.mapmarkers.MapMarkersHelper.MapMarkerChangedListener; import net.osmand.plus.mapmarkers.PlanRouteFragment; import net.osmand.plus.measurementtool.GpxApproximationFragment; import net.osmand.plus.measurementtool.GpxData; @@ -125,8 +124,8 @@ import net.osmand.plus.routepreparationmenu.ChooseRouteFragment; import net.osmand.plus.routepreparationmenu.MapRouteInfoMenu; import net.osmand.plus.routepreparationmenu.MapRouteInfoMenuFragment; import net.osmand.plus.routing.IRouteInformationListener; -import net.osmand.plus.routing.RoutingHelper; import net.osmand.plus.routing.RouteCalculationProgressCallback; +import net.osmand.plus.routing.RoutingHelper; import net.osmand.plus.routing.TransportRoutingHelper.TransportRouteCalculationProgressCallback; import net.osmand.plus.search.QuickSearchDialogFragment; import net.osmand.plus.search.QuickSearchDialogFragment.QuickSearchTab; @@ -169,8 +168,6 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import static net.osmand.aidlapi.OsmAndCustomizationConstants.DRAWER_SETTINGS_ID; -import static net.osmand.plus.activities.TrackActivity.CURRENT_RECORDING; -import static net.osmand.plus.activities.TrackActivity.TRACK_FILE_NAME; public class MapActivity extends OsmandActionBarActivity implements DownloadEvents, OnRequestPermissionsResultCallback, IRouteInformationListener, AMapPointUpdateListener, @@ -1177,15 +1174,15 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven MapRouteInfoMenu.showLocationOnMap(this, latLonToShow.getLatitude(), latLonToShow.getLongitude()); } else if (toShow instanceof GPXFile) { hideContextAndRouteInfoMenues(); + GPXFile gpxFile = (GPXFile) toShow; + SelectedGpxFile selectedGpxFile; + if (gpxFile.showCurrentTrack) { + selectedGpxFile = app.getSavingTrackHelper().getCurrentTrack(); + } else { + selectedGpxFile = app.getSelectedGpxHelper().getSelectedFileByPath(gpxFile.path); + } - Bundle args = new Bundle(); - args.putString(TRACK_FILE_NAME, ((GPXFile) toShow).path); - args.putBoolean(CURRENT_RECORDING, ((GPXFile) toShow).showCurrentTrack); - args.putInt(ContextMenuFragment.MENU_STATE_KEY, MenuController.MenuState.HALF_SCREEN); - - TrackAppearanceFragment fragment = new TrackAppearanceFragment(); - fragment.setArguments(args); - TrackAppearanceFragment.showInstance(this, fragment); + TrackAppearanceFragment.showInstance(this, selectedGpxFile); } 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); diff --git a/OsmAnd/src/net/osmand/plus/helpers/GpxUiHelper.java b/OsmAnd/src/net/osmand/plus/helpers/GpxUiHelper.java index c2813551e9..3d6c3c15c9 100644 --- a/OsmAnd/src/net/osmand/plus/helpers/GpxUiHelper.java +++ b/OsmAnd/src/net/osmand/plus/helpers/GpxUiHelper.java @@ -99,6 +99,7 @@ import net.osmand.plus.dialogs.GpxAppearanceAdapter.AppearanceListItem; import net.osmand.plus.helpers.enums.MetricsConstants; import net.osmand.plus.helpers.enums.SpeedConstants; import net.osmand.plus.monitoring.OsmandMonitoringPlugin; +import net.osmand.plus.myplaces.SaveCurrentTrackTask; import net.osmand.plus.routing.RouteCalculationResult; import net.osmand.plus.settings.backend.CommonPreference; import net.osmand.plus.settings.backend.OsmandSettings; @@ -2192,6 +2193,23 @@ public class GpxUiHelper { new SaveGpxAsyncTask(file, gpxFile, listener).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); } + public static void saveAndShareCurrentGpx(@NonNull final OsmandApplication app, @NonNull final GPXFile gpxFile) { + SaveGpxListener saveGpxListener = new SaveGpxListener() { + @Override + public void gpxSavingStarted() { + + } + + @Override + public void gpxSavingFinished(Exception errorMessage) { + if (errorMessage == null) { + GpxUiHelper.shareGpx(app, new File(gpxFile.path)); + } + } + }; + new SaveCurrentTrackTask(app, gpxFile, saveGpxListener).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); + } + public static void saveAndShareGpxWithAppearance(@NonNull final Context context, @NonNull final GPXFile gpxFile) { OsmandApplication app = (OsmandApplication) context.getApplicationContext(); GpxDataItem dataItem = getDataItem(app, gpxFile); diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/SelectedGpxMenuController.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/SelectedGpxMenuController.java index 065015c88f..8a86fbe134 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/SelectedGpxMenuController.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/SelectedGpxMenuController.java @@ -23,9 +23,7 @@ import net.osmand.plus.activities.TrackActivity; import net.osmand.plus.helpers.GpxUiHelper; import net.osmand.plus.mapcontextmenu.MenuController; import net.osmand.plus.mapcontextmenu.builders.SelectedGpxMenuBuilder; -import net.osmand.plus.myplaces.SaveCurrentTrackTask; import net.osmand.plus.settings.backend.OsmandSettings; -import net.osmand.plus.track.SaveGpxAsyncTask.SaveGpxListener; import net.osmand.plus.track.TrackMenuFragment; import net.osmand.util.Algorithms; @@ -217,7 +215,7 @@ public class SelectedGpxMenuController extends MenuController { if (gpxFile != null) { OsmandApplication app = mapActivity.getMyApplication(); if (Algorithms.isEmpty(gpxFile.path)) { - saveAndShareCurrentGpx(app, gpxFile); + GpxUiHelper.saveAndShareCurrentGpx(app, gpxFile); } else { GpxUiHelper.saveAndShareGpxWithAppearance(app, gpxFile); } @@ -227,23 +225,6 @@ public class SelectedGpxMenuController extends MenuController { } } - public void saveAndShareCurrentGpx(@NonNull final OsmandApplication app, @NonNull final GPXFile gpxFile) { - SaveGpxListener saveGpxListener = new SaveGpxListener() { - @Override - public void gpxSavingStarted() { - - } - - @Override - public void gpxSavingFinished(Exception errorMessage) { - if (errorMessage == null) { - GpxUiHelper.shareGpx(app, new File(gpxFile.path)); - } - } - }; - new SaveCurrentTrackTask(app, gpxFile, saveGpxListener).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); - } - public static class SelectedGpxPoint { private final WptPt selectedPoint; diff --git a/OsmAnd/src/net/osmand/plus/track/OptionsCard.java b/OsmAnd/src/net/osmand/plus/track/OptionsCard.java index bd71459084..1ed533922c 100644 --- a/OsmAnd/src/net/osmand/plus/track/OptionsCard.java +++ b/OsmAnd/src/net/osmand/plus/track/OptionsCard.java @@ -67,10 +67,12 @@ public class OptionsCard extends BaseCard { itemsContainer.removeAllViews(); items.clear(); + boolean fileAvailable = gpxFile.path != null && !gpxFile.showCurrentTrack; items.add(createShowOnMapItem()); items.add(createAppearanceItem()); - items.add(createDirectionsItem()); - + if (fileAvailable) { + items.add(createDirectionsItem()); + } items.add(createDividerItem()); items.add(createJoinGapsItem()); items.add(createAnalyzeOnMapItem()); @@ -78,18 +80,15 @@ public class OptionsCard extends BaseCard { items.add(createDividerItem()); items.add(createShareItem()); - items.add(createUploadOsmItem()); - - items.add(createDividerItem()); - items.add(createEditItem()); - items.add(createRenameItem()); - items.add(createChangeFolderItem()); - - items.add(createDividerItem()); - items.add(createDeleteItem()); - - if (gpxFile.path != null && !gpxFile.showCurrentTrack) { + if (fileAvailable) { + items.add(createUploadOsmItem()); + items.add(createDividerItem()); + items.add(createEditItem()); + items.add(createRenameItem()); + items.add(createChangeFolderItem()); + items.add(createDividerItem()); + items.add(createDeleteItem()); } items.add(new DividerSpaceItem(mapActivity, AndroidUtils.dpToPx(app, 6))); diff --git a/OsmAnd/src/net/osmand/plus/track/TrackAppearanceFragment.java b/OsmAnd/src/net/osmand/plus/track/TrackAppearanceFragment.java index 66b2a5f5a2..43642bfe9c 100644 --- a/OsmAnd/src/net/osmand/plus/track/TrackAppearanceFragment.java +++ b/OsmAnd/src/net/osmand/plus/track/TrackAppearanceFragment.java @@ -56,8 +56,6 @@ import java.io.File; import java.util.ArrayList; import java.util.List; -import static net.osmand.plus.activities.TrackActivity.CURRENT_RECORDING; -import static net.osmand.plus.activities.TrackActivity.TRACK_FILE_NAME; import static net.osmand.plus.dialogs.ConfigureMapMenu.CURRENT_TRACK_COLOR_ATTR; import static net.osmand.plus.dialogs.GpxAppearanceAdapter.TRACK_WIDTH_BOLD; import static net.osmand.plus.dialogs.GpxAppearanceAdapter.TRACK_WIDTH_MEDIUM; @@ -121,6 +119,10 @@ public class TrackAppearanceFragment extends ContextMenuScrollFragment implement return trackDrawInfo; } + public void setSelectedGpxFile(SelectedGpxFile selectedGpxFile) { + this.selectedGpxFile = selectedGpxFile; + } + @Override public int getSupportedMenuStatesPortrait() { return MenuState.HEADER_ONLY | MenuState.HALF_SCREEN | MenuState.FULL_SCREEN; @@ -132,40 +134,25 @@ public class TrackAppearanceFragment extends ContextMenuScrollFragment implement app = requireMyApplication(); gpxDbHelper = app.getGpxDbHelper(); - Bundle arguments = getArguments(); if (savedInstanceState != null) { trackDrawInfo = new TrackDrawInfo(savedInstanceState); - if (trackDrawInfo.isCurrentRecording()) { - selectedGpxFile = app.getSavingTrackHelper().getCurrentTrack(); - } else { - selectedGpxFile = app.getSelectedGpxHelper().getSelectedFileByPath(trackDrawInfo.getFilePath()); - } if (!selectedGpxFile.isShowCurrentTrack()) { gpxDataItem = gpxDbHelper.getItem(new File(trackDrawInfo.getFilePath())); } showStartFinishIconsInitialValue = savedInstanceState.getBoolean(SHOW_START_FINISH_ICONS_INITIAL_VALUE_KEY, app.getSettings().SHOW_START_FINISH_ICONS.get()); - } else if (arguments != null) { - String gpxFilePath = arguments.getString(TRACK_FILE_NAME); - boolean currentRecording = arguments.getBoolean(CURRENT_RECORDING, false); + } else { showStartFinishIconsInitialValue = app.getSettings().SHOW_START_FINISH_ICONS.get(); - if (gpxFilePath == null && !currentRecording) { - log.error("Required extra '" + TRACK_FILE_NAME + "' is missing"); - dismiss(); - return; - } - if (currentRecording) { + if (selectedGpxFile.isShowCurrentTrack()) { trackDrawInfo = new TrackDrawInfo(true); trackDrawInfo.setColor(app.getSettings().CURRENT_TRACK_COLOR.get()); trackDrawInfo.setWidth(app.getSettings().CURRENT_TRACK_WIDTH.get()); trackDrawInfo.setShowArrows(app.getSettings().CURRENT_TRACK_SHOW_ARROWS.get()); trackDrawInfo.setShowStartFinish(app.getSettings().CURRENT_TRACK_SHOW_START_FINISH.get()); - selectedGpxFile = app.getSavingTrackHelper().getCurrentTrack(); } else { - gpxDataItem = gpxDbHelper.getItem(new File(gpxFilePath)); + gpxDataItem = gpxDbHelper.getItem(new File(selectedGpxFile.getGpxFile().path)); trackDrawInfo = new TrackDrawInfo(app, gpxDataItem, false); - selectedGpxFile = app.getSelectedGpxHelper().getSelectedFileByPath(gpxFilePath); } updateTrackColor(); } @@ -726,8 +713,12 @@ public class TrackAppearanceFragment extends ContextMenuScrollFragment implement return totalScreenHeight - frameTotalHeight; } - public static boolean showInstance(@NonNull MapActivity mapActivity, TrackAppearanceFragment fragment) { + public static boolean showInstance(@NonNull MapActivity mapActivity, @NonNull SelectedGpxFile selectedGpxFile) { try { + TrackAppearanceFragment fragment = new TrackAppearanceFragment(); + fragment.setSelectedGpxFile(selectedGpxFile); + fragment.setRetainInstance(true); + mapActivity.getSupportFragmentManager() .beginTransaction() .replace(R.id.fragmentContainer, fragment, fragment.getFragmentTag()) diff --git a/OsmAnd/src/net/osmand/plus/track/TrackMenuFragment.java b/OsmAnd/src/net/osmand/plus/track/TrackMenuFragment.java index e079cb054b..48cca0b460 100644 --- a/OsmAnd/src/net/osmand/plus/track/TrackMenuFragment.java +++ b/OsmAnd/src/net/osmand/plus/track/TrackMenuFragment.java @@ -420,16 +420,7 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card app.getSelectedGpxHelper().selectGpxFile(gpxFile, gpxFileSelected, false); mapActivity.refreshMap(); } else if (buttonIndex == APPEARANCE_BUTTON_INDEX) { - app.getSelectedGpxHelper().selectGpxFile(gpxFile, true, false); - - Bundle args = new Bundle(); - args.putString(TRACK_FILE_NAME, gpxFile.path); - args.putBoolean(CURRENT_RECORDING, gpxFile.showCurrentTrack); - args.putInt(ContextMenuFragment.MENU_STATE_KEY, MenuState.HALF_SCREEN); - - TrackAppearanceFragment fragment = new TrackAppearanceFragment(); - fragment.setArguments(args); - TrackAppearanceFragment.showInstance(mapActivity, fragment); + TrackAppearanceFragment.showInstance(mapActivity, selectedGpxFile); } else if (buttonIndex == DIRECTIONS_BUTTON_INDEX) { MapActivityActions mapActions = mapActivity.getMapActions(); if (app.getRoutingHelper().isFollowingMode()) { @@ -469,7 +460,12 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card SplitSegmentDialogFragment.showInstance(fragmentManager, displayHelper, items.get(0), segment); } } else if (buttonIndex == SHARE_BUTTON_INDEX) { - GpxUiHelper.shareGpx(mapActivity, new File(gpxFile.path)); + OsmandApplication app = mapActivity.getMyApplication(); + if (gpxFile.showCurrentTrack) { + GpxUiHelper.saveAndShareCurrentGpx(app, gpxFile); + } else if (!Algorithms.isEmpty(gpxFile.path)) { + GpxUiHelper.saveAndShareGpxWithAppearance(app, gpxFile); + } } else if (buttonIndex == UPLOAD_OSM_BUTTON_INDEX) { OsmEditingPlugin osmEditingPlugin = OsmandPlugin.getEnabledPlugin(OsmEditingPlugin.class); if (osmEditingPlugin != null) { From e77fc42e92768d1074ec1819b655ac3943cac260 Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Thu, 14 Jan 2021 11:44:02 +0200 Subject: [PATCH 014/173] Fix analyze by intervals --- OsmAnd/src/net/osmand/plus/track/TrackMenuFragment.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/OsmAnd/src/net/osmand/plus/track/TrackMenuFragment.java b/OsmAnd/src/net/osmand/plus/track/TrackMenuFragment.java index 48cca0b460..794011f51e 100644 --- a/OsmAnd/src/net/osmand/plus/track/TrackMenuFragment.java +++ b/OsmAnd/src/net/osmand/plus/track/TrackMenuFragment.java @@ -454,6 +454,12 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card } else if (buttonIndex == ANALYZE_BY_INTERVALS_BUTTON_INDEX) { FragmentManager fragmentManager = mapActivity.getSupportFragmentManager(); TrkSegment segment = gpxFile.getGeneralSegment(); + if (segment == null) { + List segments = gpxFile.getNonEmptyTrkSegments(false); + if (!Algorithms.isEmpty(segments)) { + segment = segments.get(0); + } + } GpxDisplayItemType[] filterTypes = new GpxDisplayItemType[] {GpxDisplayItemType.TRACK_SEGMENT}; List items = TrackDisplayHelper.flatten(displayHelper.getOriginalGroups(filterTypes)); if (segment != null && !Algorithms.isEmpty(items)) { From 4c4a439adcba078ca445fefc12a32ccddd0801a2 Mon Sep 17 00:00:00 2001 From: Skalii Date: Thu, 14 Jan 2021 12:30:49 +0200 Subject: [PATCH 015/173] Close keyboard on scrolling --- .../OnlineRoutingEngineFragment.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/OsmAnd/src/net/osmand/plus/onlinerouting/OnlineRoutingEngineFragment.java b/OsmAnd/src/net/osmand/plus/onlinerouting/OnlineRoutingEngineFragment.java index b70fcc89a3..541803dbfd 100644 --- a/OsmAnd/src/net/osmand/plus/onlinerouting/OnlineRoutingEngineFragment.java +++ b/OsmAnd/src/net/osmand/plus/onlinerouting/OnlineRoutingEngineFragment.java @@ -7,6 +7,7 @@ import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; +import android.view.ViewTreeObserver; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.TextView; @@ -61,12 +62,14 @@ public class OnlineRoutingEngineFragment extends BaseOsmAndFragment { private View view; private ViewGroup segmentsContainer; + private ViewGroup scrollView; private OnlineRoutingCard nameCard; private OnlineRoutingCard typeCard; private OnlineRoutingCard vehicleCard; private OnlineRoutingCard apiKeyCard; private OnlineRoutingCard exampleCard; private View testResultsContainer; + private ViewTreeObserver.OnScrollChangedListener onScroll; private ApplicationMode appMode; @@ -137,6 +140,20 @@ public class OnlineRoutingEngineFragment extends BaseOsmAndFragment { view = getInflater().inflate( R.layout.online_routing_engine_fragment, container, false); segmentsContainer = (ViewGroup) view.findViewById(R.id.segments_container); + scrollView = (ViewGroup) segmentsContainer.getParent(); + onScroll = new ViewTreeObserver.OnScrollChangedListener() { + int pastY = 0; + @Override + public void onScrollChanged() { + int y = scrollView.getScrollY(); + if (pastY != y) { + pastY = y; + View vieww = view.findFocus(); + AndroidUtils.hideSoftKeyboard(requireActivity(), vieww); + } + } + }; + scrollView.getViewTreeObserver().addOnScrollChangedListener(onScroll); if (Build.VERSION.SDK_INT >= 21) { AndroidUtils.addStatusBarPadding21v(getContext(), view); } @@ -156,6 +173,12 @@ public class OnlineRoutingEngineFragment extends BaseOsmAndFragment { return view; } + @Override + public void onDestroyView() { + super.onDestroyView(); + scrollView.getViewTreeObserver().removeOnScrollChangedListener(onScroll); + } + private void setupNameCard() { nameCard = new OnlineRoutingCard(mapActivity, isNightMode()); nameCard.build(mapActivity); From ebbcb1778ff82127123f4409741ba4477a2cba03 Mon Sep 17 00:00:00 2001 From: Skalii Date: Thu, 14 Jan 2021 13:13:55 +0200 Subject: [PATCH 016/173] fix descrease padding below scroll buttons in "Vehicle" block --- .../net/osmand/plus/onlinerouting/OnlineRoutingCard.java | 4 ++-- .../plus/onlinerouting/OnlineRoutingEngineFragment.java | 7 ++++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/onlinerouting/OnlineRoutingCard.java b/OsmAnd/src/net/osmand/plus/onlinerouting/OnlineRoutingCard.java index 6c49386c47..b9509fc026 100644 --- a/OsmAnd/src/net/osmand/plus/onlinerouting/OnlineRoutingCard.java +++ b/OsmAnd/src/net/osmand/plus/onlinerouting/OnlineRoutingCard.java @@ -128,9 +128,9 @@ public class OnlineRoutingCard extends BaseCard { rvSelectionMenu.setAdapter(adapter); } - public void removeBottomMarginSelectionMenu() { + public void updateBottomMarginSelectionMenu(int bottomMargin) { ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) rvSelectionMenu.getLayoutParams(); - params.bottomMargin = 0; + params.bottomMargin = bottomMargin; } public void setDescription(@NonNull String description) { diff --git a/OsmAnd/src/net/osmand/plus/onlinerouting/OnlineRoutingEngineFragment.java b/OsmAnd/src/net/osmand/plus/onlinerouting/OnlineRoutingEngineFragment.java index 541803dbfd..457fc2ee17 100644 --- a/OsmAnd/src/net/osmand/plus/onlinerouting/OnlineRoutingEngineFragment.java +++ b/OsmAnd/src/net/osmand/plus/onlinerouting/OnlineRoutingEngineFragment.java @@ -248,12 +248,17 @@ public class OnlineRoutingEngineFragment extends BaseOsmAndFragment { if (engine.vehicleType != vehicle) { engine.vehicleType = vehicle; updateCardViews(nameCard, vehicleCard, exampleCard); + if (vehicle == VehicleType.CUSTOM) { + vehicleCard.updateBottomMarginSelectionMenu((int) getResources().getDimension(R.dimen.content_padding)); + } else { + vehicleCard.updateBottomMarginSelectionMenu(0); + } return true; } return false; } }); - vehicleCard.removeBottomMarginSelectionMenu(); + vehicleCard.updateBottomMarginSelectionMenu(0); vehicleCard.setFieldBoxLabelText(getString(R.string.shared_string_custom)); vehicleCard.setOnTextChangedListener(new OnTextChangedListener() { @Override From 3d925646f8790266369461b2f0f738b969287a31 Mon Sep 17 00:00:00 2001 From: cepprice Date: Thu, 14 Jan 2021 18:11:02 +0500 Subject: [PATCH 017/173] Update UI of announcement time --- .../seekbar_progress_announcement_time.xml | 19 ++ .../seekbar_thumb_announcement_time.xml | 12 + .../seekbar_tickmark_announcement_time.xml | 8 + .../layout/bottom_sheet_announcement_time.xml | 140 ++++++++++++ OsmAnd/res/values/strings.xml | 12 +- .../routing/data/AnnounceTimeDistances.java | 157 +++++++++---- .../AnnouncementTimeBottomSheet.java | 209 ++++++++++++++++++ .../fragments/VoiceAnnouncesFragment.java | 34 ++- 8 files changed, 538 insertions(+), 53 deletions(-) create mode 100644 OsmAnd/res/drawable/seekbar_progress_announcement_time.xml create mode 100644 OsmAnd/res/drawable/seekbar_thumb_announcement_time.xml create mode 100644 OsmAnd/res/drawable/seekbar_tickmark_announcement_time.xml create mode 100644 OsmAnd/res/layout/bottom_sheet_announcement_time.xml create mode 100644 OsmAnd/src/net/osmand/plus/settings/bottomsheets/AnnouncementTimeBottomSheet.java diff --git a/OsmAnd/res/drawable/seekbar_progress_announcement_time.xml b/OsmAnd/res/drawable/seekbar_progress_announcement_time.xml new file mode 100644 index 0000000000..84e6587248 --- /dev/null +++ b/OsmAnd/res/drawable/seekbar_progress_announcement_time.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OsmAnd/res/drawable/seekbar_thumb_announcement_time.xml b/OsmAnd/res/drawable/seekbar_thumb_announcement_time.xml new file mode 100644 index 0000000000..718b10c081 --- /dev/null +++ b/OsmAnd/res/drawable/seekbar_thumb_announcement_time.xml @@ -0,0 +1,12 @@ + + + + + + + + \ No newline at end of file diff --git a/OsmAnd/res/drawable/seekbar_tickmark_announcement_time.xml b/OsmAnd/res/drawable/seekbar_tickmark_announcement_time.xml new file mode 100644 index 0000000000..d6662da81f --- /dev/null +++ b/OsmAnd/res/drawable/seekbar_tickmark_announcement_time.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/OsmAnd/res/layout/bottom_sheet_announcement_time.xml b/OsmAnd/res/layout/bottom_sheet_announcement_time.xml new file mode 100644 index 0000000000..630decba92 --- /dev/null +++ b/OsmAnd/res/layout/bottom_sheet_announcement_time.xml @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index c499d54b5c..943aa25210 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -11,7 +11,17 @@ Thx - Hardy --> - + Announcement time + Announcement time of different voice prompts depends on prompt type, current navigation speed and default navigation speed. + Time and distance intervals + Turn + Arrive at destination + Off route + Prepare + Long Prepare + Approach + Passing + sec Empty Select folder or add new one Select folder diff --git a/OsmAnd/src/net/osmand/plus/routing/data/AnnounceTimeDistances.java b/OsmAnd/src/net/osmand/plus/routing/data/AnnounceTimeDistances.java index 497f237158..f8b71b677b 100644 --- a/OsmAnd/src/net/osmand/plus/routing/data/AnnounceTimeDistances.java +++ b/OsmAnd/src/net/osmand/plus/routing/data/AnnounceTimeDistances.java @@ -1,7 +1,13 @@ package net.osmand.plus.routing.data; +import android.graphics.Typeface; +import android.text.Spannable; +import android.text.SpannableStringBuilder; +import android.text.style.StyleSpan; + import net.osmand.Location; import net.osmand.plus.OsmandApplication; +import net.osmand.plus.R; import net.osmand.plus.settings.backend.ApplicationMode; import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.plus.voice.AbstractPrologCommandPlayer; @@ -42,6 +48,10 @@ public class AnnounceTimeDistances { private int LONG_ALARM_ANNOUNCE_RADIUS; private int SHORT_ALARM_ANNOUNCE_RADIUS; + private String format; + private String meter; + private String second; + public AnnounceTimeDistances(ApplicationMode appMode, OsmandSettings settings) { if (appMode.isDerivedRoutingFrom(ApplicationMode.CAR)) { // keep it as minimum 30 km/h for voice announcement @@ -51,6 +61,7 @@ public class AnnounceTimeDistances { DEFAULT_SPEED = (float) Math.max(0.3, appMode.getDefaultSpeed()); } + // 300 s: car 3750 m (113 s @ 120 km/h) PREPARE_LONG_DISTANCE = (int) (DEFAULT_SPEED * 300); // 250 s: car 3125 m (94 s @ 120 km/h) @@ -79,28 +90,7 @@ public class AnnounceTimeDistances { } float ARRIVAL_DISTANCE_FACTOR = Math.max(settings.ARRIVAL_DISTANCE_FACTOR.getModeValue(appMode), 0.1f); - - // Turn now: 3.5 s normal speed, 7 s for half speed (default) - // float TURN_NOW_TIME = 7; - // ** #8749 to keep 1m / 1 sec precision (POSITIONING_TOLERANCE = 12 m) - // car 50 km/h - 7 s, bicycle 10 km/h - 3 s, pedestrian 4 km/h - 2 s, 1 km/h - 1 s - float TURN_NOW_TIME = (float) Math.min(Math.sqrt(DEFAULT_SPEED * 3.6), 8); - - // 3.6 s: car 45 m, bicycle 10 m -> 12 m, pedestrian 4 m -> 12 m (capped by POSITIONING_TOLERANCE) - TURN_NOW_DISTANCE = (int) (Math.max(POSITIONING_TOLERANCE, DEFAULT_SPEED * 3.6) * ARRIVAL_DISTANCE_FACTOR); - TURN_NOW_SPEED = TURN_NOW_DISTANCE / TURN_NOW_TIME; - - // 5 s: car 63 m, bicycle 14 m, pedestrian 6 m -> 12 m (capped by POSITIONING_TOLERANCE) - ARRIVAL_DISTANCE = (int) (Math.max(POSITIONING_TOLERANCE, DEFAULT_SPEED * 5.) * ARRIVAL_DISTANCE_FACTOR); - - // 20 s: car 250 m, bicycle 56 m, pedestrian 22 m - OFF_ROUTE_DISTANCE = DEFAULT_SPEED * 20 * ARRIVAL_DISTANCE_FACTOR; // 20 seconds - - // assume for backward compatibility speed - 10 m/s - SHORT_ALARM_ANNOUNCE_RADIUS = (int) (7 * DEFAULT_SPEED * ARRIVAL_DISTANCE_FACTOR); // 70 m - LONG_ALARM_ANNOUNCE_RADIUS = (int) (12 * DEFAULT_SPEED * ARRIVAL_DISTANCE_FACTOR); // 120 m - SHORT_PNT_ANNOUNCE_RADIUS = (int) (15 * DEFAULT_SPEED * ARRIVAL_DISTANCE_FACTOR); // 150 m - LONG_PNT_ANNOUNCE_RADIUS = (int) (60 * DEFAULT_SPEED * ARRIVAL_DISTANCE_FACTOR); // 600 m + setArrivalDistances(ARRIVAL_DISTANCE_FACTOR); // Trigger close prompts earlier to allow BT SCO link being established, or when VOICE_PROMPT_DELAY is set >0 for the other stream types int ams = settings.AUDIO_MANAGER_STREAM.getModeValue(appMode); @@ -111,6 +101,31 @@ public class AnnounceTimeDistances { } } + public void setArrivalDistances(float arrivalDistanceFactor) { + arrivalDistanceFactor = Math.max(arrivalDistanceFactor, 0.1f); + // Turn now: 3.5 s normal speed, 7 s for half speed (default) + // float TURN_NOW_TIME = 7; + // ** #8749 to keep 1m / 1 sec precision (POSITIONING_TOLERANCE = 12 m) + // car 50 km/h - 7 s, bicycle 10 km/h - 3 s, pedestrian 4 km/h - 2 s, 1 km/h - 1 s + float TURN_NOW_TIME = (float) Math.min(Math.sqrt(DEFAULT_SPEED * 3.6), 8); + + // 3.6 s: car 45 m, bicycle 10 m -> 12 m, pedestrian 4 m -> 12 m (capped by POSITIONING_TOLERANCE) + TURN_NOW_DISTANCE = (int) (Math.max(POSITIONING_TOLERANCE, DEFAULT_SPEED * 3.6) * arrivalDistanceFactor); + TURN_NOW_SPEED = TURN_NOW_DISTANCE / TURN_NOW_TIME; + + // 5 s: car 63 m, bicycle 14 m, pedestrian 6 m -> 12 m (capped by POSITIONING_TOLERANCE) + ARRIVAL_DISTANCE = (int) (Math.max(POSITIONING_TOLERANCE, DEFAULT_SPEED * 5.) * arrivalDistanceFactor); + + // 20 s: car 250 m, bicycle 56 m, pedestrian 22 m + OFF_ROUTE_DISTANCE = DEFAULT_SPEED * 20 * arrivalDistanceFactor; // 20 seconds + + // assume for backward compatibility speed - 10 m/s + SHORT_ALARM_ANNOUNCE_RADIUS = (int) (7 * DEFAULT_SPEED * arrivalDistanceFactor); // 70 m + LONG_ALARM_ANNOUNCE_RADIUS = (int) (12 * DEFAULT_SPEED * arrivalDistanceFactor); // 120 m + SHORT_PNT_ANNOUNCE_RADIUS = (int) (15 * DEFAULT_SPEED * arrivalDistanceFactor); // 150 m + LONG_PNT_ANNOUNCE_RADIUS = (int) (60 * DEFAULT_SPEED * arrivalDistanceFactor); // 600 m + } + public int getImminentTurnStatus(float dist, Location loc) { float speed = getSpeed(loc); if (isTurnStateActive(speed, dist, STATE_TURN_NOW)) { @@ -199,38 +214,90 @@ public class AnnounceTimeDistances { return (int) (dist - voicePromptDelayTimeSec * speed); } - private void appendTurnDesc(StringBuilder s, String name, int dist) { - appendTurnDesc(s, name, dist, DEFAULT_SPEED); + public Spannable getIntervalsDescription(OsmandApplication app) { + format = "\n%s: %d - %d %s, %d %s."; + meter = app.getString(R.string.m); + second = app.getString(R.string.shared_string_sec); + + String turn = app.getString(R.string.announcement_time_turn); + String arrive = app.getString(R.string.announcement_time_arrive); + String offRoute = app.getString(R.string.announcement_time_off_route); + String traffic = "\n" + app.getString(R.string.way_alarms); + String point = "\n" + String.format( + "%s / %s / %s", app.getString(R.string.shared_string_waypoint), + app.getString(R.string.favorite), app.getString(R.string.poi) + ); + + String prepare = " • " + app.getString(R.string.announcement_time_prepare); + String longPrepare = " • " + app.getString(R.string.announcement_time_prepare_long); + String approach = " • " + app.getString(R.string.announcement_time_approach); + String passing = " • " + app.getString(R.string.announcement_time_passing); + + SpannableStringBuilder builder = new SpannableStringBuilder(); + + // Turn + builder.append(turn); + makeBold(builder, turn); + if (PREPARE_DISTANCE_END <= PREPARE_DISTANCE) { + appendDescr(builder, prepare, PREPARE_DISTANCE);; + } + if (PREPARE_LONG_DISTANCE_END <= PREPARE_LONG_DISTANCE) { + appendDescr(builder, longPrepare, PREPARE_LONG_DISTANCE); + } + appendDescr(builder, approach, TURN_IN_DISTANCE); + appendDescr(builder, passing, TURN_NOW_DISTANCE, TURN_NOW_SPEED); + + // Arrive at destination + appendDescr(builder, arrive, (int) (getArrivalDistance())); + makeBoldFormatted(builder, arrive); + + // Off-route + if (getOffRouteDistance() > 0) { + appendDescr(builder, offRoute, (int) getOffRouteDistance()); + makeBoldFormatted(builder, offRoute); + } + + // Traffic warnings + builder.append(traffic); + makeBold(builder, traffic); + appendDescr(builder, approach, LONG_ALARM_ANNOUNCE_RADIUS); + appendDescr(builder, passing, SHORT_ALARM_ANNOUNCE_RADIUS); + + // Waypoint / Favorite / POI + builder.append(point); + makeBold(builder, point); + appendDescr(builder, approach, LONG_PNT_ANNOUNCE_RADIUS); + appendDescr(builder, passing, SHORT_PNT_ANNOUNCE_RADIUS); + + return builder; } - private void appendTurnDesc(StringBuilder s, String name, int dist, float speed) { + private void appendDescr(SpannableStringBuilder b, String word, int dist) { + appendDescr(b, word, dist, DEFAULT_SPEED); + } + + private void appendDescr(SpannableStringBuilder b, String word, int dist, float speed) { int minDist = (dist / 5) * 5; int time = (int) (dist / speed); if(time > 15) { // round to 5 time = (time / 5) * 5; } - s.append(String.format("%s: %d - %d m, %d sec\n", name, minDist, minDist + 5, time)); + b.append(String.format(format, word, minDist, minDist + 5, meter, time, second)); } - public String getTurnsDescription() { - StringBuilder turnDescriptions = new StringBuilder(); - appendTurnDesc(turnDescriptions, "Turn (now)", TURN_NOW_DISTANCE, TURN_NOW_SPEED); - appendTurnDesc(turnDescriptions, "Turn (approach)", TURN_IN_DISTANCE); - if (PREPARE_DISTANCE_END <= PREPARE_DISTANCE) { - appendTurnDesc(turnDescriptions, "Turn (prepare)", PREPARE_DISTANCE); - } - if (PREPARE_LONG_DISTANCE_END <= PREPARE_LONG_DISTANCE) { - appendTurnDesc(turnDescriptions, "Turn (early prepare)", PREPARE_LONG_DISTANCE); - } - appendTurnDesc(turnDescriptions, "Arrival", (int) getArrivalDistance()); - if (getOffRouteDistance() > 0) { - appendTurnDesc(turnDescriptions, "Off-route", (int) getOffRouteDistance()); - } - appendTurnDesc(turnDescriptions, "Alarm (close)", SHORT_ALARM_ANNOUNCE_RADIUS); - appendTurnDesc(turnDescriptions, "Alarm (standard)", LONG_ALARM_ANNOUNCE_RADIUS); - appendTurnDesc(turnDescriptions, "Waypoint / fav / POI (passing)", SHORT_PNT_ANNOUNCE_RADIUS); - appendTurnDesc(turnDescriptions, "Waypoint / fav / POI (approaching)", LONG_PNT_ANNOUNCE_RADIUS); - return turnDescriptions.toString(); + private void makeBold(SpannableStringBuilder b, String word) { + int end = b.length(); + int start = end - word.length(); + b.setSpan(new StyleSpan(Typeface.BOLD), start, end, + SpannableStringBuilder.SPAN_EXCLUSIVE_EXCLUSIVE); } + + private void makeBoldFormatted(SpannableStringBuilder b, String word) { + int start = b.toString().indexOf(word); + int end = start + word.length() + 1; + b.setSpan(new StyleSpan(Typeface.BOLD), start, end, + SpannableStringBuilder.SPAN_EXCLUSIVE_EXCLUSIVE); + } + } diff --git a/OsmAnd/src/net/osmand/plus/settings/bottomsheets/AnnouncementTimeBottomSheet.java b/OsmAnd/src/net/osmand/plus/settings/bottomsheets/AnnouncementTimeBottomSheet.java new file mode 100644 index 0000000000..d7261a2368 --- /dev/null +++ b/OsmAnd/src/net/osmand/plus/settings/bottomsheets/AnnouncementTimeBottomSheet.java @@ -0,0 +1,209 @@ +package net.osmand.plus.settings.bottomsheets; + +import android.os.Bundle; +import android.view.View; +import android.widget.ImageView; +import android.widget.SeekBar; + +import net.osmand.PlatformUtil; +import net.osmand.plus.OsmandApplication; +import net.osmand.plus.R; +import net.osmand.plus.UiUtilities; +import net.osmand.plus.base.bottomsheetmenu.BaseBottomSheetItem; +import net.osmand.plus.routing.data.AnnounceTimeDistances; +import net.osmand.plus.settings.backend.ApplicationMode; +import net.osmand.plus.settings.fragments.OnPreferenceChanged; +import net.osmand.plus.settings.preferences.ListPreferenceEx; +import net.osmand.plus.widgets.TextViewEx; + +import org.apache.commons.logging.Log; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentManager; + + +public class AnnouncementTimeBottomSheet extends BasePreferenceBottomSheet + implements SeekBar.OnSeekBarChangeListener { + + public static final String SELECTED_ENTRY_INDEX_KEY = "selected_entry_index_key"; + public static final String TAG = AnnouncementTimeBottomSheet.class.getSimpleName(); + private static final Log LOG = PlatformUtil.getLog(AnnouncementTimeBottomSheet.class); + + private OsmandApplication app; + + private AnnounceTimeDistances announceTimeDistances; + + private ListPreferenceEx listPreference; + private int selectedEntryIndex = -1; + + private View rootView; + private TextViewEx tvSeekBarLabel; + private SeekBar seekBarArrival; + private ImageView ivArrow; + private TextViewEx tvIntervalsDescr; + + private boolean collapsed = false; + + @Override + public void createMenuItems(Bundle savedInstanceState) { + app = getMyApplication(); + if (app == null) { + return; + } + + announceTimeDistances = new AnnounceTimeDistances(getAppMode(), app.getSettings()); + + listPreference = getListPreference(); + + if (listPreference == null || listPreference.getEntries() == null || + listPreference.getEntryValues() == null) { + return; + } + + if (savedInstanceState != null) { + selectedEntryIndex = savedInstanceState.getInt(SELECTED_ENTRY_INDEX_KEY); + } else { + selectedEntryIndex = listPreference.findIndexOfValue(listPreference.getValue()); + } + + items.add(createBottomSheetItem()); + } + + @Override + public void onResume() { + super.onResume(); + updateViews(); + } + + @Override + public void onSaveInstanceState(Bundle outState) { + super.onSaveInstanceState(outState); + outState.putInt(SELECTED_ENTRY_INDEX_KEY, selectedEntryIndex); + } + + @Override + protected int getDismissButtonTextId() { + return R.string.shared_string_cancel; + } + + @Override + protected int getRightBottomButtonTextId() { + return R.string.shared_string_apply; + } + + @Override + protected void onRightBottomButtonClick() { + Object[] entryValues = listPreference.getEntryValues(); + if (entryValues != null && selectedEntryIndex >= 0) { + Object value = entryValues[selectedEntryIndex]; + if (listPreference.callChangeListener(value)) { + listPreference.setValue(value); + } + Fragment target = getTargetFragment(); + if (target instanceof OnPreferenceChanged) { + ((OnPreferenceChanged) target).onPreferenceChanged(listPreference.getKey()); + } + } + + dismiss(); + } + + @Override + public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { + if (progress != selectedEntryIndex) { + selectedEntryIndex = progress; + updateViews(); + } + } + + @Override + public void onStartTrackingTouch(SeekBar seekBar) { + } + + @Override + public void onStopTrackingTouch(SeekBar seekBar) { + } + + private ListPreferenceEx getListPreference() { + return (ListPreferenceEx) getPreference(); + } + + private BaseBottomSheetItem createBottomSheetItem() { + rootView = UiUtilities.getInflater(getContext(), nightMode) + .inflate(R.layout.bottom_sheet_announcement_time, null); + + tvSeekBarLabel = rootView.findViewById(R.id.tv_seek_bar_label); + seekBarArrival = rootView.findViewById(R.id.seek_bar_arrival); + ivArrow = rootView.findViewById(R.id.iv_arrow); + tvIntervalsDescr = rootView.findViewById(R.id.tv_interval_descr); + + seekBarArrival.setOnSeekBarChangeListener(this); + ivArrow.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + toggleViews(); + } + }); + + setupIvIllustration(); + setDividerColor(); + + return new BaseBottomSheetItem.Builder() + .setCustomView(rootView) + .create(); + } + + private void setupIvIllustration() { + int drawableId = nightMode ? R.drawable.img_help_announcement_time_night + : R.drawable.img_help_announcement_time_day; + + ImageView ivIllustration = rootView.findViewById(R.id.iv_illustration); + ivIllustration.setImageResource(drawableId); + } + + private void setDividerColor() { + int colorId = nightMode ? R.color.divider_color_dark : R.color.divider_color_light; + View divider = rootView.findViewById(R.id.divider); + divider.setBackgroundColor(getResources().getColor(colorId)); + } + + private void updateViews() { + seekBarArrival.setProgress(selectedEntryIndex); + tvSeekBarLabel.setText(listPreference.getEntries()[selectedEntryIndex]); + + float value = (float) listPreference.getEntryValues()[selectedEntryIndex]; + announceTimeDistances.setArrivalDistances(value); + tvIntervalsDescr.setText(announceTimeDistances.getIntervalsDescription(app)); + } + + private void toggleViews() { + int drawableId = collapsed ? R.drawable.ic_action_arrow_down : R.drawable.ic_action_arrow_up; + collapsed = !collapsed; + ivArrow.setImageResource(drawableId); + + if (tvIntervalsDescr.getVisibility() == View.VISIBLE) { + tvIntervalsDescr.setVisibility(View.GONE); + } else { + tvIntervalsDescr.setVisibility(View.VISIBLE); + } + } + + public static void showInstance(@NonNull FragmentManager fm, String prefKey, Fragment target, + @Nullable ApplicationMode appMode) { + try { + if (!fm.isStateSaved()) { + Bundle args = new Bundle(); + args.putString(PREFERENCE_ID, prefKey); + AnnouncementTimeBottomSheet fragment = new AnnouncementTimeBottomSheet(); + fragment.setArguments(args); + fragment.setAppMode(appMode); + fragment.setTargetFragment(target, 0); + fragment.show(fm, TAG); + } + } catch (RuntimeException e) { + LOG.error("showInstance", e); + } + } +} diff --git a/OsmAnd/src/net/osmand/plus/settings/fragments/VoiceAnnouncesFragment.java b/OsmAnd/src/net/osmand/plus/settings/fragments/VoiceAnnouncesFragment.java index 83cc191a02..18d5d0b713 100644 --- a/OsmAnd/src/net/osmand/plus/settings/fragments/VoiceAnnouncesFragment.java +++ b/OsmAnd/src/net/osmand/plus/settings/fragments/VoiceAnnouncesFragment.java @@ -12,6 +12,7 @@ import android.widget.TextView; import androidx.appcompat.widget.SwitchCompat; import androidx.core.content.ContextCompat; +import androidx.fragment.app.FragmentManager; import androidx.preference.Preference; import androidx.preference.PreferenceViewHolder; import androidx.preference.SwitchPreferenceCompat; @@ -30,6 +31,7 @@ import net.osmand.plus.helpers.enums.MetricsConstants; import net.osmand.plus.routing.data.AnnounceTimeDistances; import net.osmand.plus.settings.backend.ApplicationMode; import net.osmand.plus.settings.backend.OsmandSettings; +import net.osmand.plus.settings.bottomsheets.AnnouncementTimeBottomSheet; import net.osmand.plus.settings.preferences.ListPreferenceEx; import java.util.Set; @@ -42,8 +44,25 @@ public class VoiceAnnouncesFragment extends BaseSettingsFragment implements OnPr public static final String TAG = VoiceAnnouncesFragment.class.getSimpleName(); private static final String MORE_VALUE = "MORE_VALUE"; + private static final String ARRIVAL_DISTANCE_FACTOR = "arrival_distance_factor"; private static final String VOICE_PROMPTS_TIMETABLE = "voice_prompts_timetable"; + @Override + public void onDisplayPreferenceDialog(Preference preference) { + String prefId = preference.getKey(); + + if (prefId.equals(ARRIVAL_DISTANCE_FACTOR)) { + FragmentManager fragmentManager = getFragmentManager(); + if (fragmentManager != null) { + AnnouncementTimeBottomSheet.showInstance( + fragmentManager, preference.getKey(), this, getSelectedAppMode() + ); + } + } else { + super.onDisplayPreferenceDialog(preference); + } + } + @Override protected void createToolbar(LayoutInflater inflater, View view) { super.createToolbar(inflater, view); @@ -110,13 +129,14 @@ public class VoiceAnnouncesFragment extends BaseSettingsFragment implements OnPr private void updateVoicePromptsTimes() { Preference pref = findPreference(VOICE_PROMPTS_TIMETABLE); - if (OsmandPlugin.isDevelopment()) { - AnnounceTimeDistances atd = new AnnounceTimeDistances(getSelectedAppMode(), settings); - pref.setSummary(atd.getTurnsDescription().trim()); - pref.setVisible(true); - } else { - pref.setVisible(false); - } +// if (OsmandPlugin.isDevelopment()) { +// AnnounceTimeDistances atd = new AnnounceTimeDistances(getSelectedAppMode(), settings); +// pref.setSummary(atd.getTurnsDescription().trim()); +// pref.setVisible(true); +// } else { +// pref.setVisible(false); +// } + pref.setVisible(false); } private void setupSpeedLimitExceedPref() { From 7a279eae76785bc83bd94a613f57c02b3b9a173f Mon Sep 17 00:00:00 2001 From: cepprice Date: Thu, 14 Jan 2021 19:06:03 +0500 Subject: [PATCH 018/173] Remove unneeded code --- OsmAnd/res/xml/voice_announces.xml | 6 ------ .../fragments/VoiceAnnouncesFragment.java | 21 ------------------- 2 files changed, 27 deletions(-) diff --git a/OsmAnd/res/xml/voice_announces.xml b/OsmAnd/res/xml/voice_announces.xml index 154574399c..df7d47b8c3 100644 --- a/OsmAnd/res/xml/voice_announces.xml +++ b/OsmAnd/res/xml/voice_announces.xml @@ -91,12 +91,6 @@ android:layout="@layout/preference_with_descr" android:title="@string/arrival_distance" /> - - diff --git a/OsmAnd/src/net/osmand/plus/settings/fragments/VoiceAnnouncesFragment.java b/OsmAnd/src/net/osmand/plus/settings/fragments/VoiceAnnouncesFragment.java index 18d5d0b713..c72c946313 100644 --- a/OsmAnd/src/net/osmand/plus/settings/fragments/VoiceAnnouncesFragment.java +++ b/OsmAnd/src/net/osmand/plus/settings/fragments/VoiceAnnouncesFragment.java @@ -18,7 +18,6 @@ import androidx.preference.PreferenceViewHolder; import androidx.preference.SwitchPreferenceCompat; import net.osmand.AndroidUtils; -import net.osmand.plus.OsmandPlugin; import net.osmand.plus.R; import net.osmand.plus.UiUtilities; import net.osmand.plus.Version; @@ -28,7 +27,6 @@ import net.osmand.plus.download.DownloadActivity; import net.osmand.plus.download.DownloadActivityType; import net.osmand.plus.helpers.FileNameTranslationHelper; import net.osmand.plus.helpers.enums.MetricsConstants; -import net.osmand.plus.routing.data.AnnounceTimeDistances; import net.osmand.plus.settings.backend.ApplicationMode; import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.plus.settings.bottomsheets.AnnouncementTimeBottomSheet; @@ -45,7 +43,6 @@ public class VoiceAnnouncesFragment extends BaseSettingsFragment implements OnPr private static final String MORE_VALUE = "MORE_VALUE"; private static final String ARRIVAL_DISTANCE_FACTOR = "arrival_distance_factor"; - private static final String VOICE_PROMPTS_TIMETABLE = "voice_prompts_timetable"; @Override public void onDisplayPreferenceDialog(Preference preference) { @@ -115,7 +112,6 @@ public class VoiceAnnouncesFragment extends BaseSettingsFragment implements OnPr setupKeepInformingPref(); setupArrivalAnnouncementPref(); - updateVoicePromptsTimes(); setupVoiceProviderPref(); if (!Version.isBlackberry(app)) { @@ -127,18 +123,6 @@ public class VoiceAnnouncesFragment extends BaseSettingsFragment implements OnPr setupSpeedCamerasAlert(); } - private void updateVoicePromptsTimes() { - Preference pref = findPreference(VOICE_PROMPTS_TIMETABLE); -// if (OsmandPlugin.isDevelopment()) { -// AnnounceTimeDistances atd = new AnnounceTimeDistances(getSelectedAppMode(), settings); -// pref.setSummary(atd.getTurnsDescription().trim()); -// pref.setVisible(true); -// } else { -// pref.setVisible(false); -// } - pref.setVisible(false); - } - private void setupSpeedLimitExceedPref() { //array size must be equal! Float[] valuesKmh = new Float[] {-10f, -7f, -5f, 0f, 5f, 7f, 10f, 15f, 20f}; @@ -294,9 +278,6 @@ public class VoiceAnnouncesFragment extends BaseSettingsFragment implements OnPr settings.SPEAK_SPEED_CAMERA.getId(), false, ApplyQueryType.SNACK_BAR); } } - if (prefId.equals(settings.ARRIVAL_DISTANCE_FACTOR.getId())) { - updateVoicePromptsTimes(); - } if (prefId.equals(settings.AUDIO_MANAGER_STREAM.getId())) { return onConfirmPreferenceChange( settings.AUDIO_MANAGER_STREAM.getId(), newValue, ApplyQueryType.SNACK_BAR); @@ -334,8 +315,6 @@ public class VoiceAnnouncesFragment extends BaseSettingsFragment implements OnPr String prefId = preference.getKey(); if (settings.SPEED_CAMERAS_UNINSTALLED.getId().equals(prefId)) { SpeedCamerasBottomSheet.showInstance(requireActivity().getSupportFragmentManager(), this); - } else if (VOICE_PROMPTS_TIMETABLE.equals(prefId)) { - app.showToastMessage(String.valueOf(preference.getSummary())); } return super.onPreferenceClick(preference); } From 2714a9403b0df2836ba3b2a3c3f866edc9dc595b Mon Sep 17 00:00:00 2001 From: max-klaus Date: Thu, 14 Jan 2021 17:09:54 +0300 Subject: [PATCH 019/173] Revert commented location (activity) for tracker --- .../net/osmand/telegram/TelegramLocationProvider.kt | 11 ++--------- .../src/net/osmand/telegram/TelegramSettings.kt | 9 ++++++++- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/OsmAnd-telegram/src/net/osmand/telegram/TelegramLocationProvider.kt b/OsmAnd-telegram/src/net/osmand/telegram/TelegramLocationProvider.kt index 55c1911caf..babaed984d 100644 --- a/OsmAnd-telegram/src/net/osmand/telegram/TelegramLocationProvider.kt +++ b/OsmAnd-telegram/src/net/osmand/telegram/TelegramLocationProvider.kt @@ -87,13 +87,12 @@ class TelegramLocationProvider(private val app: TelegramApplication) : SensorEve @SuppressLint("MissingPermission") fun resumeAllUpdates() { - /* val service = app.getSystemService(Context.LOCATION_SERVICE) as LocationManager if (app.isInternetConnectionAvailable) { if (System.currentTimeMillis() - agpsDataLastTimeDownloaded > AGPS_TO_REDOWNLOAD) { //force an updated check for internet connectivity here before destroying A-GPS-data if (app.isInternetConnectionAvailable(true)) { - redownloadAGPS() + //redownloadAGPS() } } } @@ -135,12 +134,11 @@ class TelegramLocationProvider(private val app: TelegramApplication) : SensorEve } } - */ + registerOrUnregisterCompassListener(true) } private fun redownloadAGPS() { - /* try { val service = app.getSystemService(Context.LOCATION_SERVICE) as LocationManager service.sendExtraCommand(LocationManager.GPS_PROVIDER, "delete_aiding_data", null) @@ -152,7 +150,6 @@ class TelegramLocationProvider(private val app: TelegramApplication) : SensorEve agpsDataLastTimeDownloaded = 0L e.printStackTrace() } - */ } private fun getGpsStatusListener(service: LocationManager): GpsStatus.Listener { @@ -219,7 +216,6 @@ class TelegramLocationProvider(private val app: TelegramApplication) : SensorEve @Synchronized fun registerOrUnregisterCompassListener(register: Boolean) { - /* if (sensorRegistered && !register) { Log.d(PlatformUtil.TAG, "Disable sensor") //$NON-NLS-1$ (app.getSystemService(Context.SENSOR_SERVICE) as SensorManager).unregisterListener(this) @@ -260,7 +256,6 @@ class TelegramLocationProvider(private val app: TelegramApplication) : SensorEve } sensorRegistered = true } - */ } override fun onAccuracyChanged(sensor: Sensor, accuracy: Int) {} @@ -394,14 +389,12 @@ class TelegramLocationProvider(private val app: TelegramApplication) : SensorEve } private fun stopLocationRequests() { - /* val service = app.getSystemService(Context.LOCATION_SERVICE) as LocationManager service.removeGpsStatusListener(gpsStatusListener) service.removeUpdates(gpsListener) while (!networkListeners.isEmpty()) { service.removeUpdates(networkListeners.poll()) } - */ } fun pauseAllUpdates() { diff --git a/OsmAnd-telegram/src/net/osmand/telegram/TelegramSettings.kt b/OsmAnd-telegram/src/net/osmand/telegram/TelegramSettings.kt index bece18b8f4..ae6805fae9 100644 --- a/OsmAnd-telegram/src/net/osmand/telegram/TelegramSettings.kt +++ b/OsmAnd-telegram/src/net/osmand/telegram/TelegramSettings.kt @@ -505,7 +505,6 @@ class TelegramSettings(private val app: TelegramApplication) { val currentTimeMillis = System.currentTimeMillis() val currentTime = currentTimeMillis / 1000 statusChangeTime = currentTimeMillis - val gpsEnabled = false /* val lm = app.getSystemService(Context.LOCATION_SERVICE) as LocationManager val gpsEnabled = try { @@ -521,6 +520,14 @@ class TelegramSettings(private val app: TelegramApplication) { false } */ + val gpsEnabled = try { + val loc = app.locationProvider.lastKnownLocation + val gpsActive = loc != null && ((currentTimeMillis - loc.time) / 1000) < GPS_UPDATE_EXPIRED_TIME + val lastSentLocationExpired = ((currentTimeMillis - app.shareLocationHelper.lastLocationUpdateTime) / 1000) > GPS_UPDATE_EXPIRED_TIME + (gpsActive || !lastSentLocationExpired) + } catch (ex: Exception) { + false + } var initializing = false var sendChatsErrors = false From 583ab5deba8c4723d707fa3afb6b67c160ac17cd Mon Sep 17 00:00:00 2001 From: max-klaus Date: Thu, 14 Jan 2021 17:27:47 +0300 Subject: [PATCH 020/173] Fix concurrency in tracker --- OsmAnd-telegram/src/net/osmand/telegram/ui/MainActivity.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/OsmAnd-telegram/src/net/osmand/telegram/ui/MainActivity.kt b/OsmAnd-telegram/src/net/osmand/telegram/ui/MainActivity.kt index 38535ad886..4026309f63 100644 --- a/OsmAnd-telegram/src/net/osmand/telegram/ui/MainActivity.kt +++ b/OsmAnd-telegram/src/net/osmand/telegram/ui/MainActivity.kt @@ -447,8 +447,10 @@ class MainActivity : AppCompatActivity(), TelegramListener, ActionButtonsListene } private fun runOnUi(action: (() -> Unit)) { - if (!paused) { - runOnUiThread(action) + runOnUiThread { + if (!paused) { + action() + } } } From 250a19c8be67a3afb6f6ae0c79bc265254401dc5 Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Thu, 14 Jan 2021 17:20:36 +0200 Subject: [PATCH 021/173] Fix multiple substitutions specified --- OsmAnd/res/values-ar/strings.xml | 4 ++-- OsmAnd/res/values-be/strings.xml | 4 ++-- OsmAnd/res/values-ca/strings.xml | 4 ++-- OsmAnd/res/values-cs/strings.xml | 4 ++-- OsmAnd/res/values-da/strings.xml | 4 ++-- OsmAnd/res/values-de/strings.xml | 4 ++-- OsmAnd/res/values-el/strings.xml | 4 ++-- OsmAnd/res/values-eo/strings.xml | 4 ++-- OsmAnd/res/values-es-rAR/strings.xml | 4 ++-- OsmAnd/res/values-es-rUS/strings.xml | 3 +-- OsmAnd/res/values-es/strings.xml | 4 ++-- OsmAnd/res/values-et/strings.xml | 3 +-- OsmAnd/res/values-eu/strings.xml | 3 +-- OsmAnd/res/values-fa/strings.xml | 4 ++-- OsmAnd/res/values-fr/strings.xml | 3 +-- OsmAnd/res/values-gl/strings.xml | 3 +-- OsmAnd/res/values-hu/strings.xml | 3 +-- OsmAnd/res/values-is/strings.xml | 3 +-- OsmAnd/res/values-it/strings.xml | 3 +-- OsmAnd/res/values-iw/strings.xml | 6 +++--- OsmAnd/res/values-ja/strings.xml | 3 +-- OsmAnd/res/values-lv/strings.xml | 3 +-- OsmAnd/res/values-nb/strings.xml | 3 +-- OsmAnd/res/values-nl/strings.xml | 3 +-- OsmAnd/res/values-pl/strings.xml | 3 +-- OsmAnd/res/values-pt-rBR/strings.xml | 3 +-- OsmAnd/res/values-pt/strings.xml | 3 +-- OsmAnd/res/values-ru/strings.xml | 3 +-- OsmAnd/res/values-sc/strings.xml | 3 +-- OsmAnd/res/values-sk/strings.xml | 3 +-- OsmAnd/res/values-sl/strings.xml | 4 ++-- OsmAnd/res/values-sr/strings.xml | 4 ++-- OsmAnd/res/values-tr/strings.xml | 3 +-- OsmAnd/res/values-uk/strings.xml | 3 +-- OsmAnd/res/values-zh-rTW/strings.xml | 3 +-- OsmAnd/res/values/strings.xml | 2 +- 36 files changed, 51 insertions(+), 72 deletions(-) diff --git a/OsmAnd/res/values-ar/strings.xml b/OsmAnd/res/values-ar/strings.xml index 7da14706cc..dde2170ad0 100644 --- a/OsmAnd/res/values-ar/strings.xml +++ b/OsmAnd/res/values-ar/strings.xml @@ -3357,8 +3357,8 @@ لوحة المفاتيح وندرلينك ببغاء - المسار: المسافة%s، وقت التوجيه %s. -\nالحساب: %.1f ث، %d طريق، %d تجانب) + المسار: المسافة%2$s، وقت التوجيه %1$s. +\nالحساب: %3$.1f ث، %4$d طريق، %5$d تجانب) الأوكيتانية ثم %1$s تطبيق فقط على \"%1$s\" diff --git a/OsmAnd/res/values-be/strings.xml b/OsmAnd/res/values-be/strings.xml index cd41fe3d60..37f6301b80 100644 --- a/OsmAnd/res/values-be/strings.xml +++ b/OsmAnd/res/values-be/strings.xml @@ -3281,8 +3281,8 @@ \n Абуджаць на паваротах Дом на колах - Маршрут: адлегласць %s, час навігацыі %s -\nРазлік: %.1f с, %d дарог, %d фрагментаў) + Маршрут: адлегласць %1$s, час навігацыі %2$s +\nРазлік: %3$.1f с, %4$d дарог, %5$d фрагментаў) Аксітанская Пікап Паказваць мапу падчас навігацыі на заблакаваным экране. diff --git a/OsmAnd/res/values-ca/strings.xml b/OsmAnd/res/values-ca/strings.xml index 9a28473286..59f7302183 100644 --- a/OsmAnd/res/values-ca/strings.xml +++ b/OsmAnd/res/values-ca/strings.xml @@ -3195,8 +3195,8 @@ Per defecte Occità Camioneta descoberta - Ruta: distància %s, durada %s -\nCàlcul: %.1f s, %d vies, %d tessel·les) + Ruta: distància %1$s, durada %2$s +\nCàlcul: %3$.1f s, %4$d vies, %5$d tessel·les) Dia Dies Dies diff --git a/OsmAnd/res/values-cs/strings.xml b/OsmAnd/res/values-cs/strings.xml index 593c4d3bc9..7baa8f0ca5 100644 --- a/OsmAnd/res/values-cs/strings.xml +++ b/OsmAnd/res/values-cs/strings.xml @@ -3157,8 +3157,8 @@ Zobrazit oblasti s nízkými emisemi Zohlednit dočasná omezení Výchozí - Trasa: vzdálenost %s, potřebný čas %s -\nVýpočet: %.1f sekund, %d cest, %d dlaždic) + Trasa: vzdálenost %1$s, potřebný čas %2$s +\nVýpočet: %3$.1f sekund, %4$d cest, %5$d dlaždic) Okcitánsky Dodávkové auto Pickup auto diff --git a/OsmAnd/res/values-da/strings.xml b/OsmAnd/res/values-da/strings.xml index ae3dc5adaf..e2b52efba2 100644 --- a/OsmAnd/res/values-da/strings.xml +++ b/OsmAnd/res/values-da/strings.xml @@ -3193,8 +3193,8 @@ Vis Miljøzoner Overvej midlertidige begrænsninger Standard - Rute: afstand %s, rute tid %s -\nBeregning: %.1f s., %d veje, %d fliser + Rute: afstand %1$s, rute tid %2$s +\nBeregning: %3$.1f s., %4$d veje, %5$d fliser Occitansk Vogn Pickup diff --git a/OsmAnd/res/values-de/strings.xml b/OsmAnd/res/values-de/strings.xml index 786bc89b7b..15f114dbff 100644 --- a/OsmAnd/res/values-de/strings.xml +++ b/OsmAnd/res/values-de/strings.xml @@ -3201,8 +3201,8 @@ Okzitanisch Wagen Kleintransporter - Route: Entfernung %s, Fahrzeit %s -\nBerechnung: %.1f Sek., %d Straßen, %d Kacheln) + Route: Entfernung %1$s, Fahrzeit %2$s +\nBerechnung: %3$.1f Sek., %4$d Straßen, %5$d Kacheln) Tag Tage Tage diff --git a/OsmAnd/res/values-el/strings.xml b/OsmAnd/res/values-el/strings.xml index 780a4d0fef..0e536c6e0f 100644 --- a/OsmAnd/res/values-el/strings.xml +++ b/OsmAnd/res/values-el/strings.xml @@ -3212,8 +3212,8 @@ Πληκτρολόγιο WunderLINQ Parrot - Διαδρομή: απόσταση %s, χρόνος δρομολογητή %s -\nΥπολογισμός: %.1f sec, %d δρόμοι, %d πλακάκια) + Διαδρομή: απόσταση %1$s, χρόνος δρομολογητή %2$s +\nΥπολογισμός: %3$.1f sec, %4$d δρόμοι, %5$d πλακάκια) Οξιτανικά Οικογενειακό αυτοκίνητο Αποκτήστε το %1$d %2$s με έκπτωση %3$s. diff --git a/OsmAnd/res/values-eo/strings.xml b/OsmAnd/res/values-eo/strings.xml index 0509e0d3fd..e67059c5ec 100644 --- a/OsmAnd/res/values-eo/strings.xml +++ b/OsmAnd/res/values-eo/strings.xml @@ -3185,8 +3185,8 @@ Zonoj de restrikta emisio (LEZ) Konsideri portempajn limigojn Implicita - Kurso: distanco %s, tempo: %s -\n(kalkulita en %.1f s, %d vojoj, %d kaheloj) + Kurso: distanco %1$s, tempo: %2$s +\n(kalkulita en %3$.1f s, %4$d vojoj, %5$d kaheloj) Okcitana Aŭto (kombino) Aŭto (pickup) diff --git a/OsmAnd/res/values-es-rAR/strings.xml b/OsmAnd/res/values-es-rAR/strings.xml index 610cf4435a..f32ebd1112 100644 --- a/OsmAnd/res/values-es-rAR/strings.xml +++ b/OsmAnd/res/values-es-rAR/strings.xml @@ -3190,8 +3190,8 @@ Mostrar zonas de baja emisión Considerar limitaciones temporales Predefinido - Ruta: distancia %s, tiempo de navegación %s -\nCálculo: %.1f seg, %d carreteras, %d teselas) + Ruta: distancia %1$s, tiempo de navegación %2$s +\nCálculo: %3$.1f seg, %4$d carreteras, %5$d teselas) Occitano Vagón Camioneta diff --git a/OsmAnd/res/values-es-rUS/strings.xml b/OsmAnd/res/values-es-rUS/strings.xml index 783a216b59..fc3849dba3 100644 --- a/OsmAnd/res/values-es-rUS/strings.xml +++ b/OsmAnd/res/values-es-rUS/strings.xml @@ -3190,8 +3190,7 @@ Mostrar zonas de baja emisión Considerar limitaciones temporales Predefinido - Ruta: distancia %s, tiempo de navegación %s -\nCálculo: %.1f seg, %d carreteras, %d teselas) + Ruta: distancia %1$s, tiempo de navegación %2$s \nCálculo: %3$.1f seg, %4$d carreteras, %5$d teselas) Occitano Vagón Camioneta diff --git a/OsmAnd/res/values-es/strings.xml b/OsmAnd/res/values-es/strings.xml index ae61a43fae..e136c52e8c 100644 --- a/OsmAnd/res/values-es/strings.xml +++ b/OsmAnd/res/values-es/strings.xml @@ -3185,8 +3185,8 @@ Unir espacios Predefinido Campista - Ruta: distancia %s, tiempo de navegación %s -\nCálculo: %.1f seg, %d carreteras, %d teselas) + Ruta: distancia %1$s, tiempo de navegación %2$s +\nCálculo: %3$.1f seg, %4$d carreteras, %5$d teselas) Occitano Vagón Camioneta diff --git a/OsmAnd/res/values-et/strings.xml b/OsmAnd/res/values-et/strings.xml index 9a77791b43..2fe91a014a 100644 --- a/OsmAnd/res/values-et/strings.xml +++ b/OsmAnd/res/values-et/strings.xml @@ -3331,8 +3331,7 @@ Klassikalises stiilis hooldatud marsruudid ainult ilma uisuradadeta. See hõlmab väiksema mootorsaaniga hooldatud marsruute ja suusatajate käsitsi tehtud radu. Eelistatud raskusaste Eelista selle raskusastmega marsruute, ehkki lühema marsruudi korral võib siiski esineda nii raskemaid kui lihtsamaid lõike. - Teekond: vahemaa %s, marsruuteri aeg %s -\nArvutamine: %.1f sek, %d teed, %d paani) + Teekond: vahemaa %1$s, marsruuteri aeg %2$s \nArvutamine: %3$.1f sek, %4$d teed, %5$d paani) Vajutades nupul %1$s kaovad kõik muudatused. Lähtesta kõik profiiliseaded paigaldusjärgsesse olekusse. Kas asendame kõik profiiliseaded vaikeväärtustega\? diff --git a/OsmAnd/res/values-eu/strings.xml b/OsmAnd/res/values-eu/strings.xml index e1a7e107c2..91832c2257 100644 --- a/OsmAnd/res/values-eu/strings.xml +++ b/OsmAnd/res/values-eu/strings.xml @@ -3176,8 +3176,7 @@ Area honi dagokio: %1$s x %2$s \n • Arazo konponketa gehiago \n \n - Ibilbidea: distantzia %s, iraupena %s -\nKalkulua: %.1f s, %d errepide, %d lauza) + Ibilbidea: distantzia %1$s, iraupena %2$s \nKalkulua: %3$.1f s, %4$d errepide, %5$d lauza) Okzitaniera Bagoia Egun diff --git a/OsmAnd/res/values-fa/strings.xml b/OsmAnd/res/values-fa/strings.xml index 7b7362011a..0aef353802 100644 --- a/OsmAnd/res/values-fa/strings.xml +++ b/OsmAnd/res/values-fa/strings.xml @@ -3200,8 +3200,8 @@ صفحه‌کلید WunderLINQ Parrot - مسیر: مسافت %s، زمان مسیریاب %s -\nمحاسبه: %.1f ثانیه، %d جاده، %d کاشی) + مسیر: مسافت %2$s، زمان مسیریاب %1$s +\nمحاسبه: %3$.1f ثانیه، %4$d جاده، %5$d کاشی) اُکسیتان روز هفته diff --git a/OsmAnd/res/values-fr/strings.xml b/OsmAnd/res/values-fr/strings.xml index ed159ba3d4..41c9ad04de 100644 --- a/OsmAnd/res/values-fr/strings.xml +++ b/OsmAnd/res/values-fr/strings.xml @@ -3166,8 +3166,7 @@ Camping-car Afficher les zones à faible émission sur la carte (n\'influe pas sur le calcul d\'itinéraire). Afficher les zones à faibles émissions - Itinéraire : distance %s, durée %s -\nCalculs : %.1f secondes, %d routes, %d tuiles) + Itinéraire : distance %1$s, durée %2$s \nCalculs : %3$.1f secondes, %4$d routes, %5$d tuiles) Occitan Wagon Camionnette diff --git a/OsmAnd/res/values-gl/strings.xml b/OsmAnd/res/values-gl/strings.xml index 2b37db8ab3..873d314503 100644 --- a/OsmAnd/res/values-gl/strings.xml +++ b/OsmAnd/res/values-gl/strings.xml @@ -3207,8 +3207,7 @@ Lon %2$s Amosar zonas de baixas emisións Considerar limitacións temporais Predefinido - Rota: distancia %s, tempo de navegación %s -\nCálculo: %.1f seg, %d estradas, %d teselas) + Rota: distancia %1$s, tempo de navegación %2$s \nCálculo: %3$.1f seg, %4$d estradas, %5$d teselas) Occitano Vagón Camioneta (pickup) diff --git a/OsmAnd/res/values-hu/strings.xml b/OsmAnd/res/values-hu/strings.xml index 4aa49b1705..0ba92c6364 100644 --- a/OsmAnd/res/values-hu/strings.xml +++ b/OsmAnd/res/values-hu/strings.xml @@ -3215,8 +3215,7 @@ %1$s, %2$s Személyes %s letöltése - Útvonal: távolság %s, menetidő %s -\nSzámítás: %.1f mp, %d útszakasz, %d csempe + Útvonal: távolság %1$s, menetidő %2$s \nSzámítás: %3$.1f mp, %4$d útszakasz, %5$d csempe Lesikló Sípálya típusa Haladó diff --git a/OsmAnd/res/values-is/strings.xml b/OsmAnd/res/values-is/strings.xml index 62bafea541..2dbeca3b35 100644 --- a/OsmAnd/res/values-is/strings.xml +++ b/OsmAnd/res/values-is/strings.xml @@ -3196,8 +3196,7 @@ Birta svæði með takmörkunum á útblæstri Taka tillit til tímabundinna takmarkana Sjálfgefið - Leið: vegalengd %s, tími leiðsagnar %s -\nÚtreikningur: %.1f sek, %d vegir, %d kortaflísar) + Leið: vegalengd %1$s, tími leiðsagnar %2$s \nÚtreikningur: %3$.1f sek, %4$d vegir, %5$d kortaflísar) Occitanska Dráttarvagn Pallbíll diff --git a/OsmAnd/res/values-it/strings.xml b/OsmAnd/res/values-it/strings.xml index bdf8af6956..0ddb82da8b 100644 --- a/OsmAnd/res/values-it/strings.xml +++ b/OsmAnd/res/values-it/strings.xml @@ -3195,8 +3195,7 @@ Cancella la sottoscrizione %1$s • Risparmi %2$s Permetti solo i percorsi classici - Percorso: distanza %s, durata %s -\nCalcolo: %.1f sec, %d strade, %d mattonelle) + Percorso: distanza %1$s, durata %2$s \nCalcolo: %3$.1f sec, %4$d strade, %5$d mattonelle) Occitano Giorno Giorni diff --git a/OsmAnd/res/values-iw/strings.xml b/OsmAnd/res/values-iw/strings.xml index 905fadb16d..d3fe7756aa 100644 --- a/OsmAnd/res/values-iw/strings.xml +++ b/OsmAnd/res/values-iw/strings.xml @@ -3150,9 +3150,9 @@ גאוקודינג טיול סקי מסלולי טיולי סקי. - מסלול: מרחק %s, זמן מנתב מסלול %s -\nחישוב: %.1f שנ׳, %d מסלולים, %d אריחים) - לאפשר ל־OsmAnd לאסוף ולעבד נתונים אלמוניים בנוגע לשימוש ביישומון. לא נאספים נתונים על המיקום שלך או המקומות בהם צפית במפה. + מסלול: מרחק %2$s, זמן מנתב מסלול %1$s +\nחישוב: %3$.1f שנ׳, %4$d מסלולים, %5$d אריחים) + לאפשר ל־OsmAnd לאסוף ולעבד נתונים אלמוניים בנוגע לשימוש ביישומון. לא נאספים נתונים על המיקום שלך או המקומות בהם צפית במפה. \n \nניתן להגדיר זאת בכל עת דרך ‚הגדרות’ ← ‚פרטיות ואבטחה’. סקי למרחקים ונורדי diff --git a/OsmAnd/res/values-ja/strings.xml b/OsmAnd/res/values-ja/strings.xml index 4de19463c6..7b8bbfa46d 100644 --- a/OsmAnd/res/values-ja/strings.xml +++ b/OsmAnd/res/values-ja/strings.xml @@ -3330,8 +3330,7 @@ POIの更新は利用できません 未舗装道路を優先 ルート検索時に、舗装道路よりも未舗装道路を優先します。 OSM受信者 - ルート: 距離 %s、検索時間 %s -\n検索時間: %.1f秒、道 %d、タイル %d + ルート: 距離 %1$s、検索時間 %2$s \n検索時間: %3$.1f秒、道 %4$d、タイル %5$d %1$s • %2$s 割引 幅制限 ルート上で通行可能な車幅を指定します。 diff --git a/OsmAnd/res/values-lv/strings.xml b/OsmAnd/res/values-lv/strings.xml index 7e38654e34..535629d0e5 100644 --- a/OsmAnd/res/values-lv/strings.xml +++ b/OsmAnd/res/values-lv/strings.xml @@ -3083,8 +3083,7 @@ No Afganistānas līdz Zimbabvei, no Austrālijas līdz ASV, Argentīna, Brazīl Segums Caurbraucamība Stāvums - Maršruts: distance %s, navigācijas laiks %s -\nKopējais: %.1f sek, %d ceļi, %d flīzes) + Maršruts: distance %1$s, navigācijas laiks %2$s \nKopējais: %3$.1f sek, %4$d ceļi, %5$d flīzes) Oksitāņu Wagon Izvairīties no bruģa un bruģakmens diff --git a/OsmAnd/res/values-nb/strings.xml b/OsmAnd/res/values-nb/strings.xml index 6397b5c7d1..5ef62f39c7 100644 --- a/OsmAnd/res/values-nb/strings.xml +++ b/OsmAnd/res/values-nb/strings.xml @@ -3238,8 +3238,7 @@ Annet Delt OSM-redigeringer - Rute: Distanse %s, rutingstid %s -\nUtregning: %.1f sec, %d veier, %d flis) + Rute: Distanse %1$s, rutingstid %2$s \nUtregning: %3$.1f sec, %4$d veier, %5$d flis) Koter og relieffskygge Oppdater alle kart Er du sikker på at du vil oppdatere alle (%1$d) kart\? diff --git a/OsmAnd/res/values-nl/strings.xml b/OsmAnd/res/values-nl/strings.xml index 4313500cc9..3367aad892 100644 --- a/OsmAnd/res/values-nl/strings.xml +++ b/OsmAnd/res/values-nl/strings.xml @@ -3239,8 +3239,7 @@ Wegtype Track openen Verbind onderbrekingen - Route: afstand %s, reistijd %s -\nBerekening: %.1f sec, %d wegen, %d tegels) + Route: afstand %1$s, reistijd %2$s \nBerekening: %3$.1f sec, %4$d wegen, %5$d tegels) Occitaans Stationwagon Pick-up truck diff --git a/OsmAnd/res/values-pl/strings.xml b/OsmAnd/res/values-pl/strings.xml index 9ed8923f81..617cbefcb3 100644 --- a/OsmAnd/res/values-pl/strings.xml +++ b/OsmAnd/res/values-pl/strings.xml @@ -3241,8 +3241,7 @@ Parametry trasy Tworzy, importuje, modyfikuje profile Zarządzaj profilami aplikacji… - Trasa: dystans %s, czas routera %s -\nObliczanie: %.1f sek., %d dróg, %d płytek) + Trasa: dystans %1$s, czas routera %2$s \nObliczanie: %3$.1f sek., %4$d dróg, %5$d płytek) %1$s dla pierwszych %2$s następnie %1$s Otwórz kod lokalizacji diff --git a/OsmAnd/res/values-pt-rBR/strings.xml b/OsmAnd/res/values-pt-rBR/strings.xml index 5348b7283d..ce1e4fe24d 100644 --- a/OsmAnd/res/values-pt-rBR/strings.xml +++ b/OsmAnd/res/values-pt-rBR/strings.xml @@ -3181,8 +3181,7 @@ Mostrar zonas de baixa emissão Considere limitações temporárias Predefinido - Rota: distância %s, tempo do rota %s -\nCálculo: %.1f sec, %d estradas, %d azulejos) + Rota: distância %1$s, tempo do rota %2$s \nCálculo: %3$.1f sec, %4$d estradas, %5$d azulejos) Occitano Vagão Caminhonete diff --git a/OsmAnd/res/values-pt/strings.xml b/OsmAnd/res/values-pt/strings.xml index c6a2cccf6b..d50682dc2f 100644 --- a/OsmAnd/res/values-pt/strings.xml +++ b/OsmAnd/res/values-pt/strings.xml @@ -3186,8 +3186,7 @@ Mostrar zonas de baixa emissão Considerar limitações temporárias Padrão - Rota: distância %s, tempo do roteador %s -\nCálculo: %.1f seg, %d estradas, %d telhas) + Rota: distância %1$s, tempo do roteador %2$s \nCálculo: %3$.1f seg, %4$d estradas, %5$d telhas) Occitano Vagão Caminhonete diff --git a/OsmAnd/res/values-ru/strings.xml b/OsmAnd/res/values-ru/strings.xml index 4af14aab63..784f3e6ba3 100644 --- a/OsmAnd/res/values-ru/strings.xml +++ b/OsmAnd/res/values-ru/strings.xml @@ -3183,8 +3183,7 @@ Трек %s сохранён Зоны с низким уровнем выбросов Учитывать временные ограничения - Маршрут: расстояние %s, время навигации %s -\nРасчёт: %.1f с, %d дорог, %d тайлов) + Маршрут: расстояние %1$s, время навигации %2$s \nРасчёт: %3$.1f с, %4$d дорог, %5$d тайлов) Добавьте хотя бы один элемент в список «Быстрые действия» в настройках Маршруты для горнолыжного туризма. Вне трассы diff --git a/OsmAnd/res/values-sc/strings.xml b/OsmAnd/res/values-sc/strings.xml index 7982e1a5c7..41d8b584bf 100644 --- a/OsmAnd/res/values-sc/strings.xml +++ b/OsmAnd/res/values-sc/strings.xml @@ -3189,8 +3189,7 @@ Predefinidu Liga sas separatziones Camper (RV) - Àndala: distàntzia %s, tempus %s -\nCàrculu: %.1f seg, %d caminos, %d tasseddos) + Àndala: distàntzia %1$s, tempus %2$s \nCàrculu: %3$.1f seg, %4$d caminos, %5$d tasseddos) Otzitanu Vagone pro sas mertzes Camieddu diff --git a/OsmAnd/res/values-sk/strings.xml b/OsmAnd/res/values-sk/strings.xml index 56a700b27b..25ac2b3808 100644 --- a/OsmAnd/res/values-sk/strings.xml +++ b/OsmAnd/res/values-sk/strings.xml @@ -3185,8 +3185,7 @@ Zobraziť Zóny s nízkymi emisiami Zohľadniť dočasné obmedzenia Predvolené - Trasa: vzdialenosť %s, potrebný čas %s -\nVýpočet: %.1f sekúnd, %d ciest, %d dlaždíc) + Trasa: vzdialenosť %1$s, potrebný čas %2$s \nVýpočet: %3$.1f sekúnd, %4$d ciest, %5$d dlaždíc) Okcitánsky Dodávkové auto Pickup auto diff --git a/OsmAnd/res/values-sl/strings.xml b/OsmAnd/res/values-sl/strings.xml index d7ffe7950d..9f9b66e14c 100644 --- a/OsmAnd/res/values-sl/strings.xml +++ b/OsmAnd/res/values-sl/strings.xml @@ -3185,8 +3185,8 @@ Ocena 5 Izbor naprave, kot je privzeta tipkovnica oziroma WunderLINQ kot zunanjo vhodno napravo. Odprta sled - Pot: razdalja %s, čas %s -\nPreračun: %.1f sek, %d poti, %d ploščic) + Pot: razdalja %1$s, čas %2$s +\nPreračun: %3$.1f sek, %4$d poti, %5$d ploščic) Dostave s poltovornjakom Turno in izven urejenih smušišč so neuradne poti in prehodi. Običajno niso teptani in uradno ne vzdrževani in jih ob koncu dneva ne preverja nihče. Vstop na lastno odgovornost. Dostave s kombijem diff --git a/OsmAnd/res/values-sr/strings.xml b/OsmAnd/res/values-sr/strings.xml index 6e7307ece2..85368f3360 100644 --- a/OsmAnd/res/values-sr/strings.xml +++ b/OsmAnd/res/values-sr/strings.xml @@ -3186,8 +3186,8 @@ Путања %s сачувана Спој размаке Подразумевано - Пут: удаљеност %s, време пута %s -\nРачуница: %.1f сек %d пута, %d сличица) + Пут: удаљеност %1$s, време пута %2$s +\nРачуница: %3$.1f сек %4$d пута, %5$d сличица) Окситански Вагон Камион доставе diff --git a/OsmAnd/res/values-tr/strings.xml b/OsmAnd/res/values-tr/strings.xml index 3633266c59..703abcfe61 100644 --- a/OsmAnd/res/values-tr/strings.xml +++ b/OsmAnd/res/values-tr/strings.xml @@ -3218,8 +3218,7 @@ Yüzey Pürüzsüzlük Diklik - Rota: mesafe %s, yönlendirici zamanı %s -\nHesaplama: %.1f sn, %d yol, %d döşeme) + Rota: mesafe %1$s, yönlendirici zamanı %2$s \nHesaplama: %3$.1f sn, %4$d yol, %5$d döşeme) OsmAnd veri dosyaları yeni hedefe taşınsın mı\? \n%1$s > %2$s Klasörün yolunu girin diff --git a/OsmAnd/res/values-uk/strings.xml b/OsmAnd/res/values-uk/strings.xml index a78f27f55d..6ea5339e84 100644 --- a/OsmAnd/res/values-uk/strings.xml +++ b/OsmAnd/res/values-uk/strings.xml @@ -3187,8 +3187,7 @@ Показати зони низьких викидів Враховувати часові обмеження Усталений - Маршрут: відстань %s, час навігації %s -\nРозрахунок: %.1f с, %d доріг, %d тайлів) + Маршрут: відстань %1$s, час навігації %2$s \nРозрахунок: %3$.1f с, %4$d доріг, %5$d тайлів) Окситанська Фургон Пікап diff --git a/OsmAnd/res/values-zh-rTW/strings.xml b/OsmAnd/res/values-zh-rTW/strings.xml index 74513f74f7..9afe549fa8 100644 --- a/OsmAnd/res/values-zh-rTW/strings.xml +++ b/OsmAnd/res/values-zh-rTW/strings.xml @@ -3183,8 +3183,7 @@ 顯示低排放區域 考慮暫時限制 預設 - 路徑:距離 %s,路徑時間 %s -\n計算:%.1f 秒,%d 路,%d 圖磚) + 路徑:距離 %1$s,路徑時間 %2$s \n計算:%3$.1f 秒,%4$d 路,%5$d 圖磚) Occitan 旅行車 皮卡車 diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index 80ed944fcf..8e88fe3ebf 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -3676,7 +3676,7 @@ Could not calculate route. Could not calculate route. The calculated route is empty. - Route: distance %s, router time %s \nCalculation: %.1f sec, %d roads, %d tiles) + Route: distance %1$s, router time %2$s \nCalculation: %3$.1f sec, %4$d roads, %5$d tiles) You have arrived. Invalid coordinates Go back to map From d75134129d4d38c0951a2e7ac558b668b1c3df49 Mon Sep 17 00:00:00 2001 From: Skalii Date: Thu, 14 Jan 2021 18:14:45 +0200 Subject: [PATCH 022/173] Textfields, use profile color as active color; Dismiss bottom sheet --- .../plus/onlinerouting/OnlineRoutingCard.java | 4 + .../OnlineRoutingEngineFragment.java | 80 +++++++++++++++++-- 2 files changed, 79 insertions(+), 5 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/onlinerouting/OnlineRoutingCard.java b/OsmAnd/src/net/osmand/plus/onlinerouting/OnlineRoutingCard.java index b9509fc026..0ac677a4ae 100644 --- a/OsmAnd/src/net/osmand/plus/onlinerouting/OnlineRoutingCard.java +++ b/OsmAnd/src/net/osmand/plus/onlinerouting/OnlineRoutingCard.java @@ -68,6 +68,10 @@ public class OnlineRoutingCard extends BaseCard { bottomDivider = view.findViewById(R.id.bottom_divider); button = view.findViewById(R.id.button); + textFieldBoxes.setPrimaryColor(nightMode + ? view.getContext().getResources().getColor(R.color.active_color_primary_dark) + : view.getContext().getResources().getColor(R.color.active_color_primary_light)); + editText.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { diff --git a/OsmAnd/src/net/osmand/plus/onlinerouting/OnlineRoutingEngineFragment.java b/OsmAnd/src/net/osmand/plus/onlinerouting/OnlineRoutingEngineFragment.java index 457fc2ee17..c34d6541a1 100644 --- a/OsmAnd/src/net/osmand/plus/onlinerouting/OnlineRoutingEngineFragment.java +++ b/OsmAnd/src/net/osmand/plus/onlinerouting/OnlineRoutingEngineFragment.java @@ -1,6 +1,8 @@ package net.osmand.plus.onlinerouting; +import android.app.Activity; import android.content.Context; +import android.content.DialogInterface; import android.os.Build; import android.os.Bundle; import android.view.LayoutInflater; @@ -12,8 +14,10 @@ import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.TextView; +import androidx.activity.OnBackPressedCallback; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.appcompat.app.AlertDialog; import androidx.appcompat.widget.Toolbar; import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentManager; @@ -74,6 +78,7 @@ public class OnlineRoutingEngineFragment extends BaseOsmAndFragment { private ApplicationMode appMode; private OnlineRoutingEngineObject engine; + private OnlineRoutingEngineObject initEngine; private ExampleLocation selectedLocation; private String editedEngineKey; @@ -125,11 +130,20 @@ public class OnlineRoutingEngineFragment extends BaseOsmAndFragment { mapActivity = getMapActivity(); helper = app.getOnlineRoutingHelper(); engine = new OnlineRoutingEngineObject(); + initEngine = new OnlineRoutingEngineObject(); if (savedInstanceState != null) { restoreState(savedInstanceState); } else { initState(); } + requireMyActivity().getOnBackPressedDispatcher().addCallback(this, new OnBackPressedCallback(true) { + public void handleOnBackPressed() { + MapActivity mapActivity = getMapActivity(); + if (mapActivity != null) { + showExitDialog(); + } + } + }); } @Nullable @@ -143,13 +157,14 @@ public class OnlineRoutingEngineFragment extends BaseOsmAndFragment { scrollView = (ViewGroup) segmentsContainer.getParent(); onScroll = new ViewTreeObserver.OnScrollChangedListener() { int pastY = 0; + @Override public void onScrollChanged() { int y = scrollView.getScrollY(); if (pastY != y) { pastY = y; - View vieww = view.findFocus(); - AndroidUtils.hideSoftKeyboard(requireActivity(), vieww); + View focus = view.findFocus(); + AndroidUtils.hideSoftKeyboard(requireActivity(), focus); } } }; @@ -166,6 +181,7 @@ public class OnlineRoutingEngineFragment extends BaseOsmAndFragment { setupExampleCard(); setupResultsContainer(); addSpaceSegment(); + engine.cloneIn(initEngine); setupButtons(); @@ -345,7 +361,7 @@ public class OnlineRoutingEngineFragment extends BaseOsmAndFragment { navigationIcon.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { - dismiss(); + showExitDialog(); } }); TextView title = toolbar.findViewById(R.id.toolbar_title); @@ -415,7 +431,7 @@ public class OnlineRoutingEngineFragment extends BaseOsmAndFragment { cancelButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - dismiss(); + showExitDialog(); } }); @@ -571,10 +587,41 @@ public class OnlineRoutingEngineFragment extends BaseOsmAndFragment { private void dismiss() { FragmentActivity activity = getActivity(); if (activity != null) { - activity.onBackPressed(); + FragmentManager fragmentManager = activity.getSupportFragmentManager(); + if (!fragmentManager.isStateSaved()) { + fragmentManager.popBackStack(); + } } } + public void showExitDialog() { + View focus = view.findFocus(); + AndroidUtils.hideSoftKeyboard(requireMyActivity(), focus); + + if (!engine.equals(initEngine)) { + AlertDialog.Builder dismissDialog = createWarningDialog(getActivity(), + R.string.shared_string_dismiss, R.string.exit_without_saving, R.string.shared_string_cancel); + dismissDialog.setPositiveButton(R.string.shared_string_exit, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dismiss(); + } + }); + dismissDialog.show(); + } else { + dismiss(); + } + } + + private AlertDialog.Builder createWarningDialog(Activity activity, int title, int message, int negButton) { + Context themedContext = UiUtilities.getThemedContext(activity, isNightMode()); + AlertDialog.Builder warningDialog = new AlertDialog.Builder(themedContext); + warningDialog.setTitle(getString(title)); + warningDialog.setMessage(getString(message)); + warningDialog.setNegativeButton(negButton, null); + return warningDialog; + } + private boolean isNightMode() { return !app.getSettings().isLightContentForMode(appMode); } @@ -635,5 +682,28 @@ public class OnlineRoutingEngineFragment extends BaseOsmAndFragment { } return customServerUrl; } + + public void cloneIn(OnlineRoutingEngineObject clone) { + clone.customName = customName; + clone.type = type; + clone.customServerUrl = customServerUrl; + clone.vehicleType = vehicleType; + clone.customVehicleKey = customVehicleKey; + clone.apiKey = apiKey; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) return true; + if (obj == null || getClass() != obj.getClass()) return false; + + OnlineRoutingEngineObject engine = (OnlineRoutingEngineObject) obj; + if (customName != engine.customName) return false; + if (type != engine.type) return false; + if (customServerUrl != engine.customServerUrl) return false; + if (vehicleType != engine.vehicleType) return false; + if (customVehicleKey != engine.customVehicleKey) return false; + return apiKey == engine.apiKey; + } } } From 788543c66b80272cff510bd6eea25ff42547ea77 Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Thu, 14 Jan 2021 18:35:11 +0200 Subject: [PATCH 023/173] Remove string resources without default value --- OsmAnd/res/values-af/strings.xml | 390 +++++--------------- OsmAnd/res/values-ar/phrases.xml | 7 - OsmAnd/res/values-ar/strings.xml | 6 - OsmAnd/res/values-az/phrases.xml | 10 +- OsmAnd/res/values-az/strings.xml | 7 - OsmAnd/res/values-b+ast/strings.xml | 2 - OsmAnd/res/values-b+be+Latn/strings.xml | 71 ---- OsmAnd/res/values-b+hsb/phrases.xml | 3 - OsmAnd/res/values-b+hsb/strings.xml | 3 - OsmAnd/res/values-b+kab/strings.xml | 4 - OsmAnd/res/values-b+sr+Latn/strings.xml | 124 ++----- OsmAnd/res/values-be/phrases.xml | 21 -- OsmAnd/res/values-bg/phrases.xml | 4 - OsmAnd/res/values-bg/strings.xml | 7 - OsmAnd/res/values-bs/strings.xml | 32 +- OsmAnd/res/values-ca/phrases.xml | 16 - OsmAnd/res/values-ca/strings.xml | 90 ----- OsmAnd/res/values-cs/phrases.xml | 21 -- OsmAnd/res/values-cs/strings.xml | 75 ---- OsmAnd/res/values-cy/strings.xml | 77 ++-- OsmAnd/res/values-da/phrases.xml | 29 -- OsmAnd/res/values-da/strings.xml | 83 ----- OsmAnd/res/values-de/phrases.xml | 24 -- OsmAnd/res/values-de/strings.xml | 81 ----- OsmAnd/res/values-el/phrases.xml | 4 - OsmAnd/res/values-el/strings.xml | 78 ---- OsmAnd/res/values-en-rGB/phrases.xml | 40 +-- OsmAnd/res/values-eo/phrases.xml | 14 - OsmAnd/res/values-eo/strings.xml | 82 ----- OsmAnd/res/values-es-rAR/phrases.xml | 28 -- OsmAnd/res/values-es-rAR/strings.xml | 84 ----- OsmAnd/res/values-es-rUS/phrases.xml | 28 -- OsmAnd/res/values-es-rUS/strings.xml | 81 ----- OsmAnd/res/values-es/phrases.xml | 22 -- OsmAnd/res/values-es/strings.xml | 76 ---- OsmAnd/res/values-et/phrases.xml | 3 - OsmAnd/res/values-et/strings.xml | 3 - OsmAnd/res/values-eu/phrases.xml | 10 - OsmAnd/res/values-eu/strings.xml | 86 ----- OsmAnd/res/values-fa/phrases.xml | 5 - OsmAnd/res/values-fa/strings.xml | 85 +---- OsmAnd/res/values-fi/strings.xml | 6 - OsmAnd/res/values-fr/phrases.xml | 22 -- OsmAnd/res/values-fr/strings.xml | 70 ---- OsmAnd/res/values-gl/phrases.xml | 14 - OsmAnd/res/values-gl/strings.xml | 99 +----- OsmAnd/res/values-hr/strings.xml | 1 - OsmAnd/res/values-hu/phrases.xml | 15 - OsmAnd/res/values-hu/strings.xml | 79 ----- OsmAnd/res/values-hy/strings.xml | 41 --- OsmAnd/res/values-id/strings.xml | 12 - OsmAnd/res/values-is/phrases.xml | 6 - OsmAnd/res/values-is/strings.xml | 88 +---- OsmAnd/res/values-it/phrases.xml | 9 - OsmAnd/res/values-it/strings.xml | 88 ----- OsmAnd/res/values-iw/phrases.xml | 3 - OsmAnd/res/values-iw/strings.xml | 83 ----- OsmAnd/res/values-ja/phrases.xml | 12 - OsmAnd/res/values-ja/strings.xml | 74 ---- OsmAnd/res/values-ka/strings.xml | 3 - OsmAnd/res/values-ko/phrases.xml | 142 ++++---- OsmAnd/res/values-ko/strings.xml | 2 - OsmAnd/res/values-ku/strings.xml | 2 - OsmAnd/res/values-lt/phrases.xml | 1 - OsmAnd/res/values-lt/strings.xml | 23 -- OsmAnd/res/values-lv/phrases.xml | 4 - OsmAnd/res/values-lv/strings.xml | 18 - OsmAnd/res/values-ml/phrases.xml | 452 ++++++++++++------------ OsmAnd/res/values-ml/strings.xml | 56 --- OsmAnd/res/values-mr/strings.xml | 1 - OsmAnd/res/values-my/strings.xml | 1 - OsmAnd/res/values-nb/phrases.xml | 2 - OsmAnd/res/values-nb/strings.xml | 83 +---- OsmAnd/res/values-nl/phrases.xml | 14 - OsmAnd/res/values-nl/strings.xml | 44 --- OsmAnd/res/values-nn/strings.xml | 54 +-- OsmAnd/res/values-oc/phrases.xml | 1 - OsmAnd/res/values-oc/strings.xml | 9 - OsmAnd/res/values-pl/phrases.xml | 21 -- OsmAnd/res/values-pl/strings.xml | 88 +---- OsmAnd/res/values-pt-rBR/phrases.xml | 21 -- OsmAnd/res/values-pt-rBR/strings.xml | 83 +---- OsmAnd/res/values-pt/phrases.xml | 6 - OsmAnd/res/values-pt/strings.xml | 83 ----- OsmAnd/res/values-ro/strings.xml | 5 - OsmAnd/res/values-ru/phrases.xml | 9 - OsmAnd/res/values-ru/strings.xml | 80 ----- OsmAnd/res/values-sc/phrases.xml | 17 - OsmAnd/res/values-sc/strings.xml | 81 ----- OsmAnd/res/values-sk/phrases.xml | 20 -- OsmAnd/res/values-sk/strings.xml | 86 ----- OsmAnd/res/values-sl/phrases.xml | 4 - OsmAnd/res/values-sl/strings.xml | 69 ---- OsmAnd/res/values-sq/phrases.xml | 12 +- OsmAnd/res/values-sq/strings.xml | 6 +- OsmAnd/res/values-sr/phrases.xml | 3 - OsmAnd/res/values-sr/strings.xml | 78 ---- OsmAnd/res/values-sv/phrases.xml | 4 - OsmAnd/res/values-sv/strings.xml | 21 -- OsmAnd/res/values-ta/strings.xml | 28 -- OsmAnd/res/values-tr/phrases.xml | 12 - OsmAnd/res/values-tr/strings.xml | 35 -- OsmAnd/res/values-uk/phrases.xml | 9 - OsmAnd/res/values-uk/strings.xml | 78 ---- OsmAnd/res/values-uz/phrases.xml | 9 +- OsmAnd/res/values-vi/strings.xml | 274 ++++---------- OsmAnd/res/values-zh-rCN/strings.xml | 36 -- OsmAnd/res/values-zh-rTW/phrases.xml | 20 -- OsmAnd/res/values-zh-rTW/strings.xml | 83 ----- OsmAnd/res/values/strings.xml | 1 - 110 files changed, 557 insertions(+), 4375 deletions(-) diff --git a/OsmAnd/res/values-af/strings.xml b/OsmAnd/res/values-af/strings.xml index b1a5e4c2f9..c64a87f3da 100644 --- a/OsmAnd/res/values-af/strings.xml +++ b/OsmAnd/res/values-af/strings.xml @@ -2,16 +2,14 @@ Ure Minute Die motor was geparkeer om: - - Gebruik kompas wanneer rigting nie opgemerk is nie + Gebruik kompas wanneer rigting nie opgemerk is nie Gebruik kompas Kies lewendige roete versnelling Toegekende geheue %1$s MB (Android beperking %2$s MB, Dalvik %3$s MB). Toegekende geheue Totale plaaslike geheue toegeken deur toepassing %1$s MB (Dalvik %2$s MB, ander %3$s MB). Proporsionele geheue%4$s MB (Android beperking %5$s MB, Dalvik %6$s MB). Totale plaaslike geheue - - Beginpunt is te ver van die naaste pad. + Beginpunt is te ver van die naaste pad. Gedeelde ligging Verkry die motor vanaf parkering Waarskuwing @@ -39,8 +37,7 @@ Volgbare Privaat SSM - - Verkeersirkel : Neem %1$d uitgang en ry + Verkeersirkel : Neem %1$d uitgang en ry Hou links en ry Hou regs en ry Maak alle area landmerke op die kaart deursigtig @@ -58,12 +55,10 @@ Koordinate Vervoer soektog Gunstelinge soektog - - OsmAnd van-lyn-af navigasie is tydelik nie beskikbaar nie. + OsmAnd van-lyn-af navigasie is tydelik nie beskikbaar nie. Linkerhand bestuur Kies vir gebiede met linkerhand verkeer - - Beginpunt is nog nie bepaal nie + Beginpunt is nog nie bepaal nie Posisie is nog nie bekend nie Verander deursigtigheid (0 - Deursigtig, 255 - Solied) Wil jy die aflaai van die dokument onderbreek? @@ -72,51 +67,38 @@ Niks gevind nie. As jy nie jou streek kan vind nie, kan jy dit self maak (besoek http://osmand.net). Internet kaarte (teëls) Aflyn kaarte (Vektor) - - Laai kaarte af, beskou inligting en bestuur aflyn kaarte + Laai kaarte af, beskou inligting en bestuur aflyn kaarte Skakel die internet kaarte inlasmodule aan om ander kaartbronne te kies Internet kaarte (teëls) Gebruik internet kaarte (Laai teëls af en berg dit in kasgeheue op die SD kaart) Internet kaarte Stel die bronne op vir internet of kasgeheue-teël kaarte - - - Stellings om verskeie internet of kasgeheue-teël kaarte as basis kaart of as bolê- / onderlê-kaarte op te stel. Hierdie kaarte kan ook op jou rekenaar voorberei word en na die OsmAnd leêr gestuur word. + Stellings om verskeie internet of kasgeheue-teël kaarte as basis kaart of as bolê- / onderlê-kaarte op te stel. Hierdie kaarte kan ook op jou rekenaar voorberei word en na die OsmAnd leêr gestuur word. Wys stellings om spoor-natrek en navigasie aan te skakel in sluimertoestand (skerm af) deur kort-kort die GPS aan te sit. Wys stellings vir spesiale toegankliksheidsfunksies. - - - - Wys stellings vir ontwikkeling en ontfoutingsfunksies bv. bewegende navigasie of beeldvertoon werkverrigting. + Wys stellings vir ontwikkeling en ontfoutingsfunksies bv. bewegende navigasie of beeldvertoon werkverrigting. Inlasmodule bestuurder - - Inlasmodule aktiveer die gevorderde instellings en voorsien ekstra funksionaliteit + Inlasmodule aktiveer die gevorderde instellings en voorsien ekstra funksionaliteit Inlasmodule bestuurder - - Wys stellings nodig vir OSM terugvoer bv. versamel / aanpas van OSM POI voorwerpe, oopmaak / komentaarlewer op OSM foute, en bydra van opgeneemde GPX dokumente (vereis OSM inlog besonderhede). + Wys stellings nodig vir OSM terugvoer bv. versamel / aanpas van OSM POI voorwerpe, oopmaak / komentaarlewer op OSM foute, en bydra van opgeneemde GPX dokumente (vereis OSM inlog besonderhede). Vektor kaarte vertoon waarskynlik vinniger. Dit mag egter nie goed werk op sommige toestelle nie. - - Speel opdragte van die huidige gekose stem + Speel opdragte van die huidige gekose stem OsmAnd ontwikkeling Inheemse lewering - - Toets stemaanwysings + Toets stemaanwysings Geen aflyn vektor kaart teenwoordig vir hierdie ligging. Jy kan dit aflaai in instellings (Aflyn inligting), of skakel oor na internet kaarte. - - Stuur GPX lêers na OSM? + Stuur GPX lêers na OSM? Sigbaarheid Naamplaatjies Beskrywing Spesifiseer asseblief die OSM gebruiker naam en wagwoord om GPX lêers op te laai. Ondersteuning Ondersteun nuwe funksies - - Wys liniaal + Wys liniaal Inligting Terug na ligging Help - - Toeganklikheid gebruikswyse + Toeganklikheid gebruikswyse Skakel die toeganklikheid funksies aan Aan Af @@ -170,28 +152,22 @@ Gebruik helder kleure om paaie en roetes te vertoon Aflyn redigering Gebruik altyd aflyn redigering - - Interessante plek veranderinge binne die toepassing raak nie afgelaaide kaart lêers nie, veranderinge word eerder in `n plaaslike lêer gestoor. + Interessante plek veranderinge binne die toepassing raak nie afgelaaide kaart lêers nie, veranderinge word eerder in `n plaaslike lêer gestoor. Besig om op te laai … {0} interessante plek / Foute is opgelaai Laai alles op - - - Laai wysigings op na OSM + Laai wysigings op na OSM Verwyder verandering Uit fase OSM Redigering: Plaaslik gestoorde OSM interessante plekke / Foute Wys en bestuur opgemerkte OSM interessante plekke / Foute in die plaaslike databasis - - - Spesifiseer lewendige spoor-natrek interval + Spesifiseer lewendige spoor-natrek interval Lewendige spoor-natrek interval Spesifiseer die web adres met parameteroordrag sinsbou: lat = {0}, lon = {1}, tyd stempel = {2}, hdop = {3}, hoogte = {4}, spoed = {5}, rigting={6} Lewendige spoor-natrek webadres Skakel asseblief \'Meld spoor na GPX\' aan in natrekking instellings. Wys huidige spoor - - Hierdie gratis OsmAnd weergawe is beperk tot %1$s aflaailêers en ondersteun nie aflyn Wikipedia artikels nie. + Hierdie gratis OsmAnd weergawe is beperk tot %1$s aflaailêers en ondersteun nie aflyn Wikipedia artikels nie. Gratis weergawe Wys POI beskrywing Noord Amerika @@ -215,9 +191,7 @@ Profiel Besondere Stellings Gebruikersprofiel Kies \'n gebruiker profiel met \'n persoonlike kaart en navigasie instellings. - - - Navigasie + Navigasie Spesifiseer navigasie opsies Oorhoofse instellings Inligting Bestuur @@ -227,29 +201,16 @@ Jou OSM gebruiker naam Vereis vir openstreetmap.org voorleggings Jou OSM wagwoord - - Sluimertoestand Funksionaliteit + Sluimertoestand Funksionaliteit Gebruik om OsmAnd aan te hou terwyl skerm af is - - - - - - - - Daar is nie genoeg spasie om %1$s MB af te laai nie(beskikbaar:%2$s). + Daar is nie genoeg spasie om %1$s MB af te laai nie(beskikbaar:%2$s). Beskibare geheue nou {2} MB! Laai {0} lêer(s) ({1} MB) af ? - - - - - Deursigtige tema + Deursigtige tema Inheemse biblioteek word nie op hierdie toestel ondersteun nie. Besig om inheemse biblioteek gereed te maak… Outo-senter kaart uitsig Tyd tot kaart sal ooreenkom met die huidige posisie - - Outo-senter slegs navigasie + Outo-senter slegs navigasie Outo-senter kaart uitsig tydens navigasie. Outo-senter kaart uitsig in gebruik. Vektor vertoner keuses @@ -262,11 +223,9 @@ Dorpie Dorp Stad - - stop animasie + stop animasie Begin animasie - - Lêer kan nie herbenoem word nie. + Lêer kan nie herbenoem word nie. Lêer met daardie naam bestaan reeds. Verskeie interessante plek kategorieë gevind vir die soektog: Plaaslike inligting om interessante plek te soek is nie teenwoordig nie. @@ -276,26 +235,21 @@ Opgradeer OsmAnd + Die internet-bediener bevat kaart lêers wat nie versoenbaar is met jou huidige weergawe van die toepassing nie. Om dit af te laai en te gebruik opgradeer asseblief die toepassing na `n nuwer weergawe. Herbenoem - - Internet Nominatim + Internet Nominatim Besig om posisie op te spoor… Ligging (gevind) Adres… Gunstelinge… ongedefinieerd - - - Laaste kaart uitsig + Laaste kaart uitsig Soek naby: Soek hier naby - - Roete suksesvol geberg as \'%1$s\'. + Roete suksesvol geberg as \'%1$s\'. "Dokument naam: " Lêer met dieselfde naam bestaan reeds. Berg - - Laai GPX lêers op na OSM gemeenskap. Dit sal gebruik word om kaarte te verbeter. + Laai GPX lêers op na OSM gemeenskap. Dit sal gebruik word om kaarte te verbeter. %1$d van %2$d item (s) opgelaai. Stuur na OSM Wys meer kaart detail @@ -305,17 +259,13 @@ Huis Vriende Plekke - - Naam + Naam Kategorie Nee, dankie Basis wêreld kaart (wat die hele wêreld bevat op klein vergroting) ontbreek. Oorweeg dit asseblief om World_basemap_x.obf af te laai vir \'n volledige omgewing. Aanboord (\'aflyn\') inligting ontbreek op SD-kaart. Oorweeg dit asseblief om dit af te laai om die kaarte aflyn te gebruik. \n\nDruk en hou vir keuses - - - - Uitgawe + Uitgawe %1$d van %2$d item(s) suksesvol afgeskakel. %1$d van %2$d item(s) is suksesvol verwyder. %1$d van %2$d item(s) suksesvol geaktiveer. @@ -324,31 +274,22 @@ Aflyn Inligting Bestuurder Aktiveer Deaktiveer - - - Aflaai - - Interessante plek inligting + Aflaai + Interessante plek inligting Adres inligting Vervoer inligting Kaart inligting - - gedeaktiveer + gedeaktiveer Stem inligting(TTS) Stem inligting(opgeneemd) - - Interessante plek inligting + Interessante plek inligting TTS Stem Nuwe soektog Kies teks grootte vir die name op die kaart Teks grootte Die lewering van ontfouting inligting Vertoon lewering prestasie - - - - - Besig om nuwe inligting uit te pak… + Besig om nuwe inligting uit te pak… \'n Aanlyn navigasie diens is gekies, maar geen internetverbinding is beskikbaar nie. Taal word nie ondersteun nie Die gekose taal word nie ondersteun deur die geïnstalleerde Android TTS (teks-tot-spraak) enjin nie. Wil jy in die mark soek vir \'n ander TTS-enjin? Andersins sal die beskikbare TTS taal gebruik word. @@ -379,15 +320,9 @@ Kies (teël) kaarte om te installeer of opgradeer Internet verbinding benodig vir bewerking is nie beskikbaar nie Installeer meer… - - - Minimum vergroting vlak om vektor kaarte te gebruik + Minimum vergroting vlak om vektor kaarte te gebruik Minimum vektor vergroting vlak - - - - - " Aanlyn OSM kaart klassifikasie met prentjies" + " Aanlyn OSM kaart klassifikasie met prentjies" Fout tydens aflyn soek Soek adres met behulp van aflyn kaarte Stelsel @@ -451,13 +386,10 @@ Lees gekaste teëls… Die indeks \"{0}\" pas nie in die geheue nie Die weergawe van indeks \"{0}\'\' word nie ondersteun nie - - - OsmAnd aflyn navigasie diens is \'n eksperimentele funksie en dit werk nie vir afstande van meer as ongeveer 20 km nie.\n\nNavigasie diens is tydelik oorgeskakel na aanlyn CloudMade. + OsmAnd aflyn navigasie diens is \'n eksperimentele funksie en dit werk nie vir afstande van meer as ongeveer 20 km nie.\n\nNavigasie diens is tydelik oorgeskakel na aanlyn CloudMade. Kan nie daardie adres vind nie. Bergingsadres - - \'n Vorige OsmAnd weergawe is geïnstalleer. Alle aflyn inligting sal ondersteun word deur die nuwe toepassing. Maar Gunsteling punte moet uitgevoer word van die ou toepassing en later ingevoer word deur die nuwe een. + \'n Vorige OsmAnd weergawe is geïnstalleer. Alle aflyn inligting sal ondersteun word deur die nuwe toepassing. Maar Gunsteling punte moet uitgevoer word van die ou toepassing en later ingevoer word deur die nuwe een. \'Build\' {0} suksesvol geïnstalleer ({1}). Besig om weergawe af te laai… Wil jy OsmAnd - {0} van {1} {2} MB installeer ? @@ -477,8 +409,7 @@ Laai {0} lêer(s) af ({1} MB)? {0} item(s) gekies Filter afgelaai - - Kies alles + Kies alles Verfris Vinnigste roete "Skakel aan om vinnigste roete te bereken of skakel af vir kortste roete " @@ -501,23 +432,17 @@ tipe om te filter hoë resolusie vertoning Moet nie kaart teëls strek (en vervaag) op \'n hoë digtheid skerm nie - - Soek vervoer + Soek vervoer Vervoerresultate (geen teiken): Vervoer resultate ({0} na teiken): - - Herstel vervoer soek - - Stem + Herstel vervoer soek + Stem Vektor kaarte was nie gelaai nie - - GPX lêers nie gevind in /tracks adres nie + GPX lêers nie gevind in /tracks adres nie Fout met lees van GPX inligting Aflyn vektor kaarte Soek vervoer by stop - - - verander interessante plek + verander interessante plek verwyder interessante plek Volgens kompas Volgens rigting van beweging @@ -530,30 +455,25 @@ Gunstelinge suksesvol geberg na {0} Geen gunsteling punte om te berg nie Inbring - - Fout het voorgekom tydens die laai van GPX + Fout het voorgekom tydens die laai van GPX Stuur verslag Geen aflyn inligting vir gebiede op SD-kaart gevind nie. Laai gebiede van die Internet af. Inset soektog navraag om interessante plek te vind Enige - - Dankie aan Yandex vir verkeersinligting. + Dankie aan Yandex vir verkeersinligting. Yandex verkeer Roete Gunstelinge OSM foute - - Interessante plek… + Interessante plek… Kaartbron… Kaarte Soek interessante plek - - Gebruik die trekbal om die kaart te skuif + Gebruik die trekbal om die kaart te skuif Gebruik die trekbal Stel maksimum wagtyd vir agtergrond ligging-vasstelling Maksimum wagtyd vir vasstelling - - Waar is ek? + Waar is ek? OsmAnd navigasie diens Netwerk GPS @@ -577,8 +497,7 @@ Die weergawe van stem inligting word nie ondersteun nie Gespesifiseerde stem is beskadig gekose stem is nie beskikbaar nie - - SD kaart is nie toeganklik nie.\nJy sal nie in staat wees om kaarte te sien of dinge te vind nie. + SD kaart is nie toeganklik nie.\nJy sal nie in staat wees om kaarte te sien of dinge te vind nie. SD kaart is slegs-lees.\nJy kan net die vooraf geïnstalleerde kaart sien en kan nie van die internet aflaai nie. Haal lêer uit argief… Draai regs en ry @@ -650,13 +569,9 @@ Aflyn inligting vir {0} bestaan alreeds ({1}). Wiljy dit opgradeer ({2}) ? Adres Aflaai suksesvol - - - - Besig om die lys van beskikbare gebiede af te laai… + Besig om die lys van beskikbare gebiede af te laai… Die lys van gebiede kon nie verkry word van osmand.net nie. - - Gunstelingpunt was gewysig + Gunstelingpunt was gewysig Geen gunstelingpunte bestaan nie Vervang Wys slegs @@ -664,8 +579,7 @@ Kies vervoerwyse (opsioneel): Kies asseblief eers die bestemming Aanwysings - - Openingsure + Openingsure Besig om verandering-sessie oop te maak… Besig om verandering-sessie af te sluit… Besig om node by te voeg… @@ -677,14 +591,12 @@ Besig om poskodes te laai… Besig om strate te laai… Besig om stede te laai… - - POI (interessante punt) + POI (interessante punt) Fout tydes GPX berging Fout tydens roeteberekening `n Fout het voorgekom tydens die roeteberekening Fout: Berekende roete is leeg - Nuwe roete is bereken, afstand - Jy het jou bestemming bereik + Jy het jou bestemming bereik Die koördinate is ongeldig! Gaan terug na die OsmAnd kaart Sluit @@ -693,17 +605,12 @@ Die vorige gebruik van OsmAnd het gefaal. Die Log lêer is by {0}. Raporteer asseblief die probleem en heg die log lêer daarby aan. Besig om GPX spore op SD te berg… Klaar - - - - - Gebruik Internet om die roete te bereken + Gebruik Internet om die roete te bereken Gebruik aanlyn navigasie Spesifiseer Openstreetmap.org (OSM) stellings benodig vir OSM toevoegings Spesifiseer taal, aflaai/herlaai inligting Inligting - - OSM veranderings + OSM veranderings Outo vergroot kaart volgens jou spoed Vergroot kaart outomaties Bykomende stellings @@ -716,10 +623,7 @@ Opgradeer kaart Laai teël weer af Teiken - - - - Voeg by gunstelinge + Voeg by gunstelinge Kies tussen plaaslike en engelse name Gebruik Engelse name in die kaart Toepassing stellings @@ -728,10 +632,7 @@ Kies straat Kies stad Kies land - - - - Wys uitsig rigting + Wys uitsig rigting Skakel 3D kaart aan Kaart 3D Wys interessante plekke bo-oor die kaart (gebruik die vorige gekose filter) @@ -741,16 +642,11 @@ Kaartbron Gebruik Internet Wys ligging - - - Wys die GPS koordinate op die kaart + Wys die GPS koordinate op die kaart Gebruik die internet om ontbrekende teëls af te laai Navigasie toepassing Verlaat - - - - Soek + Soek Soek Kies POI Vind meer @@ -773,19 +669,15 @@ GGG MM.MM GGG MM SS.SS Wys op kaart - - Kies adres + Kies adres Streek Stad Straat Gebou Gebou Kruisende straat - - - opgradeer kaart - - skep interessante plek + opgradeer kaart + skep interessante plek Ja Kanseleer toepas @@ -798,25 +690,13 @@ verwyder gunsteling Verwyder gunsteling punt \'%s\'? Gunsteling punt {0} is suksesvol verwyder. - - - - - Boodskap + Boodskap naam van die skrywer - - - Kommentaar is bygevoeg + Kommentaar is bygevoeg Uitsondering voorgekom: kommentaar is nie bygevoeg nie - - - - - - Verander interessante plek + Verander interessante plek skep interessante plek - Node kan nie gevind word nie of gerief is nie \'n enkele node - Verwyder {0} (Lewer kommentaar)? + Verwyder {0} (Lewer kommentaar)? verwyder Interessante plek verwyder die interessante plek is suksesvol verwyder @@ -833,32 +713,22 @@ Handig in Herstel Filter - - Berg As + Berg As Verwyder gekose filter? Filter %1$s is verwyder Filter %1$s is geskep - - Die vorige navigasie was onvoltooid. Wil jy dit nog volg? (%1$s sekondes) - - - - Wys spoedkameras + Die vorige navigasie was onvoltooid. Wil jy dit nog volg? (%1$s sekondes) + Wys spoedkameras Wys spoedbeperkings Vermy tolpaaie - -Om die skerm oop te sluit, druk op die slot simbool + Om die skerm oop te sluit, druk op die slot simbool Straat naam Verstelling - -Waar is ek + Waar is ek Sluit die skerm Kompas - -Herstel verstek - - -Parkering + Herstel verstek + Parkering Spoed Teiken Hoogte @@ -881,8 +751,7 @@ Skep PVB filter Kies vervoertipe Dag/nag inligting - - Kaart voorstelling eienskappe: + Kaart voorstelling eienskappe: Kaartvoorstelling-styl Verstel skerm Toon lane @@ -891,18 +760,14 @@ Vermy… Helder roetes Liniaal - - Kykrigting + Kykrigting Deursigtige vel - - Aaneenlopende + Aaneenlopende ZXing Barcode Scanner toepassing is nie geïnstaleer nie. Wil jy dit in die mark soek? Aktiveer spoorsny inlasmodule om ligging aanteken diens te gebruik (aantekening, lewende spoor-natrek) Bereken moontlike ongunstige roete oor lang afstande - - Aktiveer GPS onder instellings - - Aanteken dienste + Aktiveer GPS onder instellings + Aanteken dienste Geen roete Verwyder oorgangspunt Oorgangspunt %1$s @@ -940,14 +805,7 @@ OsmAnd+ (OSM Automated Navigation Directions) OsmAnd+ is `n ope bron navigasie toepassing met toegang tot `n wye verskeidenheid wêreldwye OpenStreetMap (OSM) inligting. Alle kaart inligting (vektor of teëlkaarte) kan op die foon geheuekaart gestoor word vir aflyn gebruik. OsmAnd bied ook aan- en aflyn roete berekening insluitend draai-vir-draai stem leiding. OsmAnd+ is betaalde toepassing weergawe, deur dit te koop ondersteun jy die projek, befonds die ontwikkeling van nuwe funksies, en ontvang die nuutste opgraderings. Sommige van die kern funksies: - volledige aflyn werking (stoor afgelaaide vektor of teëlkaarte in `n leër van jou keuse) - kompakte aflyn vektor vir die hele wereld beskikbaar - Onbeperkte aflaai van land en streek kaarte uit die toepassing - Aflyn Wikipedia funksies (Wikipedia belangepunte kan afgelaai word), goed vir besigtigingstoere - oorlegging van verskeie kaart lae moontlik, bv. GPX of navigasie spore, belangepunte, gunstelinge, kontoerlyne, publieke vervoer haltes, ekstra kaarte met verstelbare deursigtigheid - Aflyn soek vir adresse en belangepunte - Aflyn navigasie roete berekening vir kort roetes (eksperimenteel) - Kar, fiets, en voetganger gebruikerswyses met: - opsionele outomatiese dag/nag skakeling - opsionele spoed-afhankliket kaart vergroting - opsionele kaart rigting volgens kompas of koers - opsionele laan begeleiding, spoedbeperking vertoon, opgeneemde en TTS stemme " Sonopkoms : %1$s ↵\nSonsondergang : %2$s - - - - - - - - e-pos + e-pos Sluit verandering-sessie af Aankomstyd Gemerk @@ -956,12 +814,8 @@ Verkies snelweë Verkies… Verkies snelweë - - geen Heuwelskadu-oorleggings - - Oudio/video inligting Is jy seker jy wil die navigasie staak? Is jy seker jy wil jou bestemmingspunt verwyder? @@ -987,7 +841,6 @@ Gebruik stelsel opnemer Gebruik stelsel toepassing vir foto Gebruik kamera toepassing - Maak oudio en video verstellings "Oudio/video verstellings " @@ -998,7 +851,6 @@ Oudio van die gespesifiseerde opname is besig om te speel.\n%1$s Maak eksterne speler oop Wil jy hierdie opname verwyder? - nie beskikbaar nie Neem `n oudio nota Neem `n video nota @@ -1012,10 +864,6 @@ Oudio/video notas OsmAnd inlasmodule vir aflyn kontoerlyne Hierdie inlasmodule verskaf kontoerlyne wat in OsmAnd aflyn kaarte getoon kan word.Die wêreld inligting (van 70 grade noord tot 70 grade suid) is gebaseer op metings deur SRTM (Shuttle Radar Topography Mission)en ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer),`n beeld-instrument aanboord Terra, die vlagskip sateliet van NASA se Aarde Observasie Stelsel. ASTER is `n samewerkingsprojek tussen NASA, Japan se Ministerie van Ekonomie, Handel en Industrie (MEHI), en Japan Ruimte Stelsels (J-spacesystems). - - - - Afstandsmeting dele Oudio/video notas @@ -1025,8 +873,7 @@ Kontoerlyne Slegs paaie Paaie-uitsluitlik kaarte - - Versteek grense + Versteek grense Ligging om met die nota te asosieer is nog nie gedefinieer nie. Gebruik ligging … om `n nota aan `n spesifieke ligging toe te ken Neem oudio/video notas tydens die rit Kontoerlyn inlasmodule @@ -1041,36 +888,20 @@ Beskermde wyse Die toepassing werk in beskermde wyse (skakel dit af in Instellings). Vergemoontlik dei aflaai van aflyn kontoerlyne en heuwelsakdus (\'Instellings\'-> \'Inligtingsbestuur\' -> \'Aflaai\' -> Kies verlangde kaart-tipe). - - - - Breedtegraad %1$.3f, lengtegraad %2$.3f - - - OsmAnd slaapwyse diens is nog aan. Wil jy dit afskakel? - Maak donasies om die implementering van nuwe funksies in die toepassing moontlik te maak Onvolledig - - - Heuwelskadu-vel + Heuwelskadu-vel GPS inligting - \\\'OpenMaps EU\\\' OsmAnd Kaarte & Navigasie - - OsmAnd+ Kaarte & Navigasie - - WiFi is nie gekoppel nie. Wil jy voortgaan om af te laai met die beskikbare internet diens? + OsmAnd+ Kaarte & Navigasie + WiFi is nie gekoppel nie. Wil jy voortgaan om af te laai met die beskikbare internet diens? Straat Huisnommer - Aanteken dienste & Sluimertoestand Verstel hoe om roetes op te neem en sluimertoestand aan te skakel - - Kies toepassing tema Toepassing tema Toeganklikheidskeuses @@ -1079,7 +910,6 @@ OSM veranderings Ander aksies Stop - Verwerp roete Staak navigasie Verwyder bestemming @@ -1087,7 +917,6 @@ %1$d lêers oor %1$d lêers beskikbaar om af te laai Vol weergawe - Wag asseblief terwyl huidige taak afhandel Gebruik Kalman filter om kompas afwykings te vermy Gebruik Kalman filter @@ -1120,12 +949,8 @@ Eindig verandering Begin `n nuwe sub-spoor Verwyder all punte - Maak bestaande GPX oop - - - - Kamera fokus tipe + Kamera fokus tipe Kies interne kamera fokus tipe Outo fokus Hiperfokale fokus @@ -1135,12 +960,9 @@ Die kamera prbeer heeltyd in fokus bly Speel geluid wanneer foto geneem word Kies of geluid gespeel sal word wanneer foto geneem word - - Kondig spoedbeperking aan Kondig spoedkameras aan Kondig verkeerswaarskuwings aan - Spesifiseer asseblief OSM gebruiker en kodewoord in Stellings Verwyder tussenpunte Hou tussenpunte @@ -1152,12 +974,9 @@ Via: Van: OSM kodewoord (opsioneel) - Aankondig… Verstel aankondig van straatname, verkeerswaarskuwings(geforseerde stoppe, spoed-hobbels), spoedkamera, spoedbeperkings Kondig straatname aan(TTS) - - Kies Bestuur Streek: VSA, Europa, VK, Asië en Ander Bestuur Streek Japan @@ -1169,8 +988,6 @@ Weergawe: Omtrent Weergawe inligting, lisensie, projeklede - - Vergrotings afgelaai: %1$s Verstryk (minute): %1$s Aflaaibaar: %1$s @@ -1185,8 +1002,6 @@ Bronadres (URL) Kies bestaande… Definieer/Wysig… - - Voeg by as bestemmingspunt Kies GPX … Kies bestemming @@ -1225,19 +1040,10 @@ Wis alles uit Bereken asseblief eers die roete Simuleer die berekende roete - Onthou my keuse - en of - - - - - - - - Wys posisie altyd in senter + Wys posisie altyd in senter Stem Allerlei lokalisering @@ -1254,21 +1060,9 @@ Afrikaans Armeens Baskies - - pienk - - bruin - - - - - - + pienk + bruin Vertoon kleur - - - - Vertoon dieptelyne en punte Dieptelyne Digtheid van die hoogtelyne diff --git a/OsmAnd/res/values-ar/phrases.xml b/OsmAnd/res/values-ar/phrases.xml index 19039d722a..398583adbf 100644 --- a/OsmAnd/res/values-ar/phrases.xml +++ b/OsmAnd/res/values-ar/phrases.xml @@ -86,7 +86,6 @@ معدات الصيد محل بيع الزهور متجر اطارات الصور - متجر وحدات التدفئة متجر أثاث دكان الهدايا متجر عام @@ -596,7 +595,6 @@ مصحة طب بديل بنك دم - مركز طبي قابلة أخصائي علاج طبيعي طبيب الأرجل @@ -712,7 +710,6 @@ منطقة للتدخين ثلاجة الموتى محرقة - صراف آلي قرض المال مكتب الصرافة محاسب @@ -1387,7 +1384,6 @@ كرة القدم داخل الصالات الملاكمة تحت الإنشاء - صراف آلي : نعم صراف آلي : لا يوجد التجارة العادلة : نعم التجارة العادلة : لا يوجد @@ -1522,7 +1518,6 @@ طب العظام الأنف والأذن والحنجرة الأشعة - المعالجة بالإشعاع جلدية-تناسلية الرضوض احياء سريرية @@ -1621,7 +1616,6 @@ مركبات فيها أكثر من شخص ترام عبّارة - مصدر الطاقة: الكتلة الحيوية موقع Reddit اصطف واركب تصنيف الصعوبة @@ -2376,7 +2370,6 @@ نوع الكبينة/الخزانة: اتصالات نوع الكبينة/الخزانة: كهرباء في الخدمة: نعم - صهريج مجرى بركه رئيسي diff --git a/OsmAnd/res/values-ar/strings.xml b/OsmAnd/res/values-ar/strings.xml index dde2170ad0..0e0d31b636 100644 --- a/OsmAnd/res/values-ar/strings.xml +++ b/OsmAnd/res/values-ar/strings.xml @@ -1554,7 +1554,6 @@ اتصل بنا تعديل OSM لوحة التحكم أو شريط المراقبة - التحديث Wi-Fi فقط تحديث مباشر آخر تحديث: %s @@ -3128,7 +3127,6 @@ إظهار الخريطة على شاشة القفل أثناء التنقل. المهلة بعد الاستيقاظ الوحدات والأشكال - المظهر مظهر الخريطة نظرة علي الخريطة الإضافات المثبتة @@ -3549,7 +3547,6 @@ حدد المسافة التي سيتم بعدها إعادة حساب المسار. إعادة حساب المسار في حالة الانحراف مربع - معين دائرة تحديد الشكل تحديد المجموعة @@ -3699,7 +3696,6 @@ التحكم في الشاشة إيقاف تشغيل الشاشة بعد انتهاء مهلة شاشة النظام. استخدام مهلة انطفاء شاشة النظام - خيارات تنبيه الشاشة: حدد خيارات تنبيه الشاشة (تأكد من وجود أوسماند في المقدمة عند قفل الجهاز): ستقوم كل تعليمات تنقل بتشغيل الشاشة. تعليمات الملاحة @@ -3743,7 +3739,6 @@ أمتار إظهار أو إخفاء التفاصيل الإضافية للخريطة خريطة ليلية - كل الوقت ذوي الاحتياجات الخاصه. يتطلب \"إبقاء الشاشة قيد تشغيل\" تحت \"المهلة بعد الاستيقاظ\". ضبط الارتفاع لتجنب الجسور المنخفضة. ضع في اعتبارك أنه إذا كان الجسر متحركاً ، فسوف نستخدم ارتفاعه في الحالة المفتوحة. إضافة مصدر عبر الإنترنت @@ -3905,7 +3900,6 @@ تطوير بيانات أوسماند لايف بيانات أوسماند لايف - التوجيه المركب التوجيه على مرحلتين لملاحة السيارة. تطوير النقل العام المحلي قم بالتبديل إلى جافا (الآمن) حساب توجيه النقل العام diff --git a/OsmAnd/res/values-az/phrases.xml b/OsmAnd/res/values-az/phrases.xml index 256f27e42a..a511f76012 100644 --- a/OsmAnd/res/values-az/phrases.xml +++ b/OsmAnd/res/values-az/phrases.xml @@ -97,7 +97,7 @@ İşıq qülləsi Təkrar emal - Konteyner + Konteyner Şüşə Kağız Geyimlər @@ -129,7 +129,7 @@ Tunel Körpü - Sürət kamerası + Sürət kamerası Qəzet Mobil telefonlar Kompyuterlər @@ -138,12 +138,12 @@ Avtomobillər Velosipedlər - Kollec + Kollec Sürücülük məktəbi Məktəb Universitet - Ölkə + Ölkə Şəhər Stadion İdman mərkəzi @@ -151,7 +151,7 @@ Kafe İnternet kafe - Açıq + Açıq Bağlı Ailə Batareyalar diff --git a/OsmAnd/res/values-az/strings.xml b/OsmAnd/res/values-az/strings.xml index f6fad09217..b4470c5851 100644 --- a/OsmAnd/res/values-az/strings.xml +++ b/OsmAnd/res/values-az/strings.xml @@ -45,7 +45,6 @@ İnternet bağlantısı yoxdur Məkan axtarılır… Boş yaddaş - Yeni versiyaları göstərmə Davam et Dəyiş Başla @@ -725,7 +724,6 @@ Versiyalar Əlaqə Menyu istifadə et - Yenilə Yalnız Wi-Fi ilə endir İndi yenilə Son yeniləmə: %s @@ -788,8 +786,6 @@ Kontur xəttinin sıxlığı Kontur xəttinin genişliyi Kontur xəttinin genişliyi - Köhnə axtarış - Köhnə axtarışı göstər OSM qeydinizi anonim və ya OpenStreetMap.org profilinizi istifadə edərək yükləyin. Yaxındakı Vikipediya məqalələri Şəhər və ya ölkə axtarın @@ -1099,7 +1095,6 @@ Marşrut hesablana bilmədi. Marşrut hesablana bilmədi. Hesablanan marşrut boşdur. - Yeni marşrut hesablandı, məsafə Təyinat nöqtənizə gəlib çatdınız Yanlış koordinatlar Marşrutu hesablamaq üçün internet istifadə et. @@ -1268,7 +1263,6 @@ OsmAnd-a məkanınızı müəyyənləşdirmək və həmin region üçün xəritə endirməsi təklif etmək icazəsi verin. İcazə ver İnternet bağlantısı olmadan istiqamətlər alın və yeni yerlər kəşf edin - Yeni versiyaları və ya OsmAnd ilə bağlı endirimləri yoxlama. Çıxanda marşrut yenidən hesablanmasın Əks istiqamət üçün marşrut yenidən hesablanmasın Marşrutu yenidən hesabla @@ -1967,7 +1961,6 @@ Yalnız hədəf nöqtəyə istiqamət dəyişilən zaman bildir. Hər kəs üçün küçə səviyyəli şəkillər. Yerləri kəşf edin, əməkdaşlıq edin, dünyanı çəkin. 6 dəqiqə fasilədən sonra yeni seqment, 2 saat fasilədən sonra yeni iz, ya da tarix dəyişdiyində uzun fasilədən sonra yeni fayl başlat. - Menyuya köhnə axtarışı əlavə et. Qeydiyyatın minimum yerdəyişməsi Filtr: Nöqtənin qeydiyyatı üçün son mövqedən minimum məsafəni seçin. Qeydiyyatın minimum dəqiqliyi diff --git a/OsmAnd/res/values-b+ast/strings.xml b/OsmAnd/res/values-b+ast/strings.xml index 3859e72fc3..c43c45866f 100644 --- a/OsmAnd/res/values-b+ast/strings.xml +++ b/OsmAnd/res/values-b+ast/strings.xml @@ -622,7 +622,6 @@ ¿Colar ensin guardar\? Llinia Opciones - Nun amosar anovamientos OpenMaps EU Datos d\'audiu/videu Plugin pa Dropbox @@ -1181,7 +1180,6 @@ Esceuyi l\'aspeutu del renderizáu. Detalles de la ruta Fonte del mapa… - Calculóse una ruta nueva, distancia Axustes de l\'aplicación Amestóse\'l puntu favoritu «{0}». Esbilla\'l tamañu de les semeyes de la cámara interna. diff --git a/OsmAnd/res/values-b+be+Latn/strings.xml b/OsmAnd/res/values-b+be+Latn/strings.xml index c227708242..11a112431e 100644 --- a/OsmAnd/res/values-b+be+Latn/strings.xml +++ b/OsmAnd/res/values-b+be+Latn/strings.xml @@ -1266,7 +1266,6 @@ Praparcyjnaj pamiacі %4$s MB (Abmiežavańnie Android %5$s MB, Dalvik %6$s MB). Nie ŭdalosia različyć maršrut Nie ŭdalosia različyć maršrut Različany maršrut pusty - Novy šlach raźličany, adlehłaść Vy prybyli ŭ punkt pryznačeńnia Niesapraŭdnyja kaardynaty Viarnucca da mapy OsmAnd @@ -1359,7 +1358,6 @@ Praparcyjnaj pamiacі %4$s MB (Abmiežavańnie Android %5$s MB, Dalvik %6$s MB). Nie atrymalasia dadać kamientar Pravіć POI Stvaryć POI - Vuziel nie znojdzieny abo zručnasć (amenity) skladajecca z niekaĺkich vuzloŭ, što nie padtrymlivajecca. Vydalić {0} (kamientar)? Vydalić POI Vydalić @@ -1940,7 +1938,6 @@ Praparcyjnaj pamiacі %4$s MB (Abmiežavańnie Android %5$s MB, Dalvik %6$s MB). Vykarystoŭvać meniu Panel kіravańnia cі meniu Prapanujecca vybar asnoŭnaha eliemientu kiravannia prahramaju praz paneĺ kiravannia abo statyčnaje mieniu. Vaš vybar moža być zmienieny ŭ naladach haloŭnaha ekrana. - Abnavіć kožny Ściahvać toĺki praz Wi-Fi Biahučaje abnaŭleńnie Abnavіć zaraz @@ -1983,8 +1980,6 @@ Praparcyjnaj pamiacі %4$s MB (Abmiežavańnie Android %5$s MB, Dalvik %6$s MB). Dazvolić dostup da miescaznachodžańnia Prakladvajcie maršruty i adkryvajcie novyja miescy biez Internet-padlučennia Znajsci maju pazicyju - Nie praviarać novyja viersij i znižki ad OsmAnd. - Nie pakazvać novyja viersii Abnavić usie mapy zaraz? Ačyścіć keš siecіŭnych mapaŭ Paliŭna-aščadny maršrut @@ -2232,9 +2227,6 @@ Praparcyjnaj pamiacі %4$s MB (Abmiežavańnie Android %5$s MB, Dalvik %6$s MB). Nizkaja Taŭščynia haryzantaliaŭ Vysokaja - Sastarely pošuk - Pakazvać sastarely pošuk - Dadać sastarely pošuk u spisie, što raskryvajecca. Blizkija artykuly ŭ Vikipedyi Zbočcie na %1$d źjeździe U vas jašče niama GPX-fajlaŭ @@ -2741,17 +2733,6 @@ Praparcyjnaj pamiacі %4$s MB (Abmiežavańnie Android %5$s MB, Dalvik %6$s MB). Dzionnik padarožžaŭ Spampavać vyjavy Kali laska, adpraŭcie zdymak ekrana z hetym apaviaščenniem na support@osmand.net - • Novaje: padtrymka svietavych aŭtanomnych turystyčnych daviednikaŭ. Spasylačnyja miasciny zviazany z mapaj. Zychodnyja danyja ad Wikivoyage. -\n -\n • Vikipiedyja: novy vyhliad, aktyŭnyja spasylki, padtrymka vyjaŭ -\n -\n • Open Track UI: padtrymka hrup šliachavych kropak -\n -\n • Paznaki mapy: impart abranych hrup z GPX-fajlaŭ, uvod kaardynat, novy vyhliad -\n -\n • Padpiska OsmAnd Live ciapier padtrymlivaje ŭsie funkcyi OsmAnd -\n -\n Pramiežkavy čas prybyccia Pramiežkavy čas Spampavać artykuly Vikipedyi dlia %1$s dlia aŭtanomnaha čytannia. @@ -2770,30 +2751,13 @@ Praparcyjnaj pamiacі %4$s MB (Abmiežavańnie Android %5$s MB, Dalvik %6$s MB). Sviet My adpravim vaš pašukovy zapyt «%1$s», a taksama vašaje miescaznachodžannie. \n \n Zbirajucca toĺki niepierasanaĺnyja danyja, danyja pošuku vykarystoŭvajucca toĺki dlia taho, kab paliepšyć alharytm pošuku. - Niama vynikaŭ? -\nRaspaviadzicie nam ab hetym. Adpravić pašukovy zapyt? Pavialičyć radyus pošuku da %1$s Dziakuj za Vaš vodhuk Vuziel ci šliach nie znajdzieny. Niama vynikaŭ pošuku? \nDajcie nam vodhuk - Fiksujecca šliach… Nacisnicie na knopku i pasluchajcie adpaviednuju halasavuju padkazku, kab vyznačyć adsutnyja abo paškodžanyja padkazki. - • Navihacyja: vypraŭliennie indykataru prahresu, chutkaja zamiena pačatkovaha i kančatkovaha punktaŭ maršrutu -\n -\n• Adznaki mapy: vypraŭliennie ŭkliučennia/vykliučennia hrupaŭ, mahčymasć chavać adznaki na mapie -\n -\n• Redahavannie OSM: mahčymasć redahavannia paznak dlia niekropkavych abjektaŭ i šliachoŭ, vypraŭliennie adsutnych kamientaroŭ na natatkach, reziervovaje kapijavannie pravak -\n -\n• Paliapšennie razboru Wikipedia i Wikivoyage, abnoŭlienyja fajly ŭžo dastupnyja -\n -\n• Kantekstnaje mieniu: vypraŭliennie kolieru darožnych znakaŭ u načnym režymie, vypraŭliennie pamieraŭ dadatkovaha mieniu -\n -\n• Račnaja navihacyja: padtrymka farvateru -\n -\n• Vypraŭliennie inšych chibaŭ -\n Vydalić adznaku mapy «%s»\? Redahavać paznaku mapy Asobny dadatak @@ -2804,20 +2768,6 @@ Praparcyjnaj pamiacі %4$s MB (Abmiežavańnie Android %5$s MB, Dalvik %6$s MB). Pakinuć projdzienyja paknaki na mapie Na hetym prypynku josć boĺš hramadskaha transpartu. Kali laska, dajcie OsmAnd dazvol na miescaznachodžannie dlia praciahu. - • Vypraŭliena chiba pry zapusku, što ŭznikala na niekatorych pryladach -\n -\n• Novyja funkcyi adznak: pakazvajucca ŭžo projdziennyja adznaki -\n -\n• Historyja pošuku zaraz pakazvaje katehoryi, što vy šukali raniej -\n -\n• Vypraŭliena chiba pry zapusku, što ŭznikala z nielacinskimi mapami -\n -\n• Paliapšennie chutkasci admalioŭki na pryladach z Android 8.0 -\n -\n• Padtrymka redahavannia šmatvuhoĺnych (niazručnych) abjektaŭ -\n -\n• Vymiarennie dystancyj: dadadziena knopka «Vymiarennie» ŭ «Dziejanni» kantekstnaha mieniu -\n Čorny Plan i ceny Štomiesiačna @@ -2888,22 +2838,6 @@ Praparcyjnaj pamiacі %4$s MB (Abmiežavańnie Android %5$s MB, Dalvik %6$s MB). Pavierchnia Hladkasć Pakatasć - • Novy ekran «Napramki»: adliustroŭvaje knopki napramkaŭ dachaty i na pracu, skarot «papiaredni maršrut», spis aktyŭnych GPX-sliadoŭ i adznak, historyju pošuku -\n -\n • Dadatkovyja zviestki pad «Detali maršrutu»: typy daroh, pakryccio, pakatasć, hladkasć -\n -\n • Navihacyja hramadskaha transpartu padtrymlivaje ŭsie typy: mietro, aŭtobus, tramvaj i inšyja -\n -\n • Novyja chutkija dziejanni dlia pakazu/schovu sliadoŭ i režymaŭ dzień/noč -\n -\n • Vypraŭlienyja voblasci, jakija vyhliadali jak zatoplienyja, u Hiermanii, Paŭdniovajo Afrycy, Kviebieku -\n -\n • Dadatkovaja padtrymka dlia KML- i KMZ-impartu -\n -\n • Vypraŭliena padziennie pry adkrycci niekatorych prypynkaŭ hramadskaha transpartu -\n -\n • Vydaliena analityka Facebook i Firebase sa svabodnaj viersii (OsmAnd+ nie ŭkliučaje jaje) -\n Ukliučyć hramadski transpart dlia zmien OsmAnd Live. Hramadski transpart OsmAnd Live Pazbiahać tramvajaŭ @@ -2918,11 +2852,6 @@ Praparcyjnaj pamiacі %4$s MB (Abmiežavańnie Android %5$s MB, Dalvik %6$s MB). Pazbiahać mietro i liohkarejkavaha transpartu Pazbiahać paromaŭ Pazbiahać paromaŭ - • Adliustravannie času pamiž pierasadkami ŭ hramadskim transparcn -\n • Vypraŭlieny interfiejs \"Padrabiaznasci maršrutu\" -\n • Vypraŭliena ciomnaja tema dlia \"Maršrut\" i \"Padrabiaznasci maršrutu\" -\n • Pry vymiarenni adliehlasci budzie adliustroŭvacca azimut -\n Hradusy Miliradyjany Adzinki vuhloŭ diff --git a/OsmAnd/res/values-b+hsb/phrases.xml b/OsmAnd/res/values-b+hsb/phrases.xml index 0e368db430..99efc126aa 100644 --- a/OsmAnd/res/values-b+hsb/phrases.xml +++ b/OsmAnd/res/values-b+hsb/phrases.xml @@ -87,7 +87,6 @@ Kwětkarnja Wobrazowe ramiki free flying - Tepjenski wobchod Meblowy wobchod Zahrodniske potrjeby Zahrodowe meble @@ -1290,7 +1289,6 @@ napismo:W napismo:SW pod konstrukciju - bankomat: haj bankomat: ně škitane pasmo mjeno domu @@ -1619,7 +1617,6 @@ kurjenski wobłuk ćěłownja internetownja - bankomat płaćenski terminal zastawnja měnjernja diff --git a/OsmAnd/res/values-b+hsb/strings.xml b/OsmAnd/res/values-b+hsb/strings.xml index eba9ae37de..4b04909302 100644 --- a/OsmAnd/res/values-b+hsb/strings.xml +++ b/OsmAnd/res/values-b+hsb/strings.xml @@ -753,7 +753,6 @@ Njemóžach čaru wobličić Njemóžach čaru wobličić Wobličena čara je prózdna - Nowa čara wobličena, zdalenosć Cil docpěty Njepłaćiwe koordinaty Wróćo k OsmAnd @@ -1142,7 +1141,6 @@ %.1f MB druhe Jězbu planować - Aktualizowanje Poslednje aktualizowanje: %s Poslednja změna karty: %s tydźensce @@ -1246,7 +1244,6 @@ Nowy filter Njewobmjezowane sćehnjenje kartow, aktualizacijow a zapiski Wikipedije. Moje stejišćo namakać - Nowe wersije njepokazać Wšitke karty nětko aktualizować? Sy sej wěsty/a, zo chceš narunać faworit %1$s? Pytanje za koordinatami diff --git a/OsmAnd/res/values-b+kab/strings.xml b/OsmAnd/res/values-b+kab/strings.xml index 54589361a3..89deec4af6 100644 --- a/OsmAnd/res/values-b+kab/strings.xml +++ b/OsmAnd/res/values-b+kab/strings.xml @@ -194,7 +194,6 @@ Sedɣi iten akk (%1$s MB) Sekcem isem n tmurt Wayeḍ - Sedγi Sedɣi tura Asedɣi aneggaru : %s Tallit n trarast @@ -216,7 +215,6 @@ Isdɣiten usriden Tanazagt : Ulac tuqqna n Internet - Ur d skanay isdγiten Senfel Ɛiwed a nadi Nadi @@ -660,7 +658,6 @@ Snes kan i \"%1$s\" Snes i imavnuyen meṛṛa Izen n usenker - Arwes Sbadu amaɣnu Beddel amaɣnu Amaɣnu n usnas ittwabddel ɣer \"%s\" @@ -686,7 +683,6 @@ %1$s %2$s Zzur Udmawan - %1$s, %2$s Tti Amellal Tikarḍiwin diff --git a/OsmAnd/res/values-b+sr+Latn/strings.xml b/OsmAnd/res/values-b+sr+Latn/strings.xml index f11a3c314c..209c3f8e1a 100644 --- a/OsmAnd/res/values-b+sr+Latn/strings.xml +++ b/OsmAnd/res/values-b+sr+Latn/strings.xml @@ -1,8 +1,6 @@ Verzija: - Verzija info, licence, članovi projekta - Izaberite da li da se čuje zvuk prilikom snimanja fotografija Fokus je podešen na beskonačno Makro režim fokusa @@ -16,8 +14,7 @@ ili Bez auto-zuma Osnovna karta sveta - - Ističe(minuta): %1$s + Ističe(minuta): %1$s Maksimalno uveličanje: %1$s Ekliptični prikaz zemljine kugle Maksimalno uveličanje @@ -31,9 +28,6 @@ Evropa i Azija Velika Britanija, Indija, Australija & Ostalo Minimalni zum: %1$s - - - Najavi… Podešavanje najave naziva ulica, saobraćajnih upozorenja, ograničenja brzine Obaveštenje - naziv ulice @@ -48,12 +42,10 @@ Uputstvo od Karta : Šir %1$.3f, duž %2$.3f - Do: Preko: Iz: - - Pregledaj mapu + Pregledaj mapu Primarni profil Destinacija %1$s Postavi kao destinaciju @@ -71,7 +63,6 @@ Počnite uređivanje Završi uređivanje Obrišite sve tačke - Otvori postojeći GPX Molimo sačekajte dok se ne završi trenutni zadatak Koristite Kalman filter @@ -95,26 +86,19 @@ Počni Audio/video beleške Merenje udaljenosti - Audio beleške Ostale mape Samo putevi izohipse Sakrij granice - - Ograničenje brzine + Ograničenje brzine Nema pronađenih objekata. Traži grad inkrementalno Pretraga sela/Poštanski kod - - - - - Nativna biblioteka nije podržana na ovom uređaju . + Nativna biblioteka nije podržana na ovom uređaju . Pokretanje nativne biblioteke… Autocentriranje mape - - Podešavanje vektorske mapa + Podešavanje vektorske mapa Predgrađe Selo Grad @@ -127,28 +111,22 @@ Nadogradite Osmand+ Server sadrži mape datoteke koje nisu u skladu sa trenutnim izdanjem aplikacije. Da biste ih preuzeli i koristili, molimo Vas da, nadogradite aplikaciju na novije izdanje. Preimenovanje - - Online Nominatim + Online Nominatim Adresa … Neodređeno - - Konfiguracija ekrana + Konfiguracija ekrana Prikaži trake Izbegavaj neasfaltirane puteve Izbegavaj trajekte Fluorescentne rute - - Omogući\n režim spavanja + Omogući\n režim spavanja Naziv ulice Podešavanje ekrana Gde sam Zaključaj ekran Kompas - - Vrati na podrazumevano - - - Brzina + Vrati na podrazumevano + Brzina Destinacija Visina Sledeće skretanje @@ -159,24 +137,17 @@ Ekran je zaključan ukucajte za filtriranje Ekran visoke rezolucije - - glas + glas Vektorske mape nisu učitane - - GPX datoteke se ne nalaze u direktorijumu + GPX datoteke se ne nalaze u direktorijumu Greška pri čitanju GPX podataka - - - Izmena POI + Izmena POI Brisanje POI Bez rotacije (sever je gore) Orjentacija mape - - Lenjir - - Uvezi - - Došlo je do greške prilikom učitavanja GPX + Lenjir + Uvezi + Došlo je do greške prilikom učitavanja GPX Pošalji izveštaj Nema podataka za datu oblast na SD kartici. Preuzmite podatke sa Interneta. Bilo koji @@ -185,10 +156,8 @@ Auto-centriranje karte tokom upotrebe. Izlazak sunca: %1$s \nZalazak sunca: %2$s Dan/noć informacije - - Stil mape - - Izbegavati… + Stil mape + Izbegavati… Došlo je do greške tokom renderovanja izabrane oblasti Koristi lokaciju… Render uspešno učitan @@ -197,8 +166,7 @@ Odaberite poravnavanje ekrana mape Detalji rute Uneti upit za pretragu POI - - Dnevnik grešaka OSM-a na mreži + Dnevnik grešaka OSM-a na mreži POI… Pretraga POI Gde sam ja? @@ -207,8 +175,6 @@ GPS sekunde min. - - nijedan Da li ste sigurni da želite da prekinete navigaciju? Prikaži @@ -218,8 +184,7 @@ Dropbox dodatak omogućava da sinhronizujete putanje i audio/video beleške sa vašim Dropbox nalogom. Dropbox dodatak Promeni redosled - - Podrazumevano + Podrazumevano Pešački prelaz Prikazuj pešačke prelaze Da li želite da preuzmete karte za korišćenje van mreže? @@ -227,7 +192,6 @@ Preuzmi novu kartu Upravljajte Jezik karte - Oblast Sva preuzimanja Nadogradnje @@ -237,51 +201,38 @@ Sve datoteke su sveže Koristi OpenGL za prikaz Koristi hardversko ubrzanje OpenGL-a za prikaz (možda ne radi na nekim uređajima) - - - - Dostupne su nadogradnje %1$s karata + Dostupne su nadogradnje %1$s karata Potraži - - PRIKAŽI SVE + PRIKAŽI SVE Koordinate Nikad - Sakrij Pojedinosti - -Pretraga položaja… + Pretraga položaja… Položaj (pronađen) Omiljeno… - - Središte trenutne mape + Središte trenutne mape Izvor: Traži obližnje "Ime datoteke: " Datoteka sa istim imenom već postoji. Sačuvaj - - Otpremite GPIks datoteke zajednici OSM. Upotrebiće se za poboljšanje mapa. + Otpremite GPIks datoteke zajednici OSM. Upotrebiće se za poboljšanje mapa. %1$d od %2$d stavki je uspešno otpremljeno. Pošalji OSM-u Prikaži više pojedinosti mape Omiljena tačka(e) je uspešno izbrisana. Prijatelji Mesta - - Ime + Ime Vrsta - - Osnovna mapa sveta (koja pokriva ceo svet na malom uveličanju) nedostaje. Molim, preuzmite World_basemap_x.obf radi celokupnosti sredine. + Osnovna mapa sveta (koja pokriva ceo svet na malom uveličanju) nedostaje. Molim, preuzmite World_basemap_x.obf radi celokupnosti sredine. Izdanje Nema stavki za %1$s Upravljajte datotekama mapa Pokreni Isključi - - - - Preuzmi + Preuzmi Podaci POI-a Podaci adresa Podaci javnog prevoza @@ -289,18 +240,14 @@ Isključeno Glasovni podaci (TTS) Glasovni podaci (snimci) - - Podaci POI-a + Podaci POI-a Glas TTS-a Nova pretraga Izaberite veličinu pisma za imena na mapama Veličina pisma na mapi Podaci o otklonu grešaka prikaza Prikazuj učinak prikaza - - - - Raspakujem nove podatke… + Raspakujem nove podatke… Izabrana je usluga navođenja preko mrežne veze, ali je mrežna veza nedostupna. Jezik nije podržan Nedostaju podaci @@ -309,8 +256,7 @@ Izlaz navođenja glasom Zvuk govornog poziva Zvučno obaveštenje - - %1$s zahteva ovlašćenja da isključi ekran radi uštede energije. + %1$s zahteva ovlašćenja da isključi ekran radi uštede energije. Uključi ekran Uključi ekran uređaja (ako je isključen) kada se približi skretanje Ostala svojstva mape @@ -321,7 +267,6 @@ Leva površ Prikaži Podesite mapu - Bezimeni korisnik ne može\n- da pravi skupove;\n- da usklađuje skupove i uređaje sa serverom;\n- da upravlja skupovima i uređajima u ličnom uredu. Bezimeni korisnik Prijavljen kao %1$s @@ -362,10 +307,7 @@ \n\nSvetska karta prikazuje sva skijališta i skijaške staze u ovom pregledu je dostupna preuzimanjem „Svetske skijaške karte“. Zvuk - - - Deli belešku - + Deli belešku Geografski položaj:\nŠirina %1$s↵\nDužina %2$s Pregledaj Beležnica @@ -383,9 +325,7 @@ Preuzmi noćne izgradnje Izgradnje Tačke - Moj položaj - Kuća Linije metroa U blizini diff --git a/OsmAnd/res/values-be/phrases.xml b/OsmAnd/res/values-be/phrases.xml index af776edd12..c518c2704a 100644 --- a/OsmAnd/res/values-be/phrases.xml +++ b/OsmAnd/res/values-be/phrases.xml @@ -44,7 +44,6 @@ Капіравальныя паслугі Салон штор Тканіны - Пасьцельная бялізна Абсталяванне для дайвінгу Інструменты і будматэрыялы Сэкс-шоп @@ -250,7 +249,6 @@ Альтэрнатыўная медыцына Оталарынголаг Банк крыві - Медыцынскі цэнтр Акушэрка Прафесійны лекар Оптаметрыст @@ -381,7 +379,6 @@ Сінтаізм Даасізм Кляштар - Гістарычны кляштар Прыдарожны крыж Прыдарожная святыня Інфармацыйны стэнд @@ -521,7 +518,6 @@ Крэматорый Інтэрнэт-кафэ Банк - Банкамат Ліхвяр Ламбард Абмен валют @@ -610,7 +606,6 @@ Пазнака дальнасці Агонь плывучага маяка (судна) Лодкавая станцыя - Гандбол Крама Транспарт Адукацыя @@ -738,7 +733,6 @@ Вінны завод Галерэя мастацтваў Лабаз - Турыстычная славутасьць Станцыя для вершнікаў Вікіпедыя Вікіпедыя на англійскай мове @@ -808,7 +802,6 @@ Тавары для басейна Мадэлістам Крама моды - Крама абагравальнікаў Крама тавараў для дайвінгу Узнагароды, прызы Абмежавальнік вышыні @@ -837,7 +830,6 @@ Энэргетыка Хвалялом Хвалярэз - Турыстычная славутасьць Дрэва Гадзіны працы Апісанне @@ -876,7 +868,6 @@ Нацыянальны пешы маршрут Рэгіянальны пешы маршрут Мясцовы пешы маршрут - Абароненая вобласьць Вузлы пешаходнай ці рованай сеткі Пешыя маршруты Кантроль руху @@ -990,7 +981,6 @@ Instagram УКантакце Google+ - Млынавая сажалка Будынак Ваенкамат Натарыус @@ -1106,7 +1096,6 @@ Крыніца энэргіі: геатэрмальны Крыніца энэргіі: мазут Крыніца энэргіі: дызельнае паліва - Самаабслугоўваньне Міжнародная назва Агульнанацыянальная назва Рэгіянальная назва @@ -1127,7 +1116,6 @@ Офіс Тэрмінал Прырода - Інфармацыя: пра дзікую прыроду Гісторыя Знак Аўдыягід @@ -1159,8 +1147,6 @@ 4S (палепшаны першы клас) 5 (катэгорыя люкс) 5S (катэгорыя люкс +) - Колькасьць зорак: 6 - Колькасьць зорак: 7 Колькасць нумароў Love-гатэль На вынас: не @@ -1381,7 +1367,6 @@ Карткі Visa не прымаюцца MasterCard Карткі MasterCard не прымаюцца - Бясплатна Maestro Карткі Maestro не прымаюцца American Express (AMEX) @@ -1969,7 +1954,6 @@ Імправізаваны: не Асенізацыйная зліўная станцыя: ёсць Асенізацыйная зліўная станцыя: адсутнічае - Асенізацыйная зьліўная станцыя: толькі для наведвальнікаў Так Крыніца сілкавання: адсутнічае Крыніца сілкавання (штэкер): CEE 17 blue @@ -2373,7 +2357,6 @@ Надпіс:E Надпіс:NE Падчас будаўніцтва - З банкаматам Без банкамата Кастрышча Размеркавальная шафа @@ -2466,7 +2449,6 @@ Асенізацыйная зліўная станцыя Заходняя Традыцыйная кітайская - Мэдыцынская сістэма: традыцыйная невядома Аюрведа Традыцыйная японская Традыцыйная мангольская @@ -2606,7 +2588,6 @@ Асноўная Сажалка Струмень - Ёмістасць Выкарыстоўваецца: так Тып шафы: электрычная Тып шафы: тэлекамунікацыі @@ -3557,8 +3538,6 @@ Паром Перахопліваючая паркоўка Аўта з некалькімі пасажырамі - Крыніца энергіі: біямаса - Радыятэрапія Небяспека Катэгорыя цяжкасці н/к diff --git a/OsmAnd/res/values-bg/phrases.xml b/OsmAnd/res/values-bg/phrases.xml index 66ccb66cc1..d3b3c89765 100644 --- a/OsmAnd/res/values-bg/phrases.xml +++ b/OsmAnd/res/values-bg/phrases.xml @@ -78,7 +78,6 @@ Копирен център Магазин за завеси и покривки Магазин за пердета - Магазин за чаршафи и завивки Екипировка за гмуркане Рибарски принадлежности Магазин за цветя @@ -201,7 +200,6 @@ Магазин за паста Камери и лещи Магазин за свещи - Магазин за нагревателни елементи Магазин за градински мебели Магазин за домашни потреби Магазин за кожи @@ -299,7 +297,6 @@ Санаториум Алтернативна медицина Кръвна банка - Медицински център Физиотерапевт Педиатър Психотерапевт @@ -341,7 +338,6 @@ Аквариум Тематичен парк Туристическа атракция - Туристическа атракция Хотел Къща за гости Хостел diff --git a/OsmAnd/res/values-bg/strings.xml b/OsmAnd/res/values-bg/strings.xml index 19fca014af..f5b532dabb 100644 --- a/OsmAnd/res/values-bg/strings.xml +++ b/OsmAnd/res/values-bg/strings.xml @@ -873,7 +873,6 @@ Грешка при изчисляване на маршрута Възникна грешка при изчисляване на маршрута Грешка: Изчисленият маршрут е празен - Изчислен е нов маршрут, дистанция Пристигнахте в крайната цел Невалидни координати Върни се на картата OsmAnd @@ -970,7 +969,6 @@ Коментарът не може да бъде добавен. Редактиране на POI Създай POI - Точката не може да бъде намерена или избраното съдържа повече от една точка Изтриване на {0} (enter comment)? Изтриване на POI Изтрий @@ -1765,7 +1763,6 @@ Брой редове %1$s Можете да управлявате приложението чрез гъвкаво табло или чрез статично меню. Вашият избор може да бъде променен по-късно. Пътеки за конна езда - Обновяване на всеки Сваляне само през WiFi Актуализиране на момента Актуализирай сега @@ -1925,8 +1922,6 @@ Получете упътвания и открийте нови места без да ползвате връзка към Интернет Промяна Намери моето местоположение - Да не се проверява за нови версии, промоции свързани с OsmAnd - Да не се показват актуализации Обновяване на всички карти сега\? Изчистване на всички плочки Икономичен маршрут @@ -2088,8 +2083,6 @@ Елементи по-надолу, отделени с разделител. Скрити Тези елементи са скрити от менюто, но представените опции или добавки все още работят. - Някои статии в Уикипедия може да не са налични на вашия език, изберете езиците, на които статиите в Уикипедия ще се показват на картата. -\nЩе можете да превключвате между всички налични езици, докато четете статията. Настройване на профил Превключване на профил Профилът на приложението е променен на „%s“ diff --git a/OsmAnd/res/values-bs/strings.xml b/OsmAnd/res/values-bs/strings.xml index ce150b7672..be90446afa 100644 --- a/OsmAnd/res/values-bs/strings.xml +++ b/OsmAnd/res/values-bs/strings.xml @@ -1,7 +1,6 @@ Što prije - - Kružni tok : idite %1$d izlaz i idite + Kružni tok : idite %1$d izlaz i idite Držite se lijeve strane i idite Držite se desne strane i idite Sve prave slike zemljišta učinite providnim @@ -17,12 +16,10 @@ Koordinate Pretraga transporta Pretraga omiljenih - - OsmAnd navigacija van mreže trenutno nije dostupna. + OsmAnd navigacija van mreže trenutno nije dostupna. Vožnja sa lijeve strane Izaberite za zemlje gdje se vozi lijevom stranom - - Početna tačka još uvijek nije određena + Početna tačka još uvijek nije određena Pozicija je još uvijek nepoznata Odredite providnost (0 - providno, 255 - vidljivo) Da li ste sigurni da želite prekinuti preuzimanje datoteke? @@ -31,16 +28,13 @@ Ništa nije pronađeno. Ako ne možete pronaći svoju regiju, možete ju sami napraviti (opširnije na http://osmand.net). Mape van mreže (u sličicama) Mape van mreže (vektori) - - Preuzmite, pogledajte detalje i uredite mape van mreže + Preuzmite, pogledajte detalje i uredite mape van mreže Omogući nadogradnju za izbor drugačijih izvora javnih mapa Javne mape (u sličicama) Koristi javne mape (preuzmi i keširaj sličice na memorijsku karticu) Javne mape Podesi izvor sličica javnih ili keširanih mapa - - - Sati + Sati Minuta Automobil je parkiran od: Koristi kompas @@ -49,16 +43,12 @@ Prikaži kamere za mjerenje brzine Prikaži saobraćajna upozorenja Izbjegavaj ceste sa naplatom - - Naziv ulice + Naziv ulice Gdje sam Zaključaj ekran Kompas - - Resetuj na zadano - - - Parkiralište + Resetuj na zadano + Parkiralište Brzina Target Visina @@ -78,7 +68,6 @@ Vrijeme dolaska provjereno Karta - Jeste li sigurni da želite zaustaviti navigaciju? Jeste li sigurni da želite ukloniti tačku odredišta? Prikaži @@ -95,8 +84,6 @@ Snimanje stani pokreni - - dijelovi Samo ceste Sakrij granice @@ -120,8 +107,7 @@ Preferiraj… Preferiraj autocestu OpenMaps EU - - GPS status + GPS status Ne Da \ No newline at end of file diff --git a/OsmAnd/res/values-ca/phrases.xml b/OsmAnd/res/values-ca/phrases.xml index ead5d67e74..163e4dede5 100644 --- a/OsmAnd/res/values-ca/phrases.xml +++ b/OsmAnd/res/values-ca/phrases.xml @@ -216,7 +216,6 @@ Medicina alternativa Audiologia Banc de sang - Centre mèdic Infermeria obstètrico-ginecològica Teràpia ocupacional Optometria @@ -284,7 +283,6 @@ Pàdel Parapent Joc de pilota - Matalasseria Gas liquat Gran magatzem Recanvis de cotxe @@ -312,7 +310,6 @@ Surf Natació Ping-pong - Handbol Tennis Tobogan Voleibol @@ -484,7 +481,6 @@ Accés a Internet: públic Accés a Internet: servei Monestir - Monestir històric Creu de terme Peto d\'ànimes Informació @@ -632,7 +628,6 @@ Dipòsit de cadàvers Crematori Banc - Caixer automàtic Comptable Pagament amb bitcoins Cim @@ -661,7 +656,6 @@ Ancoratge Punt d\'ancoratge Obstacle - Atracció turística Agrupació artística Associació informàtica Club de motos @@ -834,9 +828,7 @@ Escullera Espigó Quadre elèctric - Reserva natural Grua - Atracció turística Tallafoc Arbre Pas de vianants @@ -867,7 +859,6 @@ Control de trànsit: control Control de trànsit: accés Control de trànsit: peatge - Botiga de calefactors Trofeus i distincions Bassa Porta batent de tancament controlat @@ -983,7 +974,6 @@ Cartró d\'embalar Envasos de cartró de begudes Xapa metàl·lica - Bassa del molí Twitter Skype YouTube @@ -1442,8 +1432,6 @@ 4S (Primera classe superior) 5 (Luxe) 5S (Luxe superior) - Estrelles: 6 - Estrelles: 7 Habitacions Hotel per parelles Monedes @@ -1468,7 +1456,6 @@ No s\'accepta tarja Visa MasterCard No s\'accepta Mastercard - Sense cost Targetes Maestro No s\'accepta tarja Maestro American Express (AMEX) @@ -1481,7 +1468,6 @@ No s\'accepten targes UTA Element turístic Proveïment d\'aigua - Indicador informatiu: fauna Signe Clàssic Clàssic + Patinatge @@ -1825,7 +1811,6 @@ Acampada lliure: no Estació de buidatge sanitari: sí Estació de buidatge sanitari: no - Estació de buidatge sanitari: només clients Subministrament elèctric: no Subministrament elèctric (endoll): CEE 17 blau @@ -2716,7 +2701,6 @@ Artèria Estany Riu - Cisterna En servei: sí Internacional Regional diff --git a/OsmAnd/res/values-ca/strings.xml b/OsmAnd/res/values-ca/strings.xml index 59f7302183..da3bd5d88c 100644 --- a/OsmAnd/res/values-ca/strings.xml +++ b/OsmAnd/res/values-ca/strings.xml @@ -506,7 +506,6 @@ S\'ha baixat Horari d\'obertura PDI - S\'ha calculat una ruta nova, distància S\'estan carregant les dades… Finalitzat Actualitza el mapa @@ -991,7 +990,6 @@ Cerca progressiva d\'edificis Instal·lacions més properes Part inferior - No s\'ha trobat el node, o la instal·lació consta de diferents nodes, i això encara no s\'admet. S\'ha produït un error d\'E/S durant l\'acció {0}. Anuncia… Configureu la notificació dels noms de carrer, incidències de trànsit (cues, bandes sonores), avisos de radar i límits de velocitat. @@ -1794,7 +1792,6 @@ Taxa de bits de l\'àudio Seleccioneu la taxa de bits de l\'àudio. Consulta per adreça - Actualitza tots Baixades només amb WIFI Actualitza al moment Actualitza ara @@ -2005,8 +2002,6 @@ Autoritza Permet accedir a la localització Troba la meva localització - No comprovis noves versions ni ofertes relatives a OsmAnd. - No mostris noves versions Omet els mapes en procés de baixada No disposeu de cap mapa local. Podeu triar un mapa de la llista o baixar mapes més tard via «Menú - %1$s». Selecciona un altre país @@ -2069,9 +2064,6 @@ Agafeu la %1$d sortida i continueu Ciutat o regió Articles de la zona a la Viquipèdia - Cerca de llegat - Mostra la cerca de llegat - Afegeix la cerca de llegat en la llista desplegable. Utilitza les autopistes Admet autopistes. Serbi (llatí) @@ -2591,17 +2583,6 @@ Per data Per tipus Modifiqueu la vostra cerca. - Novetats: Suport a guies de viatges globals sense connexió. Ubicacions esmentades es vinculen al mapa. Dades inicials de ViquiViatges. -\n -\n• Viquipèdia: nova imatge, enllaços actius, imatges -\n -\n• IU de rutes Open Track: mostra grups de fites -\n -\n• Marcadors de mapa: importa determinats grups dels fitxers GPX, nou aspecte de l\'introducció de coordenades -\n -\n• La subscripció OsmAnd Live ara inclou totes les característiques d\'OsmAnd -\n -\n \'Un toc\' actiu El que hi ha aquí: aparcat a @@ -2778,52 +2759,13 @@ Enviarem la vostra consulta de cerca: a \"%1$s\", junt amb la vostra ubicació. \n \n No es recull informació personal, només les dades de la cerca per millorar-la. - Cap resultat? -\nParleu-nos-en al respecte. Voleu enviar la consulta de cerca? - "• Navegació: Correcció en la barra de progrés, intercanvi ràpid del punt inicial i final de la ruta -\n -\n• Marcadors de mapa: Correcció de l\'activació/desactivació de grups, possibilitat d\'amagar marcadors del mapa -\n -\n• Edició OSM: Capacitat per editar les etiquetes per objectes no puntuals, correcció de la pèrdua de comentaris a les notes, còpia de seguretat de les edicions -\n -\n• Millora la anàlisi de Viquipèdia i Wikiviatge, els fitxers actualitzats ja estan disponibles -\n -\n• Menú contextual: Arregla el color dels indicadors de nom de via en el mode nocturn, correcció de la mida del menú addicional -\n -\n• Nàutica: Guiatge pels canals de navegació -\n -\n• Altres correccions d\'errors -\n" Allarga el radi de cerca fins %1$s - Executant via… Gràcies per els vostres comentaris No s\'ha pogut trobar el node o la via. Cap resultat en la cerca? \nComenteu-nos-ho Premeu un botó i escolteu la corresponent descripció de veu per identificar si estan pendents o són errònies - "• S\'ha corregit el bloqueig d\'entrada d\'alguns dispositius -\n -\n -\n • Nova opció dels marcadors: Es mostren els marcadors que ja s\'han assolit -\n -\n -\n • L\'historial de cerques ara mostra les categories cercades anteriorment -\n -\n -\n • S\'ha corregit el bloqueig d\'entrada si alfabets no llatins als mapes -\n -\n -\n • Millora dels problemes de velocitat de renderització a dispositius Android 8.0 -\n -\n -\n • Suport a l\'edició d\'objectes poligonals (fora de serveis) -\n -\n -\n • Mesura de distàncies: S\'ha afegit el botó \"Mesura\" dins Accions en el menú contextual -\n -\n -\n " Cal que doneu a OsmAnd accés a la ubicació per continuar. Negre Cerca un carrer @@ -2904,23 +2846,6 @@ Amaga les traces Mostra les traces Pugeu a la parada - • Nova pantalla \'Adreces\': Mostra els botons de destinació Casa i Feina, drecera de \'ruta anterior\', llista de traces GPX i marcadors actius, historial de cerca -\n -\n • Informació addicional desplegant \'Detalls de la ruta\': tipus de via, pavimentació, pendent, estat -\n -\n • La navegació en transport públic inclou tot tipus de transport: metro, bus, tram, etc. -\n -\n • Noves dreceres per mostrar/amagar traces i pels modes diürn/nocturn -\n -\n • Àrees determinades es mostren com inundades a Alemanya, Sud-Àfrica, el Quebec -\n -\n • Nou suport a la importació de fitxers KML i KMZ -\n -\n • Corregides les penjades en obrir algunes parades de transport públic -\n -\n • S\'han eliminat les estadístiques Facebook i Firebase de la versió gratuita (OsmAnd+ ja no les tenia) -\n -\n Activa les modificacions del transport públic amb OsmAnd Live. Transport públic a OsmAnd Live Llegiu més sobre com OsmAnd calcula les rutes al nostre bloc. @@ -2997,14 +2922,6 @@ Evita el metro i el tram Sense ferris Evita els ferris - • Mostra el temps entre transbordaments al transport públic -\n -\n• Corregida la IU pels detalls de la ruta -\n -\n• Tema nocturn corregit al menú Adreça i als detalls de ruta -\n -\n• Mostra l\'azimut en la mesura de la distància -\n Envia el registre S\'han mogut %1$d arxius (%2$s). S\'han copiat %1$d arxius (%2$s). @@ -3028,7 +2945,6 @@ \nSempre es pot revisar a \'Configuració\' > \'Privadesa i seguretat\'. Trieu el tipus de dades que voleu compartir: Mapes baixats - Dades recollides Definiu quines dades permeteu que OsmAnd comparteixi. Ajudeu-nos a determinar la popularitat dels mapes de països i de regions. Ajudeu-nos a determinar la popularitat de les característiques d\'OsmAnd. @@ -3100,8 +3016,6 @@ Vaixell, rem, vela Avió, vol planat Geocodificació - Canvieu el zoom del mapa girant la roda amunt i avall. La tecla Esc us retornarà a l\'aplicació WunderLINQ. - Utilitzeu WunderLINQ per al control Afegir com a mínim un element a la llista a la configuració de l\'acció ràpida Pistes per esquí alpí o eslàlom i accés als remuntadors. Trineu @@ -3225,7 +3139,6 @@ El perfil de l\'aplicació ha canviat a \"%s\" Configuració del connector Predeterminat - Baixeu el mapa detallat %s per veure aquesta àrea. Paràmetres de la ruta Voleu moure els arxius de dades OsmAnd a una nova destinació\? \n%1$s > %2$s @@ -3323,7 +3236,6 @@ Configuració per la navegació en el perfil seleccionat \"%1$s\". Retard des de l\'activació Unitats i formats - Aparença Aparença del mapa Aspecte del mapa Connectors instal·lats @@ -3493,7 +3405,6 @@ \n La més curta Càlcul de rutes - Estil personalitzat de representació Inclou dades addicionals El perfil importat conté dades addicionals. Cliqueu \"Importa\" per importar només les dades del perfil o seleccioneu dades addicionals. Podeu seleccionar dades addicionals per exportar juntament amb el perfil. @@ -3546,7 +3457,6 @@ Seleccioneu la desviació per sobre de la qual es tornarà a calcular la ruta. Recalcula la ruta cas de desviament Quadrat - Rombe Cercle Seleccioneu forma Seleccioneu grup diff --git a/OsmAnd/res/values-cs/phrases.xml b/OsmAnd/res/values-cs/phrases.xml index ab1dc38a33..8c6b4981ff 100644 --- a/OsmAnd/res/values-cs/phrases.xml +++ b/OsmAnd/res/values-cs/phrases.xml @@ -161,7 +161,6 @@ Márnice Krematorium Banka - Bankomat Účetní Sedlo Sopka @@ -272,7 +271,6 @@ Kopírování Závěsy/Záclony Látky - Lůžkoviny Pro domácí kutily Sexshop Rybářské potřeby @@ -443,7 +441,6 @@ Ozdravovna Alternativní medicína Ušní - Zdravotnické centrum Porodní asistentka Ergoterapie Podiatr @@ -509,7 +506,6 @@ Bruslení Skateboarding Surfing - Házená Bobová dráha Muzeum Umělecké dílo @@ -553,7 +549,6 @@ Internetové připojení: kabel Internetové připojení: veřejné Internetové připojení: služba - Historický klášter Kříž, křížek Kaplička, boží muka Informace @@ -727,7 +722,6 @@ Skialpinismus Rozhledna Zvonice - Všeobecná turistická atrakce Chatka Trojstranný přístřešek Piknikový stůl @@ -793,7 +787,6 @@ Obchod s těstovinami Cukrárna Obchod se svíčkami - Obchod s topnými jednotkami Hudebniny Potápěčské potřeby Obchod s pneumatikami @@ -809,9 +802,7 @@ Pobřežní hráz Kabelová rozvodní skříň Nádrž na dešťovou vodu - Chráněné území Jeřáb - Turistická atrakce Náboženská oblast Průsek lesa Strom @@ -935,7 +926,6 @@ Ano Turistické trasy Parfumerie - Mlýnský rybník Chladicí věž Osvětlovací věž Jaderný odpad @@ -973,7 +963,6 @@ Cyklistická mapa Audioprůvodce Historie - Informační značení: živočich Příroda Turistická mapa Terminál @@ -1138,7 +1127,6 @@ Opěradlo: ano Opěradlo: ne Občasné - Samoobslužné Značka Komerční pozemek Maloobchodní pozemek @@ -1425,8 +1413,6 @@ 4S (Vyšší první třída) 5 (Luxus) 5S (Vyšší luxus) - Hvězdy: 6 - Hvězdy: 7 Místnosti Hodinový hotel Mince @@ -1451,7 +1437,6 @@ Nepřijímá Visa karty MasterCard Nepřijímá MasterCard karty - Bez poplatku Účtové karty Nepřijímá účtové karty Maestro karty @@ -2090,7 +2075,6 @@ Improvizované tábořiště: ne Stanoviště pro vypuštění sanitárního odpadu: ano Stanoviště pro vypuštění sanitárního odpadu: ne - Stanoviště pro vypuštění sanitárního odpadu: pouze zákazníci Vybavení pro uprchlíky Uprchlíci: ne Skupinový domov @@ -2367,7 +2351,6 @@ Nápis: V Nápis: SV Ve výstavbě - Bankomat: ano Bankomat: ne Ohniště Pouliční skříň @@ -2449,7 +2432,6 @@ Zařízení pro vypuštění sanitárního odpadu Západní Tradiční čínský - Zdravotní systém: neznámý tradiční Ájurvéda Tradiční mongolský Tradiční tibetský @@ -2587,7 +2569,6 @@ Hlavní Rybník Potok - Cisterna V provozu: ano Typ skříně: energie Typ skříně: telecom @@ -3479,7 +3460,6 @@ Význam stromu Parkoviště (P+R) vázané na dopravu Místo pro spolujízdu autem - Radiační onkologie Deep-water soloing (lezení nad hlubokou vodou): ano Deep-water soloing (lezení nad hlubokou vodou): ne Pevné ukotvení: ano @@ -3530,7 +3510,6 @@ Vozidla s jedním nebo více pasažéry (HOV) Tramvaj Trajekt - Zdroj energie: biomasa Kategorie obtížnosti Vysoký Střední diff --git a/OsmAnd/res/values-cs/strings.xml b/OsmAnd/res/values-cs/strings.xml index 7baa8f0ca5..e34634fd65 100644 --- a/OsmAnd/res/values-cs/strings.xml +++ b/OsmAnd/res/values-cs/strings.xml @@ -521,7 +521,6 @@ Nepodařilo se vypočítat trasu. Nepodařilo se vypočítat trasu. Vypočítaná trasa je prázdná. - Vypočtena nová trasa, vzdálenost Dorazili jste do cíle. Neplatné souřadnice Vrátit se k mapě @@ -619,7 +618,6 @@ Nepodařilo se přidat komentář. Upravit POI Vytvořit POI - Uzel nelze nalézt nebo vybavení sestává z několika uzlů, které ještě nejsou podporovány. Vymazat {0} (komentář) \? Vymazat POI Vymazat @@ -1805,7 +1803,6 @@ Udělit oprávnění pro přístup k poloze. Udělit oprávnění pro přístup k fotoaparátu. Udělit oprávnění pro přístup k mikrofonu. - Aktualizovat každých Okamžité aktualizace Aktualizovat nyní OsmAnd nemá oprávnění používat paměťovou kartu @@ -2004,8 +2001,6 @@ Povolit přístup k poloze Nechejte se navigovat a objevte nová místa bez nutnosti připojení k Internetu Najít mou polohu - Nekontrolovat nové verze a slevy související s OsmAnd. - Nezobrazovat nové verze Aktualizovat všechny mapy ihned? Vymazat všechny dlaždice Ekonomická trasa @@ -2072,13 +2067,10 @@ Výpočet trasy Použijte %1$d. výjezd a pokračujte Nahrát POI - Starší vyhledávání - Zobrazit starší způsob vyhledávání Použít dálnice Povolí jízdu po dálnicích. Články Wikipedie v okolí Město nebo oblast - Přidat starší hledání do úvodního panelu. Srbsky (latinka) Čínsky (Hong Kong) Hustota vrstevnic @@ -2731,15 +2723,6 @@ Jak otevřít články Wikipedie? Skrýt plný popis Zobrazit plný popis - • Nové: Podpora pro celosvětové cestovní průvodce. Odkazovaná místa jsou propojené s mapou. Úvodní data z Wikivoyage. -\n -\n • Wikipedie: nový vzhled, aktivní linky, podpora obrázků -\n -\n • Rozhraní zobrazování tras: podpora skupin přechodových bodů (waypointů) -\n -\n • Mapové značky: import vybraných skupin z GPX souborů, nový vzhled zadávání souřadnic -\n -\n • Předplatné OsmAnd Live nyní zahrnuje všechny funkce OsmAnd Zašlete prosím kopii obrazovky s touto chybou na email support@osmand.net Upravit akce Získejte OsmAnd Live pro odemknutí všech funkcí: Denní aktulizace mapových podkladů s neomezeným počtem stahování, všechny placené moduly, propojení s Wikipedia, Wikivoyage a mnoho dalšího. @@ -2747,21 +2730,6 @@ Bod nebo cesta nebyly nalezeny. Žádný výsledek vyhledávání\? \nPoskytněte nám zpětnou vazbu - • Navigace: Opravený indikátor průběhu, přidána možnost pro rychlé prohození začátku a konce trasy -\n -\n • Mapové značky: Opravena možnost zapnutí/vypnutí skupin, nově možnost skrýt značky na mapě -\n -\n • Úpravy OSM: Nově možnost upravovat tagy všech objektů zájmu v mapě (nejen bodových jako dosud), opraveny chybějící komentáře v poznámkách, přidána možnost zálohy úprav -\n -\n • Vylepšené vykreslování článků Wikipedie a Wikivoyage, upravené soubory jsou již k dispozici ke stažení -\n -\n • Nabídka: Opraveny barvy znaků v nočním režimu, opraveny velikosti dodatečných menu -\n -\n • Lodní navigace: Nově podpora vodních cest -\n -\n • Menší opravy nahlášených chyb -\n - Odesílání cesty… Zvětšit okruh hledání na %1$s Váš vyhledávací dotaz a poloha budou odeslány na: \"%1$s\". \n @@ -2806,20 +2774,6 @@ Pro pokračování prosím udělte OsmAndu oprávnění pro přístup k poloze. Černá Z této zastávky je možná další doprava. - • Opraven pád při startu, ke kterému docházelo na některých zařízeních -\n -\n • Nová akce značek: zobraz značky, které již byly projety -\n -\n • Vyhledávání v historii nyní ukazuje kategorie, které jste prohledávali v minulosti -\n -\n• Opravený pád při startu s ne-latinkovými mapami -\n -\n• Zlepšení rychlosti vykreslování na zařízeních s Android 8.0 -\n -\n• Podpora pro editování plošných objektů -\n -\n• Měření vzdálenosti: tlačítko \"Měření\" přidáno do akcí v kontextovém menu -\n Hledat ulici Nejprve zvolte město/oblast Obnovit @@ -2955,22 +2909,6 @@ Chůze Zkraťte délku názvu značky \"%s\" na méně než 255 znaků. Délka hodnoty \"%s\" - "• Nová obrazovka \'Pokyny\': Zobrazuje tlačítka pro cíl Domov a Práce, zkratku pro \'předchozí trasu\', seznam aktivních GPX tras a značek, historii vyhledávání -\n -\n • Doplňující informace pod \'Detaily trasy\': druhy cest, povrch, strmost, kvalita povrchu -\n -\n • Navigace hromadnou dopravou: metro, autobusy, tramvaj, atd. -\n -\n • Nové rychlé akce pro skrytí/zobrazení tras a změnu denního/nočního režimu -\n -\n • Opravené oblasti zobrazené jako zaplavené v Německu, Jižní Africe, Quebecu -\n -\n • Vylepšená podpora pro import KML a KMZ -\n -\n • Opravené pády aplikace při otevření některých zastávek hromadné dopravy -\n -\n • Odstraněné analytické moduly Facebook a Firebase z verze zdarma (OsmAnd+ je neobsahoval) -\n " Žádné dlažební kostky Vyhne se dlažebním kostkám Stupně @@ -2989,15 +2927,6 @@ Vyhnout se metru a lehké železniční dopravě Žádné trajekty Vyhne se trajektům - • Zobrazování času na přestup mezi hromadnou dopravou -\n -\n • Upravené rozhraní detailů trasy -\n -\n • Opravené tmavé téma v menu pokynů a detailů trasy -\n -\n • Zobrazení azimutu v měření vzdálenosti -\n -\n Odeslat protokol %1$d souborů přesunuto (%2$s). %1$d souborů zkopírováno (%2$s). @@ -3073,7 +3002,6 @@ Navigování třetí strany Zvolte profily, které mají být viditelné v aplikaci. Profily aplikace - Použít WunderLINQ pro ovládání Přidejte alespoň jednu položku do seznamu \'Rychlá akce\' Alpské a sjezdové lyžování Svahy pro alpské nebo sjezdové lyžování a přístup k lyžařským vlekům. @@ -3218,7 +3146,6 @@ Zobrazit mapu na uzamčené obrazovce během navigace. Nastavení navádění pro zvolený profil „%1$s“. Jednotky a formáty - Vzhled Vzhled mapy Upravit profil Přepnout profil @@ -3382,8 +3309,6 @@ Vlastní profil Importovat soubor vykreslování Vyberte soubor stopy - Některé články Wikipedie nemusí být dostupné ve vašem jazyce. Zvolte jazyky, v nichž se články Wikipedie objeví na mapě. -\nBěhem čtení článku budete moci přepínat mezi všemi dostupnými jazyky. Pro zobrazení bodů zájmu Wikipedie jsou potřeba další mapy. Obsahuje pouze 4 tlačítka. Hlavní akce diff --git a/OsmAnd/res/values-cy/strings.xml b/OsmAnd/res/values-cy/strings.xml index 62c9977987..e969c2d217 100644 --- a/OsmAnd/res/values-cy/strings.xml +++ b/OsmAnd/res/values-cy/strings.xml @@ -3,26 +3,19 @@ Dangos cyfyngiad cyflymder, camerâu cyflymder a thwmpathau traffig Lliwiau fflwroleuol Mesurydd - -Golwg cyfeiriad + Golwg cyfeiriad Golwg tryloyw - - -Rhedeg yn y cefndir + Rhedeg yn y cefndir Atal y cefndir Parhaus I ddatgloi\'r sgrin pwyswch yr eicon cloi Enw stryd Ffurfweddiad - -Lle\'r ydw i + Lle\'r ydw i Cloi\'e sgrin Cwmpawd - -Ailosod i\'r rhagosodiad - - -Parcio + Ailosod i\'r rhagosodiad + Parcio Cyflymder Targed Uchder @@ -35,54 +28,41 @@ Sgrin datgloi Mae\'r sgrin wedi cloi Gosod cyfnod deffro: - - -Dangos camerâu cyflymder + Dangos camerâu cyflymder Dangos cyfyngiadau cyflymder Osgoi tollffyrdd - -Nid oedd y llywio diwethaf wedi ei gwblhau. Parhau i\'w ddilyn? (%1$s eiliad) + Nid oedd y llywio diwethaf wedi ei gwblhau. Parhau i\'w ddilyn? (%1$s eiliad) Bydd y daith yn cael ei ail-gyfrifo ar ôl canfod y lleoliad Awr Munud Roedd y car wedi ei barcio yn: - -Defnyddio cwmpawd lle nad yw\'r cyfeiriad wedi ei ganfod + Defnyddio cwmpawd lle nad yw\'r cyfeiriad wedi ei ganfod Defnyddio cwmpawd Defnyddio cyflymu animeiddio taith Cof Dynodedig %1$s MB (Terfyn Android %2$s MB, Dalvik %3$s MB). Cof Dynodedig - - -Ffurfweddu\'r sgrin + Ffurfweddu\'r sgrin Dangos lonydd Osgoi ffyrdd heb wyneb caled Osgoi fferïau Cyfanswm cof cynhenid - -Man cychwyn yn rhy bell o\'r ffordd agosaf + Man cychwyn yn rhy bell o\'r ffordd agosaf Lleoliad rhanedig Ceisiwch osgoi traffyrdd Zoom Auto mapio yn ôl eich cyflymder (tra map wedi eu cydamseru gyda\'r sefyllfa bresennol) Auto chwyddo map - -Snap sefyllfa i ffyrdd yn ystod llywio + Snap sefyllfa i ffyrdd yn ystod llywio Snap i\'r ffordd OsmAnd yn gais ffynhonnell agored ar gyfer llywio fapiau all-lein ac ar-lein OsmAnd yn gais ffynhonnell agored ar gyfer llywio fapiau all-lein ac ar-lein - -Creu POI hidlo + Creu POI hidlo Dull trafnidiaeth: Dewiswch dull trafnidiaeth - -Sunrise : %1$s \nSunset : %2$s + Sunrise : %1$s \nSunset : %2$s Dydd/nos info - -Priodoleddau Rendro: + Priodoleddau Rendro: Arddull rendro - - -Cyfanswm cof brodorol a ddyrennir gan app %1$s MB (Dalvik %2$s MB, arall %3$s MB).↵ + Cyfanswm cof brodorol a ddyrennir gan app %1$s MB (Dalvik %2$s MB, arall %3$s MB).↵ Cyfrannol cof %4$s MB (terfyn Android %5$s MB, Dalvik %6$s MB). Codwch y car o barcio Rhybudd @@ -108,8 +88,7 @@ Cyfrannol cof %4$s MB (terfyn Android %5$s MB, Dalvik %6$s MB). Trackable Preifat cyn gynted â phosibl - -Cylchfan: cymryd %1$d allanfa ac yn mynd + Cylchfan: cymryd %1$d allanfa ac yn mynd Cadwch i\'r chwith ac ewch Cadwch i\'r dde ac ewch Gwneud yr holl nodweddion tir arwynebedd ar fap tryloyw @@ -127,12 +106,10 @@ Cyfrannol cof %4$s MB (terfyn Android %5$s MB, Dalvik %6$s MB). Cyfesurynnau Cludiant chwilio Ffefrynnau chwilio - -OsmAnd llywio all-lein nad yw ar gael dros dro. + OsmAnd llywio all-lein nad yw ar gael dros dro. Chwith-law gyrru Dewiswch ar gyfer gwledydd gyda chwith traffig - -Nid yw man cychwyn hwn wedi\'i benderfynu eto + Nid yw man cychwyn hwn wedi\'i benderfynu eto Sefyllfa nad yw\'n hysbys eto Addasu tryloywder (0 - tryloyw, 255 - afloyw) Ydych chi eisiau i dorri ar draws llwytho ffeil? @@ -140,26 +117,18 @@ Cyfrannol cof %4$s MB (terfyn Android %5$s MB, Dalvik %6$s MB). Ni ddaethpwyd o hyd. Os gallwch ni all ddod o hyd i\'ch rhanbarth, gallwch wneud eich hun (gweler http://osmand.net). Mapiau Ar-lein (teils) Fapiau all-lein (fector) - -Lawrlwythwch, gweld y manylion, a rheoli mapiau all-lein + Lawrlwythwch, gweld y manylion, a rheoli mapiau all-lein Galluogi mapiau plugin ar-lein i ddewis ffynonellau map gwahanol Mapiau Ar-lein (teils) Defnyddio mapiau ar-lein (teils lawrlwytho a cache ar SD cerdyn) Mapiau Ar-lein Ffurfweddu ffynonellau teils ar-lein neu cached map - - -Dangos gosodiadau ar gyfer nodweddion hygyrchedd arbennig. - - - -Dangos gosodiadau ar gyfer nodweddion datblygu a debugging fel mordwyo hanimeiddio neu arddangos perfformiad rendro. + Dangos gosodiadau ar gyfer nodweddion hygyrchedd arbennig. + Dangos gosodiadau ar gyfer nodweddion datblygu a debugging fel mordwyo hanimeiddio neu arddangos perfformiad rendro. Rheolwr ategyn - -Plugins galluogi lleoliadau modd arbenigol ac yn darparu swyddogaeth ychwanegol fel mapiau olrhain teils,, gweithredu dull cwsg, lleoliadau hygyrchedd, ac eraill. + Plugins galluogi lleoliadau modd arbenigol ac yn darparu swyddogaeth ychwanegol fel mapiau olrhain teils,, gweithredu dull cwsg, lleoliadau hygyrchedd, ac eraill. Rheolwr ategyn - -Mapiau fector debygol arddangos yn gyflymach. Efallai na gweithio\'n dda ar rai dyfeisiau. + Mapiau fector debygol arddangos yn gyflymach. Efallai na gweithio\'n dda ar rai dyfeisiau. Chwarae gorchmynion llais a ddewiswyd ar hyn o bryd OsmAnd datblygu Rendro Brodorol diff --git a/OsmAnd/res/values-da/phrases.xml b/OsmAnd/res/values-da/phrases.xml index 8ae23f4061..79eca4f66c 100644 --- a/OsmAnd/res/values-da/phrases.xml +++ b/OsmAnd/res/values-da/phrases.xml @@ -34,7 +34,6 @@ Kopicenter Gardinbutik Stofbutik - Sengetøj Dykkerudstyr Byggemarked Erotisk butik @@ -340,7 +339,6 @@ Shinto Taoisme Kloster - Historisk kloster Vejside kors Vejkantsalter Information @@ -477,7 +475,6 @@ Krematorium Internet cafe Bank - Hæveautomat Pengeudlåner Pantelåner Vekselkontor @@ -561,7 +558,6 @@ Alternativ medicin Audiolog Blodbank - Medicinsk center Jordemoder Ergoterapeut Optiker @@ -609,7 +605,6 @@ Akvarie Mast Radar - Håndbold Butik Nødsituation Transport @@ -730,7 +725,6 @@ Klokketårn Skiudlejning Skisportssted - Generel turistattraktion Hytte Jagthytte Bordbænkesæt @@ -830,7 +824,6 @@ Videospil Pyroteknik Våbenbutik - Varmeapparater Freeflying udstyr Kent carriage gap Scuba dykning udstyr @@ -839,8 +832,6 @@ Høfde Elskab Basin - Beskyttet område - Bygning Kran Brandbælte Træ @@ -850,7 +841,6 @@ Lokal netværk af cykelruter Forladt Nedlagt - Turistattraktion Operatør Max vægt Max højde @@ -984,7 +974,6 @@ Med stoplys Ikke kontrolleret Ikke markeret - Mølledam Twitter Skype YouTube @@ -1164,7 +1153,6 @@ Elmast Lysmast Bymæssig - Selvbetjening International navn National navn Regional navn @@ -1190,7 +1178,6 @@ Ruteskilte Vandrekort Natur - Informationsmarkør: dyreliv Historie Skilt Audioguide @@ -1312,8 +1299,6 @@ 4S (Superior Førsteklasse) 5 (Luksus) 5S (Superior Luksus) - Stjerner: 6 - Stjerner: 7 Værelser Kærlighedshotel Mønter @@ -1338,7 +1323,6 @@ Visakort accepteres ikke MasterCard MasterCard accepteres ikke - Vederlagsfrit Kontokort Kontokort accepteres ikke Maestro kort @@ -1972,7 +1956,6 @@ Improviseret: nej Sanitær tømmestation: ja Sanitær tømmestation: nej - Sanitær tømmestation: kun for kunder Ja Strømforsyning: nej Strømforsyning (stik): CEE 17 blå @@ -2384,7 +2367,6 @@ Inskription: Ø Inskription: NØ Under opførelse - Hæveautomat: ja Hæveautomat: nej Bålplads Gadeskab @@ -2480,7 +2462,6 @@ Sanitær tømmestation Vestlig Traditionel Kinesisk - Medicinsk system: ukendt traditionel Ayurveeda Kampo Traditionelt Mongolsk @@ -2504,17 +2485,12 @@ Sundhedsvæsen: test: ja Sundhedsvæsen: test: nej Medicinskkontor - Sundhed facilitetstype: hospital Sundhedsfacilitetstype: felthospital - Sundhed facilitetstype: klinik - Sundhed facilitetstype: sundhedscenter Sundhedsfacilitetstype: rådgivningscenter - Sundhed facilitetstype: rehabilitering Sundhedsfacilitetstype: laboratorium Sundhedsfacilitetstype: terapi Sundhedsfacilitetstype: institut Sundhedsfacilitetstype: udlevering af lægemidler - Sundhed facilitetstype: apotek Sundhedsfacilitetstype: førstehjælp Sundhedsfacilitetstype: plejehjem Sundhedsfacilitetstype: bofællesskab @@ -2562,7 +2538,6 @@ Rådgivning (ægteskab): ja Rådgivning (ægteskab): nej Rådgivning (ernæring): ja - Rådgivning (ernæring): nej Rådgivning (rehabilitering): ja Rådgivning (rehabilitering): nej Rådgivning (seksuel): ja @@ -2631,7 +2606,6 @@ Primær Dam Vandløb - Cisterne I tjeneste: ja Gadeskabstype: eldistribution Gadeskabstype: tele @@ -2869,7 +2843,6 @@ Strømforsyning Medicinsystem Hjemmebesøg - Retter Pizza Burger Kaffe @@ -3563,8 +3536,6 @@ Sporvogn Færge Betegnelse - Energikilde: biomasse - Strålebehandling Fare Sværhedsgrad Vejafgift anlæg diff --git a/OsmAnd/res/values-da/strings.xml b/OsmAnd/res/values-da/strings.xml index e2b52efba2..ac130d5cc0 100644 --- a/OsmAnd/res/values-da/strings.xml +++ b/OsmAnd/res/values-da/strings.xml @@ -853,7 +853,6 @@ Ruten kunne ikke beregnes. Ruten kunne ikke beregnes. Beregnet rute er tom. - Ny rute beregnet, afstand Ankommet. Ugyldige koordinater Tilbage til kortet @@ -922,7 +921,6 @@ Udfør Geocaching Overfør knudepunkt… - Knudepunkt kan ikke findes, eller faciliteter består af flere knudepunkter som endnu ikke er understøttet. Lige ud Søg efter bygning trinvist Nærmeste faciliteter @@ -1804,7 +1802,6 @@ Kan ikke bestemme adresse Søger efter adressen Rideruter - Opdateringsinterval Hent kun med Wi-Fi Realtidsopdatering Opdater nu @@ -2004,8 +2001,6 @@ Kom i gang Opdater alle kort nu? Ryd alle kortbrikker - Kontroller ikke for nye versioner eller rabatter. - Vis ikke nye versioner Find position Spring over hentning af kort Der ikke nogen offline kort installeret. Vælg et kort fra listen eller hent senere via \'Menu - %1$s\'. @@ -2081,9 +2076,6 @@ Wikipedia artikler i nærheden Brug motorveje Tillader motorveje. - Legacy søgning - Vis legacy søgning - Tilføj legacy søgning til sidemenuen. Serbisk (latinsk) Kinesisk (Hong Kong) Vand @@ -2602,16 +2594,6 @@ Efter dato Efter type Ændr søgning. - • Nyt: globale offline rejseguider. Henvisning til steder linker til kortet. Data fra Wikivoyage -\n -\n • Wikipedia: nyt udseende, aktive links, billeder understøttes nu -\n -\n • Åbn spor grænseflade: understøtter rutepunktsgrupper -\n -\n • Kortmarkører: import af udvalgte grupper fra GPX-filer, nyt udseende på koordinat indtastning -\n -\n • OsmAnd Live abonnement indeholder nu alle OsmAnd-funktioner -\n GPX-fil med koordinaterne og data for de valgte noter. GPX-fil med koordinater og data for alle noter. Redigeringer %1$s, sum %2$s mBTC @@ -2787,44 +2769,13 @@ Send søgestrengen: \"%1$s\" samt lokationen. \n \nDer indsamles ingen personlige oplysninger, kun søgedata, der er nødvendige for at forbedre søgningen. - Ingen resultater? -\nRapporter det. Send søgeforespørgsel? - • Navigation: rettet statuslinje, hurtigt ombytning af start-og slutpunkt på ruten -\n -\n• Kortmarkører: rettet tænd/sluk-grupper, evne til at skjule markører på kortet -\n -\n• OSM redigering: mulighed for at redigere mærker for ikke-punkt objekter, rettet manglende kommentarer til noter, sikkerhedskopiering af redigeringer -\n -\n• Forbedret Wikipedia og Wikivoyage fortolkning, opdaterede filer findes allerede -\n -\n• Kontekstmenu: rettet transport farve i nat-tilstand, rettet yderligere menustørrelser -\n -\n• Bådnavigation: understøtter flodnavigation -\n -\n• Andre fejlrettelser -\n Udvid søgeradius til %1$s Tak for tilbagemelding Node eller vej kan ikke findes. Ingen søgeresultater? \nGiv tilbagemelding Tryk på en knap og lyt til den tilsvarende talemeddelelse for at høre, om den mangler eller er defekt - Indsendelsesmåde… - • Løst nedbrud ved start, der opstod på nogle enheder -\n -\n • Ny Markør funktion: visning af de mærker, der allerede er nået -\n -\n • Søgehistorikken viser nu de kategorier, der er søgt efter tidligere -\n -\n • Løst nedbrud ved opstart, der opstod med ikke-latinske kort -\n -\n  • Forbedret renderingshastighed på Android 8.0 enheder -\n -\n  • Understøtter redigering af polygonobjekter (ikke-facilitet) -\n -\n  • Afstandsmåling: tilføjet knap til \"Afstandsmåling\" i handlinger i kontekstmenuen -\n Giv OsmAnd adgang til placering for at fortsætte. Sort Der er flere forbindelser ved dette stop. @@ -2905,23 +2856,6 @@ Skjul GPX spor Vis GPX spor Angiv en destination først - • Ny \'Rutevejledning\': viser hjem- og arbejdsstedsknapper, \'Forrige rute\' genvej, liste over aktive GPX-spor og markører, søgehistorik -\n -\n  • Yderligere information under \'Ruteoplysninger\': vejtyper, overflade, stejlhed, jævnhed -\n -\n  • Offentlig transportnavigation, understøtter alle former for transport: metro, bus, sporvogn osv. -\n -\n  • Ny hurtig genvej til vis/skjul spor og dag-/nattilstand -\n -\n  • Rettet at områder vises som oversvømmet i Tyskland, Sydafrika, Quebec -\n -\n  • Yderligere support for KML og KMZ import -\n -\n  • Rettet fejl ved åbning af visse offentlige transportstoppesteder -\n -\n  • Fjernet Facebook og Firebase analytics fra den gratis version (OsmAnd + indeholder dem ikke) -\n -\n Aktivér offentlig transport for OsmAnd Live ændringer. OsmAnd Live offentlig transport Tilføj afgangs-og ankomststed @@ -2998,15 +2932,6 @@ Undgår metro og letbane Ingen færger Undgår færger - • Vis tid mellem overførsler i offentlig transport -\n -\n • Korrigeret brugergrænseflade til ruteoplysningerne -\n -\n • Rettet mørkt tema i Retningsmenuen og Rutedetaljer -\n -\n • Vis azimut i Mål afstand -\n -\n Send log Flyttede %1$d filer (%2$s). Kopieret %1$d filer (%2$s). @@ -3031,7 +2956,6 @@ Vælg den type data der deles: Hentede kort Besøgte skærme - Indsamlede data Definer hvilke data der deles med OsmAnd. Hjælper os med at forstå populariteten af land- og regionskort. Hjælper os med at forstå populariteten af OsmAnd-funktionens. @@ -3087,8 +3011,6 @@ Tredjepartsruteplanlægning Vælg de profiler, der skal være synlige. Programprofiler - Skift kort zoom ved at rulle hjulet op og ned. Escape vender tilbage til WunderLINQ. - Brug WunderLINQ til styring Tilføj mindst ét punkt til listen i \'Hurtig Handling\' under \'Indstillinger\' Alpint/downhill skiløb Skiløjper til alpint skiløb eller downhill og adgang til skilifte. @@ -3233,7 +3155,6 @@ Indstillinger for routing i den valgte profil \"%1$s\". Vågnetid Enheder & formater - Udseende Kortets udseende Kortets udseende Installerede udvidelser @@ -3267,7 +3188,6 @@ Logcat-buffer Udvidelsesindstillinger Som standard - Hent detaljeret %s kort, for at se området. Hent detaljeret %s kort, for at se området. Flyt datafiler til den nye destination\? \n%1$s>%2$s @@ -3527,7 +3447,6 @@ Vælg gruppe Vælg form Cirkel - Rhombe Firkant Min Deaktiveret som standard, hvis programmet kører i forgrunden, slukkes skærmen ikke. @@ -3582,8 +3501,6 @@ Sprog Alle sprog Yderligere kort er nødvendige for at se Wikipedia Interessepunkter på kortet. - Nogle Wikipedia-artikler er muligvis ikke tilgængelige på nogle sprog. Vælg de sprog, som Wikipedia-artikler skal vises på kortet. -\nSkift mellem alle tilgængelige sprog, mens artiklen læses. Skuffeelementer, genvejsmenu Skuffe Tilpasning af brugergrænseflade diff --git a/OsmAnd/res/values-de/phrases.xml b/OsmAnd/res/values-de/phrases.xml index 8ea147711e..5448f36352 100644 --- a/OsmAnd/res/values-de/phrases.xml +++ b/OsmAnd/res/values-de/phrases.xml @@ -35,7 +35,6 @@ Kunstwerk Astronomisch Sport - Geldautomat Touristische Attraktion Quad-Geschäft Gehörspezialist @@ -60,7 +59,6 @@ Schönheitssalon Maniküre Schlafzimmereinrichtung - Bettwarengeschäft Bienenzüchter Getränkegeschäft Fahrradabstellplatz @@ -242,14 +240,12 @@ Kunsthandwerk Eisenwarenhandlung Alternativmedizin - Gesundheitszentrum Rehabilitation Medizinische Einrichtung Hörgeräte Hubschrauberlandeplatz Kräuterladen Hi-Fi-Geschäft - Historisches Kloster Hockey Pferderennen Pferdestrecke @@ -611,7 +607,6 @@ Mast Radar Aquarium - Handball Geschäft Lebensmittelgeschäft und Supermarkt Notfall @@ -712,7 +707,6 @@ Militärgebiet Forstwald Reservoir - Allgemeine Sehenswürdigkeit Pflanzenölkraftstoff Übungsgelände Quartier @@ -804,7 +798,6 @@ Konditorei Kerzengeschäft Modegeschäft - Heizungsgeschäft Gartenmöbelladen Ledergeschäft Musikgeschäft @@ -822,10 +815,8 @@ Buhne Verteilerkasten Wasserbecken - Schutzgebiet Kran Land - Sehenswürdigkeit Unterkunft Heilige Stätte Kirschblütenfest @@ -981,7 +972,6 @@ Katzen Hunde, Katzen Vögel - Mühlenteich Twitter Skype Youtube @@ -1313,7 +1303,6 @@ Streckenmarkierung Wanderkarte Natur - Informationszeichen: Wildleben Geschichte Schild Sprachführer @@ -1398,8 +1387,6 @@ 4S (gehobene Erste Klasse) 5 (Luxus) 5S (gehobener Luxus) - Sterne: 6 - Sterne: 7 Zimmer Münzen Münzen nicht akzeptiert @@ -1421,7 +1408,6 @@ Visa-Karten nicht akzeptiert Mastercard Mastercard nicht akzeptiert - Kostenlos Maestro-Karten Maestro-Karten nicht akzeptiert American Express (AMEX) @@ -2122,7 +2108,6 @@ Improvisiert: nein Sanitäre Entsorgungsstation: ja Sanitäre Entsorgungsstation: nein - Sanitäre Entsorgungsstation: Kunden Flüchtlingsunterkunft Wohngruppe Betreutes Wohnen @@ -2381,7 +2366,6 @@ Beschriftung: O Beschriftung: NO Im Bau - Geldautomat: ja Geldautomat: nein Feuergrube Verteilerkasten @@ -2477,7 +2461,6 @@ Sanitäre Entsorgungsstation Westlich Chinesisch (traditionell) - Medizinisches System: Unbekannt traditionelle Ayurveda Kampo Traditionell mongolisch @@ -2493,16 +2476,12 @@ Gesundheitswesen: Impfung: ja Gesundheitswesen: Impfung: nein Arztpraxis - Gesundheit-Einrichtungstyp: Krankenhaus Gesundheitseinrichtung: Feldlazarett - Gesundheit-Einrichtungstyp: Klinik - Gesundheit-Einrichtungstyp: Gesundheitszentrum Gesundheitseinrichtung: Beratungsstelle Gesundheitseinrichtung: Labor Gesundheitseinrichtung: Therapie Gesundheitseinrichtung: Fachabteilung Gesundheitseinrichtung: Ambulanz - Gesundheit-Einrichtungstyp: Apotheke Gesundheitseinrichtung: Erste Hilfe Gesundheitseinrichtung: Pflegeheim Gesundheitseinrichtung: Selbsthilfegruppe @@ -2627,7 +2606,6 @@ Haupt Teich Wasserlauf - Zisterne Im Dienst: ja Kasten-Typ: Strom Kasten-Typ: Telekom @@ -3560,8 +3538,6 @@ Fahrgemeinschaft Straßenbahn Fähre - Energiequelle: Biomasse - Strahlentherapie Gefahr Schwierigkeitsklasse k. A. diff --git a/OsmAnd/res/values-de/strings.xml b/OsmAnd/res/values-de/strings.xml index 15f114dbff..e66df6bcd7 100644 --- a/OsmAnd/res/values-de/strings.xml +++ b/OsmAnd/res/values-de/strings.xml @@ -720,7 +720,6 @@ Route konnte nicht berechnet werden. Route konnte nicht berechnet werden. Berechnete Route ist leer. - Route neu berechnet, Entfernung Sie sind angekommen. Koordinaten sind ungültig Zurück zur Karte @@ -814,7 +813,6 @@ Kommentar konnte nicht hinzugefügt werden. POI bearbeiten POI erstellen - Punkt wurde nicht gefunden oder das Objekt besteht aus mehreren Punkten, was noch nicht unterstützt wird. Sicher löschen: {0} (Kommentar)? POI löschen Löschen @@ -2021,9 +2019,7 @@ Standortbestimmung zulassen Erhalten Sie Wegbeschreibungen und entdecken Sie neue Orte ohne Internetverbindung Meinen Standort bestimmen - Keine Aktualisierungen anzeigen Herunterladen der Karten überspringen - Keine Versionsaktualisierungen oder OsmAnd-Angebote abfragen. Meilen/Meter Erhalten Sie unbegrenzte Kartendownloads, fügt wöchentliche, tägliche oder sogar stündliche Updates hinzu. Unbegrenzte Karten-Downloads, -Aktualisierungen und die Wikipedia-Erweiterung. @@ -2079,9 +2075,6 @@ POI hochladen Nehmen Sie die %1$d Ausfahrt Stadt oder Region - Alte Suche - Alte Suche einblenden - Alte Suche im Seitenmenü hinzufügen. Autobahnen benutzen Erlaubt Autobahnen. Serbisch (lateinisch) @@ -2596,15 +2589,6 @@ Audio-, Video- oder Fotonotizen zu einem beliebigen Punkt auf der Karte hinzufügen, indem Sie die Widgets oder Kontextmenüs verwenden. Audio-/Video-Notizen nach Datum Ein Tippen auf die Karte schaltet die Steuertasten und Bedienelemente um. - • Neu: Unterstützung weltweiter Offline-Reiseführer. Verknüpfung beschriebener Sehenswürdigkeiten zur Landkarte. Die Inhalte basieren derzeit auf Wikivoyage. -\n -\n • Wikipedia: Neues Layout, anklickbare Links, Bilder -\n -\n • Unterstützung der Gruppierung von GPX Wegpunkten -\n -\n • Kartenmarkierungen: Import auswählbarer Gruppen aus GPX-Dateien, Koordinateneingabe, neues Layout -\n -\n • OsmAnd Live-Abonnement unterstützt nun alle OsmAnd Funktionen \'Ein Klick\' aktiv Was ist hier: Ohne Zeitbegrenzung @@ -2789,45 +2773,14 @@ Ihre Suchanfrage wird an: \"%1$s\" gesendet, zusammen mit Ihrem Standort. \n \nPersönliche Informationen werden nicht gesammelt, sondern nur Suchdaten, die zur Verbesserung der Suche benötigt werden. - Keine Ergebnisse? -\nNehmen Sie Kontakt mit uns auf. Suchanfrage senden? Welt Vergrößerung des Suchradius auf %1$s - • Navigation Fix: Fortschrittsbalken, schneller Wechsel des Start- und Endpunkts der Route -\n -\n • Map-Marker Fix: Gruppen An-/Ausschalten, Möglichkeit Marker auf der Karte zu verstecken -\n -\n • OSM-Bearbeitung: Bearbeitung für Nicht-Punkt-Objekte und Wege, Behebung fehlender Kommentare zu Notizen, Sicherung von Änderungen -\n -\n • Verbessere Wikipedia und Wikivoyage Parsing, aktualisierte Dateien sind bereits verfügbar -\n -\n • Kontextmenü: fix Transportschilderfarbe im Nachtmodus, fix zusätzliche Menügrößen -\n -\n • Bootnavigation: Unterstützung für Fahrrinnen -\n -\n • Andere Fehlerbehebungen Danke für Ihr Feedback Knoten oder Weg kann nicht gefunden werden. Keine Suchergebnisse? \nGeben Sie uns eine Rückmeldung - Übertrage Weg… Tippen Sie auf eine Schaltfläche und hören Sie sich die entsprechende Sprachausgabe an, um fehlende oder fehlerhafte Anweisungen zu erkennen - • Absturz beim Start behoben, der bei manchen Geräten auftrat -\n -\n• Neue Funktion für Markierungen: Anzeigen bereits passierter Markierungen -\n -\n• Suchverlauf zeigt nun zuvor gesuchte Kategorien -\n -\n• Absturz beim Start von nicht-lateinischen Karten behoben -\n -\n• Verbesserte Rendering-Geschwindigkeit auf Android 8.0-Geräten -\n -\n• Unterstützung für die Bearbeitung von Flächen-POI -\n -\n• Distanz Messen: Schaltfläche \"Messen\" zu Aktionen im Kontextmenü hinzugefügt -\n -\n Bitte gewähren Sie OsmAnd den Zugriff auf den Standort, um fortzufahren. Schwarz Straße suchen @@ -2960,23 +2913,6 @@ Weg Radweg Undefiniert - • Neuer Bildschirm \'Navigation\': Zeigt Tasten mit den Zielen \'Zuhause\' und \'Arbeit\', eine \'Vorherige Route\'-Verknüpfung, eine Liste aktiver GPX-Tracks und Markierungen, den Suchverlauf. -\n -\n• Weitere Informationen unter \'Routendetails\': Straßentypen, -oberfläche, Steilheit, Oberflächenbeschaffenheit -\n -\n• Navigation im öffentlichen Verkehr mit Unterstützung aller Verkehrsmittelarten: U-Bahn, Bus, Straßenbahn, etc. -\n -\n• Neue Schnellaktion, um Tracks ein-/auszublenden, und für die Tag/Nacht-Modi -\n -\n• Fix: Gebiete, die in Deutschland, Südafrika, Quebec und anderen Ländern als überflutet angezeigt wurden -\n -\n• Zusätzliche Unterstützung für den KML- und KMZ-Import -\n -\n• Abstürze nach Öffnen bestimmter Haltestellen des öffentlichen Verkehrs beseitigt -\n -\n• Facebook- und Firebase-Analysen aus der kostenlosen Version entfernt (OsmAnd+ enthält sie nicht mehr) -\n -\n Wählen Sie öffentliche Verkehrsmittel aus, die Sie für die Navigation vermeiden möchten: Verkehrsmittel ausschließen … Gehen @@ -3001,15 +2937,6 @@ Vermeidet U-Bahnen und leichten Schienenverkehr Keine Fähren Vermeidet Fähren - • Anzeige der Umsteigezeiten in öffentlichen Verkehrsmitteln -\n -\n• Korrigierte Benutzeroberfläche für die Routendetails -\n -\n• Korrektur des dunklen Designs im Navigationsmenü und in den Routendetails -\n -\n• Azimut-Anzeige bei der Entfernungsmessung -\n -\n Log senden %1$d Dateien kopiert (%2$s). %1$d Dateien (%2$s) konnten nicht kopiert werden. @@ -3071,7 +2998,6 @@ ÖPNV-Arten Schiff, Rudern, Segeln Flugzeug, Segelflugzeug - Gesammelte Daten Skifahren Kompasslineal anzeigen Kompasslineal ausblenden @@ -3090,8 +3016,6 @@ Routing von Drittanbietern Wählen Sie die Profile aus, die in der App sichtbar sein sollen. App-Profile - Ändern Sie den Kartenzoom, indem Sie mit dem Rad nach oben und unten scrollen. Escape bringt Sie zurück zur WunderLINQ App. - WunderLINQ zur Kontrolle verwenden Skitouren Routen für Skitouren. Schlitten @@ -3240,7 +3164,6 @@ Einstellungen für die Routenplanung des gewählten Profils „%1$s“. Zeitüberschreitung nach dem Aufwachen Einheiten und Formate - Aussehen Kartendarstellung Kartendarstellung Installierte Erweiterungen @@ -3274,7 +3197,6 @@ Logcat-Puffer Plugin-Einstellungen Standardmäßig - "Detaillierte Karte %s herunterladen, um diesen Bereich zu sehen." Laden Sie die detaillierte %s-Karte herunter, um diesen Bereich zu sehen. OsmAnd-Datendateien an das neue Ziel verschieben\? \n%1$s > %2$s @@ -3570,7 +3492,6 @@ Die Route wird neu berechnet, wenn die Entfernung von der Route zur aktuellen Position größer als der ausgewählte Wert ist. Alle Daten aus %1$s werden importiert. Sie können die Schaltflächen unten verwenden, um den benötigten Teil der Anwendung zu öffnen und sie zu verwalten. Quadrat - Raute Kreis Form auswählen Gruppe auswählen @@ -3726,7 +3647,6 @@ Bildschirmsteuerung Schaltet den Bildschirm entsprechend dem Bildschirm-Timeout des Systems aus. Systembildschirm-Timeout verwenden - Optionen zum Aktivieren des Bildschirms: Wählen Sie Optionen zum Aufwecken des Bildschirms (stellen Sie sicher, dass OsmAnd im Vordergrund ist, wenn das Gerät gesperrt wird): Für jede Navigationsanweisung wird der Bildschirm eingeschaltet. Navigationsanweisungen @@ -3924,7 +3844,6 @@ Entwicklung OsmAnd Live Daten OsmAnd Live Daten - Komplexe Routenberechnung Zwei-Phasen-Routenberechnung für die Autonavigation. Native ÖPNV Entwicklung Wechseln zur Java (sicher) Berechnung des ÖPNV-Routings diff --git a/OsmAnd/res/values-el/phrases.xml b/OsmAnd/res/values-el/phrases.xml index 359138bb80..02aaee6bc2 100644 --- a/OsmAnd/res/values-el/phrases.xml +++ b/OsmAnd/res/values-el/phrases.xml @@ -575,7 +575,6 @@ Εναλλακτική ιατρική ακουολόγος Τράπεζα αίματος - Ιατρικό κέντρο Μαία Εργασιοθεραπευτής Οπτικός @@ -977,7 +976,6 @@ Κρεματόριο Καφενείο με διαδίκτυο Τράπεζα - Μηχάνημα αναλήψεων (ΑΤΜ) Τερματικό πληρωμών Δάνεια Ενεχυροδανειστής @@ -2508,7 +2506,6 @@ Επιγραφή: Α Επιγραφή: ΒΑ Υπό κατασκευή - ΑΤΜ: ναι ΑΤΜ: όχι Εστία φωτιάς Ερμάριο δρόμου @@ -2744,7 +2741,6 @@ Κύριο Δεξαμενή Ροή - Δεξαμενή Εν ενεργεία: ναι Τύπος ερμαρίου: ρεύμα Τύπος ερμαρίου: τηλεπικοινωνίες diff --git a/OsmAnd/res/values-el/strings.xml b/OsmAnd/res/values-el/strings.xml index 0e536c6e0f..3c9ff85b28 100644 --- a/OsmAnd/res/values-el/strings.xml +++ b/OsmAnd/res/values-el/strings.xml @@ -702,7 +702,6 @@ Αδυναμία υπολογισμού διαδρομής. Αδυναμία υπολογισμού διαδρομής. Η υπολογισμένη διαδρομή είναι κενή. - Υπολογίστηκε νέα διαδρομή, απόσταση Φτάσατε. Άκυρες συντεταγμένες Επιστροφή στον χάρτη @@ -795,7 +794,6 @@ Αδυναμία προσθήκης σχολίου Επεξεργασία ΣΕ Δημιουργία ΣΕ - Ο κόμβος δεν μπορεί να βρεθεί ή η υποδομή αποτελείται από πολλούς κόμβους, που δεν υποστηρίζεται ακόμα. Διαγραφή {0} (σχολίου); Διαγραφή ΣΕ Διαγράφτηκε @@ -1556,17 +1554,6 @@ Πρόσθετες ενέργειες Αρχείο GPX με συντεταγμένες και δεδομένα από τις επιλεγμένες σημειώσεις. Αρχείο GPX με συντεταγμένες και δεδομένα από όλες τις σημειώσεις. - Νέο: Υποστήριξη γενικών ταξιδιωτικών οδηγών χωρίς σύνδεση. Οι αναφερόμενες τοποθεσίες συνδέονται με τον χάρτη. Τα αρχικά δεδομένα από το βικιταξίδια. -\n -\n • Βικιπαίδεια: Υποστηρίζονται τώρα νέα όψη, ενεργοί σύνδεσμοι, εικόνες -\n -\n • Άνοιγμα διεπαφής χρήστη ιχνών: Υποστήριξη για ομάδες σημείων διαδρομής -\n -\n • Δείκτες χάρτη: Εισαγωγή επιλεγμένων ομάδων από αρχεία GPX, είσοδος συντεταγμένων, νέα εμφάνιση -\n -\n • Η συνδρομή στα δεδομένα του OsmAnd Live υποστηρίζει τώρα όλα τα χαρακτηριστικά του OsmAnd -\n -\n Αλλάξτε την αναζήτησή σας. Ενέργειες Δείκτης @@ -1900,9 +1887,6 @@ Χαμηλή Νερό Απόκρυψη νερού - Παλιά αναζήτηση - Εμφάνιση παλιάς αναζήτησης - Προσθήκη της παλιάς αναζήτησης στον κατάλογο σχεδίασης. Να χρησιμοποιήσεις τους αυτοκινητόδρομους Να επιτρέψεις τους αυτοκινητόδρομους. Ανεβάσετε την OSM σημείωσή σας ανώνυμα ή χρησιμοποιήσετε την κατατομή (προφίλ) σας στο OpenStreetMap.org. @@ -1978,8 +1962,6 @@ Να επιτραπεί η πρόσβαση στην τοποθεσία Πάρτε οδηγίες και ανακαλύψτε νέες τοποθεσίες χωρίς διαδικτυακή σύνδεση Εύρεση της θέσης μου - Να μην ελέγχετε για νέες εκδόσεις ή τις εκπτώσεις του OsmAnd. - Μα μην εμφανίζονται νέες εκδόσεις Θέλετε να ενημερώσετε όλους τους χάρτες τώρα; Καθαρισμός όλων των πλακιδίων Διαδρομή με οικονομία καυσίμων @@ -2599,7 +2581,6 @@ Χρήση μενού Πίνακας εργαλείων ή στοιχείο ελέγχου μενού Προσφέρεται επιλογή για πρωτογενή έλεγχο της εφαρμογής μέσω του ευέλικτου πίνακα εργαλείων ή στατικού μενού. Η επιλογή σας μπορεί πάντα να αλλαχθεί στις ρυθμίσεις του πίνακα εργαλείων. - Ενημέρωση Ζωντανή ενημέρωση Ενημέρωση τώρα Λείπει άδεια στο OsmAnd για να χρησιμοποιήσει την κάρτα μνήμης @@ -2791,22 +2772,6 @@ Δεν βρέθηκε κόμβος ή δρόμος. Χωρίς αποτελέσματα αναζήτησης; \nΑναπληροφορήστε μας - • Πλοήγηση: Διόρθωση γραμμής προόδου, γρήγορη εναλλαγή του αρχικού και τελικού σημείου της διαδρομής -\n -\n • Δείκτες χαρτών: διόρθωση ενεργοποίησης/απενεργοποίησης ομάδων, δυνατότητα απόκρυψης δεικτών από τον χάρτη -\n -\n • Επεξεργασία OSM: Δυνατότητα επεξεργασίας ετικετών για αντικείμενα και δρόμους, διόρθωση σχολίων που λείπουν σε σημειώσεις, αντίγραφα επεξεργασιών -\n -\n • Βελτίωση ανάλυσης βικιπαίδειας και βικιταξιδιών, τα ενημερωμένα αρχεία είναι ήδη διαθέσιμα -\n -\n • Μενού περιβάλλοντος: διόρθωση χρώματος πινακίδων μετακίνησης στην νυχτερινή κατάσταση, διόρθωση πρόσθετων μεγεθών μενού -\n -\n • Πλοήγηση με σκάφος: υποστήριξη για δίαυλο ασφαλούς πορείας -\n -\n • Άλλες διορθώσεις σφαλμάτων -\n -\n - Υποβολή διαδρομής… Αύξηση ακτίνας αναζήτησης σε %1$s Το ερώτημα της αναζήτησής σας θα αποσταλεί στο:\"%1$s\",καθώς και την τοποθεσία σας. \n @@ -2840,20 +2805,6 @@ Διατήρηση των δεικτών στον χάρτη Περισσότερα Μ.Μ.Μ διαθέσιμα σε αυτήν τη στάση. Παρακαλούμε, δώστε την άδεια στο OsmAnd να προσπελάσει τη θέση σας για να συνεχίσετε. - "• Διορθώθηκαν οι καταρρεύσεις εκκίνησης που συνέβαιναν σε κάποιες συσκευές -\n -\n • Νέο χαρακτηριστικό σημαδιών: εμφανίζονται τα σημάδια που έχουν ήδη διασχιστεί -\n -\n • Το ιστορικό αναζήτησης εμφανίζει τώρα τις κατηγορίες που έχετε αναζητήσει προηγουμένως -\n -\n • Διορθώθηκαν οι καταρρεύσεις εκκίνησης που συνέβαιναν με μη λατινικούς χάρτες -\n -\n • Βελτίωση των προβλημάτων απόδοσης ταχύτητας σε συσκευές Android 8.0 -\n -\n • Υποστήριξη επεξεργασίας αντικειμένων πολυγώνου (χωρίς υπηρεσίες) -\n -\n • Μέτρηση απόστασης: προσθήκη πλήκτρου Μέτρησης στις Ενέργειες στο μενού περιβάλλοντος -\n" Εμφάνιση μόνο εικόνων 360° Μαύρο Μετακινήθηκαν %1$d αρχεία (%2$s). @@ -2881,17 +2832,6 @@ Απέφυγε μετρό και ελαφρά μέσα σταθερής τροχιάς Χωρίς πορθμεία Απέφυγε πορθμεία - • Εμφάνιση του χρόνου μεταξύ μεταφορών στις δημόσιες συγκοινωνίες -\n -\n • Διόρθωση διεπαφής χρήστη για τις λεπτομέρειες της διαδρομής -\n -\n • Διόρθωση σκούρου θέματος στο μενού κατεύθυνσης και στις λεπτομέρειες διαδρομής -\n -\n • Εμφάνιση του αζιμουθίου στη μέτρηση απόστασης -\n -\nΜετάφραση -\n -\n Μοίρες Χιλιοστά ακτινίων Γωνιακή μονάδα @@ -2952,23 +2892,6 @@ Μονοπάτι Ποδηλατόδρομος Ακαθόριστο - • Νέα οθόνη \'Κατευθύνσεων\' : Εμφανίζει πλήκτρα προορισμού κατοικίας και εργασίας, συντόμευση \'προηγούμενης διαδρομής\', κατάλογο ενεργών ιχνών και σημειωτών GPX, αναζήτηση ιστορικού -\n -\n • Πρόσθετες πληροφορίες στο \'Λεπτομέρειες διαδρομής\': τύποι δρόμων, επιφάνεια, απότομες κλίσεις, ομαλότητα -\n -\n • Πλοήγηση δημοσίων συγκοινωνιών που υποστηρίζει όλα τα είδη μεταφορών: μετρό, λεωφορείο, τραμ κλπ. -\n -\n • Νέα γρήγορη ενέργεια για εμφάνιση/απόκρυψη ιχνών και καταστάσεων ημέρας/νύχτας -\n -\n • Διόρθωση περιοχών που εμφανίζονται ως πλημμυρισμένες στη Γερμανία, Νότια Αφρική, Κεμπέκ -\n -\n • Πρόσθετη υποστήριξη για εισαγωγή KML και KMZ -\n -\n • Διόρθωση καταρρεύσεων στο άνοιγμα κάποιων στάσεων δημοσίων συγκοινωνιών -\n -\n • Αφαίρεση των αναλύσεων Facebook και Firebase από την ελεύθερη έκδοση (το OsmAnd+ δεν το συμπεριλαμβάνει) -\n -\n Ενεργοποίηση των τροποποιήσεων δημοσίων Μ.Μ.Μ με το OsmAnd Live. Δημόσια Μ.Μ.Μ OsmAnd Live Ώρα της ημέρας @@ -3239,7 +3162,6 @@ Ρυθμίσεις δρομολόγησης στο επιλεγμένο προφίλ \"%1$s\". Αναμονή μετά την αφύπνιση Μονάδες μέτρησης & φορμά - Εμφάνιση Εμφάνιση χάρτη Όψη χάρτη Εγκατεστημένα πρόσθετα diff --git a/OsmAnd/res/values-en-rGB/phrases.xml b/OsmAnd/res/values-en-rGB/phrases.xml index e1867d5d8a..125a691589 100644 --- a/OsmAnd/res/values-en-rGB/phrases.xml +++ b/OsmAnd/res/values-en-rGB/phrases.xml @@ -29,8 +29,7 @@ Drapery shop Erotic shop Fashion shop - Heating units shop - Furniture shop + Furniture shop Garden centre Garden furniture shop Liquid gas shop @@ -66,53 +65,50 @@ Weapons shop Perfume shop - Traffic signal + Traffic signal - Tyres + Tyres Petrol station - Railway station + Railway station Railway platform Railway stop Underground entrance Underground station Railway buffer stop - Type: recycling centre + Type: recycling centre - Waste disposal + Waste disposal Waste basket - Railway area + Railway area + Sports centre - Healthcare centre + Theatre club - Sports centre + Arts centre - Theatre club - - Arts centre - - Community centre + Community centre Social centre Theatre - Harbour basin + Harbour basin Harbour - With traffic signals + With traffic signals - Railway crossing + Railway crossing - Railway tunnel + Railway tunnel Railway bridge - Route of a railway + Route of a railway - Historic railway station + Historic railway station Historic railway - Counselling (addiction): yes + Counselling (addiction): yes Counselling (addiction): no Counselling (antenatal): yes Counselling (antenatal): no diff --git a/OsmAnd/res/values-eo/phrases.xml b/OsmAnd/res/values-eo/phrases.xml index 8a4ea2f7c1..fd389f4538 100644 --- a/OsmAnd/res/values-eo/phrases.xml +++ b/OsmAnd/res/values-eo/phrases.xml @@ -129,7 +129,6 @@ Florvendejo Kadroj-de-pentraĵoj-vendejo Paraŝutiloj-vendejo - Hejtil-vendejo Mebl-vendejo Ĝarden-vendejo Ĝarden-mebl-vendejo @@ -227,7 +226,6 @@ Aŭtomobil-vendejo Aŭtomobil-parta vendejo Ŝirmejo - Bankaŭtomato Monŝanĝejo Vulkano Arbo @@ -474,7 +472,6 @@ Monludejo Loĝantaro Fervoja tereno - Naturrezervejo Akvovojo Marponto Supergardo @@ -545,7 +542,6 @@ kuracdomo Kontraŭmedicino Sangobanko - Medicina centro Akuŝisto Okup-terapiisto Okulisto @@ -1204,7 +1200,6 @@ vojsigno mapo piedirada naturo - Informoj pli: bestaro historio signo son-gvidilo @@ -1316,8 +1311,6 @@ 4S (pli-bona unua klaso) 5 (luksa) 5S (pli-bona luksa) - Steloj: 6 - Steloj: 7 Amor-hotelo moneroj Moneroj malakceptataj @@ -1341,7 +1334,6 @@ Visa kartoj malakceptataj MasterCard MasterCard kartoj malakceptataj - Senpaga Maestro Maestro kartoj malakceptataj American Express (AMEX) @@ -1962,7 +1954,6 @@ Neformala: ne Stacio de forigo de fekaĵoj: jes Stacio de forigo de fekaĵoj: ne - Ejo por forigado de fekaĵoj: nur por klientoj jes Energifonto: ne Energifonto (ŝtopilo): CEE 17 blua (IEC 60309) @@ -2289,7 +2280,6 @@ Vojmontrilo: arbara sekcio Vojmontrilo: arbara parcelo Dum konstruado - Bankaŭtomato: jes Bankaŭtomato: ne Lignofajrejo Ŝranko distribua @@ -2365,7 +2355,6 @@ Stacio de forigo de fekaĵoj Okcidenta Ĉina kontraŭ-medicino - Medicina sistemo: tradicia Ajurvedo Kampō (ĉina kontraŭ-medicino) Mongola kontraŭ-medicino @@ -2455,7 +2444,6 @@ akvokondukilo lageto rivereto - cisterno Funkcias: jes Speco de ŝranko: elektra Speco de ŝranko: telefona @@ -3550,8 +3538,6 @@ veturiloj kun ≥2 homoj tramo pramo - Energifonto: biomaso - per-radiad-kuracado (radioterapio) Danĝerejo Malfacilo de montpasejo (RTSA-skalo) н/к (sen malfacilo) diff --git a/OsmAnd/res/values-eo/strings.xml b/OsmAnd/res/values-eo/strings.xml index e67059c5ec..391e96ba42 100644 --- a/OsmAnd/res/values-eo/strings.xml +++ b/OsmAnd/res/values-eo/strings.xml @@ -1753,7 +1753,6 @@ Ne povas kalkuli kurson. Ne povas kalkuli kurson. Kalkulita kurso estas malplena. - Nova kurso kalkulita, distanco Vi alvenis al la celo. Malĝustaj koordinatoj Reveni al mapo @@ -1815,7 +1814,6 @@ Forigis ŝatatan punkton “{0}”. Redakti interesejon Krei interesejon - Ne povas trovi nodon aŭ servo konsistas el kelkaj nodoj, tio ĉi ne estas ankoraŭ subtenata. Ĉu forigi {0} (komento)? Forigi interesejon Forigite @@ -1929,7 +1927,6 @@ Uzi stirpanelon Uzi menuon Stirpanelo aŭ menuo - Ĝisdatigo Eblas elekti kiamaniere uzi la aplikaĵon: aŭ per fleksebla stirpanelo aŭ per statika menuo. Vi ĉiam povas ŝanĝi tion en agordoj de stirpanelo. Elŝuti nur per vifio Aŭtomataj ĝisdatigoj perinterretaj @@ -2013,8 +2010,6 @@ Permesi aliron al pozicio Navigi kaj esplori novajn lokojn sen interreta konekto Trovi mian pozicion - Ne montri novajn versiojn - Ne serĉi pri novaj versioj aŭ OsmAnd-rilataj rabatoj. Havigi ĝin Havigi ĝin por %1$s Havigu senlimigitan elŝutojn de mapoj kaj ĉiusemajnaj, ĉiutagajn kaj eĉ ĉiuhorajn ĝisdatigojn. @@ -2073,9 +2068,6 @@ Elveturu al %1$d-a elveturejo Urbo aŭ regiono Pri ĉirkaŭaĵo en Vikipedio - Malnova serĉilo - Montri malnovan serĉilon - Aldoni malnovan serĉilon en la tirmenuon. Uzi aŭtovojojn Uzi aŭtoŝoseojn. Serba (latina) @@ -2594,16 +2586,6 @@ Laŭ dato Laŭ speco Modifu vian serĉpeton. - • novaĵo: subteno por tutmondaj vojaĝaj gvidiloj seninterrete; priskribataj lokoj ligitaj al la mapo; datumoj el Vikivojaĝo -\n -\n• Vikipedio: nova stilo, aktivaj ligiloj, subteno por bildoj -\n -\n• menuo de malfermita kurso: vidigi grupojn de navigadpunktoj -\n -\n• map-markoj: enporti elektitajn grupojn el GPX-dosieroj, enigo de koordinatoj, nova aspekto -\n -\n• abono al OsmAnd-Live nun inkluzivas ĉiujn eblaĵojn de OsmAnd -\n Tie ĉi: parkumita je Reprenu ĝis @@ -2779,44 +2761,13 @@ Ni sendos vian serĉ-peton: “%1$s” kun via pozicio. \n \nNeniuj personaj informoj estos senditaj, serĉ-datumoj estos uzataj nur por plibonigi la serĉan algoritmon. - Neniuj rezultoj? -\nSciigu nin pri tio. Ĉu sendi serĉ-peton? - • navigado: riparita plenumbreto, eblo por rapide interŝanĝi komencan punkton de kurso por fino -\n -\n • map-markoj: riparita (mal)aktivigo de grupoj, eblo por kaŝi map-markojn sur la mapo -\n -\n • OSM-redaktilo: eblo por redakti etikedojn de nepunktoj kaj linioj, riparitaj mankaj komentoj en rimarkoj, sekurkopioj de redaktoj -\n -\n • plibonigita prilaborado de Vikipedio kaj Vikivojaĝo, aktualigitaj dosieroj jam elŝuteblaj -\n -\n • kunteksta menuo: riparita koloro de transportaj ŝirmejoj en nokta reĝimo, riparitaj grandoj de kroma menuo -\n -\n • mar-navigado: subteno por bu-markitaj akvovojoj (etikedo «waterway=fairway») -\n -\n • aliaj erar-riparoj -\n Pliigi serĉan radiuson ĝis %1$s - Alŝutado de linio… Dankon por via opinio Ne povis trovi nodon aŭ linion. Neniuj serĉ‑rezultoj\? \nInformu nin Premu butonon kaj aŭskultu rilatan voĉan sciigon por aŭskulti ĉu ĝi mankas aŭ eraras - • riparita paneo je starto, kiu okazis ĉe kelkaj aparatoj -\n -\n• nova eblo de map-markoj: montri jam-pasigitajn markoj -\n -\n• serĉ-historio nun montras antaŭe serĉitajn kategoriojn -\n -\n• riparita paneo je starto, kiu okazis dum vidigi nelatinajn signojn -\n -\n• plirapidigita bildigado de mapo ĉe Android 8.0 -\n -\n• subteno por redakti plurangulajn objektojn (sed ne por interesejoj) -\n -\n• mezuri distancon: aldonis ag-butonon “mezuri” al la kunteksta menuo -\n Permesu al OsmAnd aliron al pozicio por pluigi. Nigra Pliaj transportiloj disponeblaj el tiu ĉi haltejo. @@ -2897,22 +2848,6 @@ Butono por montri/kaŝi elektitajn spurojn sur la mapo. Kaŝi spurojn Montri spurojn - • nova ekrano “navigi”: butonoj por navigi al hejmo aŭ laborejo, butono “antaŭa kurso”, listo de aktivaj GPX-spuroj kaj map-markoj, serĉ-historio -\n -\n • pliaj informoj ĉe “detaloj pri kurso”: specoj de vojoj, pavimo, klineco, glateco -\n -\n • publik-transporta navigado subtenanta ĉiuj transportilojn: aŭtobuson, tramon, metroon, ktp -\n -\n • novaj butonoj de rapida ago: montri/kaŝi spurojn kaj baskuli inter taga/nokta reĝimo -\n -\n • riparis eraron pri montri areojn kiel superakvitajn (rilata al Germanujo, Sud-Afriko, Kebekio) -\n -\n • subteno enporti KML kaj KMZ -\n -\n • riparis eraron dum malfermi iujn haltejojn publik-transportajn -\n -\n • forigis analizilojn Facebook kaj Firebase el la senpaga version (OsmAnd+ ne havis ilin) -\n Aktivigi publikan transporton por ŝanĝoj OsmAnd Live. Publika transporto OsmAnd Live Pliaj informoj pri kiel OsmAnd difinas kursojn estas legeblaj ĉe nia taglibro. @@ -2989,15 +2924,6 @@ Eviti subterajn vagonarojn kaj fervojon malpezan Sen pramoj Eviti pramojn - • montri tempon inter transveturiliĝoj de publika transporto -\n -\n• korektita uzant‑fasado por detaloj pri kurso -\n -\n• malhela etoso: riparita menuo “navigi” kaj detaloj pri kurso -\n -\n• montri azimuton ĉe distanc‑mezurilo -\n -\n Sendi erar‑protokolon Movis %1$d dosierojn (%2$s). Kopiis %1$d dosierojn (%2$s). @@ -3078,8 +3004,6 @@ Ekstera kurs‑difinilo Elekti profilojn videblajn en la aplikaĵo. Profiloj de aplikaĵo - Rulumu supren/malsupren por ŝanĝi pligrandigon de mapo. Eskap-klavo revenas al al aplikaĵo WunderLINQ App. - Stiri per WunderLINQ Aldonu almenaŭ unu elementon al la listo en agordoj de “rapida ago” Skiado alpa kaj malsuprenira Skivojoj por skiado alpa (malsuprenira) kaj vojetoj al skitelferoj. @@ -3227,7 +3151,6 @@ Agordoj pri kurs‑difinado por la elektita profilo: “%1$s”. Aktiveca periodo de ekrano Unuoj kaj formoj - Aspekto Alĝustigi mapon Map‑aspekto Instalitaj kromprogramoj @@ -3360,7 +3283,6 @@ Blanka Anstataŭigi: %1$s ⇄ %2$s Komencpunkto - Anstataŭigi komencpunkton per celo Simuli vian pozicion uzante registritan GPX‑kurson. Konservis kurson Malplena dosiernomo @@ -3582,7 +3504,6 @@ Elekti formon Elekti grupon Cirklo - Rombo Kvadrato Min. Okangulo @@ -3710,7 +3631,6 @@ Aktiveco de ekrano Malŝaltas la ekranon laŭ la sistemaj agordoj. Sistema agordo pri malŝalti ekranon - Kondiĉoj por ŝalti ekranon: Alĝustigi kiam ŝalti ekranon (certiĝu, ke OsmAnd laboras malfone kiam la aparato estas ŝlosita): Ĉiu naviga gvidilo ŝaltos la ekranon. Navigaj gvidiloj @@ -3754,7 +3674,6 @@ metroj Montri aŭ kaŝi pliajn detalojn sur la mapo Nokta mapo - Ĉiam Malŝaltita. Postulas “teni ekranon aktiva” en la sekcio “aktiveca periodo de ekrano”. Per apliki tiujn ĉi ŝanĝojn, la kaŝmemorigitaj datumoj por tiu ĉi fonto de kaheloj forviŝiĝos Aldoni enretan fonton @@ -3918,7 +3837,6 @@ Programado Datumoj OsmAnd Live Datumoj OsmAnd Live - Komplika kurs-difinado Du-faza difinado de kurso por aŭtomobila navigo. Indiĝena metodo de publik-transporta navigo Aktivigi (sekuran) metodon por kalkuli kursojn de publika transporto uzante programlingvon Java diff --git a/OsmAnd/res/values-es-rAR/phrases.xml b/OsmAnd/res/values-es-rAR/phrases.xml index 38fd01127d..ac7e14f5ee 100644 --- a/OsmAnd/res/values-es-rAR/phrases.xml +++ b/OsmAnd/res/values-es-rAR/phrases.xml @@ -78,7 +78,6 @@ Tienda de fotocopiado;Fotocopiadora Blanquería;Cortinas Tienda textil;Telas - Tienda de ropa de cama Equipo de buceo Mejoras para el hogar Artículos eróticos;Sexshop @@ -341,7 +340,6 @@ Medicina alternativa Otorrinolaringólogo;Audiólogo Banco de sangre - Centro médico Obstetra Terapeuta ocupacional Oftalmólogo;Optometrista @@ -430,7 +428,6 @@ Surf Natación Tenis de mesa;Ping Pong - Equipo de hándbol Tenis Tobogán Voley @@ -455,7 +452,6 @@ Acuario Parque temático Atracción turística - Atracción turística general Atracción de feria Animal (atracción) Rueda de la fortuna;Noria;Vuelta al mundo @@ -494,7 +490,6 @@ Conexión a Internet: público Conexión a Internet: servicio Monasterio - Monasterio histórico Crucero;Cruz en el camino Ermita en el camino Información @@ -658,7 +653,6 @@ Crematorio Cibercafé Banco - Cajero automático Terminal de pago Prestamista Casa de empeños;Prestamista @@ -816,7 +810,6 @@ Venta de café en granos Fábrica de pastas Pastelería - Artículos de calefacción Muebles de jardín Marroquinería;Tienda de cueros Tienda de neumáticos @@ -837,14 +830,11 @@ Rompeolas Gabinete de distribución cableada Cuenca - Edificio Grúa Árbol Abandonado En desuso Espigón - Conservación del suelo - Atracción turística Cortafuegos forestal Nodo de red internacional de ciclismo Nodo de red nacional de ciclismo @@ -984,7 +974,6 @@ Cartón Escombros Cartón prensado - Laguna de molino Twitter Skype YouTube @@ -1164,7 +1153,6 @@ Fuente de energía: geotérmica Fuente de energía: petróleo Fuente de energía: diésel - Auto servicio Nombre internacional Nombre nacional Nombre regional @@ -1189,7 +1177,6 @@ Marcador de ruta Mapa de senderismo Naturaleza - Información: Vida salvaje Historia Señal Audio-guía @@ -1312,8 +1299,6 @@ 4S (Primera Clase Superior) 5 (Lujoso) 5S (Lujoso Superior) - Estrellas: 6 - Estrellas: 7 Habitaciones Albergue transitorio;Telo;Motel;Hotel alojamiento Conexión a Internet: sí @@ -1340,7 +1325,6 @@ No acepta Visa MasterCard No acepta MasterCard - Gratis Tarjetas de cuenta No acepta tarjetas de cuenta Maestro @@ -1972,7 +1956,6 @@ Improvisado: no Estación de descarga sanitaria: sí Estación de descarga sanitaria: no - Estación de descarga sanitaria sólo para clientes Fuente de alimentación: no Fuente de alimentación (enchufe): CEE 7/4 @@ -2383,7 +2366,6 @@ Inscripción: E Inscripción: NE En construcción - Cajero automático: sí Cajero automático: no Lugar para fogata Gabinete exterior @@ -2479,7 +2461,6 @@ Estación de descarga sanitaria Occidental Chino tradicional - Sistema médico: Desconocido Ayurveda Kampo Mongol tradicional @@ -2503,17 +2484,12 @@ Servicio de salud: análisis Servicio de salud: sin análisis Consultorio médico - Tipo de instalación médica: Hospital Tipo de centro médico: hospital de campaña - Tipo de instalación médica: Clínica - Tipo de instalación médica: Centro de salud Tipo de centro médico: centro de asesoría - Tipo de instalación médica: Rehabilitación Tipo de centro médico: laboratorio Tipo de centro médico: terapia Tipo de centro médico: departamento Tipo de centro médico: dispensario - Tipo de instalación médica: Farmacia Tipo de centro médico: primeros auxilios Tipo de centro médico: asilo de ancianos;Geriátrico Tipo de centro médico: grupo de apoyo domiciliario @@ -2560,7 +2536,6 @@ Asesoría (matrimonio): sí Asesoría (matrimonio): no Asesoría (nutrición): sí - Asesoramiento (nutrición): No Asesoría (rehabilitación): sí Asesoría (rehabilitación): no Asesoría (sexual): sí @@ -2629,7 +2604,6 @@ Principal Estanque Arroyo - Cisterna En servicio: sí Estilo de hidrante: wsh Tipo de gabinete: electricidad @@ -3564,8 +3538,6 @@ Vehículos de gran capacidad Tranvía Transbordador (Ferri) - Fuente de energía: biomasa - Radioterapia Advertencia de peligro Categoría de dificultad s/c (sin categoría) diff --git a/OsmAnd/res/values-es-rAR/strings.xml b/OsmAnd/res/values-es-rAR/strings.xml index f32ebd1112..fd54cd500f 100644 --- a/OsmAnd/res/values-es-rAR/strings.xml +++ b/OsmAnd/res/values-es-rAR/strings.xml @@ -1419,7 +1419,6 @@ No se pudo calcular la ruta. No se pudo calcular la ruta. La ruta calculada está vacía. - Nueva ruta calculada, distancia Has llegado. Coordenadas inválidas Volver al mapa @@ -1501,7 +1500,6 @@ No se pudo añadir el comentario. Editar PDI Crear PDI - No se encontró el nodo, o el PDI se compone de varios nodos, lo cuál todavía no está soportado. ¿Borrar {0} (comentario)? Borrar PDI Borrado @@ -1801,7 +1799,6 @@ Dirección indeterminada Buscando dirección Rutas a caballo - Actualizar Descargar sólo con Wi-Fi Actualización en vivo Actualizar @@ -2002,8 +1999,6 @@ ¿Actualizar todos los mapas ahora? Limpiar todas las teselas Encontrar mi ubicación - Omite la búsqueda de nuevas versiones o descuentos relacionados con OsmAnd. - Ocultar nuevas versiones Omitir descargas de mapas Sin mapas descargados. Puedes elegir uno de la lista o descargarlos luego a través de «Menú - %1$s». Elegir otra región @@ -2076,9 +2071,6 @@ Toma la %1$dª salida y continúa Ciudad o región Artículos de Wikipedia cerca - Búsqueda clásica - Mostrar la búsqueda clásica - Añade el modo de búsqueda clásica a la lista del panel lateral. Usar autopistas Permite usar autopistas. Serbio (latino) @@ -2599,16 +2591,6 @@ Por fecha Por tipo Cambiar la búsqueda. - • Nuevo: Soporte para guías turísticas globales sin conexión a Internet. Las ubicaciones de referencia, están vinculadas al mapa. Datos iniciales de Wikiviajes -\n -\n • Wikipedia: Nuevo aspecto, enlaces activos, ahora con soporte de imágenes -\n -\n • Interfaz de usuario de Open Tracks: Soporte para grupos de puntos de ruta -\n -\n • Marcadores del mapa: Importación de grupos elegidos desde archivos GPX, ingreso de coordenadas, nuevo aspecto -\n -\n • La suscripción de OsmAnd Live, soporta ahora todas las características de OsmAnd -\n Archivo GPX con coordenadas y datos de las notas elegidas. Archivo GPX con coordenadas y datos de todas las notas. Ediciones: %1$s, total: %2$s mBTC @@ -2784,44 +2766,13 @@ Enviaremos la consulta de búsqueda: «%1$s», así como la ubicación. \n \nNo se recopilan datos personales, los datos de búsqueda sólo se utilizan para mejorar el algoritmo de búsqueda. - ¿Sin resultados? -\nCuéntanos sobre esto. ¿Enviar consulta de búsqueda? - • Navegación: Corrección en la barra de progreso, intercambio rápido del punto inicial y final de la ruta -\n -\n • Marcadores del mapa: Corregido el des/activar grupos, capacidad para ocultar marcadores del mapa -\n -\n • Edición de OSM: Capacidad de edición de etiquetas para objetos que no sean puntos y de vías, corrección de los comentarios vacíos en las notas, copia de seguridad de ediciones -\n -\n • Mejor análisis de Wikipedia y Wikiviajes, los archivos actualizados ya están disponibles -\n -\n • Menú contextual: Corregido el color de los escudos de transporte en el modo nocturno y los tamaños de menú adicionales -\n -\n • Navegación fluvial: Soporte a la navegación fluvial -\n -\n • Otras correcciones de errores -\n Ampliar el radio de búsqueda a %1$s - Enviando vía… Gracias por sus comentarios No se pudo encontrar el nodo o la vía. ¿Sin resultados de búsqueda? \nDanos tu opinión Pulsa un botón y escucha su correspondiente aviso por voz para saber si falta o está defectuoso - • Corregido el fallo en el inicio que se producía en algunos dispositivos -\n -\n • Nueva función de marcadores: Mostrar los marcadores ya atravesados. -\n -\n • El historial de búsqueda muestra ahora las categorías buscadas anteriormente -\n -\n • Corregido el fallo en el inicio que se producía con los mapas no latinos -\n -\n • Mejora en los problemas de velocidad de renderizado en dispositivos Android 8.0 -\n -\n • Soporte para la edición de objetos poligonales (no servicios) -\n -\n • Medir distancia: Añadir el botón de «Medir distancia» a las acciones en el menú contextual -\n Para continuar, permite a OsmAnd acceder a la ubicación. Negro Más transporte disponible desde esta parada. @@ -2902,22 +2853,6 @@ Un botón que muestra u oculta las trazas elegidas en el mapa. Ocultar trazas Mostrar trazas - • Nueva pantalla «Direcciones»: Muestra los botones de destino «Casa» y «Trabajo», el atajo de la «ruta anterior», la lista de trazas, marcadores GPX activos y el historial de búsqueda. -\n -\n • Información adicional en «Detalles de la ruta»: Tipos de caminos, superficie, pendiente y suavidad -\n -\n • Soporte en la navegación de transporte público: Metro, autobús, tranvía, etc. -\n -\n • Nuevas acciones rápidas: «Mostrar/ocultar trazas» y «Modo diurno/nocturno» -\n -\n • Áreas fijas mostradas como inundadas en Alemania, Sudáfrica y Quebec -\n -\n • Soporte adicional para la importación de KML y KMZ -\n -\n • Corregidos los fallos en la apertura de algunas paradas de transporte público -\n -\n • Quitado el análisis de Facebook y Firebase de la versión gratuita (OsmAnd+ no lo incluye) -\n Activar el transporte público para los cambios de OsmAnd Live. Transporte público en OsmAnd Live %1$d transbordo(s) @@ -2994,14 +2929,6 @@ Evitar subterráneos y trenes ligeros Sin ferris o transbordadores Evitar ferris o transbordadores - • Mostrar el tiempo entre transbordos en transporte público -\n -\n• Interfaz de usuario corregida para «Detalles de la ruta» -\n -\n• Tema oscuro solucionado en el menú «Dirección» y «Detalles de la ruta» -\n -\n• Visualización de medida «azimut» en «Medir distancia» -\n Enviar registro del problema Se movieron %1$d archivos (%2$s). Se copiaron %1$d archivos (%2$s). @@ -3026,7 +2953,6 @@ Elige los tipos de datos a compartir: Mapas descargados Pantallas visitadas - Datos recopilados Define qué datos quieres que OsmAnd comparta. Nos ayuda a entender la popularidad de los mapas de regiones y países. Nos ayuda a entender la popularidad de las características de OsmAnd. @@ -3082,8 +3008,6 @@ Navegación de terceros Perfiles que serán visibles en la aplicación. Perfiles de la aplicación - Cambia el zoom del mapa desplazando la rueda hacia arriba y abajo. La tecla «Escape» retrocede a la aplicación WunderLINQ. - Controlar con WunderLINQ Añadir al menos un elemento a la lista en los ajustes de «Acción rápida» Esquí alpino y de descenso Pistas de esquí alpino o de descenso y acceso a remontes mecánicos. @@ -3232,7 +3156,6 @@ Ajustes para la navegación del perfil elegido «%1$s». Tiempo de espera al encender Unidades y formatos - Aspecto Apariencia del mapa Aspecto del mapa Complementos instalados @@ -3264,7 +3187,6 @@ Búfer de Logcat Ajustes del complemento Predefinido - Descarga el mapa detallado de «%s», para ver esta área. Descarga el mapa detallado de «%s», para ver esta área. ¿Mover los archivos de datos de OsmAnd al nuevo destino\? \n%1$s > %2$s @@ -3585,7 +3507,6 @@ Elegir grupo Elegir forma Círculo - Rombo Cuadrado Recalcular ruta en caso de desviación Elige la distancia después de la cual la ruta será recalculada. @@ -3621,8 +3542,6 @@ Idiomas Idioma Todos los idiomas - Algunos artículos de Wikipedia pueden no estar disponibles en tu idioma, elige los idiomas en los que los artículos de Wikipedia aparecerán en el mapa. -\nPodrás cambiar entre todos los idiomas disponibles mientras lees el artículo. Se necesitan mapas adicionales para ver los puntos de interés de Wikipedia en el mapa. Marca los idiomas de los artículos de Wikipedia en el mapa. Cambia a cualquier idioma disponible mientras lees el artículo. Es posible que algunos artículos de Wikipedia no estén disponibles en tu idioma. @@ -3717,7 +3636,6 @@ Control de pantalla Apaga la pantalla según el tiempo de espera del sistema. Usar el tiempo de espera de la pantalla del sistema - Opciones de activación de la pantalla: Elige las opciones de activación de la pantalla (asegúrate de que OsmAnd esté en primer plano al bloquear el dispositivo): Indicaciones de navegación Cada indicación de navegación activará la pantalla. @@ -3761,7 +3679,6 @@ metros Muestra u oculta los detalles adicionales del mapa Mapa nocturno - Todo el tiempo Desactivado. Es necesario activar «Mantener la pantalla encendida» en «Tiempo de espera al encender». Añadir repositorio en línea Al aplicar estos cambios, los datos almacenados serán borrados para este repositorio de teselas @@ -3922,7 +3839,6 @@ Desarrollo Datos de «OsmAnd Live» Datos de «OsmAnd Live» - Navegación compleja Navegación bifásica en automóvil. Desarrollo nativo del transporte público Cambiar al cálculo de ruta Java (seguro) del transporte público diff --git a/OsmAnd/res/values-es-rUS/phrases.xml b/OsmAnd/res/values-es-rUS/phrases.xml index c33e501c94..b54a66961a 100644 --- a/OsmAnd/res/values-es-rUS/phrases.xml +++ b/OsmAnd/res/values-es-rUS/phrases.xml @@ -78,7 +78,6 @@ Tienda de fotocopiado;Fotocopiadora Blanquería;Cortinas Tienda textil;Telas - Tienda de ropa de cama Equipo de buceo Mejoras para el hogar Artículos eróticos;Sexshop @@ -341,7 +340,6 @@ Medicina alternativa Otorrinolaringólogo;Audiólogo Banco de sangre - Centro médico Obstetra Terapeuta ocupacional Oftalmólogo;Optometrista @@ -430,7 +428,6 @@ Surf Natación Tenis de mesa;Ping Pong - Equipo de hándbol Tenis Tobogán Voley @@ -455,7 +452,6 @@ Acuario Parque temático Atracción turística - Atracción turística general Atracción de feria Animal (atracción) Rueda de la fortuna;Noria;Vuelta al mundo;Viaje a la luna;Rueda moscovita;Rueda de Chicago;Rueda chicagua;Rueda gigante;Rueda ferris @@ -494,7 +490,6 @@ Conexión a Internet: público Conexión a Internet: servicio Monasterio - Monasterio histórico Crucero;Cruz en el camino Ermita en el camino Información @@ -658,7 +653,6 @@ Crematorio Cibercafé Banco - Cajero automático Terminal de pago Prestamista Casa de empeños;Prestamista @@ -816,7 +810,6 @@ Venta de café en granos Fábrica de pastas Pastelería - Artículos de calefacción Muebles de jardín Marroquinería;Tienda de cueros Tienda de neumáticos @@ -837,14 +830,11 @@ Rompeolas Gabinete de distribución cableada Cuenca - Edificio Grúa Árbol Abandonado En desuso Espigón - Conservación del suelo - Atracción turística Cortafuegos forestal Nodo de red internacional de ciclismo Nodo de red nacional de ciclismo @@ -984,7 +974,6 @@ Cartón Escombros Cartón prensado - Laguna de molino Twitter Skype YouTube @@ -1164,7 +1153,6 @@ Fuente de energía: geotérmica Fuente de energía: petróleo Fuente de energía: diésel - Auto servicio Nombre internacional Nombre nacional Nombre regional @@ -1189,7 +1177,6 @@ Marcador de ruta Mapa de senderismo Naturaleza - Información: Vida salvaje Historia Señal Audio-guía @@ -1312,8 +1299,6 @@ 4S (Primera Clase Superior) 5 (Lujoso) 5S (Lujoso Superior) - Estrellas: 6 - Estrellas: 7 Habitaciones Albergue transitorio;Telo;Motel;Hotel alojamiento Conexión a Internet: sí @@ -1340,7 +1325,6 @@ No acepta Visa MasterCard No acepta MasterCard - Gratis Tarjetas de cuenta No acepta tarjetas de cuenta Maestro @@ -1972,7 +1956,6 @@ Improvisado: no Estación de descarga sanitaria: sí Estación de descarga sanitaria: no - Estación de descarga sanitaria sólo para clientes Fuente de alimentación: no Fuente de alimentación (enchufe): CEE 7/4 @@ -2383,7 +2366,6 @@ Inscripción: E Inscripción: NE En construcción - Cajero automático: sí Cajero automático: no Lugar para fogata Gabinete exterior @@ -2479,7 +2461,6 @@ Estación de descarga sanitaria Occidental Chino tradicional - Sistema médico: Desconocido Ayurveda Kampo Mongol tradicional @@ -2503,17 +2484,12 @@ Servicio de salud: análisis Servicio de salud: sin análisis Consultorio médico - Tipo de instalación médica: Hospital Tipo de centro médico: hospital de campaña - Tipo de instalación médica: Clínica - Tipo de instalación médica: Centro de salud Tipo de centro médico: centro de asesoría - Tipo de instalación médica: Rehabilitación Tipo de centro médico: laboratorio Tipo de centro médico: terapia Tipo de centro médico: departamento Tipo de centro médico: dispensario - Tipo de instalación médica: Farmacia Tipo de centro médico: primeros auxilios Tipo de centro médico: asilo de ancianos;Geriátrico Tipo de centro médico: grupo de apoyo domiciliario @@ -2561,7 +2537,6 @@ Asesoría (matrimonio): sí Asesoría (matrimonio): no Asesoría (nutrición): sí - Asesoramiento (nutrición): No Asesoría (rehabilitación): sí Asesoría (rehabilitación): no Asesoría (sexual): sí @@ -2630,7 +2605,6 @@ Principal Estanque Arroyo - Cisterna En servicio: sí Tipo de gabinete: electricidad Tipo de gabinete: telecomunicación @@ -3564,8 +3538,6 @@ Vehículos de gran capacidad Tranvía Transbordador (Ferri) - Fuente de energía: biomasa - Radioterapia Advertencia de peligro Categoría de dificultad s/c (sin categoría) diff --git a/OsmAnd/res/values-es-rUS/strings.xml b/OsmAnd/res/values-es-rUS/strings.xml index fc3849dba3..94587e80c3 100644 --- a/OsmAnd/res/values-es-rUS/strings.xml +++ b/OsmAnd/res/values-es-rUS/strings.xml @@ -1419,7 +1419,6 @@ No se pudo calcular la ruta. No se pudo calcular la ruta. La ruta calculada está vacía. - Nueva ruta calculada, distancia Has llegado. Coordenadas inválidas Volver al mapa @@ -1501,7 +1500,6 @@ No se pudo añadir el comentario. Editar PDI Crear PDI - No se encontró el nodo, o el PDI se compone de varios nodos, lo cuál todavía no está soportado. ¿Borrar {0} (comentario)? Borrar PDI Borrado @@ -1801,7 +1799,6 @@ Dirección indeterminada Buscando dirección Rutas a caballo - Actualizar Descargar sólo con Wi-Fi Actualización en vivo Actualizar @@ -2002,8 +1999,6 @@ ¿Actualizar todos los mapas ahora? Limpiar todas las teselas Encontrar mi ubicación - Omite la búsqueda de nuevas versiones o descuentos relacionados con OsmAnd. - Ocultar nuevas versiones Omitir descargas de mapas Sin mapas descargados. Puedes elegir uno de la lista o descargarlos luego a través de «Menú - %1$s». Elegir otra región @@ -2076,9 +2071,6 @@ Toma la %1$dª salida y continúa Ciudad o región Artículos de Wikipedia cerca - Búsqueda clásica - Mostrar la búsqueda clásica - Añade el modo de búsqueda clásica a la lista del panel lateral. Usar autopistas Permite usar autopistas. Serbio (latino) @@ -2599,16 +2591,6 @@ Por fecha Por tipo Cambiar la búsqueda. - • Nuevo: Soporte para guías turísticas globales sin conexión a Internet. Las ubicaciones de referencia, están vinculadas al mapa. Datos iniciales de Wikiviajes -\n -\n • Wikipedia: Nuevo aspecto, enlaces activos, ahora con soporte de imágenes -\n -\n • Interfaz de usuario de Open Tracks: Soporte para grupos de puntos de ruta -\n -\n • Marcadores del mapa: Importación de grupos elegidos desde archivos GPX, ingreso de coordenadas, nuevo aspecto -\n -\n • La suscripción de OsmAnd Live, soporta ahora todas las características de OsmAnd -\n Aquí hay: estacionado a las Recoger hasta las @@ -2784,44 +2766,13 @@ Enviaremos la consulta de búsqueda: «%1$s», así como la ubicación. \n \nNo se recopilan datos personales, los datos de búsqueda sólo se utilizan para mejorar el algoritmo de búsqueda. - ¿Sin resultados? -\nCuéntanos sobre esto. ¿Enviar consulta de búsqueda? - • Navegación: Corrección en la barra de progreso, intercambio rápido del punto inicial y final de la ruta -\n -\n • Marcadores del mapa: Corregido el des/activar grupos, capacidad para ocultar marcadores del mapa -\n -\n • Edición de OSM: Capacidad de edición de etiquetas para objetos que no sean puntos y de vías, corrección de los comentarios vacíos en las notas, copia de seguridad de ediciones -\n -\n • Mejor análisis de Wikipedia y Wikiviajes, los archivos actualizados ya están disponibles -\n -\n • Menú contextual: Corregido el color de los escudos de transporte en el modo nocturno y los tamaños de menú adicionales -\n -\n • Navegación fluvial: Soporte a la navegación fluvial -\n -\n • Otras correcciones de errores -\n Ampliar el radio de búsqueda a %1$s - Enviando vía… Gracias por sus comentarios No se pudo encontrar el nodo o la vía. ¿Sin resultados de búsqueda? \nDanos tu opinión Pulsa un botón y escucha su correspondiente aviso por voz para saber si falta o está defectuoso - • Corregido el fallo en el inicio que se producía en algunos dispositivos -\n -\n • Nueva función de marcadores: Mostrar los marcadores ya atravesados. -\n -\n • El historial de búsqueda muestra ahora las categorías buscadas anteriormente -\n -\n • Corregido el fallo en el inicio que se producía con los mapas no latinos -\n -\n • Mejora en los problemas de velocidad de renderizado en dispositivos Android 8.0 -\n -\n • Soporte para la edición de objetos poligonales (no servicios) -\n -\n • Medir distancia: Añadir el botón de «Medir distancia» a las acciones en el menú contextual -\n Para continuar, permite a OsmAnd acceder a la ubicación. Negro Más transporte disponible desde esta parada. @@ -2902,22 +2853,6 @@ Un botón que muestra u oculta las trazas elegidas en el mapa. Ocultar trazas Mostrar trazas - • Nueva pantalla «Direcciones»: Muestra los botones de destino «Casa» y «Trabajo», el atajo de la «ruta anterior», la lista de trazas, marcadores GPX activos y el historial de búsqueda. -\n -\n • Información adicional en «Detalles de la ruta»: Tipos de caminos, superficie, pendiente y suavidad -\n -\n • Soporte en la navegación de transporte público: Metro, autobús, tranvía, etc. -\n -\n • Nuevas acciones rápidas: «Mostrar/ocultar trazas» y «Modo diurno/nocturno» -\n -\n • Áreas fijas mostradas como inundadas en Alemania, Sudáfrica y Quebec -\n -\n • Soporte adicional para la importación de KML y KMZ -\n -\n • Corregidos los fallos en la apertura de algunas paradas de transporte público -\n -\n • Quitado el análisis de Facebook y Firebase de la versión gratuita (OsmAnd+ no lo incluye) -\n Activar el transporte público para los cambios de OsmAnd Live. Transporte público en OsmAnd Live %1$d transbordo(s) @@ -2994,14 +2929,6 @@ Evitar metros y trenes ligeros Sin ferris o transbordadores Evitar ferris o transbordadores - • Mostrar el tiempo entre transbordos en transporte público -\n -\n• Interfaz de usuario corregida para «Detalles de la ruta» -\n -\n• Tema oscuro solucionado en el menú «Dirección» y «Detalles de la ruta» -\n -\n• Visualización de medida «azimut» en «Medir distancia» -\n Enviar registro del problema Se movieron %1$d archivos (%2$s). Se copiaron %1$d archivos (%2$s). @@ -3026,7 +2953,6 @@ Elige los tipos de datos a compartir: Mapas descargados Pantallas visitadas - Datos recopilados Define qué datos quieres que OsmAnd comparta. Nos ayuda a entender la popularidad de los mapas de regiones y países. Nos ayuda a entender la popularidad de las características de OsmAnd. @@ -3082,8 +3008,6 @@ Navegación de terceros Perfiles que serán visibles en la aplicación. Perfiles de la aplicación - Cambia el zoom del mapa desplazando la rueda hacia arriba y abajo. La tecla «Escape» retrocede a la aplicación WunderLINQ. - Controlar con WunderLINQ Añadir al menos un elemento a la lista en los ajustes de «Acción rápida» Esquí alpino y de descenso Pistas de esquí alpino o de descenso y acceso a remontes mecánicos. @@ -3231,7 +3155,6 @@ Ajustes para la navegación del perfil elegido «%1$s». Tiempo de espera al encender Unidades y formatos - Aspecto Apariencia del mapa Aspecto del mapa Complementos instalados @@ -3263,7 +3186,6 @@ Búfer de Logcat Ajustes del complemento Predefinido - Descarga el mapa detallado de «%s», para ver esta área. Descarga el mapa detallado de «%s», para ver esta área. ¿Mover los archivos de datos de OsmAnd al nuevo destino\? \n%1$s > %2$s @@ -3597,8 +3519,6 @@ No se pudo leer desde «%1$s». No se pudo escribir en «%1$s». No se pudo importar desde «%1$s». - Algunos artículos de Wikipedia pueden no estar disponibles en tu idioma, elige los idiomas en los que los artículos de Wikipedia aparecerán en el mapa. -\nPodrás cambiar entre todos los idiomas disponibles mientras lees el artículo. Se necesitan mapas adicionales para ver los puntos de interés de Wikipedia en el mapa. Elementos del menú lateral y menú contextual Personaliza la cantidad de elementos en el «Menú lateral», «Configuración del mapa» y «Menú contextual». @@ -3920,7 +3840,6 @@ Desarrollo nativo del transporte público Datos de «OsmAnd Live» Datos de «OsmAnd Live» - Navegación compleja Ingresar con OAuth para usar las funciones de edición de OSM Ingresar a través de OAuth Sesión finalizada diff --git a/OsmAnd/res/values-es/phrases.xml b/OsmAnd/res/values-es/phrases.xml index 64bb0ce9c9..84ed67a8a1 100644 --- a/OsmAnd/res/values-es/phrases.xml +++ b/OsmAnd/res/values-es/phrases.xml @@ -214,7 +214,6 @@ Sanatorio Medicina alternativa Banco de sangre - Centro médico Empresa privada Inmobiliaria Abogado @@ -283,7 +282,6 @@ Conexión a Internet: cableado Conexión a Internet: público Monasterio - Monasterio histórico Información Reloj Agente de viajes @@ -351,7 +349,6 @@ Morgue Crematorio Banco - Cajero automático Estudio contable;Contador Entrada a cueva Volcán @@ -422,7 +419,6 @@ Venta de bolsos Muebles de dormitorio Mercería - Tienda de ropa de cama Proveedor naval Tienda de vajillas Tienda de persianas @@ -651,7 +647,6 @@ Patinaje sobre ruedas Esquí Surf - Balonmano en equipo Balonkorf Mojón Atracción de feria @@ -730,7 +725,6 @@ Campanario Alquiler de esquí Estación de esquí - Atracción turística general Cabaña Cobertizo Mesa de picnic @@ -794,7 +788,6 @@ Tienda de velas Tienda de moda Artículos de paracaidismo - Tienda de calefactores Muebles de jardín Marroquinería Tienda de música @@ -836,9 +829,7 @@ Rompeolas Gabinete de distribución cableada Cuenca - Conservación del suelo Grúa - Atracción turística Cortafuegos forestal Árbol Nodo de red internacional de ciclismo @@ -983,7 +974,6 @@ Desmarcado Escombros Cartón prensado - Lago de molino Twitter Skype YouTube @@ -1163,7 +1153,6 @@ Fuente de energía: petróleo Fuente de energía: diésel Nectarina - Auto servicio Nombre internacional Nombre nacional Nombre regional @@ -1189,7 +1178,6 @@ Marcador de ruta Mapa de senderismo Naturaleza - Información: Vida salvaje Historia Señal Audio-guía @@ -1310,8 +1298,6 @@ 4S (Primera Clase Superior) 5 (Lujoso) 5S (Lujoso Superior) - Estrellas: 6 - Estrellas: 7 Habitaciones Estilo de jardín: rosaleda Albergue transitorio @@ -1339,7 +1325,6 @@ No acepta Visa MasterCard No acepta MasterCard - Gratis Tarjetas de cuenta No acepta tarjetas de cuenta Maestro @@ -1971,7 +1956,6 @@ Improvisado: no Estación de descarga sanitaria: sí Estación de descarga sanitaria: no - Estación de descarga sanitaria sólo para clientes Fuente de alimentación: no Fuente de alimentación (enchufe): CEE 17 azul @@ -2381,7 +2365,6 @@ Inscripción: NE En construcción Cajero automático: no - Cajero automático: sí Comercio justo: sí Comercio justo: no Sólo productos de comercio justo @@ -2470,7 +2453,6 @@ Estación de descarga sanitaria Occidental Chino tradicional - Sistema médico: desconocido Ayurveda Kampo Mongol tradicional @@ -2547,7 +2529,6 @@ Asesoría (matrimonio): sí Asesoría (matrimonio): no Asesoría (nutrición): sí - Asesoría (nutrición): no Asesoría (rehabilitación): sí Asesoría (rehabilitación): no Asesoría (sexual): sí @@ -2616,7 +2597,6 @@ Principal Estanque Arroyo - Cisterna En servicio: sí Señal: compartimento forestal Lugar para fogata @@ -3558,8 +3538,6 @@ Vehículos de gran capacidad Tranvía Transbordador - Fuente de energía: biomasa - Radioterapia Advertencia de peligro Categoría de dificultad s/c (sin categoría) diff --git a/OsmAnd/res/values-es/strings.xml b/OsmAnd/res/values-es/strings.xml index e136c52e8c..29858e8641 100644 --- a/OsmAnd/res/values-es/strings.xml +++ b/OsmAnd/res/values-es/strings.xml @@ -475,7 +475,6 @@ No se pudo calcular la ruta. No se pudo calcular la ruta. La ruta calculada está vacía. - Nueva ruta calculada, distancia Has llegado. Coordenadas inválidas Volver al mapa @@ -576,7 +575,6 @@ No se pudo añadir el comentario. Editar PDI Crear PDI - No se encontró el nodo, o el PDI se compone de varios nodos, lo cuál todavía no está soportado. ¿Borrar {0} (comentario)? Borrar PDI Borrar @@ -1797,7 +1795,6 @@ Dirección indeterminada Buscando dirección Rutas a caballo - Actualizar Descargar sólo con Wi-Fi Actualización en vivo Actualizar @@ -2011,8 +2008,6 @@ Permitir el acceso a la ubicación Obtenga direcciones y descubra lugares nuevos, sin una conexión a Internet Encontrar mi ubicación - Omite la búsqueda de nuevas versiones o descuentos relacionados con OsmAnd. - Ocultar nuevas versiones Suscripción mensual. Puedes cancelarla en cualquier momento en Google Play. Donación a la comunidad de OSM Parte de tu donación se envía a los contribuidores a OSM. El coste de la suscripción sigue siendo el mismo. @@ -2038,9 +2033,6 @@ Continuar Pausar Sin datos - Búsqueda clásica - Mostrar la búsqueda clásica - Añade el modo de búsqueda clásica a la lista del panel lateral. Usar autopistas Permite usar autopistas. Activar la grabación rápida @@ -2581,16 +2573,6 @@ Define el número de indicadores de dirección. Más Buscando trazas con puntos de referencia - • Nuevo: Soporte para guías turísticas globales sin conexión a Internet. Las ubicaciones de referencia, están vinculadas al mapa. Datos iniciales de Wikiviajes -\n -\n • Wikipedia: Nuevo aspecto, enlaces activos, ahora con soporte de imágenes -\n -\n • Interfaz de usuario de Open Tracks: Soporte para grupos de puntos de ruta -\n -\n • Marcadores del mapa: Importación de grupos elegidos desde archivos GPX, ingreso de coordenadas, nuevo aspecto -\n -\n • La suscripción de OsmAnd Live, soporta ahora todas las características de OsmAnd -\n Cambiar la búsqueda. Crear o modificar objetos OSM Crea o modifica puntos de interés, abre o comenta notas de OSM y contribuye con grabaciones GPX. @@ -2780,44 +2762,13 @@ Enviaremos la consulta de búsqueda: «%1$s», así como la ubicación. \n \nNo se recopilan datos personales, los datos de búsqueda sólo se utilizan para mejorar el algoritmo de búsqueda. - ¿Sin resultados? -\nCuéntanos sobre esto. ¿Enviar consulta de búsqueda? - • Navegación: Corrección en la barra de progreso, intercambio rápido del punto inicial y final de la ruta -\n -\n • Marcadores del mapa: Corregido el des/activar grupos, capacidad para ocultar marcadores del mapa -\n -\n • Edición de OSM: Capacidad de edición de etiquetas para objetos que no sean puntos y de vías, corrección de los comentarios vacíos en las notas, copia de seguridad de ediciones -\n -\n • Mejor análisis de Wikipedia y Wikiviajes, los archivos actualizados ya están disponibles -\n -\n • Menú contextual: Corregido el color de los escudos de transporte en el modo nocturno y los tamaños de menú adicionales -\n -\n • Navegación fluvial: Soporte a la navegación fluvial -\n -\n • Otras correcciones de errores -\n Ampliar el radio de búsqueda a %1$s Gracias por sus comentarios No se pudo encontrar el nodo o la vía. ¿Sin resultados de búsqueda? \nDenos su opinión - Enviando vía… Pulsa un botón y escucha su correspondiente aviso por voz para saber si falta o está defectuoso - • Corregido el fallo en el inicio que se producía en algunos dispositivos -\n -\n • Nueva función de marcadores: Mostrar los marcadores ya atravesados. -\n -\n • El historial de búsqueda muestra ahora las categorías buscadas anteriormente -\n -\n • Corregido el fallo en el inicio que se producía con los mapas no latinos -\n -\n • Mejora en los problemas de velocidad de renderizado en dispositivos Android 8.0 -\n -\n • Soporte para la edición de objetos poligonales (no servicios) -\n -\n • Medir distancia: Añadir el botón de «Medir distancia» a las acciones en el menú contextual -\n Para continuar, permite a OsmAnd acceder a la ubicación. Negro Buscar la calle @@ -2898,22 +2849,6 @@ Un botón que muestra u oculta las trazas elegidas en el mapa. Ocultar trazas Mostrar trazas - • Nueva pantalla «Direcciones»: Muestra los botones de destino «Casa» y «Trabajo», el atajo de la «ruta anterior», la lista de trazas, marcadores GPX activos y el historial de búsqueda. -\n -\n • Información adicional en «Detalles de la ruta»: Tipos de caminos, superficie, pendiente y suavidad -\n -\n • Soporte en la navegación de transporte público: Metro, autobús, tranvía, etc. -\n -\n • Nuevas acciones rápidas: «Mostrar/ocultar trazas» y «Modo diurno/nocturno» -\n -\n • Áreas fijas mostradas como inundadas en Alemania, Sudáfrica y Quebec -\n -\n • Soporte adicional para la importación de KML y KMZ -\n -\n • Corregidos los fallos en la apertura de algunas paradas de transporte público -\n -\n • Quitado el análisis de Facebook y Firebase de la versión gratuita (OsmAnd+ no lo incluye) -\n Activar el transporte público para los cambios de OsmAnd Live. Transporte público en OsmAnd Live %1$d transbordo(s) @@ -2990,14 +2925,6 @@ Evitar metros y trenes ligeros Sin ferris/transbordadores Evitar ferris o transbordadores - • Mostrar el tiempo entre transbordos en transporte público -\n -\n • Interfaz de usuario corregida para «Detalles de la ruta» -\n -\n • Tema oscuro solucionado en el menú «Dirección» y «Detalles de la ruta» -\n -\n • Visualización de medida «azimut» en «Medir distancia» -\n Enviar registro del problema Se movieron %1$d archivos (%2$s). Se copiaron %1$d archivos (%2$s). @@ -3115,8 +3042,6 @@ Enrutamiento de terceros Perfiles que serán visibles en la aplicación. Perfiles de la aplicación - Cambia el zoom del mapa desplazando la rueda hacia arriba y hacia abajo. Salir te devuelve a la aplicación WunderLINQ. - Usa WunderLINQ para controlar Añadir al menos un elemento a la lista en los ajustes de «Acción rápida» Esquí alpino y de descenso Pistas de esquí alpino o de descenso y acceso a remontes mecánicos. @@ -3227,7 +3152,6 @@ Ajustes para la navegación del perfil elegido «%1$s». Tiempo de espera después de despertar Unidades y formatos - Aspecto Apariencia del mapa Aspecto del mapa Complementos instalados diff --git a/OsmAnd/res/values-et/phrases.xml b/OsmAnd/res/values-et/phrases.xml index 1465cf57c8..684815e89c 100644 --- a/OsmAnd/res/values-et/phrases.xml +++ b/OsmAnd/res/values-et/phrases.xml @@ -93,7 +93,6 @@ Lillepood Pildiraamid Vabalangemistarvete pood - Küttekehade pood Mööblipood Aianduskeskus Aiamööbli pood @@ -456,7 +455,6 @@ Alternatiivmeditsiin Audioloog Verepank - Meditsiinikeskus Ämmaemand Tööterapeut Optometrist @@ -2728,7 +2726,6 @@ Veetrassil Tiik Oja - Veemahuti Kasutuses: jah Kapi liik: toide Kapi liik: telekommunikatsioon diff --git a/OsmAnd/res/values-et/strings.xml b/OsmAnd/res/values-et/strings.xml index 2fe91a014a..2ccf7cc2fe 100644 --- a/OsmAnd/res/values-et/strings.xml +++ b/OsmAnd/res/values-et/strings.xml @@ -881,7 +881,6 @@ Marsruutimise seaded valitud profiilis \"%1$s\". Aegumine peale ärkamist Ühikud ja formaadid - Välimus Kaardi välimus Kaardi välimus Paigaldatud laiendused @@ -2301,7 +2300,6 @@ Salvestusruumi suurus Kõikide klippide poolt hõlmata lubatav andmemaht. Valimata - Uuenda Uuenduse maht Liik Lähtekoht @@ -3772,7 +3770,6 @@ \n \nTellimusi saate hallata ja tühistada oma AppGallery seadetes. Tellimuse eest võetakse tasu valitud perioodi kohta. Tühistage see igal ajal oma AppGallery\'s. - Keeruka teekonna koostamine Väljalogitud Arendus Kustuta OpenStreetMap\'i OAuth\'i pääsuluba diff --git a/OsmAnd/res/values-eu/phrases.xml b/OsmAnd/res/values-eu/phrases.xml index 56c6cd2dc1..3800fc4607 100644 --- a/OsmAnd/res/values-eu/phrases.xml +++ b/OsmAnd/res/values-eu/phrases.xml @@ -81,7 +81,6 @@ Denda erotikoa Moda denda Loradenda - Berogailu denda Altzari denda Opari denda Bitxi-denda @@ -289,7 +288,6 @@ Nagusia Urmaela Erreka - Zisterna Su-itzalgailua Anbulantzia geltokia Ibia @@ -514,7 +512,6 @@ Dentista Erietxea Audiologia - Medikuntza zentroa Emagina Okupazio-terapeuta Optometrista @@ -634,8 +631,6 @@ 4S (Lehen klase gorena) 5 (Luxuzkoa) 5S (Luxuzkoa gorena) - Izarrak: 6 - Izarrak: 7 Esnea Ogia Txikleak @@ -772,7 +767,6 @@ Ez dira Visa txartelak onartzen MasterCard Ez da MasterCard onartzen - Doakoa Kontu txartelak Ez dira kontu txartelak onartzen Maestro txartelak @@ -1327,7 +1321,6 @@ Bat-batekoa: ez Komuneko hondakinen estazioa: bai Komuneko hondakinen estazioa: ez - Komuneko hondakinen estazioa: bezeroak besterik ez Bai Elektrizitate iturria: ez Elektrizitate iturria (entxufea): CEE 17 urdina @@ -1370,7 +1363,6 @@ Langabeak Gaixoak Haurrak, gazteak - Kutxazain automatikoa: bai Kutxazain automatikoa: ez Eraikuntzan Babestutako area @@ -1505,7 +1497,6 @@ Beilatokia Ziberkafea Bankua - Kutxazain automatikoa Moneta aldaketa Kontularia Zela @@ -1740,7 +1731,6 @@ Ubidearen biraketa puntua Olatu horma Kableen banatze armairua - Kontserbazio landa Kutsaturiko orubea Orubea Meazulo diff --git a/OsmAnd/res/values-eu/strings.xml b/OsmAnd/res/values-eu/strings.xml index 91832c2257..ee2a825985 100644 --- a/OsmAnd/res/values-eu/strings.xml +++ b/OsmAnd/res/values-eu/strings.xml @@ -927,7 +927,6 @@ Ezin izan da ibilbidea kalkulatu. Ezin izan da ibilbidea kalkulatu. Kalkulatutako ibilbidea hutsik dago. - Ibilbide berria kalkulatua, distantzia Iritsi zara. Baliogabeko koordenatuak Itzuli mapara @@ -1025,7 +1024,6 @@ Ezin izan da iruzkina gehitu. Editatu POI-a Sortu interesgune bat - Ezin da nodoa aurkitu, edo zerbitzua hainbat nodoz osatuta dago, eta ez dago horretarako euskarririk oraindik. {0} ezabatu (iruzkina)? Ezabatu POI-a Ezabatu @@ -1864,7 +1862,6 @@ Aplikazioa kontrol panel aldakor batetik ala finkatutako menu estatiko batetik kudeatzeko aukera dago. Erabakia aldatzeko aukera duzu kontrol panelaren ezarpenetan. Inguruko POI Erakutsi zoom botoiak nabigazioan. - Eguneratu Erabili menua Maparen legenda Ziur interesgunea mota gabe gorde nahi duzula\? @@ -1996,8 +1993,6 @@ mapak eta nabigazioa \n \nHau aktibatzean ikuspegia \'Negua eta eskia\' estilora aldatzen da, paisaia neguko egoeran bistaratuz. Hau atzera aldatu daiteke gehigarri hau desgaituz eta \'Konfiguratu mapa\' menuko \'Mapa estiloa\' aldatuz. Lur gaineko objektuak - Ez egiaztatu bertsio berriak edo OsmAnd-ekin erlazioa duten deskontuak. - Ez erakutsi bertsio berriak Eguneratu mapa guztiak orain? Garbitu tesela guztiak Bide erregai-efizientea @@ -2078,9 +2073,6 @@ mapak eta nabigazioa Ongi Hiria edo eskualdea Inguruko Wikipediako artikuluak - Bilaketa zaharra - Erakutsi bilaketa zaharra - Gehitu bilaketa zaharra tiraderako zerrendan. Erabili autobideak Erabili autobideak. Serbiera (latinoa) @@ -2760,17 +2752,6 @@ Area honi dagokio: %1$s x %2$s \'Mapnik\' estilo lehenetsi zaharra. \'Mapnik\' estiloaren antzeko koloreak. Errepiderako kontraste eta xehetasun handiko estiloa. Lehenetsitako estiloaren konfigurazio aukera guztiak ditu eta ahal beste xehetasun erakusten ditu, bereziki errepideak, bideak eta bestelako garraio-bideak. Bide moten arteko bereizketa bisual argia. Egunez, gauez zein naturan erabiltzeko egokia. Erabilera orokorrerako estiloa. Biztanle askoko hirietan garbia. sestra-kurbak, ibilbideak, zoladuraren kalitatea, sarbide-mugak, bideak SAC eskalaren arabera marrazten dira, ur kiroletarako elementuak. - • Berria: Lineaz kanpoko bidi gida globalentzako euskarria. Aipatutako kokalekuak mapan estekatzen dira. Hasierako datuak Wikivoyage-tik. -\n -\n • Wikipedia: Itxura berria, esteka aktiboak, irudiak onartzen dira -\n -\n • Open Track UI: Bide-puntu taldeentzako euskarria -\n -\n • Mapa-markatzaileak: Inportatu hautatutako taldeak GPX fitxategietatik, korrdenatuen sarrera, itxura berria -\n -\n • OsmAnd Live harpidetzak orain OsmAnd ezaugarri guztiak onartzen ditu -\n -\n Tarteko iritsiera ordua Tarteko denbora Editatu ekintzak @@ -2785,44 +2766,12 @@ Area honi dagokio: %1$s x %2$s Zure bilaketa eta kokapena \"%1$s\" zerbitzarira bidaliko da. \n \nEz da informazio pertsonala biltzen, bilaketen datuak algoritmoa hobetzeko biltzen ditugu. - Emaitzarik ez? -\nEman iezaguzu horren berri. Bilaketa-kontsulta bidali? Eskerrik asko zure iruzkinagatik Ezin izan da nodoa edo bidea aurkitu. Bilaketaren emaitzarik ez? \nEgin iruzkin bat - • Nabigazioa: Konpondu aurreratze barra, aldatu azkar ibilbide baten hasiera eta amaiera puntuen artean -\n -\n • Mapa-markatzaileak: konpondu piztu/itzali taldeak, markatzaileak mapatik ezkutatzeko aukera -\n -\n • OSM Edizioa: Puntuak ez diren objektuen eta bideen etiketak aldatzeko aukera, konpondu oharretan falta diren iruzkinak, edizioen babes-kopia -\n -\n • Hobetu Wikipedia eta Wikivoyage azterketa, eguneratutako fitxategiak eskuragarri daude -\n -\n • Testuinguru menua: konpondu garraio babesen kolorea gau moduan, konpondu menu gehigarrien tamainak -\n -\n • Ontzi bidezko nabigazioa: ubideen euskarria -\n -\n • Bestelako akatsen konponketak -\n -\n - Bidea betetzen… Sakatu botoi bat eta entzun dagokion ahots-deskripzioa falta den edo gaizki dagoen antzemateko - • Gailu batzuetan gertatzen zen kaskatzea konponduta -\n -\n• Markatzaileen ezaugarri berria: Bistaratu iragandako markatzaileak -\n -\n• Bilaketa historiak aurretik bilatutako kategoriak bistaratzen ditu -\n -\n• Karaktere mapa ez latinoetan gertatzen zen kraskatzea konponduta -\n -\n • Android 8.0 gailuetan gertatzen ziren errendatze abiadura arazoak konponduta -\n -\n • Poligono objektuak editatzeko euskarria (Ez-zerbitzua) -\n -\n• Distantziaren neurketa: Neurketa botoia gehitu da laster-menuko ekintzetara -\n Eman OsmAnd-i kokalekua eskuratzeko baimena jarraitzeko. Beltza Bilatu kalea @@ -2966,15 +2915,6 @@ Area honi dagokio: %1$s x %2$s Ekidin metroak eta tren arinak Ferryrik ez Ekidin ferryak - "• Garraio publikoetan transferentzien arteko denbora erakusten da -\n -\n • Interfaze zuzendua ibilbidearen xehetasunetan -\n -\n • Itxura iluna zuzendua, norabide menuan eta ibilbidearen xehetasunetan -\n -\n • Distantziaren neurketan azimuth erakusten da -\n -\n" Zolatu gabea Belar zolatua Zolatua @@ -3008,7 +2948,6 @@ Area honi dagokio: %1$s x %2$s Aukeratu ze motako datuak partekatu nahi dituzun: Deskargatutako mapak Bisitatutako pantailak - Jasotako datuak Zehaztu zeintzuk datu baimentzen duzun OsmAnd-ek partekatzea. Lagundu gaitzazu mapa eta eskualdeen erabilera ulertzen. Lagundu gaitzazu OsmAnd-en ezaugarrien erabilera ulertzen. @@ -3214,7 +3153,6 @@ Area honi dagokio: %1$s x %2$s Ibilbide ezarpenak hautatutako \"%1$s.\" profilean. Esnatu ondorengo denbora-muga Unitate eta formatuak - Itxura Maparen itxura Maparen bista Instalatutako gehigarriak @@ -3277,25 +3215,7 @@ Area honi dagokio: %1$s x %2$s Zabalera muga Zehaztu baimendutako ibilgailuaren zabalera muga ibilbideetan. Saihestu ibilbide eta errepide mota batzuk - "• \'Jarraibideak\' pantaila berria: Etxea eta lana botoiak bistaratzen ditu, \'aurreko ibilbidea\' lasterbidea, GPX lorratz eta markatzaile aktiboen zerrenda, bilaketa historiala -\n -\n • Informazio gehigarria \'Ibilbidearen xehetasunak\' atalean: errepide motak, zoladura, maldak, xamurtasuna -\n -\n • Garraio publiko bidezko nabigazioak mota guztietako garraioak onartzen ditu: metroa, autobusa, tranbia, eta abar -\n -\n • Ekintza azkar berria lorratzak erakutzi edo ezkutatzeko eta egun7gau moduetarako -\n -\n • Alemania, Hego Afrika eta Quebec-en urpetuta agertzen ziren zonaldeak konponduta -\n -\n • KML eta KMZ inportaziorako euskarri gehigarria -\n -\n • Garraio publiko batzuk irekitzean gertatzen ziren kraskatzeak konponduta -\n -\n • Facebook eta Firebase analitikak kendu dira doako bertsiotik (OsmAnd+ bertsioak ez ditu) -\n -\n" Kamioneta irekia - Trukatu irteera eta helmuga Errepide mota ezezagunetan iristeko ordua kalkulatzen du, eta errepide guztietako abiadura mugatzen du (ibilbidea alda lezake) %1$s • %2$s %1$s GB libre (%2$s GB-etatik) @@ -3408,7 +3328,6 @@ Area honi dagokio: %1$s x %2$s %1$s sakatzean zure aldaketak baztertuko dira. Berrezarri profilaren ezarpenak instalazioan lehenetsitakoetara. Berrezarri profileko ezarpen guztiak\? - %1$s: %2$s \'%1$s\'-k ez dauka ibilbide araurik, hautatu beste fitxategiren bat. Onartutako %1$s luzapena duen fitxategi bat hautatu behar duzu. Inportatu fitxategitik @@ -3484,12 +3403,9 @@ Area honi dagokio: %1$s x %2$s Menua %1$s — %2$s — %3$s Ibilbidea - Errendatzeko estilo pertsonalizatua Gehitu datu osagarriak Inportatutako profilak datu osagarriak ditu. Sakatu Inportatu profileko datuak bakarrik inportatzeko edo hautatu datu gehigarriak. Datu osagarriak hauta ditzakezu profilarekin batera esportatzeko. - Erakutsi sistemaren jakinarazpena nabigazioan zehar nabigazio argibideekin. - Nabigazio-jakinarazpena Aplikazioan lehenetsia (%s) Birkalkulorik ez Gutxieneko distantzia ibilbidea birkalkulatzeko @@ -3569,7 +3485,6 @@ Area honi dagokio: %1$s x %2$s Hautatu ibilbidea birkalkulatzeko distantzia. Birkalkulatu ibilbidea desbideratzekotan Laukia - Erronboa Zirkulua Hautatu forma Hautatu taldea @@ -3720,7 +3635,6 @@ Area honi dagokio: %1$s x %2$s Pantailaren kontrola Pantaila itzaltzen du sistemako pantailaren denbora-muga agortzean. Erabili sistemako pantailaren denbora-muga - Pantaila esnatzeko aukerak: Hautatu pantailako esnatzeko aukerak (ziurtatu OsmAnd lehen planoan dagoela gailua blokeatzean): Nabigazio instrukzio bakoitzak pantaila piztuko du. Nabigaziorako argibideak diff --git a/OsmAnd/res/values-fa/phrases.xml b/OsmAnd/res/values-fa/phrases.xml index d951eb7053..19e015f910 100644 --- a/OsmAnd/res/values-fa/phrases.xml +++ b/OsmAnd/res/values-fa/phrases.xml @@ -36,7 +36,6 @@ فروشگاه چاپ و تکثیر پرده فروشی پارچه فروشی - پنبه زنی تجهیزات غواصی فروشگاه بهسازی خانه @@ -251,7 +250,6 @@ طب سنتی شنوایی سنجی سازمان انتقال خون - مرکز پزشکی ماما کاردرمانی چشم پزشکی @@ -388,7 +386,6 @@ شینتو تائوئیسم صومعه - صومعه تاریخی زیارتگاه بین راهی اطلاعات @@ -529,7 +526,6 @@ کوره جسد سوزی کافی‌نت بانک - ATM وام دهنده پول بنگاه رهنی صرافی @@ -717,7 +713,6 @@ دسترسی تابستانه: فقط خروج دسترسی تابستانه: ورود و خروج درازا - خودپرداز: بله نام خانه شومینه فصلی diff --git a/OsmAnd/res/values-fa/strings.xml b/OsmAnd/res/values-fa/strings.xml index 0aef353802..3cb0760eac 100644 --- a/OsmAnd/res/values-fa/strings.xml +++ b/OsmAnd/res/values-fa/strings.xml @@ -276,7 +276,6 @@ منبع کاشی‌های آنلاین یا کاشی‌های ذخیره‌شدهٔ نقشه را انتخاب کنید. محاسبهٔ مسیر ناموفق بود. مسیر محاسبه‌شده تُهی است. - مسیر جدید؛ مسافت رسیدید. مختصات نامعتبر بازگشت به نقشه @@ -1044,7 +1043,6 @@ DDD.DDDDD DDD MM.MMM DDD MM SS.S - نقطه پیدا نشد، یا مکان از چند نقطه تشکیل شده است که فعلاً پشتیبانی نمی‌شود. لطفاً نام کاربری و گذرواژه‌تان برای سایت OSM را در قسمت تنظیمات وارد کنید پاک‌کردن مقصدهای میانی نگه‌داشتن مقصدهای میانی @@ -1650,8 +1648,6 @@ اجازهٔ دسترسی به موقعیتتان را بدهید مسیریابی و کشف جاهای تازه بدون اتصال به اینترنت موقعیت من را پیدا کن - بررسی خودکار برای نسخه‌های تازهٔ برنامه یا تخفیف‌های OsmAnd را غیرفعال می‌کند. - نسخه‌های تازه را نشان نده اکنون همهٔ نقشه‌ها را به‌روز می‌کنید؟ پاک‌کردن همهٔ کاشی‌ها راه صرفه‌جویی سوخت @@ -2133,7 +2129,6 @@ از منو استفاده شود دکمهٔ پیشخوان یا منو دو انتخاب دارید که بتوانید از طریق پیشخوانِ قابل‌تنظیم یا منوی ثابت، برنامه را کنترل کنید. همواره می‌توانید این انتخاب را در تنظیمات پیشخوان تغییر دهید. - به‌روزرسانی فقط با وای‌فای دانلود کن به‌روزرسانی زنده الآن به‌روز کن @@ -2430,10 +2425,7 @@ \n • رد خودتان را ثبت کنید یا یک رد GPX را دانلود و آن را دنبال کنید \n مسافت اصلاح‌شده - جست‌وجوی دنباله‌ای - نمایش جست‌وجوی دنباله‌ای - جست‌وجوی دنباله‌ای را به منو اضافه می‌کند. - نقشه + نقشه \n • نقاط توجه (POIها یا Points of interest) اطرافتان را نشان می‌دهد \n • نقشه را در راستای حرکتتان (یا قطب‌نما) تنظیم می‌کند \n • موقعیت و سوی جهت‌گیری‌تان را نشان می‌دهد @@ -2623,16 +2615,6 @@ بر اساس تاریخ بر اساس نوع جست‌وجوی خود را تغییر دهید. - • جدید: پیاده‌سازی راهنمای آفلاین جهانی برای سفر که در آن مکان‌های موردبحث به نقشه پیوند خورده‌اند. داده‌های اولیه از ویکی‌سفر گرفته شده است. -\n -\n • ویکی‌پدیا: ظاهر جدید، لینک‌های فعال، پشتیبانی از تصاویر -\n -\n • رابط کاربری بازکردن مسیر: پشتیبانی از گروه‌های نقاط بین‌راهی -\n -\n • نشانه‌های نقشه: واردکردن گروهی از نقاط از فایل‌های GPX، ورود مختصات، ظاهر تازه -\n -\n • از این پس اشتراک OsmAnd Live همهٔ قابلیت‌های OsmAnd را در بر می‌گیرد -\n چیزهایی که اینجاست: ساعت پارک برداشتن تا @@ -2803,46 +2785,13 @@ %1$s نقطه افزودید. نام فایل را بنویسید و روی «ذخیره» بزنید. نقطهٔ %1$s پاک شد جهان - چیزی پیدا نشد؟ -\nدر این باره با ما صحبت کنید. عبارت جست‌وجویتان ارسال شود؟ افزایش شعاع جست‌وجو به %1$s سپاسگزاریم که نظر دادید گره یا راه پیدا نشد. چیزی پیدا نشد؟ \nبازخورد بدهید - "• ناوبری: اصلاح نوار پیشرفت، تعویض فوریِ نقاط ابتدا و انتهای مسیر -\n -\n • نشانه‌های نقشه: اصلاح خاموش/روشن‌کردن گروه‌ها، امکان مخفی‌سازی نشانه‌ها روی نقشه -\n -\n • ویرایش OSM: امکان ویرایش تگ‌های اشیای غیرنقطه‌ای و راه‌ها، اصلاح مشکل ازقلم‌افتادن پیام‌ها در توضیحات ویرایشی، پشتیبان‌گیری از ویرایش‌ها -\n -\n • بهبود تجزیهٔ ویکی‌پدیا و ویکی‌سفر، فایل‌های به‌روزشده اکنون در دسترس قرار دارند -\n -\n • منوی زمینه: اصلاح رنگ شمارهٔ پلاک‌های حمل‌ونقل (مثل شمارهٔ ایستگاه‌های مترو) در حالت شب، اصلاحات دیگر در اندازه‌های منو -\n -\n • ناوبری با قایق: پشتیبانی از آبراه روگاه (fairway) -\n -\n • اصلاح مشکلاتی دیگر -\n -\n" روی یکی از دکمه‌ها بزنید و فرمان گفتاری متناظر با آن را بشنوید تا فرمان‌های مشکل‌دار یا ناموجود را شناسایی کنید - • حل مشکل از کار افتادن در شروع برنامه که روی برخی دستگاه‌ها رخ داده بود -\n -\n• قابلیت جدید برای نشانه‌ها: نمایش نشانه‌هایی که از آن‌ها گذشته‌اید -\n -\n• تاریخچهٔ جست‌وجو دسته‌هایی را که قبلاً جُسته‌اید نشان می‌دهد -\n -\n• حل مشکل از کار افتادن در شروع برنامه که با نقشه‌های غیرلاتین پیش آمده بود -\n -\n • بهبودهایی برای مشکل سرعت پرداخت نقشه (map render) روی اندروید ۸٫۰ -\n -\n • پشتیبانی از ویرایش اشیای چندضلعی (non-amenity) -\n -\n• اندازه‌گیری مسافت: اضافه‌شدن دکمهٔ «اندازه‌گیری» به عملیات‌ها در منوی زمینه -\n -\n - در حال ثبت راه… برای ادامه، لطفاً به OsmAnd اجازهٔ دسترسی به موقعیت مکانی را بدهید. سیاه جست‌وجوی خیابان @@ -2923,23 +2872,6 @@ دکمه‌ای برای آشکار/پنهان کردن ردهای انتخابی بر روی نقشه. پنهان‌کردن ردها آشکارکردن ردها - • طراحی جدید برای صفحهٔ «مسیریابی»: اضافه‌شدن دکمه‌های خانه و محل کار برای انتخاب مقصد، میانبر «مسیر قبلی»، لیست نشانه‌ها و ردهای GPX فعال، سابقهٔ جست‌وجو -\n -\n • اطلاعات بیشتر در قسمت «جزئیات مسیر»: نوع جاده‌ها، سطح، شیب، همواری -\n -\n • پشتیبانی از همهٔ گونه‌های ترابری در ناوبری حمل‌ونقل عمومی: مترو، اتوبوس، تراموا و... -\n -\n • گزینه‌های جدید در «عملیات فوری» برای آشکار/پنهان کردن ردها و تغییر حالت شب/روز -\n -\n • اصلاح مناطقی در آلمان، آفریقای جنوبی و کِبِک که سیل‌زده نمایش داده می‌شدند -\n -\n • پشتیبانی از ورود KML و KMZ -\n -\n • حل مشکل از کار افتادن هنگام بازکردن برخی ایستگاه‌های حمل‌ونقل عمومی -\n -\n • حذف آمارگیرهای Facebook و Firebase از نسخهٔ رایگان (OsmAnd+‎ آن را ندارد) -\n -\n حمل‌ونقل عمومی با استفاده از به‌روزرسانی‌های OsmAnd Live فعال شود. حمل‌ونقل عمومی با OsmAnd Live %1$d انتقال @@ -3016,14 +2948,6 @@ از مترو و حمل‌ونقل ریلی سبک پرهیز می‌کند فرابر از فرابر پرهیز می‌کند - • نمایش زمان بین انتقال‌ها در حمل‌ونقل عمومی -\n -\n • اصلاح رابط کاربری جزئيات مسیر -\n -\n • اصلاح پوستهٔ تیره برای منوی مسیریابی و جزئیات مسیر -\n -\n • نمایش سمت (azimuth) در اندازه‌گیری مسافت -\n %1$d فایل منتقل شد (%2$s). %1$d فایل کپی شد (%2$s). نمی‌توان %1$d فایل (%2$s) را کپی کرد. @@ -3231,7 +3155,6 @@ پیام شروع زمان خاموشی پس از بیدارباش یکاها و قالب‌ها - ظاهر چهرهٔ نقشه افزونه‌های نصب‌شده پیکربندی ناوبری @@ -3284,7 +3207,6 @@ تحلیل‌ها بافر لاگ‌کت پیشفرض - برای دیدن این منطقه، نقشهٔ باجزئیات %s را دانلود کنید. برای دیدن این منطقه، نقشهٔ پرجزئیات %s را دانلود کنید. فایل‌های دادهٔ OsmAnd را به مقصد جدید انتقال می‌دهید؟ \n%1$s > %2$s @@ -3431,7 +3353,6 @@ زدن روی %1$s، همهٔ تغییراتتان را از بین می‌برد. همهٔ تنظیمات پروفایل به حالت اولیهٔ پس از نصب بازنشانی می‌شود. همهٔ تنظیمات پروفایل را بازنشانی می‌کنید؟ - %1$s: ‪%2$s‬ ‪%1$s %2$s‬‏ %1$s: ‪%2$s‬ در فایل %1$s دستوری برای مسیریابی یافت نشد. لطفاً فایل دیگری انتخاب کنید. @@ -3609,7 +3530,6 @@ نمایش ناهمواری‌ها دکمه‌ای برای آشکار یا پنهان کردن لایهٔ ناهمواری‌ها روی نقشه. دایره - لوزی حذف توضیحات افزودن توضیحات انتخاب گروه @@ -3742,7 +3662,6 @@ کنترل صفحه هنگامی که زمان خاموشی صفحه مطابق تنظیمات دستگاه سر برسد، صفحه را خاموش می‌کند. استفاده از زمان خاموشی صفحه در دستگاه - گزینه‌های بیدارباش صفحه: گزینه‌های بیدارباش صفحه را انتخاب کنید (مطمئن شوید هنگام قفل‌کردن دستگاه، OsmAnd در پیش‌زمینه باشد): هر یک از فرمان‌های ناوبری، صفحه را روشن خواهد کرد. فرمان‌های ناوبری @@ -3783,7 +3702,6 @@ متر جزئیات اضافه‌تر را روی نقشه آشکار یا پنهان کنید نقشهٔ شب - همیشه غیرفعال است. به گزینهٔ «روشن نگه داشتن صفحه» در قسمت «زمان خاموشی پس از بیدارباش» نیاز دارد. فراتابی شبه مرکاتور اتصال @@ -3940,7 +3858,6 @@ دادهٔ OsmAnd Live دادهٔ OsmAnd Live مسیریابی دومرحله‌ای برای ناوبری خودرویی. - مسیریابی پیچیده برای مسیریابی حمل‌ونقل عمومی از محاسبات جاوا (امن) استفاده می‌کند نقشه‌های محلی ویژه diff --git a/OsmAnd/res/values-fi/strings.xml b/OsmAnd/res/values-fi/strings.xml index 026179f02c..0b910710b9 100644 --- a/OsmAnd/res/values-fi/strings.xml +++ b/OsmAnd/res/values-fi/strings.xml @@ -314,7 +314,6 @@ KP Virhe tallennettaessa GPX tiedostoa Virhe reitin laskennassa - Uusi reitti laskettu, etäisyys Olet saapunut perille. Virheelliset koordinaatit Sulje @@ -874,7 +873,6 @@ Maailmanlaajuiset tiedot (välillä 70 astetta pohjoista ja 70 astetta eteläist Anna oikeus Salli pääsy sijaintiin Löydä sijaintini - Älä näytä uusia versioita Päivitetäänkö kaikki kartat nyt? Poista kaikki tiilet Polttoainetaloudellinen reitti @@ -1302,7 +1300,6 @@ Maailmanlaajuiset tiedot (välillä 70 astetta pohjoista ja 70 astetta eteläist Käytä hallintapaneelia Käytä valikkoa Hallintapaneeli tai valikko-ohjaus - Päivitä Lataa ainoastaan Wi-Fi-yhteydellä Live päivitys Päivitä nyt @@ -1585,7 +1582,6 @@ Maailmanlaajuiset tiedot (välillä 70 astetta pohjoista ja 70 astetta eteläist Lataa OSM-huomautuksesi anonyymisti tai käyttämällä OpenStreetMap.org-profiiliasi. Lähimmät Wikipedia-artikkelit Lataa (vie) KP:t - Älä tarkista mitään päivityksiä uusista versioista tai OsmAndiin liittyvistä alennuksista Piemonte Bengali Tagalog @@ -1805,8 +1801,6 @@ Jos pidät OsmAndista ja OSMsta ja haluat tukea niitä, on tämä täydellinen t Korkeuskäyräviivojen leveys Korkeuskäyräviivojen leveys Vesi - Vanha haku - Näytä vanha haku Audion bittinopeus Valitse äänen bittinopeus. GPX tiedostoa ei valittu. Valitaksesi paina ja pidä käytettävissä olevalla jäljellä. diff --git a/OsmAnd/res/values-fr/phrases.xml b/OsmAnd/res/values-fr/phrases.xml index e2b1ca9638..44d7c3f941 100644 --- a/OsmAnd/res/values-fr/phrases.xml +++ b/OsmAnd/res/values-fr/phrases.xml @@ -22,7 +22,6 @@ Centre artistique Œuvre d’art Athlétisme - Distributeur de billets Attraction touristique Tour d\'abandon Huissier @@ -203,7 +202,6 @@ Point de repère Laverie Cabinet de juriste - Passage à niveau Bibliothèque Feu (amer) Bouée lumineuse (amer) @@ -328,7 +326,6 @@ Taoïsme Salon de tatouage Station de taxis - Handball Entreprise de télécommunications Téléphone public Tennis @@ -394,7 +391,6 @@ Tunnel Bureau d\'état civil Douanes - Centre médical Orthophoniste Agence de publicité Échecs @@ -460,7 +456,6 @@ Épave Maroquinerie Aérodrome militaire - Magasin de literie Sex-shop Herboriste Magasin de cuisines @@ -505,7 +500,6 @@ Club de photographie Source d\'eau chaude Geyser - Monastère désaffecté Fort Football américain BMX @@ -731,7 +725,6 @@ Clocher Location de ski Station de ski - Attraction touristique Cabane Abri ouvert Pavillon de chasse @@ -813,14 +806,12 @@ Magasin de pneumatiques Magasin pour la plongée sous-marine Pisciniste - Construction Arbre Quartier Abandonné Magasin de pâtes Pâtisserie Magasin d\'articles de vol libre - Boutique d\'articles de chauffage Magasin de cuir Magasin de fourniture d\'énergie Magasin de pyrotechnie @@ -828,9 +819,7 @@ Brise-lames Armoire de distribution électrique Bassin de rétention d\'eau - Zone protégée Grue - Attraction touristique Wiki cébouano Wiki volapük Barrière cycliste @@ -963,7 +952,6 @@ Avec feux de circulation Sans feux de circulation Sans marquage au sol, ni feux - Retenue d\'eau Ferraille Poubelle (sacs noirs) Carton @@ -1081,7 +1069,6 @@ Source d\'énergie : géothermie Source d\'énergie : pétrole Source d\'énergie : diesel - Self service Nom international Nom national Nom régional @@ -1195,8 +1182,6 @@ 4S (première classe supérieure) 5 (luxe) 5S (luxe supérieur) - Etoiles : 6 - Etoiles : 7 Pièces Pièces non acceptées Pièces de 50 cent, 1€ et 2€ @@ -1425,7 +1410,6 @@ Espèces non acceptées Cartes de débit Cartes de débit non acceptées - Gratuit Seniors Enfants Orphelins @@ -1754,7 +1738,6 @@ Type de château : kremlin Vidange sanitaire : oui Vidange sanitaire : non - Station de vidange sanitaire : clients uniquement Réfugiés : non Produit : charbon Type : tombe de guerre @@ -1804,7 +1787,6 @@ Arbres avec aiguilles Mélangé Kiwi - Indicateur d’information : vie sauvage Historique Indicateur d’itinéraire Pas de places réservées aux parents @@ -2728,7 +2710,6 @@ Inscription : SE Inscription : E Inscription : NE - DAB : oui DAB : non Minipay non accepté MiniCash non accepté @@ -3035,7 +3016,6 @@ Réseau de distribution Étang Ruisseau - Citerne Activation du passage : automatique Activation du passage : local Activation du passage : à distance @@ -3213,7 +3193,6 @@ Boutique de cannabis Dénotation Catégorie de difficulté - Radiothérapie Série d\'explosions Rôle du personnel de santé : paramédical Rôle du personnel de santé : médecin @@ -3269,7 +3248,6 @@ VOM Tram Ferry - Source d\'énergie : biomasse н/к н/к* diff --git a/OsmAnd/res/values-fr/strings.xml b/OsmAnd/res/values-fr/strings.xml index 41c9ad04de..0b7dc82b1c 100644 --- a/OsmAnd/res/values-fr/strings.xml +++ b/OsmAnd/res/values-fr/strings.xml @@ -459,7 +459,6 @@ Impossible de calculer l\'itinéraire. Impossible de calculer l\'itinéraire. L\'itinéraire calculé est vide. - Itinéraire recalculé, distance Vous êtes arrivés. Coordonnées invalides Retourner à la carte @@ -557,7 +556,6 @@ Impossible d\'ajouter le commentaire. Modifier le point d\'intérêt Créer un point d\'intérêt - L\'objet est introuvable ou est composé de plusieurs nœuds, ce qui n\'est pas possible actuellement. Supprimer {0} (commentaire) ? Supprimer le point d\'intérêt Supprimer @@ -1790,7 +1788,6 @@ Sélectionnez le bitrate audio Impossible de déterminer l\'adresse Recherche de l\'adresse - Mise à jour Télécharger uniquement en WiFi Mise à jour en temps réel Randonnée à cheval @@ -1988,8 +1985,6 @@ Démarrer Trajet économe en carburant Suivre un trajet économe en carburant (habituellement plus court). - Ne pas vérifier les mises à jour ni les offres promotionnelles OsmAnd. - Ne pas afficher les nouvelles versions Ignorer le téléchargement des cartes Aucune carte hors ligne n\'est installée. Vous pouvez sélectionner une carte dans la liste ou télécharger une carte plus tard depuis le menu « %1$s ». Sélectionner une autre région @@ -2077,9 +2072,6 @@ Moyen Faible Densité des courbes de niveaux - Recherche héritée - Afficher la recherche héritée - Ajouter la recherche héritée à la liste déroulante. Masquer l\'eau Action rapide Action %d @@ -2587,17 +2579,6 @@ Par date Par type Modifier votre recherche. - • Nouveauté : guides de voyage hors ligne. Les données sont fournies par Wikivoyage -\n -\n• Wikipedia : nouvelle apparence, liens cliquables, affichage des images -\n -\n• Ouverture des traces : affichage de groupes d\'étapes -\n -\n• Marques : import depuis des fichiers GPX, création par saisie de coordonnées, nouvelle apparence -\n -\n• L\'abonnement OsmAnd Live inclut désormais toutes les fonctionnalités d\'OsmAnd. -\n -\n Total des dons Fichier GPX comprenant les coordonnées et le contenu des notes sélectionnées. Fichier GPX contenant les coordonnées et les notes. @@ -2773,41 +2754,13 @@ Vous êtes sur le point d\'envoyer la recherche : « %1$s » ainsi que votre position. \n \nAucune donnée personnelle ne sera envoyée. Ces informations seront utilisées afin d\'améliorer l\'algorithme de recherche. - Aucun résultat ? -\nSignalez-le nous. Envoyez votre recherche ? - • Navigation : correction de la barre de progression, permutation facile entre le point de départ et le point d\'arrivée -\n -\n• Marque : correction pour l\'activation / désactivation des groupes, possibilité de masquer les marques sur la carte -\n -\n• Modifications OSM : possibilité de modifier les objets autres que les points et les routes, correction de la perte des commentaires et des notes, copie de sauvegarde des modifications -\n -\n• Amélioration de Wikipedia et Wikivoyage, les fichiers à jour sont déjà disponibles -\n -\n• Menu contextuel : correction de la taille des menus, correction des couleurs en mode nuit -\n -\n• Autres corrections -\n Augmenter le rayon de recherche à %1$s Merci pour vos retours Nœud ou Route introuvable. Aucun résultat de recherche \? \nSignalez-le nous Appuyez sur un bouton pour écoutez l\'annonce vocale correspondante afin d\'identifier les annonces erronées ou manquantes - • Correction du plantage au démarrage survenant pour certains appareils -\n -\n• Marques : affichage des marques traversées -\n -\n• L\'historique de recherche affiche désormais la dernière catégorie utilisée -\n -\n• Correction du plantage au démarrage si la carte contient des caractères non-latin -\n -\n• Amélioration de la vitesse de rendu sur les appareils Android 8.0 -\n -\n• Support de la modification des polygones (greffon de Contribution à OSM) -\n -\n• Mesure de distance : ajout de Mesurer dans le menu contextuel des actions - Envoi de la direction… Avant de poursuivre, veuillez accorder à OsmAnd l\'autorisation d’utiliser votre position. Noir Autres moyens de transport disponibles à cet arrêt. @@ -2946,14 +2899,6 @@ Sélectionnez les types de transports publics à éviter lors de la navigation : Éviter des types de transports … Mode %s - • Nouvel écran d\'indication des Directions : Boutons Domicile et Travail, Raccourci vers la route précédente, Liste des marqueurs actifs et des traces GPX actives, Recherche dans l\'historique -\n• Informations supplémentaires dans \'Détails de la route\' : Type de route, Surface, Pente ... -\n• Navigation avec les transports publics : métro, bus, tram ... -\n• Nouvelles actions rapides pour afficher / masquer les traces et le mode jour / nuit -\n• Correction de zones indiquées comme inondées en Allemagne, Afrique du Sud et au Québec -\n• Prise en charge des imports KML et KMZ -\n• Correction des plantages sur les arrêts de transports publics -\n• Pour la version gratuite : retrait des analyses Facebook et Firebase (c\'était déjà le cas pour OsmAnd+). Degrés Milliradians Unité d\'angle @@ -2969,15 +2914,6 @@ Évite le métro et les transports ferrés Éviter le ferry Éviter le ferry - • Affichage du temps d\'attente lors des correspondances -\n -\n • Correction d\'affichage pour les détails de l\'itinéraire -\n -\n • Correction du thème sombre lors de l\'affichage du menu et des détails de l\'itinéraire -\n -\n • Affichage de l’azimut lors de la mesure de distance. -\n -\n Envoyer le journal Éviter le bus et le trolleybus Éviter les pavés @@ -3199,7 +3135,6 @@ Appliquer à tous les profils Message au démarrage Unités et formats - Apparence Greffons installés Paramétrer la navigation Configurer le profil @@ -3239,7 +3174,6 @@ Paramètres du greffon Payez %1$d %2$s et gagnez %3$s. Par défaut - Téléchargez la carte détaillée de %s pour voir cette zone. Pour voir les détails de cette zone, téléchargez la carte %s. Déplacer les fichiers de données OsmAnd vers la nouvelle destination \? \n%1$s > %2$s @@ -3563,7 +3497,6 @@ Sélectionnez un groupe Sélectionnez une forme Cercle - Losange Carré Octogone Ski de randonnée @@ -3703,7 +3636,6 @@ Toujours Contrôle de l\'écran Utiliser le délai système pour l’extinction de l\'écran - Options de réveil de l\'écran : Sélectionnez les options d\'allumage de l’écran (assurez-vous qu’OsmAnd est au premier plan au moment du verrouillage de l’appareil) : Instructions de navigation Appuyez sur le bouton d\'alimentation de l\'appareil pour allumer l\'écran avec OsmAnd par dessus l’écran de verrouillage. @@ -3734,7 +3666,6 @@ mètres Afficher ou masquer les autres détails sur la carte Carte nocturne - Tout le temps Désactivé. Nécessite l\'option « Garder l\'écran allumé » sous « Délai d\'affichage de l\'écran ». Ajouter une source en ligne Appliquer ces modifications effacera les données mises en cache pour cette source de tuiles @@ -3893,7 +3824,6 @@ Basculer vers le calcul d\'itinéraire Transport Public Java (sécurisé) Connectez-vous avec OAuth pour utiliser les fonctionnalités osmedit Nouveautés - Routage complexe Routage en 2 phases pour la navigation en voiture. Développement du transport public autochtone Connectez-vous avec OAuth diff --git a/OsmAnd/res/values-gl/phrases.xml b/OsmAnd/res/values-gl/phrases.xml index 9b32dbccb5..1d0c50df38 100644 --- a/OsmAnd/res/values-gl/phrases.xml +++ b/OsmAnd/res/values-gl/phrases.xml @@ -145,7 +145,6 @@ Veterinario Medicina alternativa Banco de sangue - Centro médico Matrona Terapia ocupacional Optómetra @@ -233,7 +232,6 @@ Xintoísmo Taoísmo Mosteiro - Mosteiro histórico Cruceiro Información Reloxo @@ -328,7 +326,6 @@ Crematorio Cibercafé Banco - Caixeiro automático Prestamista Oficina de cambio Contábel @@ -517,7 +514,6 @@ Embarcación histórica Mina histórica Acuario - Atracción turística Carrusel Labirinto Montaña rusa @@ -588,7 +584,6 @@ Área de repouso Deporte de motor Marco - Atracción turística xeral Atracción de feira Aloxamento Pensión @@ -772,7 +767,6 @@ Confeitaría Máquina expendedora Produtos de bebés - Tenda de calefacción Mobiliario do xardín Tenda de vidro Tenda de vaixelas @@ -889,7 +883,6 @@ Adega de viños Prestamista Natureza - Marcador informativo: vida salvaxe Historia Mapa ciclista Mapa táctil @@ -963,8 +956,6 @@ 4 Superior 5 5 Superior - Estrelas: 6 - Estrelas: 7 Habitacións Moedas Non se admiten moedas @@ -987,7 +978,6 @@ Non se admiten tarxetas Visa MasterCard Non se admite MasterCard - Gratis Tarxetas Maestro Non se admiten tarxetas Maestro American Expres (AMEX) @@ -1733,7 +1723,6 @@ Bicicleta: si Bicicleta: non Caixeiro automático - Caixeiro automático: si Caixeiro automático: non Sen vasoira Dispensa receitas médicas @@ -3425,7 +3414,6 @@ Principal Lagoa Regato - Cisterna Posto de control militar Portelos Rañura plástica @@ -3550,9 +3538,7 @@ Vehículos de grande capacidade Tranvía Ferri - Fonte de enerxía: biomasa Categoría da dificultade - Radioterapia Perigo n/c n/c* diff --git a/OsmAnd/res/values-gl/strings.xml b/OsmAnd/res/values-gl/strings.xml index 873d314503..2e0c0053d3 100644 --- a/OsmAnd/res/values-gl/strings.xml +++ b/OsmAnd/res/values-gl/strings.xml @@ -1200,7 +1200,6 @@ Non foi posíbel calcular a ruta. Non foi posíbel calcular a ruta. A ruta calculada está baleira. - Calculouse unha rota nova, distancia Chegaches. As coordenadas non che son válidas Voltar ao mapa @@ -1293,7 +1292,6 @@ Non foi posíbel engadir o comentario. Editar o PDI Crear un PDI - Non é posíbel atopar o nodo ou esta instalación non é un nodo único Eliminar {0} (comentario)\? Eliminar PDI Eliminar @@ -1794,7 +1792,6 @@ Lon %2$s Empregar o menú Taboleiro de control ou menú de control Hai unha opción nova para controlar a aplicación principalmente mediante o flexíbel taboleiro de control ou mediante un menú estático. O que escollas pode ser mudado en calquera intre na configuración do taboleiro de control. - Actualizar Baixar só co Wi-Fi Actualización ao vivo Actualizar agora @@ -1868,8 +1865,6 @@ Lon %2$s Gordo Engade marcaxes do mapa a través do mapa Non se atoparon puntos de pasaxe - Mostrar as buscas á antiga - Activar as buscas á antiga na lista de gabetas Empregar autoestradas Permite autoestradas. Subir notas do OSM de xeito anónimo ou empregando o teu perfil do OpenStreetMap.org. @@ -1936,8 +1931,6 @@ Lon %2$s Permitir acceso á localización Obtén indicacións e descobre lugares novos sen conexión á Internet Procurar na miña posición - Non comprobar as actualizacións de versións novas nin descontos relacionados co OsmAnd - Non mostrar as actualizacións Desexa actualizar tódolos mapas agora\? Limpar tódalas teselas Tes a certeza de querer substituír o favorito \"%1$s\"\? @@ -2014,7 +2007,6 @@ Lon %2$s Amplitude da curva do nivel Auga Agochar a auga - Busca á antiga O mapa está ligado á localización Ordenar Mudouse cara a memoria interna, porque o cartafol de almacenamento dos datos escollida está protexida contra a escritura. Escolle un cartafol de almacenamento válido. @@ -2436,7 +2428,6 @@ Lon %2$s Non foi posíbel atopar o nó ou a vía. Sen resultados de procura\? \nMándanos a túa opinión - Estase a envíar camiño… Aumentar o raio de procura para %1$s Mundo Gardar coma pista @@ -2469,35 +2460,7 @@ Lon %2$s O ficheiro %1$s non contén puntos de pasaxe, queres importalo coma unha pista\? Copiar nome da localización/PDI As marcaxes engadidas coma un grupo de Favoritos ou puntos de ruta GPX desbotados ficarán no mapa. Se o grupo non está dispoñíbel, as marcaxes agocharanse do mapa. - • Corrixido o erro no inicio que se producía nalgúns dispositivos -\n -\n • Nova función das marcaxes: amosa as marcaxes que xa foran atravesadas. -\n -\n • No historial da procura amosa agora as categorías procuradas anteriormente -\n -\n • Corrixido o fallo no inicio que se producía cos mapas non latinos -\n -\n • Mellora nos problemas da velocidade do renderizado nos dispositivos Android 8.0 -\n -\n • Suporte para a edición de obxectos poligonais (non servizos) -\n -\n • Medir distancia: Engadi-lo botón de «Medir distancia» ás accións no menú contextual -\n - • Navigación: Corrección na barra do progreso, intercambio axiña do punto inicial e final da rota -\n -\n • Marcaxes do mapa: Corrixido o des/activar grupos, capacidade para agochar marcaxes do mapa -\n -\n • Edición do OSM: Capacidade de edición das etiquetas para obxectos que non sexan puntos e vías, corrección dos comentarios baleiros nas notas, copia de seguridade das edicións -\n -\n • Mellor análise da Wikipedia e Wikiviaxes, os ficheiros actualizados xa están dispoñíbeis -\n -\n • Menú contextual: Corrixida a cor dos escudos do transporte no modo noite e os tamaños do menú adicionais -\n -\n • Navigación fluvial: Suporte á navegación fluvial -\n -\n • Outras correccións de erros -\n - Mandaremos a consulta de procura: \"%1$s\", así coma a localización. + Mandaremos a consulta de procura: \"%1$s\", así coma a localización. \n \n Non se recompilan datos persoais, os datos de procura só son empregados para mellorar o algoritmo de procura. Enviar consulta de procura\? @@ -2718,16 +2681,7 @@ Lon %2$s Artigo non atopado De que xeito abrir artigos da Wikipedia\? Preme un botón e escoita o seu correspondente aviso por voz para saber se falla algo ou está defectuoso - "• Novo: Suporte para guieiros de viaxes globais sen conexión á Internet. As ubicacións de referencia, están ligadas ó mapa. Datos iniciais do Wikiviaxes -\n -\n • Wikipedia: Novo aspecto, ligazóns activas, agora con suporte de imaxes -\n -\n • Interface do usuario do Open Tracks: Suporte para grupos de puntos de rota -\n -\n • Marcaxes do mapa: Importación de grupos elixidos dende ficheiros GPX, ingreso de coordenadas, novo aspecto -\n -\n • A subscrición do OsmAnd Live, suporta agora tódalas características do OsmAnd " - Navegación GPS + Navegación GPS \n • Escolle entre os modos sen conexión (sen pagamentos do roaming ó viaxar ó extranxeiro) ou en liña (máis rápido) \n • A guía por voz xiro-a-xiro ou guía ó longo do camiño (voces gravadas e sintetizadas) \n • A rota recalcúlase ó saírse da mesma @@ -2952,36 +2906,6 @@ Lon %2$s Camiño Senda ciclista Sen definir - • Nova lapela «Direccións»: Amosa os botóns de destino «Casa» e «Traballo», o atallo da «rota anterior», a listaxe de pistas, marcaxes GPX activos e o historial de procura. -\n -\n -\n -\n • Información adicional en «Detalles da rota»: Tipos de camiños, superficie, pendente e suavidade -\n -\n -\n • Suporte na navegación de transporte público: Metro, bus, tranvía, etc. -\n -\n -\n -\n • Novas accións axiñas: «Amosar/agochar pistas» e «Modo día/noite» -\n -\n -\n -\n • Áreas fixas amosadas coma inundadas en Alemaña, Suráfrica e Quebec -\n -\n -\n -\n • Suporte adicional para a importación de KML e KMZ -\n -\n -\n -\n • Corrixidos os erros na apertura de algunhas paraxes de transporte público -\n -\n -\n -\n • Eliminada a análise do Facebook e Firebase da versión de balde (o OsmAnd+ non o inclúe) -\n -\n Activar o transporte público para as modificacións do OsmAnd Live. Transporte público no OsmAnd Live A pé @@ -3002,15 +2926,6 @@ Lon %2$s Evitar metros e tranvías/metros lixeiros Sen ferris Evitar ferris - • Amosar o tempo entre transbordos no transporte público -\n -\n • Interface de usuario corrixida para «Detalles da rota» -\n -\n • Tema escuro solucionado no menú «Dirección» e «Detalles da rota» -\n -\n • Visualización de medida «azimut» en «Medir distancia» -\n -\n Graos Milirradiáns Unidade angular @@ -3112,8 +3027,6 @@ Lon %2$s Enrutamento de terceiros Escolle os perfís que serán visíbeis na aplicación. Perfís de aplicación - Muda o achegamento do mapa desprazando a roda cara arriba e abaixo. A tecla «Esc» volta á aplicación WunderLINQ. - Controlar co WunderLINQ Engadir polo menos un elemento á listaxe nos axustes de \'Acción rápida\' Esquí alpino e de descendemento Pistas de esquí alpino ou de descendemento e acceso a remontes mecánicos. @@ -3248,7 +3161,6 @@ Lon %2$s Axustes para a navegación do perfil escollido \"%1$s\". Tempo de espera da pantalla após acender Unidades e formatos - Aparencia Aparencia do mapa Aparencia do mapa Plugins instalados @@ -3280,7 +3192,6 @@ Lon %2$s Búfer de Logcat Predefinido Axustes do plugin - Baixa o mapa detallado de %s, para poder ollar esta área. Baixa o mapa detallado de %s para ollar esta área. Mover os ficheiros de datos do OsmAnd ó novo destino\? \n%1$s > %2$s @@ -3360,7 +3271,6 @@ Lon %2$s Compartido Preferir estradas sen pavimentar Preferir as estradas sen pavimentar aos pavimentados para o trazado de rutas. - Trocar comezo e destino Edicións do OSM Un botón que amosa ou agocha as curvas de nivel no mapa. Amosar curvas de nivel @@ -3539,8 +3449,6 @@ Lon %2$s O perfil importado contén datos adicionais. Preme en \"Importar\" para importar só datos de perfil ou marca datos adicionais. Podes marcar datos adicionais para exportar ó carón do perfil. Antártida - Amosar notificación do sistema durante a navegación con instrucións de navegación. - Notificación de navegación Aplicación por defecto (%s) Sen recálculo Distancia mínima para recalcular a ruta @@ -3740,7 +3648,6 @@ Lon %2$s Ficheiro SQLiteDB Sempre Apaga a apantalla segundo o tempo de espera da pantalla do sistema. - Opcións de acendido da pantalla: A pantalla acenderase de xeito automático uns segundos antes das instrucións de navegación durante un tempo específico na opción \"Tempo de activación\". \n \n Traballa só mentres navegas. @@ -3779,7 +3686,6 @@ Lon %2$s metros Amosar ou agochar detalles adicionais do mapa Mapa de noite - Todo o tempo Desactivado. Require \'manter a pantalla acendida\' en \'tempo de espera após o acendido\'. Engadir fonte en liña Aplicando estas modificacións eliminarás os datos almacenados na caché para esta fonte de teselas @@ -3940,7 +3846,6 @@ Lon %2$s Desenvolvemento Datos do OsmAnd Live Datos do OsmAnd Live - Enrutamento complexo Enrutamento de dúas fases para a navegación de automóbil Desenvolvemento do transporte público nativo Activar cálculo da ruta de transporte público do Java (seguro) diff --git a/OsmAnd/res/values-hr/strings.xml b/OsmAnd/res/values-hr/strings.xml index 68954c5771..670e88b1fe 100644 --- a/OsmAnd/res/values-hr/strings.xml +++ b/OsmAnd/res/values-hr/strings.xml @@ -322,7 +322,6 @@ Pogreška: Izračunata ruta je prazna Dogodila se greška pri izračunu rute Dogodila se greška pri spremanju GPX datoteke - Nova ruta je izračunata, udaljenost Stigli ste na odredište Učitavanje poštanskih brojeva… Učitavanje ulica… diff --git a/OsmAnd/res/values-hu/phrases.xml b/OsmAnd/res/values-hu/phrases.xml index 29d3e11a5e..488f760a80 100644 --- a/OsmAnd/res/values-hu/phrases.xml +++ b/OsmAnd/res/values-hu/phrases.xml @@ -198,7 +198,6 @@ Fodrász Autókölcsönző Bank - Bankautomata Pénzváltó Könyvelő Barlangbejárat @@ -268,7 +267,6 @@ Számítástechnikai bolt Függönybolt Méteráru - Ágyneműbolt Búvárfelszerelés Barkácsáruház Horgászfelszerelés @@ -398,7 +396,6 @@ Ápolóotthon Inkubátor Vérellátó központ - Egészségügyi központ Szülésznő Vállalat Biztosító @@ -441,7 +438,6 @@ Történelmi hajó Történelmi bánya Akvárium - Turistalátványosság Vidámparki játék Állat (látványosság) Óriáskerék @@ -459,7 +455,6 @@ Internetcsatlakozás: kábel Internetcsatlakozás: nyilvános Internetcsatlakozás: segítenek - Régi kolostor Egyházi terület Út menti szentély Utazási iroda @@ -593,7 +588,6 @@ Ajtók Szexbolt Divatüzlet - Fűtéstechnikai szaküzlet Kertibútor-bolt Palackozottgáz-bolt Gyógynövénybolt @@ -715,7 +709,6 @@ Kerékpár Radioaktívhulladék-lerakó Vízgyűjtő - Védett terület Megfigyelőállomás Daru Építkezés @@ -1086,7 +1079,6 @@ Útjelzés Turistatérkép Természet - Információ: vadvilág Történelem Jelzés Audioguide @@ -1461,8 +1453,6 @@ **** S (első osztály superior) ***** (luxus) ***** S (luxus superior) - 6 csillagos - 7 csillagos Szobák száma Érme Érmét nem fogad el @@ -1484,7 +1474,6 @@ Visa kártyát nem fogad el MasterCard MasterCard kártyát nem fogad el - Díjmentes Maestro kártyák Maestro kártyát nem fogad el American Express (AMEX) @@ -2492,7 +2481,6 @@ Hivatalos név Cölöpgúla Építés alatt - Bankautomata Bankautomata nincs Tűzrakóhely Fair Trade @@ -2568,7 +2556,6 @@ Patak - Ciszterna Közműszekrény típusa: villamos energia Közműszekrény típusa: távközlés Közműszekrény típusa: kábeltelevízió @@ -3549,8 +3536,6 @@ Telekocsi Villamos Komp - Energiaforrás: biomassza - Sugárkezelés Veszély Nehézségi fok (az Orosz Túrasportszövetség skáláján) N/A diff --git a/OsmAnd/res/values-hu/strings.xml b/OsmAnd/res/values-hu/strings.xml index 0ba92c6364..9c1aeff077 100644 --- a/OsmAnd/res/values-hu/strings.xml +++ b/OsmAnd/res/values-hu/strings.xml @@ -524,7 +524,6 @@ Nem sikerült útvonalat tervezni. Nem sikerült útvonalat tervezni. Üres útvonal lett tervezve. - Új útvonal tervezve, távolság Megérkezett. Érvénytelen koordináták Vissza a térképhez @@ -624,7 +623,6 @@ Nem sikerült megjegyzést hozzáadni. POI szerkesztése POI létrehozása - A pont nem található, vagy a létesítmény több pontból áll, ami pillanatnyilag nem támogatott. {0} törlése (megjegyzés)\? POI törlése Törlés @@ -1807,7 +1805,6 @@ Mikrofon használatának engedélyezése. Távolság: Idő: - Frissítés Az alkalmazásnak nincs jogosultsága használni a memóriakártyát Utolsó frissítés: %s Nincs kijelölve @@ -2010,8 +2007,6 @@ Engedélyezés Hozzáférés a pozíciódhoz engedélyezése Pozícióm meghatározása - Ne keressen új verziókat és OsmAnddel kapcsolatos kedvezményeket. - Ne mutasson új verziókat Frissíted most az összes térképet? Összes csempe törlése Üzemanyag-takarékos útvonal @@ -2067,9 +2062,6 @@ Finom Közeli Wikipédia-cikkek Város vagy régió - Régi kereső - Régi kereső megjelenítése - Régi kereső megjelenítése az oldalsó menüben. Autópálya használata Engedélyezi az autópályákat. szerb (latin betűs) @@ -2499,17 +2491,6 @@ További műveletek GPX fájl a kijelölt jegyzetek koordinátáival és adataival. GPX fájl az összes jegyzet koordinátáival és adataival. - • Újdonság: Globális útikalauz támogatás. A hivatkozott helyszínek össze vannak kapcsolva a térképpel. Induló adatok a Wikivoyage-ból. -\n -\n • Wikipédia: új kinézet, aktív linkek, képek -\n -\n • Nyomvonal megnyitás: útpont csoportok megjelenítése -\n -\n • Térképjelölők: kiválasztott csoportok importálása GPX-fájlból; új koordinátabevitel -\n -\n • Az OsmAnd Live előfizetés már minden OsmAnd funkciót tartalmaz -\n -\n Keresés módosítása. Műveletek Jelölő @@ -2700,37 +2681,6 @@ Elhagyott jelölők megtartása a térképen A folytatáshoz engedélyezze a helymeghatározást az OsmAnd számára. Köszönjük a visszajelzésed - • Pár eszközt érintő indításkori összeomlás javítása -\n -\n • Új térképjelölők lehetőség: a már elhagyott jelölők térképen tartása -\n -\n • A keresési előzmények a korábban keresett kategóriákat is megjeleníti -\n -\n • A nem latin betűs térképek okozta indításkori összeomlás javítása -\n -\n • Térkép megjelentési sebesség javítása Android 8.0 eszközön -\n -\n • Sokszögkén ábrázolt objektumok (nem szolgáltatás) szerkesztése -\n -\n • Távolságmérés: „mérés” gomb hozzáadva Műveletekhez a helyi menüben -\n -\n - • Navigáció: folyamatjelző sáv javítása, az út kezdő és célpontjának gyors felcserélése -\n -\n • Térképjelölők: csoportok ki-be kapcsolásának javítása, lehetőség a jelölők eltüntetésére -\n -\n • OSM szerkesztés: Nem pontként ábrázolt objektumok és vonalak címkéinek szerkesztése, hiányzó megjegyzések javítása a jegyzeteken, szerkesztések biztonsági mentése -\n -\n • Wikipédia és Wikivoyage cikkek feldolgozásának javítása, a frissített fájlok már elérhetőek -\n -\n • Helyi menü: pajzsok javítása éjszakai módban, további menüméretek javítása -\n -\n • Hajós navigáció: vízi utak támogatása -\n -\n • Egyéb hibajavítások -\n -\n - Vonal beküldése… Keresési sugár kiterjesztése ekkorára: %1$s %1$s pont törölve Hozzáadott %1$s pontot. Adjon meg egy fájlnevet, és koppintson a „Mentés”-re. @@ -2854,23 +2804,6 @@ Nyomvonalak elrejtése Nyomvonalak megjelenítése Először adjon meg egy célpontot - "• Új \'Navigáció\' képernyő: Új gomb az Otthon és Munkahely célpontokhoz, \'előző útvonal\' gyors gomb, az aktív GPX útvonalak és jelölők listája, keresési előzmények -\n -\n • Több információ az \'Útvonal adataiban\': úttípus, útburkolat, meredekség, simaság -\n -\n • Útvonaltervező tömegközlekedéshez az összes közlekedési móddal: metró, busz, villamos, stb. -\n -\n • Új gyors művelet gombok a nyomvonalak megjelenítés/elrejtésére, nappal/éjjel módváltásra -\n -\n • Javítva az elárasztottnak látszó területek Németországban, Dél-Afrikában, Québecben -\n -\n • Továbbfejlesztett KML és KMZ import -\n -\n • Összeomlás javítása pár tömegközlekedési megálló megnyitásakor -\n -\n • Facebook és Firebase analitika eltávolítva az ingyenes verzióból (az OsmAnd+ eddig sem tartalmazta) -\n -\n" Tömegközlekedés engedélyezése OsmAnd Live frissítésekkel. OsmAnd Live tömegközlekedés Napszak @@ -2963,15 +2896,6 @@ Gyalogos útvonal kiszámítása Közlekedési mód Napló küldése - • A tömegközlekedési átszállási idők megjelenítése -\n -\n • Javított felhasználói felület az útvonal részleteivel -\n -\n • Javított sötét téma az Irányok menüben és az Útvonal részleteinél -\n -\n • A távolságmérésnél a tájolás megjelenítése -\n -\n Műholdak keresése Koordináta-widget Az Kedvencek vagy GPX-útpontok csoportjaként hozzáadott és elhagyottként megjelölt jelölők a térképen maradnak. A jelölők akkor tűnnek el a térképről, ha a csoport nem aktív (ki van kapcsolva). @@ -3111,7 +3035,6 @@ A kiválasztott „%1$s” profil útvonaltervezési beállításai. Időtúllépés felébresztés után Mértékegységek & formátumok - Megjelenés Térkép megjelenés Telepített bővítmények Navigáció testreszabása @@ -3634,7 +3557,6 @@ Mindig Kijelző beállításai Kijelző időtúllépés rendszerbeállítás használata - Ezekkel a beállításokkal az OsmAnddal az előtérben ébresztheti fel a kijelzőt. Válassza ki a kijelző felébresztési lehetőségeit (fontos, hogy az OsmAnd az előtérben fusson, amikor az eszköz lezárásra kerül): Valamennyi navigációs utasítás előtt a kijelző bekapcsolásra kerül. Navigációs utasítások @@ -3908,7 +3830,6 @@ Fejlesztés OsmAnd Live adatok OsmAnd Live adatok - Összetett útvonaltervezés Kétszakaszos útvonaltervezés autós navigációhoz. Natív tömegközlekedési fejlesztés Váltás Java (biztonságos) tömegközlekedési útvonaltervezésre diff --git a/OsmAnd/res/values-hy/strings.xml b/OsmAnd/res/values-hy/strings.xml index 59530ef151..f5b4305f06 100644 --- a/OsmAnd/res/values-hy/strings.xml +++ b/OsmAnd/res/values-hy/strings.xml @@ -353,8 +353,6 @@ Եզրագծերի լայնությունը Ջուր Թաքցնել ջուրը - Հին որոնման տեսակը - Ցույց տալ հին որոնման տեսակը Օգտագործել մայրուղի Թույլատրում է ավտոմայրուղիներ։ Վերբեռնել ձեր OSM նշումը անանուն կամ ձեր OpenStreetMap.org պրոֆիլի միջոցով: @@ -429,8 +427,6 @@ Transliterate անունները Ստացեք երթուղիներ և հայտնաբերեք նոր վայրեր առանց ինտերնետ կապի Գտնել իմ դիրքը - Չստուգել թարմացումների համար կամ թարմացումներ կապված OsmAnd-ի զեղչեր հետ։ - Չցուցադրել թարմացումներ/նոր տարբերակներ Թարմացնել բոլոր քարտեզները հիմա? Ջնջել բոլոր տայլերը Վառելիք տնտեսող ճանապարհ @@ -1569,7 +1565,6 @@ \n• Երթուղին վերահաշվարկվում է եթե դուք շեղվում եք նրանից \n• Որոնեք ըստ հասցեյի, տեսակի (օրինակ`Րեստորան, հյուրանոց, բենզալցակայան, թանգարան) կամ ըստ աշխարհագրական կոորդինատների \n - "Ավելացնել մենյուի ցանկում հին որոնումը։" Վերագրանցել կլիպները(clips), երբ սահմանվաշ պահեստային ծավալը գերազանցում է։ Քարտեզի դիտում \n• Ցուցադրում է ձեր դիրքը և կողմնորոշումը @@ -2246,7 +2241,6 @@ Հնարավոր չէ հաշվարկել երթուղին։ Հնարավոր չէ հաշվարկել երթուղին։ Հնարավոր չէ երթուղին հաշվարկել։ - Նոր երթուղի հաշվարկվեց, հեռավորությունը Դուք ժամանել եք։ Սխալ կոորդինատներ Վերադառնալ քարտեզին @@ -2321,7 +2315,6 @@ Կետ «{0}» ջնջվել է «Սիրված»-ից։ Խմբագրել POI Ստեղծել POI - Հանգույցը չի կարող գտնվել, կամ poi բաղկացած է մի քանի հանգույցներից, որ առայժմ չի աջակցվվում։ Ջնջել {0} (comment)\? POI ջնջում Նջված է @@ -2437,7 +2430,6 @@ Օգտագործել Մենյու Վահանակը կամ Մենյու Ստատիկ Մենյուի փոխարեն, դուք կարող եք օգտագործել նոր ինտերֆեյսը որպես Վահանակ էջ: Ձեր ընտրությունը միշտ կարող է փոփոխվել վահանակի կարգավորումներում: - Թարմացնել Ներբեռնել միայն WiFi-ի միջոցով Ավտո-թարմացում Թարմացնել հիմա @@ -2581,18 +2573,6 @@ Լրացուցիչ գործողություններ GPX ֆայլը կոորդինատներով և ընտրված գրառումների տվյալներով: GPX ֆայլը կոորդինատներով և բոլոր նշումների տվյալները։ - • Նոր Ճամփորդության մենյու. Դիտեք WikiVoyage- ի հոդվածները առանց ինտերնետի օգտագործման -\n -\n • Wikipedia՝ նոր տեսք, ակտիվ հղումներ, պատկերներ -\n -\n • Open Track UI՝ ցուցադրում waypoint խմբերը -\n -\n • Քարտեզի մարկերներ՝ Ընտրված խմբերի ներմուծում GPX ֆայլերից, կոորդինատների մուտքագրման նոր տեսքը -\n -\n • OsmAnd Live բաժանորդագրությունը այժմ ներառում է բոլոր OsmAnd առանձնահատկությունները -\n -\n -\n Փոխեք որոնման հարցումը: Գործողություններ Մարկեր @@ -2786,26 +2766,6 @@ Հանգույցը կամ ճանապարհը հնարավոր չէ գտնել: Որոնման արդյունքներ չկան\? \nՀետադարձ կապ հաստատեք մեզ հետ - • Ուղղած է հավելվածի փլուզումը մեկնարկի ժամանակ որոշ սարքերի վրա -\n -\n• Նոր ֆունկցիա մարկերների համար -\n -\n• Որոնման պատմությունը ցույց է տալիս, նախկինում որոնված կատեգորիաները - "•Նավիգացիա. Ֆիկսված է առաջընթացի ցուցանիշ և երթուղու մեկնարկային և վերջնական կետի արագ փոխարինում -\n -\n• Քարտեզի մարկերներ. Ֆիկսված է խմբերի միացում/անջատում և քարտեզից մարկերները թաքցնելու ունակությունը -\n -\n• OSM Edit: Ոչ պիտանի օբյեկտների և ուղիների պիտակների խմբագրման հբարավորություն -\n -\n• Բարելավել Wikipedia-ի և Wikivoyage-ի վերլուծությունը, թարմացված ֆայլերը արդեն հասանելի են -\n -\n• Համատեքստի մենյու. Գիշերային ռեժիմում ֆիկսվեց փոխադրամիջոցների վահաններ, ֆիկսվեց լրացուցիչ մենյուի չափերը -\n -\n • Այլ սխալների ուղղում -\n -\n -\n " - Ճանապարհի ուղղում… Ավելացնել որոնման շառավիղը մինև %1$s Մենք կուղարկենք ձեր որոնման հարցումը՝ \"%1$s\", ինչպես նաև ձեր գտնվելու վայրը։ \n @@ -2856,7 +2816,6 @@ Կարգավորումները ազդում են երթուղու կառուցման վրա: Կկիրառվի ընտրված պրոֆիլի համար՝ %1$s։ Զարթոնքի ժամանակը Չափման միավորներ և ձեւաչափեր - Արտաքին տեսք Քարտեզի տեսքը Քարտեզի տեսքը Տեղադրված plugin-ները diff --git a/OsmAnd/res/values-id/strings.xml b/OsmAnd/res/values-id/strings.xml index 69996dc5e0..b7063b18b9 100644 --- a/OsmAnd/res/values-id/strings.xml +++ b/OsmAnd/res/values-id/strings.xml @@ -64,13 +64,6 @@ Pengaturan berlangganan Harap beli berlangganan OSM Live terlebih dahulu Urutkan menurut - mendeteksi tanda Berhenti sekarang dan beranggapan itu arah mengemudi. -\n -\n• algoritma baru memberikan nilai pendakian/turunan yang bermakna trek GPX. -\n -\n• Terrain (pendakian) sadar waktu hiking (aturan Naismith) -\n -\n Ubah kata penelusuran. Buat atau ubah objek OSM Buat atau ubah OSM POI, buka atau komentari Catatan OSM, dan kontribusi berkas GPX yang direkam. @@ -354,9 +347,6 @@ Lebar Garis kontur Air Sembunyikan air - Pencarian lawas - Tampilkan Pencarian lama - Tambahkan pencarian lama ke daftar laci. Izinkan jalan raya Izinkan jalan raya. Anda dapat mengunggah Catatan OSM Anda secara anonim atau menggunakan profil OpenStreetMap.org Anda. @@ -431,8 +421,6 @@ Izinkan akses untuk lokasi Dapatkan petunjuk arah dan temukan tempat baru tanpa koneksi internet Temukan Posisi saya - Jangan cek untuk update versi atau diskon terkait OsmAnd. - Jangan Tampilkan Pembaruan Apakah anda ingin memperbahurui semua peta sekarang? Bersihkan Semua ubin Cara hemat bahan bakar diff --git a/OsmAnd/res/values-is/phrases.xml b/OsmAnd/res/values-is/phrases.xml index 76fbd92412..e2ee6f1cb3 100644 --- a/OsmAnd/res/values-is/phrases.xml +++ b/OsmAnd/res/values-is/phrases.xml @@ -85,7 +85,6 @@ Hóruhús Bálstofa Banki - Hraðbanki Eldfjall Gígur Jökull @@ -1044,7 +1043,6 @@ Hegðun Badminton Júdó - Hraðbanki: já Hraðbanki: nei Bandí Nafn á húsi @@ -1369,7 +1367,6 @@ Neyðartilfelli: nei Aðal Tjörn - Tankur Tegund skáps: rafmagn Tegund skáps: samskipti Tegund skáps: kapalsjónvarp @@ -1856,7 +1853,6 @@ Stjórnsýsla Fógeti Skattaeftirlit - Læknamiðstöð Sjúkraþjálfari Fótaaðgerðafræðingur Sálmeðferðarfræðingur @@ -3542,8 +3538,6 @@ Deilibílfar Sporvagn Ferja - Orkugjafi: lífmassi - Geislameðferð Lífshætta Erfiðleikastig н/к diff --git a/OsmAnd/res/values-is/strings.xml b/OsmAnd/res/values-is/strings.xml index 2dbeca3b35..3449458457 100644 --- a/OsmAnd/res/values-is/strings.xml +++ b/OsmAnd/res/values-is/strings.xml @@ -694,7 +694,6 @@ Hafa samband Nota stjórnborð Nota valmynd - Uppfæra Síuppfærsla Uppfæra núna Síðasta uppfærsla: %s @@ -725,7 +724,6 @@ Leita að stað… Gagnageymsla OsmAnd (fyrir kort, ferilskrár, o.s.frv.): %1$s. Gefa heimild - Ekki sýna nýjar útgáfur Komast í gang Til baka í leit Birta %1$s á korti @@ -1151,9 +1149,6 @@ Þú þarft internettengingu til að setja upp þessa viðbót.. Virkjaðu Sjómerkja-viðbótina Virkjaðu hæðarlínu-viðbótina - Gamaldags leit - Birta gamaldags leit - Virkja gamaldags leit í skúffulistanum. Beygðu útaf við %1$d afrein og haltu áfram Senda inn merkisstað Birta jólastaðina? @@ -1367,7 +1362,6 @@ Gat ekki reiknað leið. Gat ekki reiknað leið. Reiknuð leið er tóm. - Reiknaði nýja leið, vegalengd Síðasta keyrsla OsmAnd hrundi. Annálsskrá er í {0}. Tilkynntu um vandamálið og sendu annálsskrána inn með skýrslunni. Tilgreindu tungumál, síðan sækja/endurhlaða gögn. Veldu á milli staðarheita og enskra heita. @@ -2153,7 +2147,6 @@ Sía: Stilltu lágmarksfjarlægð frá síðustu staðsetningu þar sem punktur er tekinn í skráningu. Sía: Stilltu lágmarksnákvæmni punkts til að hann sé tekinn í skráningu. Til að undirbúa jóla- og árámótahátíðir, geturðu valið að birta árstíðabundna merkisstaði: jólatré, jólamarkaði, flugeldasölur, o.fl. - Ekki athuga með uppfærslur eða afslætti tengda OsmAnd. Stefna tilkynnt með hljóði Gefa stefnu að markpunkti til kynna með hljóði. Stefna tilkynnt með titringi @@ -2439,17 +2432,6 @@ Reikna leiðir yfir langar fjarlægðir sem hugsanlega eru ekki þær bestu GPX-skrá með hnitum og gögnum valinna minnispunkta. GPX-skrá með hnitum og gögnum allra minnispunkta. - Ný ferðavalmynd: skoða WikiVoyage-greinar án internet-tengingar. Tilvísaðir staðir eru tengdir við kort. Upprunaleg gögn drá Wikivoyage. -\n -\n • Wikipedia: nýtt útlit, virkir tenglar, myndir -\n -\n • Open Track viðmót: birta hópa af ferilpunktum -\n -\n • Kortamerki: innflutningur valinna hópa úr GPX-skrám, nýtt útlit fyrir innsetningu hnita -\n -\n • Áskrift að OsmAnd Live er núna með alla eiginleika OsmAnd -\n -\n Búðu til eða breyttu merkisstöðum í OSM (POI), opnaðu eða gerðu athugasemdir á OSM-minnispunkta og sendu inn skráða ferla í GPX-skrám. Ýttu á merki á kortinu til að færa það efst í virk kortamerki án þess að opna samhengisvalmyndina. Bættu minnispunkti með hljóði, ljósmynd eða myndskeiði á punkta á kortinu, með hjálp viðmótshluta eða samhengisvalmyndar. @@ -2543,7 +2525,6 @@ Ónettengd OsmAnd-leiðsögn er eiginleiki á tilraunastigi og virkar ekki fyrir vegalengdir sem eru lengri en u.þ.b. 20 km. \n \nLeiðsagnarþjónustu hefur verið skipt tímabundið yfir á hina netlægu CloudMade. - Hnútur fannst ekki, eða að aðstaðan samanstendur af mörgum hnútum, sem er ekki ennþá stutt. Nú er nýtt val um að stýra forritinu með sveigjanlegu stjórnborði eða með fastri valmynd. Þú getur alltaf breytt þessu vali í stillingum stjórnborðsins. Gera að þetta að upphafspunkti OsmAnd (OSM Automated Navigation Directions) er landakorta- og leiðsagnarforrit með aðgangi að gögnum frjálsa, hágæða, OpenStreetMap (OSM) heimskortins. @@ -2786,49 +2767,16 @@ Þú bættir við %1$s punktum. Settu inn heitið á skránni og vistaðu. Heimurinn Punkti %1$s eytt - "• Leiðsögn: Framvindustika lagfærð, hraðari víxl á upphafi og enda leiða -\n -\n • Kortamerki: lagfæring á að kveikja/slökkva á hópum, hægt að fela merki á korti -\n -\n • OSM-breytingar: Hægt að breyta merkjum á atriðum sem ekki eru punktar, lagfæring á þegar athugasemdir vantar á minnispunkta, öryggisafritun breytinga -\n -\n • Bæting á þáttun Wikipedia og Wikivoyage, uppfærðar skrár eru þegar tiltækar -\n -\n • Samhengisvalmynd: lagfæring á samgöngumerkingum í næturham, lagfæring á stærðum viðbótarvalmynda -\n -\n • Siglingaleiðsögn: stuðningur við merktar siglingaleiðir -\n -\n • Lagfæringar á öðrum göllum -\n -\n" Auka leitarradíus í %1$s Leitarfyrirspurn þín verður send til: \"%1$s\", ásamt staðsetningu þinni.\n \n Persónulegum upplýsingum er ekki safnað, þessi gögn eru notuð til að bæta útreikninga leitarinnar. - Engar niðurstöður? -\nSegðu okkur meira um þetta. Senda leitarfyrirspurn? Takk fyrir umsögn þína Hnútur eða leið fannst ekki. Engar leitarniðurstöður? \nLáttu okkur vita - Sendi leið inn… Ýttu á hnapp og hlustaðu á samsvarandi raddskipun til að bera kennsl á fyrirmæli sem vantar eða sem eru skemmd Gefðu OsmAnd heimild til að sjá staðsetningar til að halda áfram. - • Lagað hrun í ræsingu sem kom fyrir á sumum tækjum -\n -\n • Nýr kortamerkjaeiginleiki: birting merkja sem þegar hefur verið farið um -\n -\n • Leitarferilsskrá sýnir núna flokkana sem áður hefur verið leitað að -\n -\n • Lagað hrun í ræsingu sem til kom á ekki-latneskt kóðuðum kortum -\n -\n • Bættur hraði við myndgerð á Android 8.0 tækjum -\n -\n • Stuðningur við breytingar á flákahlutum (ekki-aðstaða) -\n -\n• Mæling vegalengda: \'Mæla\' færslu bætt víð aðgerðir í samhengisvalmynd -\n -\n Svart Leita að götu Veldu fyrst borg/bæ/sveitarfélag @@ -2908,22 +2856,6 @@ Hnappur til að birta eða fela valda ferla á kortinu. Fela ferla Birta ferla - • Nýr skjár fyrir \'Leiðir\': Birtir leiðarhnappa fyrir \'Heim\' og \'Vinna\', flýtileið á fyrri leið, listi yfir virka GPX-ferla og merki, leitarferill -\n -\n • Viðbótarupplýsingar undir \'Nánar um leið\': gerð vegar, yfirborð, bratti, áferð -\n -\n • Leiðsögn fyrir allar gerðir almenningssamgangna: neðanjarðarlestir, strætó, sporvagnar, o.s.frv. -\n -\n • Ný flýtiaðgerð til að birta/fela leiðir og fyrir dags-/næturham -\n -\n • Ákveðin svæði sýnd sem flóðasvæði í Þýskalandi, Suður-Afríku, Quebec -\n -\n • Viðbótarstuðningur við innflutning KML og KMZ -\n -\n • Lagfært hrun við opnun ýmissa biðstöðva -\n -\n • Fjarlæging greiningarvinnslu Facebook og Firebase úr frjálsu/ókeypis útgáfunni (OsmAnd+ innifelur þetta ekki) -\n Virkja breytingar á almenningssamgöngum í OsmAnd Live. Almenningssamgöngur OsmAnd Live Lestu meira á blogginu okkar um hvernig OsmAnd reiknar leiðir. @@ -3000,15 +2932,6 @@ Forðast neðanjarðarlestir og léttlestasamgöngur Forðast ferjur Forðast ferjur - • Birting á biðtíma í almenningssamgöngum -\n -\n • Leiðrétting viðmóts \'Nánar um leið\' -\n -\n • Ýmsar lagfæringar á dökku þema -\n -\n • Birting áttarhorns við mælingu vegalengda -\n -\n Senda atvikaskrá Færði %1$d skrár (%2$s). Afritaði %1$d skrár (%2$s). @@ -3085,7 +3008,6 @@ Leiðagerð frá utanaðkomandi aðila Veldu notkunarsnið sem eiga að vera sýnileg í forriti. Forritssnið - Nota WunderLINQ við stýringu Brun og svigskíði Ferðaleiðir á skíðum. Brekkur notaðar fyrir sleða. @@ -3102,7 +3024,6 @@ OsmAnd niðurhalsþjónusta Deildu reynslu þinni og gefðu okkur einkunn á Google Play. Landkóðun - Breyttu aðdrætti á kort með skruni músarhjóls upp og niður. Escape fer aftur með þig inn í WunderLINQ forritið. Þú verður að skilgreina a.m.k. eitt atriði í listanum í stillingum flýtiaðgerða Brekkur fyrir svigskíði eða brun og aðgangur að skíðalyftum. Gönguskíði og norræn fjallaskíði @@ -3237,7 +3158,6 @@ Stillingar leiðarvals í valda sniðinu \"%1$s\". Tímamörk eftir vöknun Einingar og snið - Útlit Útlit landakorts Útlit korts Uppsettar viðbætur @@ -3269,7 +3189,6 @@ Logcat biðminni Stillingar á forritsviðbót Sjálfgefið - Sæktu nákvæma %s kortið til að skoða þetta svæði. Sæktu nákvæma %s kortið til að skoða þetta svæði. Færa gagnaskrár OsmAnd á nýjan stað\? \n%1$s > %2$s @@ -3413,7 +3332,6 @@ Með því að ýta á %1$s taparðu öllum breytingunum þínum. Endurstilla allar sniðstillingar á upphaflegar sjálfgefnar stillingar. Endurstilla allar sniðstillingar\? - %1$s: %2$s %1$s %2$s %1$s: %2$s Einkunn @@ -3593,7 +3511,6 @@ Veldu hóp Veldu lögun Hringur - Tígull Ferningur Skipta út öðrum punkti með þessum. Breytingum beitt á \'%1$s\' sniðið. @@ -3611,9 +3528,7 @@ Öll tungumál Þú getur aðeins fært atriði innan þessa flokks. Þessi atriði eru falin á valmyndinni, en valkostirnir eða viðbæturnar sem þau standa fyrir munu virka áfram. - Sumar Wikipedia-greinar gætu verið ekki tiltækar í þínu nafni, veldu það tungumál sem Wikipedia-greinarnar ættu að birtast á á kortinu. -\nÞú munt geta skipt á milli allra tiltækra tungumála á meðan þú lest greinar. - Sérsníddu fjölda atriða í sleðanum, í uppsetningu landakorts og í samhengisvalmynd. + Sérsníddu fjölda atriða í sleðanum, í uppsetningu landakorts og í samhengisvalmynd. \n \nÞú getur gert ónotaðar forritsviðbætur óvirkar til að fela stýringar þeirra. %1$s. Atriði á sleða, samhengisvalmynd @@ -3900,7 +3815,6 @@ Þróun OsmAnd Live gögn OsmAnd Live gögn - Flókin leiðagerð Tveggja-þátta leiðagerð fyrir bílaleiðsögn. Innbyggð þróun almenningssamgangna Skipta yfir í Java (öruggt) útreikning fyrir almenningssamgöngur diff --git a/OsmAnd/res/values-it/phrases.xml b/OsmAnd/res/values-it/phrases.xml index 12ecad8876..23a8fc14b0 100644 --- a/OsmAnd/res/values-it/phrases.xml +++ b/OsmAnd/res/values-it/phrases.xml @@ -34,7 +34,6 @@ Copisteria Negozio tendaggi Negozio drappeggi - Negozio materassi Negozio articoli per immersione Negozio per fai-da-te Negozio erotica @@ -191,7 +190,6 @@ Medicina alternativa Audiologo Banca del sangue - Centro medico Levatrice Optometrista Fisioterapista @@ -249,7 +247,6 @@ Picco montuoso Entrata grotta/caverna Pagamento Bitcoin - Bancomat Banca Internet caffè Crematorio @@ -377,7 +374,6 @@ Shintoismo Taoismo Monastero - Monastero storico Croce storica Tabernacolo storico Informazioni turistiche @@ -615,8 +611,6 @@ Hockey su prato Sport motoristici Vela - Pallamano - Attrazione turistica Luogo di culto Accesso a Internet: servizio Accesso a Internet: WLAN @@ -854,7 +848,6 @@ Foresta di tenute umano Fattoria Prato - Terra di conservazione Canale Palo Serbatoio @@ -1768,7 +1761,6 @@ Nome ufficiale Delfino In costruzione - Bancomat: sì Bancomat: no Area protetta Titolo di protezione @@ -1796,7 +1788,6 @@ Diametro idrante Marciapiede Strada - Cisterna In servizio: sì Profondità Sale diff --git a/OsmAnd/res/values-it/strings.xml b/OsmAnd/res/values-it/strings.xml index 0ddb82da8b..0d158455e5 100644 --- a/OsmAnd/res/values-it/strings.xml +++ b/OsmAnd/res/values-it/strings.xml @@ -430,7 +430,6 @@ Impossibile calcolare il percorso. Impossibile calcolare il percorso. Il percorso calcolato è vuoto. - Calcolo nuovo percorso, distanza Sei arrivato. Coordinate non valide Ritorna alla mappa OsmAnd @@ -521,7 +520,6 @@ Impossibile aggiungere il commento. Modifica PDI Crea PDI - Il nodo non è stato trovato o l\'amenità è di più nodi, che non è ancora supportata. Eliminare {0} (commento)\? Eliminazione PDI Eliminato @@ -1789,7 +1787,6 @@ Nessun indirizzo trovato Ricerca dell\'indirizzo in corso Evita il superamento dei confini - Aggiornamento Scarica solo da rete WiFi Aggiornamenti in tempo reale Frisone occidentale @@ -2012,8 +2009,6 @@ Concedi autorizzazione Permetti l\'accesso alla posizione Cerca la mia posizione - Non controllare aggiornamenti alle nuove versioni e sconti per OsmAnd. - Non mostrare gli aggiornamenti Aggiornamento di tutte le mappe, ora\? Cancella tutte le mattonelle Australia @@ -2066,13 +2061,10 @@ Prendere la %1$d uscita e proseguire Articoli Wikipedia vicini Città o regione - Mostra la ricerca vecchia - Aggiungi nella lista dell\'interfaccia la vecchia ricerca. Usa autostrade Permetti autostrade. Serbo (latino) Cinese (Hong Kong) - Ricerca vecchia Densità linee isoipse Alto Medio @@ -2753,38 +2745,11 @@ Orario di arrivo intermedio Orario intermedio Acquista OsmAnd Live per sbloccare tutte le funzionalità: aggiornamenti quotidiani delle mappe con download illimitati, tutti i componenti aggiuntivi gratuiti e a pagamento, Wikipedia, Wikivoyage e molto altro. - "• Nuovo: Supporto per guide di viaggio offline globali. Le posizioni di riferimento sono collegate alla mappa. Dati iniziali da Wikivoyage. -\n -\n• Wikipedia: Nuovo look, link attivi, immagini ora supportate -\n -\n• Aprire l\'interfaccia utente traccia: Supporto per gruppi di waypoint -\n -\n• Mappa marcatori: Importazione di gruppi selezionati da file GPX, input di coordinate, nuovo look -\n -\n• L\'abbonamento OsmAnd Live ora supporta tutte le funzioni OsmAnd -\n -\n" Modifica le azioni Per favore invia una schermata di questa notifica a support@osmand.net Non è possibile trovare il nodo o il percorso. Nessun risultato\? \nInvia un feedback - • Navigazione: Corretta la barra di avanzamento, veloce inversione dei punti d\'inizio e fine percorso -\n -\n • Marcatori mappa: Corretta la visualizzazione on/off dei gruppi, aggiunta la possibilità di non visualizzare i marcatori dalla mappa -\n -\n • Modifiche OSM: Possibilità di modificare elementi non puntuali e segmenti, correzione di commenti mancanti nelle note, backup delle modifiche -\n -\n • Migliorati Wikipedia e predizione Wikivoyage, aggiornati file già disponibili -\n -\n • Menu contestuale: Corretti il colore degli scudetti nella modalità notturna e le dimensioni dei menu addizionali -\n -\n • Navigazione marittima: Supporto alla navigazione fluviale -\n -\n • Altre correzioni di errori -\n -\n - Sottoponi la via… Aumenta il raggio di ricerca a %1$s Invieremo la tua ricerca, assieme alla tua localizzazione a: \"%1$s\". \n @@ -2797,20 +2762,6 @@ Salva come traccia Hai aggiunto %1$s punti. Digita il nome del file e tappa su \"Salva\". Tap sul pulsante e ascolta l\'avviso vocale corrispondente per identificare gli avvisi errati o mancanti - • Sistemato il crash all\'avvio che avveniva con alcuni dispositivi -\n -\n • Nuova funzione Marcatori: Mostra i marcatori già superati -\n -\n • Cerca per cronologia ora mostra le categorie cercate precedentemente -\n -\n • Corretto l\'arresto in avvio con le mappe non latine -\n -\n • Migliorati i problemi di velocità di disegno nei dispositivi Android 8.0 -\n -\n • Supporto alla modifica degli oggetti poligonali (non amenità) -\n -\n • Misuratore di distanze: Aggiunto il bottone \"Misura\" alle azioni nel menù laterale -\n Per favore concedi a OsmAnd il permesso di accedere alla geolocalizzazione per continuare. Grazie per il tuo feedback Ricerca strada @@ -2946,22 +2897,6 @@ Unità angolare Modifica l’unità di misura dell’azimut. Seleziona i tipi di trasporto pubblico da evitare per la navigazione: - • Nuova schermata ‘Indicazioni’: mostra i pulsanti di destinazione Casa e Lavoro, la scorciatoia ‘itinerario precedente’, la lista delle tracce GPX attive e dei marcatori, la ricerca nella cronologia -\n -\n• Ulteriori informazioni sotto ‘Dettagli percorso’: tipo di strade, superfici, pendenza e ruvidezza -\n -\n• Navigazione su trasporto pubblico con supporto di ogni tipo: metro, bus, tram, etc. -\n -\n• Nuove azioni rapide per mostrare/nascondere tracce e per le modalità diurna/notturna -\n -\n• Risolto il problema delle aree mostrate invase dall’acqua in Germania, Sud Africa e Quebec -\n -\n• Supporto aggiuntivo per l’importazione di KML e KMZ -\n -\n• Risolte le interruzioni del programma all’apertura di alcune fermate del trasporto pubblico -\n -\n• Rimossi i sistemi di analisi di Facebook e Firebase dalla versione gratuita (OsmAnd+ non li conteneva di già) -\n Attiva le modifiche al trasporto pubblico in tempo reale con OsmAnd Live. In %1$s Esci a @@ -2984,15 +2919,6 @@ Evita la metro e la metrotranvia Evita i traghetti Evita i traghetti - • Visualizza il tempo tra i trasferimenti del trasporto pubblico -\n -\n• Corretta la visualizzazione dei dettagli dell’itinerario -\n -\n• Corretto il tema scuro nel menù Indicazioni e nei dettagli dell’itinerario -\n -\n• Visualizza l’azimut nella misura della distanza. -\n -\n Spostato %1$d files (%2$s). Copiati %1$d files (%2$s). Impossibile copiare %1$d files (%2$s). @@ -3128,8 +3054,6 @@ Tutti i tipi di trasporto pubblico Calcolo del percorso speciale Calcolo del percorso di terze parti - Cambia lo zoom della mappa ruotando la ruota su e giù. Escape ti riporta all\'app WunderLINQ. - Usa WunderLINQ per il controllo Necessiti di aggiungere l\'ultimo oggetto alla lista nelle impostazioni di Azione Veloce Cross country/sci nordico Percorsi per sci nordico o cross country. @@ -3219,7 +3143,6 @@ Impostazioni di calcolo del percorso per il profilo selezionato \"%1$s\". Tempo di accensione Unità e formati - Aspetto Aspetto della mappa Aspetto della mappa Componenti aggiuntivi installati @@ -3396,7 +3319,6 @@ Cliccando %1$s, tutte le modifiche andranno perse. Tutte le impostazioni del profilo saranno reimpostate come da prima installazione. Reimpostare tutte le impostazioni del profilo a quelle preimpostate\? - %1$s: %2$s %1$s %2$s %1$s: %2$s Il file \'%1$s\' non contiene regole di routing. Si prega di scegliere un altro file. @@ -3458,9 +3380,6 @@ Velocità minima Accuratezza minima Minimo spostamento - Menu — I miei luoghi — Tracce - Menu — I miei luoghi — Note - Menu — I miei luoghi — Modifiche OSM Reimposta le impostazioni dei componenti aggiuntivi a quelle preimpostate Divisione delle registrazioni Usa l\'app di sistema @@ -3513,13 +3432,10 @@ Il percorso viene ricalcolato quando la distanza dal percorso è maggiore di quella specificata Dritto-al-punto Calcolo percorso - Stile di rappresentazione personalizzato Include dati addizionali Il profilo importato contiene datti aggiuntivi. Clicca Importa per importare solo i dati del profilo o scegli i dati aggiuntivi da importare. Puoi selezionare dati aggiuntivi da esportare assieme al profilo. Antartide - Mostra le notifiche di sistema con le istruzioni di navigazione durante la navigazione. - Notifiche di navigazione App preimpostata (%s) Profilo personalizzato Angolo: %s° @@ -3556,7 +3472,6 @@ Seleziona le distanza dopo la quale il percorso verrà ricalcolato. Ricalcola il percorso in caso di deviazione Quadrato - Rombo Cerchio Seleziona la forma Seleziona il gruppo @@ -3599,8 +3514,6 @@ Lingue Lingua Tutte le lingue - Alcuni articoli Wikipedia potrebbero non essere disponibili nella tua lingua, scegli il linguaggio con cui appariranno sulla mappa. -\nDurante la lettura potrai cambiare fra tutte le lingue disponibili. Plugin sviluppatore Oggetti Nascondi i trasporti pubblici @@ -3637,7 +3550,6 @@ Controllo dello schermo Spegni lo schermo dopo il tempo di spegnimento di sistema dello schermo. Usa lo spegnimento dello schermo di sistema - Opzioni di accensione dello schermo: Scegli l\'opzione di risveglio (assicurati che OsmAnd sia in primo piano quando stai per bloccare il dispositivo): A ogni indicazione di navigazione lo schermo si accenderà. Indicazioni di navigazione diff --git a/OsmAnd/res/values-iw/phrases.xml b/OsmAnd/res/values-iw/phrases.xml index 758fd725f0..a3a1d2babc 100644 --- a/OsmAnd/res/values-iw/phrases.xml +++ b/OsmAnd/res/values-iw/phrases.xml @@ -94,7 +94,6 @@ ציוד דייג חנות פרחים חנות מסגרות - חנות תנורים חנות רהיטים מרכז גינון רהיטי גן @@ -582,7 +581,6 @@ סנטוריום אודיולוג בנק דם - מרכז רפואי מילדת ריפוי בעיסוק אופטומטריה @@ -1399,7 +1397,6 @@ משרפה אינטרנט קפה בנק - כספומט מסוף תשלום הלוואה בריבית עבוט diff --git a/OsmAnd/res/values-iw/strings.xml b/OsmAnd/res/values-iw/strings.xml index d3fe7756aa..e45fce6969 100644 --- a/OsmAnd/res/values-iw/strings.xml +++ b/OsmAnd/res/values-iw/strings.xml @@ -704,7 +704,6 @@ לא ניתן לחשב מסלול. לא ניתן לחשב מסלול. המסלול שחושב ריק. - המסלול החדש חושב, מרחק הגעת ליעד. נקודות ציון שגויות חזרה למפה @@ -802,7 +801,6 @@ לא ניתן להוסיף תגובה. עריכת נ״ע יצירת נ״ע - לא ניתן למצוא את המפרק או שהמתחם מורכב ממספר מפרקים, מצב שלא נתמך עדיין. למחוק את {0} (תגובה)? מחיקת נ״ע מחיקה @@ -1606,7 +1604,6 @@ שימוש בלוח בקרה שימוש בתפריט בקרה דרך תפריט או לוח בקרה - עדכון הורדה רק באמצעות אינטרנט אלחוטי עדכון חי ל־OsmAnd חסרות הרשאות לשימוש בכרטיס הזיכרון @@ -2023,8 +2020,6 @@ לאפשר גישה למיקום קבלת הנחיות ואיתור מקומות חדשים ללא חיבור לאינטרנט איתור המיקום שלי - לא לחפש גרסאות חדשות או מבצעים שקשורים ב־OsmAnd. - לא להציג גרסאות חדשות לעדכן את כל המפות כעת? מחיקת כל האריחים דרך חסכונית בדלק @@ -2219,9 +2214,6 @@ עובי קו מתאר מים הסתרת מים - חיפוש מיושן - הצגת חיפוש מיושן - הוספת החיפוש המיושן לרשימת המגירות. להשתמש בדרכים סלולות מאפשר דרכים סלולות. ערכי ויקיפדיה בקרבת מקום @@ -2270,17 +2262,6 @@ הפעלת הנפשת גלישת מפה של ה‚מיקום שלי’ במהלך ניווט. ב־%1$s ניתן לגעת בסמן על המפה כדי להעביר אותו לראש הסמנים הפעילים מבלי לפתוח את תפריט ההקשר. - • חדש: תמיכה במדריכי תיירות מוויקימסע ללא שימוש באינטרנט. המיקומים שבהפניות מקושרים למפה. נתונים התחלתיים מוויקימסע. -\n -\n • ויקיפדיה: מראה חדש, קישורים פעילים, תמונות -\n -\n • Open Track UI: הצגת קבוצות נקודות דרך -\n -\n • סמני מפה: ייבוא הקבוצות הנבחרות מקובצי GPX, מראה חדש לקלט נקודות ציון -\n -\n • המינוי ל־OsmAnd חי כולל את כל התכונות של OsmAnd -\n -\n הפעלה ב‚נגיעה אחת’ ניתן לבחור באיזו מהירות כיוון המפה יתחלף ממצב ‚כיוון התנועה’ למצב ‚כיוון מצפן’ להלן. נקודות עומק ימיות בחצי הכדור הדרומי @@ -2782,42 +2763,13 @@ הוספת %1$s נקודות. נא להקליד שם קובץ וללחוץ על ‚שמירה’. הנקודה %1$s נמחקה עולם - אין תוצאות? -\nנשמח לקבל דיווח על כך. לשלוח את שאילתת החיפוש? הרחבת רדיוס החיפוש ל־%1$s - הדרך נשלחת… - • ניווט: תיקון סרגל ההתקדמות, החלפה מהירה בין נקודות ההתחלה והסיום של המסלול -\n -\n • סמני מפה: תיקון כיבוי/הפעלה של קבוצות, אפשרות להסתיר סמנים במפה -\n -\n • עריכת OSM: היכולת לערוך תגיות לפריטים שאינם נקודה, תיקון תגובות חסרות על הערות, גיבוי עריכות -\n -\n • שיפור פענוח של ויקיפדיה ושל ויקימסע, קבצים מעודכנים כבר זמינים -\n -\n • תפריט הקשר: תיקון צבעי סימול כבישים במצב לילה, תיקון גדלי תפריט נוספים -\n -\n • תיקון תקלות נוספות -\n תודה לך על המשוב שלך לא ניתן למצוא את הצומת או הדרך. אין תוצאות חיפוש? \nנשמח לקבל משוב יש ללחוץ על הכפתור ולהאזין להנחיה הקולית המתאימה כדי לשמוע אם ההנחיות חסרות או שגויות - "• תוקנה קריסה בהפעלה שקרתה בחלק מהמכשירים -\n -\n • תכונת סמנים חדשה: הצגת הסמנים שכבר נחצו -\n -\n • היסטוריית החיפוש מציגה כעת את הקטגוריות אחריהן חיפשת בעבר -\n -\n • תוקנה קריסה בהפעלה שקרתה עקב מפות עם סוגי כתב שאינם לטיניים -\n -\n • שיפור מהירות העיבוד במכשירי Android בגרסה 8.0 -\n -\n • תמיכה בעריכת עצמים מצולעים (שאינם מבני קהילה) -\n -\n • מדידת מרחק: הוספת כפתור „מדידה” לפעולות בתפריט ההקשר -\n" נא להעניק ל־OsmAnd גישה למיקום כדי להמשיך. שחור תחבורה נוספת עוברת בתחנה הזו. @@ -2954,23 +2906,6 @@ נתיב דרך לאופניים ללא הגדרה - "• מסך ‚הכוונה’ חדש: מציג כפתורי יעדי בית ועבודה, קיצור דרך ‚מסלול קודם’, רשימה של מסלולי וסמני GPX, היסטוריית חיפוש -\n -\n • ניתן למצוא מידע נוסף תחת ‚פרטי מסלול’: סוגי כבישים, משטח, תלילות, חלקלקות -\n -\n • ניווט עם תחבורה ציבורית תומך בכל אמצעי התחבורה הציבורית: רכבת תחתית, אוטובוס, חשמלית וכו׳. -\n -\n • פעולה מהירה חדשה להצגה/הסתרה של מסלולים ומצבי יום/לילה. -\n -\n • אזורים קבועים מסומנים כמוצפים בגרמניה, דרום אפריקה וקוויבק -\n -\n • תמיכה נוספת בייבוא של KML ו־KMZ -\n -\n • תוקנו קריסות בפתיחה של תחנות תחבורה ציבורית כלשהן -\n -\n • הוסרו ניתוח התנהגות לקוח של פייסבוק ו־Firebase בגרסה החופשית של OsmAnd‏ (אין את זה ב־OsmAnd+‎) -\n -\n" מצב %s מעלות מילי־רדיאנים @@ -2990,14 +2925,6 @@ נמנע מרכבות תחתיות ומרכבות קלות ללא מעבורות נמנע ממעבורות - • הצגת הזמן בין ההחלפות בתחבורה הציבורית -\n -\n • מנשק המשתמש תוקן עבור פרטי המסלול -\n -\n • תוקנה ערכת העיצוב הכהה בתפריט הכיוון ובפרטי המסלול -\n -\n • הצגת אזימוט במדידת מרחק -\n שליחת יומן הועברו %1$d קבצים (%2$s). הועתקו %1$d קבצים (%2$s). @@ -3203,7 +3130,6 @@ הגדרות לניווט בפרופיל הנבחר: „%1$s”. תפוגת זמן לאחר התעוררות יחידות ותבניות - מראה מראה המפה מראה המפה תוספים מותקנים @@ -3251,7 +3177,6 @@ מכלא Logcat כבררת מחדל הגדרות תוסף - הורדת המפה המפורטת %s, כדי לצפות באזור זה. הורדת מפת %s מפורטת כדי לצפות באזור הזה. ללא מסלול להעביר את קובצי הנתונים של OsmAnd ליעד החדש\? @@ -3455,8 +3380,6 @@ ללא חישוב מחדש מרחק מזערי לחישוב המסלול מחדש המסלול יחושב מחדש אם המרחק למסלול הוא ארוך מהמשתנה שצוין - להציג את התראות המערכת בזמן הניווט עם הנחיות ניווט. - התראות ניווט בררת המחדל של היישומון (%s) פרופיל בהתאמה אישית זווית: ‎%s°‎ @@ -3558,7 +3481,6 @@ בחירת קבוצה נא לבחור צורה עיגולי - מעויני ריבועי מזערי ניתן לצפות בכל העריכות או בתקלות ב־OSM שטרם הועלו תחת %1$s. שינויים שהועלו לא יופיעו עוד. @@ -3598,8 +3520,6 @@ תופעת לוואי: כתוצאה מסינון לפי דיוק, ייתכן שכמה נקודות תיעלמנה עבור למשל מתחת לגשרים, מתחת לעצים, בין בניינים גבוהים או בתנאי מזג אוויר מסוימים. פעולה זו תקליט רק נקודות שנמדדו עם חיווי של דיוק מזערי (במטרים/רגל כפי שדווח על ידי Android עבור ערכת השבבים שלך). דיוק מתייחס למרחק המדידות שלך מהמיקום האמתי שלך ואינו קשור ישירות לדיוק שהוא פיזור של מדידות חוזרות ונשנות. המלצה: כדאי לנסות להשתמש בזיהוי תנועה דרך המסנן לסף תנועה תחתון (B) קודם לכן, הוא עשוי להביא לתוצאות טובות יותר ופחות מידע ילך לאיבוד. אם המסלולים שלך עדיין רועשים במהירויות נמוכות, כדי לנסות כאן ערכים שונים מאפס. נא לשים לב שחלק מהמדידות לא תדווחנה נתוני מהירות כלל (שיטות מבוססות רשת), שבמקרים כאלה לא יוקלט שום דבר. - חלק מהערכים בוויקיפדיה לא יהיו זמינים בשם שצוין, יש לבחור את השפות בהן יופיעו הערכים של ויקיפדיה במפה. -\nניתן יהיה להחליף בין כל השפות הזמינות בזמן קריאת הערך. פריטים תוסף מפתח התאמת כמות הפריטים ב„מגירה”, „הגדרת המפה” ו„תפריט ההקשר”. @@ -3739,7 +3659,6 @@ בקרת מסך לכבות את המסך בהתאם לתפוגת שומר המסך של המערכת. להשתמש בתפוגת שומר המסך של המערכת - אפשרות יקיצת מסך: נא לבחור את אפשרויות יקיצת המסך (נא לוודא ש־OsmAnd בחזית כאשר המכשיר ננעל): כל הנחיית ניווט תפעיל את המסך. הנחיות ניווט @@ -3762,7 +3681,6 @@ מטרים הצגה או הסתרה של פירוט נוסף על המפה מפת לילה - כל הזמן מושבת. נדרשת ההגדרה ‚להשאיר את המסך פעיל’ תחת ‚תפוגת זמן לאחר התעוררות’. הוספת מקור מקוון החלת השינויים האלו תפנה את הנתונים שנשמרו עבור מקור אריחים זה @@ -3923,7 +3841,6 @@ פיתוח נתוני זמן אמת של OsmAnd נתוני זמן אמת של OsmAnd - חישוב מורכב של מסלול חישוב מסלול דו־שלבי לניווט במכונית. פיתוח עצמי לתחבורה ציבורית מעבר לחישוב מסלול בתחבורה ציבורית ב־Java (בטוח) diff --git a/OsmAnd/res/values-ja/phrases.xml b/OsmAnd/res/values-ja/phrases.xml index 3f496458b7..c6ca1fbf12 100644 --- a/OsmAnd/res/values-ja/phrases.xml +++ b/OsmAnd/res/values-ja/phrases.xml @@ -97,7 +97,6 @@ 印刷、現像店 カーテンストア 生地・呉服店 - 寝具店(Bedding store) ダイビング用品 DIY・日曜大工用品店 アダルト用品店 @@ -345,7 +344,6 @@ 代替医療 聴覚医 血液バンク - 総合病院・メディカルセンター 助産師 作業療法士 検眼医 @@ -433,7 +431,6 @@ サーフィン 水泳 卓球 - チームハンドボール(曖昧につき使用非推奨・Team handball) テニス トボガンぞり バレーボール @@ -493,7 +490,6 @@ インターネット有り・種別不明 インターネット・接続サポート有り 修道院 - 歴史的修道院(Historic monastery) 道端の十字架 歴史的礼拝所・地蔵 観光案内所 @@ -642,7 +638,6 @@ 遺体安置所 火葬場 ネットカフェ - ATM・CD 消費者金融 質屋 両替商・両替機 @@ -727,7 +722,6 @@ 導灯 観測塔 鐘楼 - 一般的な観光名所(General tourist attraction) 小屋 下家・差し掛け小屋 狩猟小屋 @@ -752,7 +746,6 @@ ドア店 ファッション店 フリーフライング用品店(スカイスポーツ用品店) - 暖房機器店(Heating units store) ガーデニングショップ レザー製品店 楽器店 @@ -846,7 +839,6 @@ 自転車 放射性廃棄物 調整池・貯水池 - 自然環境保全地域(Conservation land) 監視ステーション 常設クレーン 整地済み用地 @@ -1895,7 +1887,6 @@ 壁面 貯水池 川・流水 - 水槽 配管 交差点タイプ 踏切警告音:有り @@ -2819,7 +2810,6 @@ 湯沸かし器:無し 公式名称 建設中 - ATM:有り ATM:無し フェアトレード製品:有り フェアトレード製品:無し @@ -2999,7 +2989,6 @@ 哺乳類 魚類 地下鉄 - 放射線治療 難易度カテゴリ 荷役用ドック 1歳未満の乳児:可 @@ -3514,7 +3503,6 @@ HOV(相乗り) 路面電車 フェリー - エネルギー源:バイオマス н/к н/к* diff --git a/OsmAnd/res/values-ja/strings.xml b/OsmAnd/res/values-ja/strings.xml index 7b8bbfa46d..a8f0aeea32 100644 --- a/OsmAnd/res/values-ja/strings.xml +++ b/OsmAnd/res/values-ja/strings.xml @@ -346,7 +346,6 @@ POIの更新は利用できません ルートを計算できませんでした。 ルートを計算できませんでした。 空のルートが計算されました - 新しいルートが計算されました、距離 目的地に到着しました。 入力された座標の形式が間違っています! マップに戻る @@ -456,7 +455,6 @@ POIの更新は利用できません コメントを追加できませんでした。 POIの編集 POIを作成 - ノードが見つからない、または未サポートの複数ノードで構成されています。 {0} を削除しますか(コメントを入力) ? POIを削除 削除 @@ -1903,7 +1901,6 @@ POIの更新は利用できません 住所検索 OsmAndを初めて使う方へ 使用方法の簡易説明 - 更新 Wi-Fi接続時のみダウンロード ライブ更新 今すぐ更新 @@ -1996,9 +1993,6 @@ POIの更新は利用できません ハンガリー語(フォーマル) 相対方位 磁方位 - レガシー検索 - レガシー検索を表示 - メニューリストで旧型検索も使用できるようにします 高速道路を使う 高速道路を利用可能とみなします。 空白検知で自動分割記録 @@ -2057,8 +2051,6 @@ POIの更新は利用できません 現在地が特定できませんでした マップのダウンロードが必要です。 現在地取得 - OsmAndのバージョン更新や、割引に関しての情報をチェックしません - 更新情報を非表示 すべてのマップを今すぐ更新しますか? お気に入り %1$sを置き換えてよろしいですか? 地上建造物 @@ -2567,16 +2559,6 @@ POIの更新は利用できません フルスクリーンモード オンライン追跡用のバッファ指定 送信用現在地データをネット接続せずにどのくらいの時間記録するか、バッファを指定します - • 新しい旅行メニュー:インターネットに接続しなくてもWikiVoyage(ウィキボヤージュ)の旅行ガイドを見られるように変更 -\n -\n• Wikipedia:新しい外見、アクティブリンク、画像の参照 -\n -\n• 経路の参照UI:経由地点グループの表示 -\n -\n• マップマーカー:選択した複数GPXファイルからの取り込みに対応、新しい外見の採用 -\n -\n• OsmAnd LiveサブスクリプションでOsmAndの全ての機能を利用可能に -\n POIのラベル 記事を読む 同じグループのお気に入り地点 @@ -2666,21 +2648,6 @@ POIの更新は利用できません ノードまたは通じる道が見つかりませんでした。 検索結果が出ませんでしたか? \nよければフィードバックをお願いします - • ナビゲーション:進捗バー(プログレスバー)の修正、ルートの出発地点と目的地点の高速入れ替え -\n -\n• マップマーカー:グループに関するオン/オフの修正、マップ上のマーカーの非表示機能の追加 -\n -\n• OSM編集:地点に寄らないオブジェクトや道に含まれるタグを編集する機能、メモからコメントが欠落する現象の修正、編集のバックアップ機能 -\n -\n• WikipediaとWikivoyageの解析方法の改善、更新されたファイルは現段階から利用可能 -\n -\n• コンテキストメニュー:夜間モード時の乗換標識を修正、追加メニューのサイズを修正 -\n -\n• ボートナビゲーション:ブイなどで指示された人工航路のサポート -\n -\n• その他バグ修正 -\n - コミットする方法… 検索半径を%1$sに拡大 \"%1$s\"とあなたの現在地を検索クエリとして送信します。\n @@ -2757,20 +2724,6 @@ POIの更新は利用できません OSMメモ 明日以降の次の時間に営業 名無し - • 一部の機種で起動時にクラッシュしていた問題を修正 -\n -\n• マーカーの新機能:通過済みマーカーの表示 -\n -\n• 検索履歴は以前選択したカテゴリが表示される仕様へ変更 -\n -\n• 非ラテン文字を使用したマップを開いた場合にクラッシュしていた問題を修正 -\n -\n• Android 8.0デバイスでのレンダリング速度を改善 -\n -\n• ポリゴン(トイレや給水所など公共施設を除く)オブジェクトの編集をサポート -\n -\n• 距離測定:コンテキストメニューに\"距離測定\"ボタンを追加 -\n 近隣にあるもの一覧: 駐車開始時刻 駐車上限時刻 @@ -2833,21 +2786,6 @@ POIの更新は利用できません ボタンをタップし対応する音声プロンプトを聞いて、欠落しているかなど問題の有無を確かめます 通過前に戻す -経由地点時間 - • 新しい案内画面の採用: 事前に設定した自宅と職場をワンタップで目的地とするボタンの追加、「前回のルート」ショートカット、アクティブなGPX経路とマーカーのリスト、検索履歴など -\n -\n• 道路種別、路面素材、勾配、滑らかさの各種情報をルートの詳細下に各種情報に追加 -\n -\n• 地下鉄、バス、路面電車など、あらゆる種類の交通機関を使用する場合のナビゲーションをサポート -\n -\n• 経路の表示/非表示および表示モードで昼/夜を切り替えられるクイックアクションの追加 -\n -\n• ドイツ、南アフリカ、ケベックで浸水したと表示されていたエリアの修正 -\n -\n• KMLおよびKMZ形式のインポートを可能に -\n -\n• いくつかの公共交通機関の停留所を開く際のクラッシュを修正 -\n -\n• 無料版からFacebookとFirebaseの分析を削除 (有料版のOsmAnd+は変更ありません) OsmAnd Liveの更新データを利用した公共交通機関向け機能を有効にします。 OsmAnd Live公共交通機関用機能 時刻 @@ -2934,13 +2872,6 @@ POIの更新は利用できません 移動手段に地下鉄や軽量軌道交通(LRT)などを使いません フェリーを使わない 移動手段にフェリーを使いません - • 公共交通機関で移動している間の時間表示を実装 -\n -\n• ルート詳細に関するユーザーインターフェイスの修正 -\n -\n• 案内メニューとルート詳細の暗色テーマ時の表示を修正 -\n -\n• 距離測定時に方位を表示 角度(°) ミリラジアン 角度の単位 @@ -3202,7 +3133,6 @@ POIの更新は利用できません 選択したプロファイル『%1$s』用のルーティングの設定です。 画面を表示する時間 単位と形式 - 外観 マップの見た目に関する設定 マップ外観 インストール済みプラグインリスト @@ -3516,8 +3446,6 @@ POIの更新は利用できません インポートされたプロファイルには追加データが含まれています。 \"インポート\"をタップしてプロファイルデータのみをインポートするか、インポートする追加データを選択してください。 プロファイルとともにエクスポートする追加データを選択できます。 南極大陸 - ナビゲーション稼働中にもシステム通知を表示します。 - ナビゲーション通知 カスタムプロファイル 角度: %s° 角度 @@ -3581,7 +3509,6 @@ POIの更新は利用できません 形状を選択 円形 四角形 - ひし形 最小 公共交通機関を非表示 公共交通機関を表示 @@ -3910,7 +3837,6 @@ POIの更新は利用できません 開発 OsmAnd Liveデータ OsmAnd Liveデータ - 複雑なルート計算 カーナビゲーション向けの2段階ルート計算です。 2段階 A*ルーティングアルゴリズムを使用 ファイルはすでにOsmAndにインポートされています diff --git a/OsmAnd/res/values-ka/strings.xml b/OsmAnd/res/values-ka/strings.xml index 720fa5a374..8253cb677d 100644 --- a/OsmAnd/res/values-ka/strings.xml +++ b/OsmAnd/res/values-ka/strings.xml @@ -542,7 +542,6 @@ შეცდომა გზის დათვლისას. გზის დათვლის შეცდომა. დათვლილი გზა ცარიელია. - ახალი გზა დათვლილია. დაშორება მიხვედით. კოორდინატები არასწორია! რუკაზე დაბრუნება @@ -644,7 +643,6 @@ კომენტარი არ დაემატა. POI-ის ჩასწორება POI-ის შექმნა - POI ვერ მოიძებნა წავშალო {0} (კომენტარი)? POI-ს წაშლა წაშლა @@ -1195,7 +1193,6 @@ ქუჩის ძებნა გთხოვთ აირჩიოთ დასახლებული პუნქტი აღდგენა - გზის ატვირთვა… ძებნის რადიუსის გაზრდა %1$s-მდე სამყარო წერტილი %1$s წაშლილია diff --git a/OsmAnd/res/values-ko/phrases.xml b/OsmAnd/res/values-ko/phrases.xml index eff77a8146..1bab16cbe1 100644 --- a/OsmAnd/res/values-ko/phrases.xml +++ b/OsmAnd/res/values-ko/phrases.xml @@ -1,7 +1,7 @@ Palaeontological 사이트 - 베이커리 + 베이커리 술집 편의점 쇼핑몰 @@ -18,7 +18,7 @@ 낙농장 상점 자동 판매기 - 서점 + 서점 자전거 가게 애니메이션 상점 골동품 가게 @@ -37,8 +37,7 @@ 복사 가게 커튼 가게 휘장 상점 - 침구 가게 - 다이빙 장비 + 다이빙 장비 주택 개선 가게 에로틱 가게 낚시 도구 @@ -92,7 +91,7 @@ 마켓 플레이스 건조 용품 가게 - 경찰 + 경찰 소방서 긴급 전화 소화 @@ -101,7 +100,7 @@ 구급차 역 긴급 액세스 포인트 - 포드 + 포드 마운틴 패스 게이트 도시 벽 @@ -116,7 +115,7 @@ 초커 빛을 중지 - 자동차 수리 + 자동차 수리 타이어 차량 검사 세차장 @@ -131,7 +130,7 @@ 불 물 연못 차고 - 대중 교통 정류장 + 대중 교통 정류장 버스 정류장 무궤도 전차 정류장 버스 정류장 @@ -145,20 +144,20 @@ 지하철 역 택시 승차장 - 공항 + 공항 헬리콥터 이착륙지 활주로 Aeroway 터미널 Aeroway 게이트 - 슬립웨이 + 슬립웨이 페리 터미널 등대 - 자전거 대여 + 자전거 대여 자전거 주차장 - 케이블 카 + 케이블 카 곤돌라 의자 리프트 T-바 리프트 @@ -169,14 +168,14 @@ 상품 엘리베이터 카펫 리프트 - 터널 + 터널 다리 - 속도 경고 카메라 + 속도 경고 카메라 터닝 서클 고속도로 분기점 - 보트야드 + 보트야드 폐수 공장 급수 탑 게이트 잠금 @@ -184,23 +183,23 @@ 물방앗간 - 변전소 + 변전소 변압기 발전소 전원 생성기 - 우체국 + 우체국 우체통 전화 통신 타워 전화 교환 - 재활용 + 재활용 매립지 폐기물 처리 폐기물 바구니 - 부두 + 부두 감시 전망대 천문대 @@ -217,13 +216,13 @@ 염전 귀뚜라미 그물 - 운전 학교 + 운전 학교 학교 유치원 대학 대학 - 사회 시설 + 사회 시설 법원 감옥 민사 레지스트리 사무소 @@ -247,7 +246,7 @@ 부담금 농장 - 약국 + 약국 병원 의사 클리닉 @@ -260,8 +259,7 @@ 대체 의학 음향학자 혈액 은행 - 의료 센터 - 산파 + 산파 직업 치료사 검안 물리 요법가 @@ -271,7 +269,7 @@ 음성 치료사 의료 시설 - 회사 + 회사 보험 부동산 중개인 변호사 @@ -288,7 +286,7 @@ 스튜디오 북 마커 - 경기장 + 경기장 스포츠 센터 골프 코스 아이스 링크 @@ -355,7 +353,7 @@ 토보간 배구 - 박물관 + 박물관 관광 명소 기념관 아트 워크 @@ -375,14 +373,14 @@ 동물원 테마 파크 - 호텔 + 호텔 게스트 하우스 호스텔 모텔 알파인 헛 샬레 - 예배 장소 + 예배 장소 예배 장소: 기독교 예배 장소: 유대인 예배 장소: 이슬람 @@ -392,8 +390,7 @@ 예배 장소: 신도교 예배 장소: 도교 수도원 - 유서깊은 수도원 - 크로스 길가 + 크로스 길가 길가의 신사 도교 정보 시계 @@ -417,7 +414,7 @@ 케이블 카 리조트 - 아트 클럽 + 아트 클럽 천문학 클럽 컴퓨터 클럽 보드 게임 클럽 @@ -442,7 +439,7 @@ 관광 클럽 자선 클럽 - 라이브러리 + 라이브러리 예술 센터 시네마 카지노 @@ -464,7 +461,7 @@ 워터 파크 공원 - 카페 + 카페 비어 가든 레스토랑 패스트 푸드 @@ -474,7 +471,7 @@ 식 수 바베큐 - 농업 엔진 + 농업 엔진 바구니 메이커 양봉가 대장장이 @@ -526,7 +523,7 @@ 시계공 창문 건설 - 장례 감독 + 장례 감독 컴퓨터 기술 뷰티 살롱 네일 살롱 @@ -546,15 +543,14 @@ 화장 하는 곳 인터넷 카페 - 은행 - 현금 지급기 - 대부업자 + 은행 + 대부업자 전당포 변경소 회계사 Bitcoin 지불 - 동굴 입구 + 동굴 입구 봉우리 안장 화산 @@ -578,7 +574,7 @@ 작은 섬 - 앵커리지 + 앵커리지 앵커 정박 신호 심장 표지 @@ -620,7 +616,7 @@ 바위, seamark 난파선, seamark - 군대 + 군대 군 비행장 군사 벙커 병영 @@ -640,12 +636,11 @@ 기차 (명소) 워터 슬라이드 - 타워 + 타워 아쿠아리움 돛대 레이더 - 핸드볼 - 가게 + 가게 응급기관 대중교통 인공물 @@ -663,12 +658,12 @@ 항해 위키백과 사용자 정의 - - 아파트 - 군사 지역 - - 대중 교통 정류장 위치 + 아파트 + + 군사 지역 + + 대중 교통 정류장 위치 철도 정거장 철도 버퍼 정거장 숙박 @@ -677,10 +672,10 @@ 인터넷 접속: 유선 인터넷 접속: 공용 인터넷 접속: 서비스 - - 와인 삽 - 식품점 + 와인 삽 + + 식품점 도로 장애물 주유소 개인 수송 @@ -707,12 +702,12 @@ 쿼터 미삭 영역 - 저수지 + 저수지 가스 계량기 실로 저장 탱크 - 내리막 + 내리막 노르딕 스키여행 하이킹 @@ -722,10 +717,10 @@ 놀이터 아이스 스케이트 - 부담금 + 부담금 국립공원 - 운하 + 운하 벤치 계곡 수로 @@ -760,38 +755,37 @@ 초원 철도 지역 - 주거 지역 + 주거 지역 - 레크리에이션 지역 + 레크리에이션 지역 녹색 마을 - 자선 가게 + 자선 가게 사진관 항해 황야의 오두막 - 무덤 + 무덤 지불 단말기 관측 탑 종각 - 일반 관광 명소 - 오두막 + 오두막 임대한 방 사냥 별장 - 피크닉 테이블 + 피크닉 테이블 꽃을 볼 수 있는 명소 와인 저장고 와이너리 - 피스트 + 피스트 스키 렌탈 - 아트 갤러리 + 아트 갤러리 스키 리조트 트레일 라이딩 역 - 치즈 가게 + 치즈 가게 초콜릿 가게 커피숍 파스타 가게 @@ -800,8 +794,7 @@ 양초 가게 패션 상점 무료 비행 용품 가게 - 난방 장치 상점 - 정원 가구점 + 정원 가구점 가죽 상점 음악 상점 스쿠버 다이빙 용품 가게 @@ -816,17 +809,14 @@ 불꽃 무기 상점 - 방파제 + 방파제 방사제 - 케이블 분배 캐비닛 + 케이블 분배 캐비닛 분지 - 보존 땅 - - 크레인 + 크레인 국가 - 관광 명소 - 종교적인 영역 + 종교적인 영역 가공선 나무 위키백과 diff --git a/OsmAnd/res/values-ko/strings.xml b/OsmAnd/res/values-ko/strings.xml index a6ab88ce93..6fd3bcab02 100644 --- a/OsmAnd/res/values-ko/strings.xml +++ b/OsmAnd/res/values-ko/strings.xml @@ -467,7 +467,6 @@ 경로 탐색 도중 오류 경로를 찾는 도중 오류가 발생하였습니다 탐색한 경로를 찾지 못하였습니다 - 새로운 경로를 찾았습니다, 거리 도착지에 도착하였습니다 좌표가 유효하지 않습니다! OsmAnd 맵으로 되돌아감 @@ -558,7 +557,6 @@ 예외발생: 설명이 추가되지 않았습니다 POI 편집 POI 생성 - 노드를 찾을 수 없거나 시설이 단일 노드가 아닙니다 {0}를 삭제할까요(정보를 입력하세요)? POI 삭제 POI 가 성공적으로 삭제되었습니다 diff --git a/OsmAnd/res/values-ku/strings.xml b/OsmAnd/res/values-ku/strings.xml index 5b960b1a4c..9166cb17c0 100644 --- a/OsmAnd/res/values-ku/strings.xml +++ b/OsmAnd/res/values-ku/strings.xml @@ -90,7 +90,6 @@ Neçalak e Ji bo raporkirina Niha rojane bike - Rojanekirin Tesnîfkirina gorî Ti anîmasyon tine ye Di sepanê de anîmasyonan disekinîne. @@ -121,7 +120,6 @@ Notê biguherîne Nota OSM\'ê biguherîne Cihê destpêkê bike cihê amanc. - Tesnîf bike Navê nû binivîse Paşve diff --git a/OsmAnd/res/values-lt/phrases.xml b/OsmAnd/res/values-lt/phrases.xml index cd90f24be8..3226430a67 100644 --- a/OsmAnd/res/values-lt/phrases.xml +++ b/OsmAnd/res/values-lt/phrases.xml @@ -100,7 +100,6 @@ Rūbų parduotuvė Žvejybos reikmenys Laisvo kritimo skrydžio prekės - Šildymo prekės Sodo prekės Parduotuvė Dovanų parduotuvė diff --git a/OsmAnd/res/values-lt/strings.xml b/OsmAnd/res/values-lt/strings.xml index 049ac26e8c..90d507f617 100644 --- a/OsmAnd/res/values-lt/strings.xml +++ b/OsmAnd/res/values-lt/strings.xml @@ -596,7 +596,6 @@ Tam prireiks {1} MB pastoviam saugojimui. Įvyko klaida skaičiuojant maršrutą Įvyko klaida skaičiuojant maršrutą Klaida: Sudarytas maršrutas yra tuščias - Apskaičiuotas naujas maršrutas, atstumas Jūs pasiekėte savo kelionės tikslą Koordinatės yra neteisingos! Grįžti į OsmAnd žemėlapį @@ -698,7 +697,6 @@ Tam prireiks {1} MB pastoviam saugojimui. Komentaras pridėti nepavyko Redaguoti LV Sukurti LV - LV neina rasti arba LV sudaryta iš kelių elementų kurie kolkas dar nepalaikomi. Ištrinti {0} (įveskite komentarą)? Ištrinti LV Ištrinti @@ -1725,7 +1723,6 @@ Ilguma %2$s Vengti laiptų Atidaryti iš naujo Redaguoti LV - Atnaujinti kas Atsisiųsti tik naudojant Wi-Fi Atnaujinti tuoj pat Programėlė neturi teisių įrašyti į atminties kortelę @@ -1935,7 +1932,6 @@ Tai yra puikus būdas paremti OsmAnd ir OSM, jei jie jums patinka. Ieškomi žemėlapiai… Nustatoma vietos padėtis… Laisva vieta - Nerodyti naujų versijų Redaguoti kategorijas Subkategorijos Pasirinktos kategorijos @@ -1967,7 +1963,6 @@ Tai yra puikus būdas paremti OsmAnd ir OSM, jei jie jums patinka. Suteikti prieigą prie vietos nustatymo Gaukite maršruto nurodymus ir atraskite naujas vietas be interneto ryšio Ieškoti mano vietos - Netikrinti informacijos apie atnaujinimus ar OsmAnd siūlomas nuolaidas. Išvalyti visus lakštus Ar tikrai norite pakeisti išsaugotą vietą %1$s? Valdikliai @@ -2092,8 +2087,6 @@ Tai yra puikus būdas paremti OsmAnd ir OSM, jei jie jums patinka. Vairavimo stilius Aukščio diapazonas Vidutinis aukštis virš jūros lygio - Senoji paieška - Rodyti senąją paiešką Leisti greitkelius Įjungti įrašymo sparčiąją paleistį Pristabdyta @@ -2223,7 +2216,6 @@ Tai yra puikus būdas paremti OsmAnd ir OSM, jei jie jums patinka. Kontūrų linijos tankis Kontūrų linijos plotis Kontūrų linijos plotis - Priedėti senąją paiešką prie stalčiaus sąrašo. Leisti greitkelius. Šalia esantys Vikipedijos straipsniai Sukite į %1$d išvažiavimą ir keliaukite @@ -2398,12 +2390,6 @@ Tai yra puikus būdas paremti OsmAnd ir OSM, jei jie jums patinka. Papildomi veiksmai GPX failas su koordinačių ir pasirinktų pastabų duomenimis. GPX failas su koordinačių ir visų pastabų duomenimis. - Stop ženklo nutatymas atliekamas atsižvelgiant į judėjimo kryptį -\n -\n• Naujas algoritmas, pateikiantis prasmingas pakilimo/nusileidimo vertes GPX trekams -\n -\n• Vaikšiojimo trukmė atsižvelgiant į reljefą (pakilimą) (Naismith taisyklė) -\n Veiksmai Žymeklis Kurkite arba keiskite OSM LV-as, užrašykite arba komentuokite OSM pastabas bei dalinkitės įrašytais GPX failais. @@ -2551,15 +2537,6 @@ Tai yra puikus būdas paremti OsmAnd ir OSM, jei jie jums patinka. Vengti metro ir lengvojo geležinkelio Be keltų Vengti keltų - • Rodyti laiką tarp persėdimų viešajame transporte -\n -\n • Pataisyta maršruto detalių naudotojo sąsaja -\n -\n • Pataisyta nuorodų meniu ir maršruto detalių tamsi tema -\n -\n • Atstumo matavime rodyti azimutą -\n -\n Laipsniai Miliradianai Kampiniai matavimo vienetai diff --git a/OsmAnd/res/values-lv/phrases.xml b/OsmAnd/res/values-lv/phrases.xml index 671f922353..c48ea5427f 100644 --- a/OsmAnd/res/values-lv/phrases.xml +++ b/OsmAnd/res/values-lv/phrases.xml @@ -475,7 +475,6 @@ Alternatīvā medicīna Ausu ārsts Asins donoru centrs - Veselības centrs Vecmāte Terapeits Optometrists @@ -747,7 +746,6 @@ Krematorija Interneta kafejnīca Banka - Bankomāts Iemaksas terminālis Lombards Apmaksa ar bitcoin @@ -2448,7 +2446,6 @@ Uzraksts: A Uzraksts: ZA Notiek celtniecība - Bankomāti: ir Bankomāti: nav Ugunsdzēšanas vieta Fair trade: ir @@ -2703,7 +2700,6 @@ Galvenais Dīķis Caurplūde - Cisterna Lietošanā: jā Skapja tips: elektrība Skapja tips: telekomunikācijas diff --git a/OsmAnd/res/values-lv/strings.xml b/OsmAnd/res/values-lv/strings.xml index 535629d0e5..2316461718 100644 --- a/OsmAnd/res/values-lv/strings.xml +++ b/OsmAnd/res/values-lv/strings.xml @@ -528,7 +528,6 @@ Kļūda, aprēķinot maršrutu Kļūda pie maršruta aprēķināšanas Aprēķinātais maršruts ir tukšs - Aprēķināts jauns ceļš, attālums Jūs esat ieradies galapunktā Koordinātas nav derīgas! Atpakaļ uz OsmAnd @@ -630,7 +629,6 @@ Komentārs netika pievienots Labot POI Izveidot POI - Nevar atrast nodi, vai arī serviss nav atzīmēts kā viena node. Dzēst {0} (ievadiet komentāru)? Dzēst POI Dzēst @@ -1822,7 +1820,6 @@ failu(s)? Lietot izvēlni Mana Izvēlne vai standarta izvēlne Ir iespējams pārvaldīt aplikāciju caur statisko vai pielāgoto izvēlni. To var mainīt Manas Izvēlnes iestatījumos. - Atjaunināt Lejupielādēt tikai WiFi tīklā Live atjauninājumi Atjaunināt tagad @@ -1948,8 +1945,6 @@ failu(s)? Atļaut noteikt vietu Veidojiet maršrutus un atklājiet jaunas vietas bez interneta savienojuma Meklēt manu vietu - Nepārbaudīt jauninājumus par jaunām versijām un akcijām no OsmAnd - Nerādīt jauninājumus Vai vēlaties atjaunot visas kartes? Iztīrīt bilžu kešatmiņu Ekonomiskais maršruts @@ -2033,9 +2028,6 @@ kas tiks pievienots jūsu Kategorijas sadaļai. Kontūrlīniju platums Kontūrlīniju platums Ūdens - Meklēšanas vēsture - Rādīt vēsturi - Rādīt vecā tipa meklēšanu izvēlnē. Atļaut automağistrāles Atļaut automağistrāles. Tuvākie Wikipēdijas raksti @@ -3111,15 +3103,6 @@ No Afganistānas līdz Zimbabvei, no Austrālijas līdz ASV, Argentīna, Brazīl Dot priekšroku izvēlētajai grūtības pakāpei, lai arī vieglāki un grūtāki maršruti joprojām ir iespējami, ja tie ir pietiekami īsi. Beztrases Brīvā stila un beztrases ir neoficiālie maršruti un pārejas. Parasti neiebraukti un oficiāli netiek neuzturēti. Brauciet tikai uz savu risku. - • Rāda laiku starp pārsēšanām sabiedriskajā transportā -\n -\n • Izlabota lietotāja saskarsme maršruta detaļās -\n -\n • Salabota tumšā tēma Norādījumu izvēlnē un Maršruta Detaļās -\n -\n • Rāda azimutu iekš Mērīt Attālumu -\n -\n • Lietotnes profili: veidojiet personisku profilu savām vajadzībām, izvēlieties ikonu un krāsu \n \n • Tagad mainiet katra profila noklusējumus un min/max ātrumus @@ -3158,7 +3141,6 @@ No Afganistānas līdz Zimbabvei, no Austrālijas līdz ASV, Argentīna, Brazīl Šie parametri ietekmēs maršruta izveidošanu. Tiks piemēroti tikai izvēlētajam profilam: %1$s. Pamošanās laiks Mērvienības un formāti - Izskats Ikonas, logrīki Kartes skats Instalēto spraudņu saraksts diff --git a/OsmAnd/res/values-ml/phrases.xml b/OsmAnd/res/values-ml/phrases.xml index 71997e4113..b64ef3d2d6 100644 --- a/OsmAnd/res/values-ml/phrases.xml +++ b/OsmAnd/res/values-ml/phrases.xml @@ -9,7 +9,7 @@ സെല്‍ഫോണ്‍ കട ബെര്‍ഡ് ഷെല്ട്ടര്‍ -ബോട്ട് യാര്‍ഡ് + ബോട്ട് യാര്‍ഡ് കടയും സൂപ്പര്‍മാര്‍ക്കറ്റും എമെര്‍ജന്‍സി (അടിയന്തിരം) പെട്റോള്‍ പംബ് @@ -40,7 +40,7 @@ മിലിട്ടറി "യൂസര്‍ ഡിഫൈന്ഡ് " - ബേക്കറി + ബേക്കറി "ബീവറേജസ് " "ചീസ് ഷോപ് " "മിടായി കട " @@ -62,7 +62,7 @@ "വെന്ഡിങ്ങ് മെഷിന്‍ " വൈന്‍ ഷോപ് - "പുസ്തക കട " + "പുസ്തക കട " സൈക്കിള്‍ കട "ആനിമെ ഷോപ് " "പുരാവസ്തുവില്പന ശാല " @@ -84,8 +84,7 @@ "കോപ്പീ ഷോപ് " കര്‍ടെയ്ന് സ്ടോര്‍ ഡ്രാപെരി ഷോപ് - "ബെഡ്ഡിങ്ങ് സ്ടോര്‍ " - ഡൈവിങ്ങ് ഉപകരണങ്ങള്‍ + ഡൈവിങ്ങ് ഉപകരണങ്ങള്‍ "ഹോം ഇംപ്രൂവ്മെന്റ് സ്ടോര്‍ " ഇറോട്ടിക് ഷോപ് ഫാഷ്യന്‍ ഷോപ് @@ -93,8 +92,7 @@ "പൂക്കട " "പിക്ചര്‍ ഫ്രേം ഷോപ് " "ഫ്രീ ഫ്ലയിംഗ് ഗുഡ്സ് സ്ടോര്‍ " - ഹീറ്റിങ്ങ് യൂണിട് സ്ടോര്‍ - "ഫര്‍ണിച്ചര്‍ കട " + "ഫര്‍ണിച്ചര്‍ കട " ഗാര്‍ഡന്‍ സെന്റര്‍ "ഗാര്‍ഡന്‍ ഫര്‍ണിച്ചര്‍ കട " "ഗ്യാസ് ഏജന്സി " @@ -112,7 +110,7 @@ ട്റാന്സ്പോര്‍ട്ട് കണ്‍സ്ട്ര്ക്ഷന്‍ പാലിയന്തോളജി സൈറ്റ് - ഡെലി + ഡെലി വാതിലുകള്‍ ഹാര്‍ഡ്വേര്‍ സ്ടോര്‍ സ്റവണ സഹായി @@ -167,7 +165,7 @@ കട (ആയുധങ്ങള്‍) കട (പെര്‍ഫ്യൂം) - പോലിസ് + പോലിസ് ഫയര്‍ സ്ടേഷന്‍ എമെര്‍ജെന്സി ഫോണ്‍ അഗ്നിശമനി (fire hydrant) @@ -180,7 +178,7 @@ ഏസ് ഈ എസ് സ്ടേഷന്‍ എമെര്‍ജെന്‍സി അക്സെസ് പോയിന്റ് - ചപ്പാത്ത് + ചപ്പാത്ത് ചുരം ഗേറ്റ് നഗര കോട്ട @@ -197,7 +195,7 @@ വേഗനിയന്ത്റണം (ഐലന്റ്) ട്റാഫിക്ക് ലൈറ്റ് - "കാര്‍ വര്‍ക്ക് ഷോപ്പ് (റിപ്പയര്‍)" + "കാര്‍ വര്‍ക്ക് ഷോപ്പ് (റിപ്പയര്‍)" ടയര്‍ സെര്‍വീസ് വാഹന പരിശോധന കേന്ദ്രം കാര്‍ വാഷ് @@ -233,7 +231,7 @@ പാര്‍ക്കിങ്ങ് എന്റ്റി ഗരേജ് - സ്ടോപ് (പബ്ളിക് ട്റാന്‍സ്പോര്‍ട്ട് ) + സ്ടോപ് (പബ്ളിക് ട്റാന്‍സ്പോര്‍ട്ട് ) ബസ് സ്ടോപ്പ് ട്രോളിബസ് സ്ടോപ്പ് ബസ് സ്ടോപ് @@ -250,30 +248,30 @@ റയില്വേ ബഫെര്‍ സ്ടോപ് ടാക്സി സ്ടാന്ഡ് - എയര്‍പോര്‍ട്ട് + എയര്‍പോര്‍ട്ട് ഹെലിപ്പാട് റണ്വേ എയര്‍പോര്‍ട്ട് ടെര്‍മിനല്‍ എയര്‍പോര്‍ട്ട് ഗേറ്റ് - ഫെറി ടെര്‍മിനല്‍ + ഫെറി ടെര്‍മിനല്‍ ലൈറ്റ്ഹൗസ് - വാടക സൈക്കിള്‍ + വാടക സൈക്കിള്‍ സൈക്കിള്‍ പാര്‍ക്കിങ്ങ് - എയര്‍പോര്‍ട്ട് + എയര്‍പോര്‍ട്ട് കേബിള്‍ കാര്‍ ടണല്‍ പാലം - സ്പീഡ് ക്യാമറ + സ്പീഡ് ക്യാമറ സര്‍ക്കിള്‍ ജംഗ്ഷന്‍ ജംഗ്ഷന്‍ വിശ്റമ സ്ഥലം - കിണര്‍ + കിണര്‍ പൈപ്പ്(അഗ്നിശമനി) ജലശേഖരണി ജലശുദ്ദീകരണം @@ -290,7 +288,7 @@ പവര്‍ടവര്‍ ഇലക്ട്രിക് പോസ്റ്റ് - പോസ്റ്റ് ഓഫീസ് + പോസ്റ്റ് ഓഫീസ് പോസ്റ്റ് ബോക്സ് ടെലിഫോണ്‍ കമ്മ്യൂണിക്കേഷന്‍ ടവര്‍ @@ -300,9 +298,9 @@ ലൈറ്റിങ്ങ് ടവര്‍ ടെലിഫോണ്‍ എക്സേന്ജ് - റീസൈക്ക്ളിങ്ങ് + റീസൈക്ക്ളിങ്ങ് - "റീസൈക്ക്ളിങ്ങ് സെന്റര്‍" + "റീസൈക്ക്ളിങ്ങ് സെന്റര്‍" കണ്‍ട്ടെയിനര്‍ "ഗ്ളാസ് റീസൈക്ക്ളിങ്ങ്" "റീസൈക്ക്ളിങ്ങ് (പേപ്പര്‍)" @@ -368,7 +366,7 @@ കൃഷിത്തോട്ടം ജനവാസ സ്ഥലം - ഫാര്‍മസി + ഫാര്‍മസി ആശുപത്രി ഡോക്ടര്‍ ക്ലിനിക്ക് @@ -380,8 +378,7 @@ അല്ടെര്‍നേട്ടിവ് മെഡിസിന്‍ ഓഡിയോളജിസ്ട് രക്ത ബാങ്ക് - മെഡിക്കല്‍ സെന്റര്‍ - പ്രസവശുശ്രൂഷിക + പ്രസവശുശ്രൂഷിക ഒക്ക്യുപ്പേഷണല്‍ തെറാപ്പിസ്റ്റ് കണ്ണ് ഡോക്ടര്‍ ഫിസിയോതെറാപ്പിസ്റ്റ് @@ -392,7 +389,7 @@ മെഡിക്കല്‍ ഫസിലിറ്റി ശിശുരോഗവിദഗ്ദന്‍ - കമ്പനി + കമ്പനി ഇന്ഷുറന്‍സ് എസ്റ്റെറ്റ് ഏജന്റ് അഭിഭാഷകന്‍ @@ -416,7 +413,7 @@ ഫൗണ്ടേഷന്‍ ഓഫീസ് നികുതി വിദഗ്ദന്‍ - സ്ടേഡിയം + സ്ടേഡിയം സ്പോര്‍ട്സ് സെന്റര്‍ ഗോള്‍ഫ് കോര്‍സ് ഐസ് റിംഗ് @@ -479,7 +476,7 @@ ടോബൊഗ്ഗാന്‍ വോളിബോള്‍ - മ്യൂസിയം + മ്യൂസിയം സ്മാരകം കലാസൃഷ്ടി ആര്ക്കിയോളജിക്കല്‍ സൈറ്റ് @@ -500,7 +497,7 @@ അഖ്യേറിയം തീം പാര്‍ക്ക് - ടൂറിസ്റ്റ് അട്രാക്ഷന്‍ + ടൂറിസ്റ്റ് അട്രാക്ഷന്‍ ടൂറിസ്റ്റിക് ഓബ്ജെക്ട് അമ്യൂസ്മെന്റ് റൈഡ് മൃഗങ്ങള്‍ @@ -514,7 +511,7 @@ കളിപ്പാട്ട തീവണ്ടി വാട്ടര്‍ സ്ലൈഡ് - ലോഡ്ജ് + ലോഡ്ജ് ഹോട്ടല്‍ ഗസ്റ്റ് ഹൗസ് ഹോസ്റ്റെല്‍ @@ -527,7 +524,7 @@ ടെന്റ് നായാട്ട് ഗൃഹം - ആരാധനാലയം + ആരാധനാലയം ക്രിസ്ട്യന്‍ ജൂതമതം ഇസ്ളാം @@ -547,7 +544,7 @@ സൗരാഷ്ട്രമതം - കത്തോലിക്ക വിഭാഗം + കത്തോലിക്ക വിഭാഗം ബാപറ്റിസ്റ്റ് റൊമന്‍ കാത്തലിക്ക് ഓര്‍ത്ത്ഡോക്സ് @@ -606,7 +603,7 @@ മാരോണിറ്റ് മഹായാന - വൈഫൈ + വൈഫൈ ഇന്റര്‍നെറ്റ് ടെര്‍മിനല്‍ ഇന്റര്‍നെറ്റ് (ഇതര്‍നെറ്റ്‌) ഇന്റര്‍നെറ്റ് (പബ്ളിക്ക്) @@ -614,7 +611,7 @@ ഇന്റെര്‍നെറ്റ് (ഉണ്ട്) ഇന്റെര്‍നെറ്റ് (ഇല്ല) - മഠം + മഠം മതസ്ഥാപനം കുരിശ് കുരിശുപള്ളി @@ -652,12 +649,12 @@ കാര്‍ റീസൈക്ക്ളിങ്ങ് റീസൈക്ക്ളിങ്ങ്(സൈക്കിള്‍) - ലാന്റ് ഫില്‍ + ലാന്റ് ഫില്‍ "റീസൈക്ക്ളിങ്ങ് (അണു മാലിന്യയങ്ങള്‍)" മാലിന്യ സംസ്കരണം ചവറ്റുകുട്ട - വ്യാവസായിക മേഖല + വ്യാവസായിക മേഖല ഖനി മുന്തിരിത്തോട്ടം ഫലോദ്യാനം @@ -667,9 +664,7 @@ പുല്‍ത്തകിടി തീവണ്ടിപ്പാത ബെയ്സിന്‍ - സംരക്ഷിത ഭൂമി - - കനാല്‍ + കനാല്‍ കടല്‍പ്പാലം സര്‍വേയിലന്‍സ് നിരീക്ഷണാലയം @@ -689,7 +684,7 @@ പുകവലി അതിനായുള്ള റൂമില്‍ മാത്ര‌ം പുകവലിക്കായി - ടോള്‍ + ടോള്‍ "ടോളില്ല " എച്ച് ജി വി ടോള്‍ ആണ് @@ -698,9 +693,9 @@ "ഇല്ല " നടന്നു ക്രോസ് ചെയ്യാവുന്ന സമയം മാത്രം - റെസ്ക്യൂ സ്ടേ‌ഷന്‍ + റെസ്ക്യൂ സ്ടേ‌ഷന്‍ - സര്‍വീസ് ഏരിയ + സര്‍വീസ് ഏരിയ ചെറിയ റൗണ്ടാന റയില്‍വെ ക്രോ‌സിങ്ങ് റയില്‍വെ ക്രോ‌സിങ്ങ് @@ -709,7 +704,7 @@ പോതുവിശ്ര‌മമേഖല ഉദ്യാനം - തരിശുഭൂമി + തരിശുഭൂമി പുല്ല് പുല്മേട് കുറ്റിചെടികള്‍ @@ -717,14 +712,14 @@ മരംമുറി മണല്‍ - വിന്റ്ഫാള്‍ + വിന്റ്ഫാള്‍ ഉണക്കമരം - ക്രോ‌സിങ്ങ് സ്ഥലം + ക്രോ‌സിങ്ങ് സ്ഥലം നില ആര്‍ ടി എസ് എ അളവ് - എളുപ്പം + എളുപ്പം സ്കിട്രേ‌യില്‍ :ഇന്റര്‍മീഡിയറ്റ് അഡ്വാന്‍സ്ഡ് ഫ്രെ‌ഷര്‍ (നോവീസ്) @@ -738,18 +733,18 @@ "ഇല്ല " സ്കിട്രേ‌യില്‍ : ബംപുകള്‍ - ഉദ്യാനം (ഗാര്‍ഹികം) + ഉദ്യാനം (ഗാര്‍ഹികം) ഉദ്യാനം(പോതു) ഉദ്യാനം (പ്രൈ‌വറ്റ്) ബോട്ടാണിക്കല്‍ ഗാര്‍ഡന്‍ - അടുക്കളോദ്യാനം + അടുക്കളോദ്യാനം ഉദ്യാനം (റോസ്) ഉദ്യാനം (ഫ്രെ‌ന്‍ജ് സ്ടൈല്‍) ഉദ്യാനം (ഇംഗ്ളീഷ് സ്ടൈല്‍) ഉദ്യാനം (ജാപനീസ് സ്ടൈല്‍) - ഇടം + ഇടം അതെ അംഗവൈകല്യമുള്ളവര്‍ക്ക് പ്ര‌ത്യേകസ്ഥലമില്ല അംഗവൈകല്യമുള്ളവര്‍ക്ക് പ്ര‌ത്യേകസ്ഥലം @@ -788,7 +783,7 @@ കുടിവെള്ളം ബാര്‍ബിക്യൂ - കൃഷിയന്ത്ര‌ങ്ങള്‍ + കൃഷിയന്ത്ര‌ങ്ങള്‍ തേനീച്ചവളര്‍ത്തുലകാരന്‍ കൊല്ലപ്പണിക്കാരന്‍ ബ്രൂ‌വറി @@ -824,15 +819,14 @@ ശ്മശാനം ഇന്റര്‍നെറ്റ് കഫെ - ബാങ്ക് - എ ടി എം - ക്യാഷ് കൗണ്ടര്‍ + ബാങ്ക് + ക്യാഷ് കൗണ്ടര്‍ അക്കൗണ്ടന്റ് ഗുഹാകവാടം രക്ഷിതാക്കള്‍ക്കു പ്രെ‌ത്യേകസ്ഥലമില്ല രക്ഷിതാക്കള്‍ക്കുള്ള പ്രെ‌ത്യേകസ്ഥലം - ക്യാബിന്‍/കസേര/കാര്‍ ഇടങ്ങള്‍ + ക്യാബിന്‍/കസേര/കാര്‍ ഇടങ്ങള്‍ കപ്പാസിറ്റി (മണിക്കൂര്‍) ശരാശരി യാത്രാ‌ സമയം എന്റ്രീ‌ @@ -842,11 +836,11 @@ എക്സിറ്റ് എന്റ്രി‌യും എക്സിറ്റും - ലോഡ്ജ് + ലോഡ്ജ് - ഹോട്ടല്‍ (ലവ്) + ഹോട്ടല്‍ (ലവ്) - "നാണയം സ്വീകരിക്കില്ല " + "നാണയം സ്വീകരിക്കില്ല " ഇനം ഇന്ധന കാര്‍ഡുകള്‍ ഇന്റെര്‍നെറ്റ് ഉപയോഗിക്കാനുള്ള വിധം @@ -912,7 +906,7 @@ പ്ര‌തലം നഗ്നത -ലിഫ്ട് (ചെയര്‍) + ലിഫ്ട് (ചെയര്‍) ലിഫ്ട്(റ്റി-ബാര്‍) ജെ-ബാര്‍ ലിഫ്ട് ലിഫ്ട്(പ്ളാറ്റര്‍) @@ -923,7 +917,7 @@ കാര്‍പെറ്റ് ലിഫ്ട് ലിഫ്ട് (ഏരിയല്‍ പൈലോണ്‍) - ജലയാനം തിരിക്കാനുള്ള സ്ഥലം + ജലയാനം തിരിക്കാനുള്ള സ്ഥലം മില്ല് (വാട്ടര്‍) വര്‍ക്സ് "മൈനിലേ കുത്തനെയുള്ള തുരങ്കം " @@ -939,14 +933,14 @@ ഭൂഗര്‍ഭ നിലവറ സംഭരണ ടാങ്ക് - " കോളേജ്" + " കോളേജ്" ഡ്രൈ‌വിങ്ങ് സ്കൂള്‍ കിന്റെര്‍ഗാര്‍ടെന്‍ സ്കൂള്‍ ട്രെയിനിങ്ങ് ഫസിലിറ്റി സര്‍വകലാശാല - സോഷ്യല്‍ ഫസിലിറ്റി + സോഷ്യല്‍ ഫസിലിറ്റി സിവില്‍ ഓഫീസ് ജയില്‍ രജിസ്ട്രാ‌ര്‍ ഓഫീസ് @@ -996,7 +990,7 @@ "ടൂറിസം ക്ലബ് " "ചാരിറ്റി ക്ലബ് " - "സ്കിട്രേ‌യില്‍ " + "സ്കിട്രേ‌യില്‍ " സ്കിട്രേ‌യില്‍ (മലചെരുവില്‍) സ്കിട്രേ‌യില്‍ (നോര്‍ഡിക്) സ്കിട്രേ‌യില്‍ (സ്കിടൂര്‍) @@ -1008,7 +1002,7 @@ ഐസ് റിംഗ് സ്കി റെന്റല്‍ - വായനശാല + വായനശാല ആര്‍ട്സ് സെന്റര്‍ കാസിനൊ കമ്മ്യൂണിറ്റി സെന്റര്‍ @@ -1017,7 +1011,7 @@ സര്‍ക്കസ് "കുതിര സവാരിക്കുള്ള പാത " - കൊട്ട നിര്‍മാതാവ് + കൊട്ട നിര്‍മാതാവ് ബോട്ട് നിര്‍മാതാവ് കേറ്റെറര്‍ ഏസി,ഹീറ്റിങ്ങ്, ഫാനുകള്‍ @@ -1040,7 +1034,7 @@ അപ് ഹോള്‍സ്റ്റര്‍ ജനല്‍ നിര്‍മ്മാണം - കര്‍മ്മി + കര്‍മ്മി കമ്പ്യൂട്ടര്‍ മാനിക്യൂര്‍ മസ്സാജ് സലോണ്‍ @@ -1052,7 +1046,7 @@ ഫോറിന്‍ എക്സേഞ്ച് ബിട്കോയിന്‍ പെയ്മെന്റ് - കൊടുമുടി + കൊടുമുടി ജീനി അഗ്നിപര്‍വതം അഗ്നിപര്‍വ്വതമുഖം @@ -1077,7 +1071,7 @@ ദീപ് ചെറുദ്വീപ് - ആങ്കറേജ് + ആങ്കറേജ് ആങ്കര്‍ ബെര്‍ത്ത് ബീക്കണ്‍ കാര്‍ഡിനല്‍ ബീക്കണ്‍ @@ -1098,7 +1092,7 @@ സീമാര്‍ക്ക് (റോക്ക്) സീമാര്‍ക്ക്:കപ്പല്‍ചേദം - മിലിട്ടറി ഏരിയ + മിലിട്ടറി ഏരിയ മിലിട്ടറി എയര്‍ഫീല്‍ഡ് മിലിട്ടറി ബങ്കര്‍ ബാരക്കുകള്‍ @@ -1108,7 +1102,7 @@ മിലിട്ടറി നാവികത്താവളം അണുസ്പോടനമേഖല - വിക്കിപീഡിയ + വിക്കിപീഡിയ ഇംഗ്ലീഷ് വിക്കി അറബിക് വിക്കി ബെലാറസിയന്‍ വിക്കി @@ -1157,7 +1151,7 @@ വൊളാപ്ക് വിക്കി ചൈനീസ് വിക്കി - മാര്‍ഗതടസം(ബോള്ളാര്‍ഡ്) + മാര്‍ഗതടസം(ബോള്ളാര്‍ഡ്) സൈക്കിള്‍ തടസം മോട്ടോര്‍സൈക്കിള്‍ ബാരിയര്‍ "ബ്ലോക്ക് " @@ -1181,9 +1175,9 @@ അകത്തേക്കുള്ള വഴി "പുറത്തേക്കുള്ള വഴി " - ഹൈവേ ക്രോ‌സിങ്ങ് + ഹൈവേ ക്രോ‌സിങ്ങ് - ഇന്റെര്‍നാഷണല്‍ സൈക്ക്ളിങ്ങ് നെറ്റ്വര്‍ക്ക് നോഡ് + ഇന്റെര്‍നാഷണല്‍ സൈക്ക്ളിങ്ങ് നെറ്റ്വര്‍ക്ക് നോഡ് നാഷണല്‍ സൈക്ക്ളിങ്ങ് നെറ്റ്വര്‍ക്ക് നോഡ് റീജിയണല്‍ സൈക്ക്ളിങ്ങ് നെറ്റ്വര്‍ക്ക് നോഡ് ലോക്കല്‍ സൈക്ക്ളിങ്ങ് നെറ്റ്വര്‍ക്ക് നോഡ് @@ -1192,13 +1186,13 @@ "റീജിയണല്‍ ഹൈക്കിങ്ങ് നെറ്റ്വര്‍ക്ക് നോഡ്" ലോക്കല്‍ ഹൈക്കിങ്ങ് നെറ്റ്വര്‍ക്ക് നോഡ് - "ഇന്റെര്‍നാഷണല്‍ ഹൈക്കിങ്ങ് റൂട്ട് " + "ഇന്റെര്‍നാഷണല്‍ ഹൈക്കിങ്ങ് റൂട്ട് " "നാഷണല്‍ ഹൈക്കിങ്ങ് റൂട്ട് " റീജിയണല്‍ ഹൈക്കിങ്ങ് റൂട്ട് "ലോക്കല്‍ ഹൈക്കിങ്ങ് റൂട്ട് " ഹൈക്കിങ്ങ് റൂട്ട് റെഫറന്‍സ് - തുറക്കുന്ന സമയം + തുറക്കുന്ന സമയം കളക്ഷന്‍ ടൈംസ് വിവരണം ഫോണ്‍ @@ -1222,7 +1216,7 @@ "ഉപേക്ഷിക്കപ്പെട്ട വസ്തു" "ഉപയോഗമില്ലാത്ത " - " പ്രവര്‍ത്തകന്‍" + " പ്രവര്‍ത്തകന്‍" ബ്രാന്റ് ഉണ്ട് "ഇല്ല " @@ -1248,7 +1242,7 @@ പരിമിതം മൊത്തക്കച്ചവടം - സ്വകാര്യ വഴി + സ്വകാര്യ വഴി തടസം ലക്ഷ്യസ്ഥാനത്തേക്കുള്ള വഴി പെര്‍മിസ്സിവ് @@ -1256,7 +1250,7 @@ സെര്‍വീസ് ആക്സസ് കൃഷിയാവശ്യങ്ങള്‍ക്ക് - കണ്ടന്റ് : സിലേജ് + കണ്ടന്റ് : സിലേജ് കണ്ടന്റ് : ജലം കണ്ടന്റ് : സ്ളറി കണ്ടന്റ് : എണ്ണ @@ -1273,30 +1267,30 @@ കണ്ടന്റ് : ഉപ്പ് കണ്ടന്റ് : ഗ്രെയ്ന്‍ - അനുവദനീയം + അനുവദനീയം നിരോധിത‌ം നിര്‍ബന്ധിതം പതിവ് ആകാം - വീട്നിര്‍മ്മാണസാമഗ്രികള്‍ + വീട്നിര്‍മ്മാണസാമഗ്രികള്‍ പ്ളംബിങ്ങ് സാമഗ്രികള്‍ തടി സാമഗ്രികള്‍ കൃഷിസാധനഗങ്ങള്‍ ടൈല്‍ സപ്ളൈസ് - ജനസമൂഹം + ജനസമൂഹം ബേസ്മെന്റ് ബഹുനില - ആങ്കര്‍ + ആങ്കര്‍ സൈക്കിള്‍ സ്ടാന്റ് പ്രെത്യേക കെട്ടിടം ഷെഡ് ബൊല്ലാര്‍ഡ് ഇന്‍ഫോര്‍മല്‍ - "ഇടകലര്‍ന്ന " + "ഇടകലര്‍ന്ന " ഇനം ഇനം ഒലീവ് @@ -1323,10 +1317,10 @@ കാപ്പിച്ചെടി പൊമൊഗ്രാനെറ്റ് - നാഗരികം + നാഗരികം ഗ്രാമീണം - നിയന്ത്രണം: സ്ടോപ് ലൈറ്റ് + നിയന്ത്രണം: സ്ടോപ് ലൈറ്റ് നിയന്ത്രണം: പരമാവധി വേഗം നിയന്ത്രണം: പരമാവധി ഉയരം നിയന്ത്രണം: കുറഞ്ഞ ദൂരം @@ -1334,7 +1328,7 @@ നിയന്ത്രണം: വഴി നിയന്ത്രണം: ടോള്‍ - അനിമല്‍ ഷെല്‍ട്ടര്‍ + അനിമല്‍ ഷെല്‍ട്ടര്‍ ഷെല്ട്ടര്‍:നായ ഷെല്ട്ടര്‍:പൂച്ച "ഷെല്ട്ട: പട്ടി, പൂച്ച " @@ -1342,9 +1336,9 @@ "ബാക്ക് റെസ്ട് : ഉണ്ട് " "ബാക്ക് റെസ്ട് :ഇല്ല " - "ഇടവിട്ടുള്ള " + "ഇടവിട്ടുള്ള " - കെട്ടിടം + കെട്ടിടം "ഊര്‍ജ്ജ ഉറവിടം:കല്ക്കരി " ഊര്‍ജ്ജ ഉറവിടം:ഗ്യാസ് ഊര്‍ജ്ജ ഉറവിടം: അണുശക്തി @@ -1355,25 +1349,25 @@ ഊര്‍ജ്ജ ഉറവിടം:എണ്ണ ഊര്‍ജ്ജ ഉറവിടം: ഡീസല്‍ - അന്താരാഷ്ട്ര നാമം + അന്താരാഷ്ട്ര നാമം നാമം(ദേശീയം) _പേര്:(റീജിയണല്‍ പ്രാദേശിക നാമം പഴയ പേര് ഇതരനാമം - മാനുവല്‍ + മാനുവല്‍ പവേര്‍ഡ് "പമ്പില്ല " ഉണ്ട് - മിനറ + മിനറ ചെളി സള്‍ഫ്യൂരിക് - ഭക്ഷണമെനു + ഭക്ഷണമെനു - ഗൈഡ് പോസ്ട് + ഗൈഡ് പോസ്ട് ബോര്‍ഡ് മാപ്പ് "ഓഫീസ് " @@ -1468,7 +1462,7 @@ ഇന്റെര്‍നെറ്റ്- പേയ്ഡ് ഇന്റെര്‍നെറ്റ് - ഫ്രീ - വെജിറ്റെറിയന്‍ ഭക്ഷണം മാത്ര‌ം + വെജിറ്റെറിയന്‍ ഭക്ഷണം മാത്ര‌ം വെജിറ്റെറിയന്‍ ഭക്ഷണം വെജിറ്റെറിയന്‍ ഭക്ഷണം ഇല്ല വെജിറ്റെറിയന്‍ ഭക്ഷണം : അല്പം @@ -1489,24 +1483,24 @@ "പാലുപയോഗിക്കാത്ത ഭക്ഷണം ഇല്ല " "മത്സ്യോത്പന്ന ഭക്ഷണം" - ആണ് + ആണ് ഡ്രൈവ് ഇന്‍ ഇല്ല ആണ് ഡ്രൈവ് ത്രൂ അല്ല - ബ്രൂ‌വറിയുടെ പേര് + ബ്രൂ‌വറിയുടെ പേര് മൈക്രോബ്രൂവറി മൈക്രോ‌ബ്രൂ‌വറി ഇല്ല - പാര്‍സല്‍ + പാര്‍സല്‍ പാര്‍സല്‍ ഇല്ല പാര്‍സല്‍ മാത്രം - വിതരണം + വിതരണം വിതരണം ഇല്ല വിതരണം മാത്രം - പുറത്ത് സീറ്റിങ്ങ്:ഉണ്ട് + പുറത്ത് സീറ്റിങ്ങ്:ഉണ്ട് "ഔട് ഡോര്‍ സീറ്റിങ്ങില്ല " ഔട്ട്ഡോര്‍ സീറ്റിങ്ങ്:ടെറസ്സ് നടപ്പാതയിലെ ഇരിപ്പിടങ്ങള്‍ @@ -1514,13 +1508,13 @@ ഉദ്യാനം പേഷിയൊയിലെ ഇരുപ്പിടങ്ങള്‍ - ഉണ്ട് + ഉണ്ട് - സെക്കന്റ് ഹാന്ഡ് സാധനങ്ങള്‍ + സെക്കന്റ് ഹാന്ഡ് സാധനങ്ങള്‍ "സെക്കന്റ് ഹാന്ഡ് സാധനങ്ങളില്ല " സെക്കന്റ് ഹാന്ഡ് സാധനങ്ങള്‍ മാത്രം - സ്പേയര്‍ പാര്‍ട്സ് + സ്പേയര്‍ പാര്‍ട്സ് ഡീലര്‍ റിപ്പയര്‍ റിപ്പയര്‍ ഇല്ല @@ -1535,10 +1529,10 @@ ബ്രഷുള്ളത് "കാര്‍ വാഷ് ഇല്ല " - വിമാന ഇന്ധനം നിറക്കുന്ന സ്ഥലം + വിമാന ഇന്ധനം നിറക്കുന്ന സ്ഥലം പൊതു കുളിയിടം - പുരുഷമ്മാര്‍ + പുരുഷമ്മാര്‍ "പുരുഷമ്മാര്‍ക്കു പ്രവേശനമില്ല " സ്ത്രീകള്‍ "സ്ത്രീകള്‍ക്ക് പ്രവേശനമില്ല " @@ -1553,13 +1547,13 @@ ടോയിലെറ്റ് : കമ്മ്യൂണിറ്റി പബ്ളിക് ടോയിലെറ്റ് - ഡയപ്പര്‍ ചേഞ്ച് ചെയ്യാനുള്ള മേശ + ഡയപ്പര്‍ ചേഞ്ച് ചെയ്യാനുള്ള മേശ ഡയപ്പര്‍ ചേഞ്ച് ചെയ്യാനുള്ള മേശ ഇല്ല ഡയപ്പര്‍ ചേഞ്ച് ചെയ്യാനുള്ള റൂം - "സമയ നിയന്ത്രിത പാര്‍ക്കിങ്ങ് " + "സമയ നിയന്ത്രിത പാര്‍ക്കിങ്ങ് " - പാര്‍ക്കിങ്ങ് ടിക്കറ്റ്സ് + പാര്‍ക്കിങ്ങ് ടിക്കറ്റ്സ് സിഗറെറ്റ് എക്സ്ക്രിമെന്റ് ബാഗ് പൊതു ഗതാഗത ടിക്കറ്റുകള്‍ @@ -1594,9 +1588,9 @@ ഐസ്ക്രീം സിം കാര്‍ഡ്സ് - ബ്രാഞ്ച് + ബ്രാഞ്ച് - യുദ്ധ സ്മാരകം + യുദ്ധ സ്മാരകം ഫലകം പ്രതിമ ശില @@ -1608,7 +1602,7 @@ മുദ്രണം ചരിത്രപ്രാധാന്യമുള്ള ഖനി - സംഗ്രഹം + സംഗ്രഹം ആന്റിമണി ആസ്ബെസ്ടോസ് ബരൈറ്റ് @@ -1659,7 +1653,7 @@ സിങ്ക് സിര്‍ക്കോണ്‍ - പുല്‍ത്തകിടി + പുല്‍ത്തകിടി "ചതുപ്പ് " "ഉപ്പ് വെള്ളം കയറുന്ന ചതുപ്പ് " കണ്ടല്‍വൃക്ഷം @@ -1667,21 +1661,21 @@ "ചതുപ്പ് " ചെളി - മണല്‍ + മണല്‍ ഷിങ്കിള്‍ പാറ - ചിമ്മെനി + ചിമ്മെനി പന സൈപ്രസ് പതാകമരം - ഉണ്ട് + ഉണ്ട് ബെഞ്ചില്ല ബാസ്കറ്റ് "ബാസ്കറ്റ് ഇല്ല " - പൊതു ഗതാഗത സംവിധാനം + പൊതു ഗതാഗത സംവിധാനം "പിക്നിക് " കാലവസ്ഥ ഷെഡ് @@ -1694,7 +1688,7 @@ ഷെല്ട്ടര്‍:ടെന്റ് "ഉപേക്ഷിക്കപ്പെട്ട ഷെല്‍ട്ടെര്‍ " - വൈ-ഫൈ + വൈ-ഫൈ ഇന്റര്‍നെറ്റ് ടെര്‍മിനല്‍ വയര്‍ഡ് ഇന്റര്‍നെറ്റ് (പബ്ളിക്ക്) @@ -1702,12 +1696,12 @@ "ഇന്റെര്‍നെറ്റ് ഇല്ല" "ഇന്റെര്‍നെറ്റ് സേവനം ഉണ്ട് " - പരമാവധി വീതി + പരമാവധി വീതി ഐ എ ടി എ കോഡ് ഐ സി എ ഒ കോഡ് എഫ് എ എ കോഡ് - - കലാസൃഷ്ടി: ശില്‍പം + + കലാസൃഷ്ടി: ശില്‍പം കലാസൃഷ്ടി:പ്രതിമ കലാസൃഷ്ടി: ചുവര്‍ച്ചിത്രം കലാസൃഷ്ടി: വാസ്തുവിദ്യ @@ -1721,11 +1715,11 @@ കലാസൃഷ്ടി:ഫലകം കലാസൃഷ്ടി: ജലധാരാ - വീതി + വീതി - ശില്പി + ശില്പി - വാസ്തുവിദ്യ: മോഡേണ്‍ + വാസ്തുവിദ്യ: മോഡേണ്‍ വാസ്തുവിദ്യ: സ്റ്റാലിനിസ്റ്റ് നീയൊക്ളാസിസം വാസ്തുവിദ്യ : എക്ലെടിക് വാസ്തുവിദ്യ : ന്യൂ ഓബ്ജെക്ടിവിറ്റി @@ -1745,7 +1739,7 @@ "വാസ്തുവിദ്യ : റിനായ്സെന്‍സ്" വാസ്തുവിദ്യ: റോമനെസ്ക്യു - വാട്ടര്‍ ടണല്‍ + വാട്ടര്‍ ടണല്‍ ടണല്‍ ടണല്‍ (നടവഴി) റെയില്‍വേ ടണല്‍ @@ -1776,10 +1770,10 @@ നീക്കാവുന്ന പാലം ഇനം : ട്രാന്‍സ്പോര്‍ട്ടര്‍ നീക്കാവുന്ന പാലം ഇനം : മടക്കാവുന്നത് - ലൈറ്റ് :ഉണ്ട് + ലൈറ്റ് :ഉണ്ട് "ലൈറ്റ് : ഇല്ല " - പ്ര‌തലം : പരുക്കന്‍ + പ്ര‌തലം : പരുക്കന്‍ "പ്ര‌തലം : ടാര്‍ ചെയ്തത് " "പ്ര‌തലം : ടാര്‍ ചെയ്തത് " പ്ര‌തലം : കോണ്‍ക്രീറ്റ് @@ -1803,7 +1797,7 @@ "പ്ര‌തലം:ഉപ്പ് " "പ്ര‌തലം:മഞ്ഞ് " - ബസ് + ബസ് ഷെയര്‍ ടാക്സി ട്രോളിബസ് "ട്രാം " @@ -1813,13 +1807,13 @@ കേബിള്‍കാര്‍ "ഫെറി " - തീവണ്ടിപ്പാത + തീവണ്ടിപ്പാത - "ചരിത്രപ്രാധാന്യമുള്ള വസ്തു " + "ചരിത്രപ്രാധാന്യമുള്ള വസ്തു " "സര്‍വേയിലന്‍സ് : ഉണ്ട് " ഷോപ്പിലുള്ളത് - റീടെയില്‍ + റീടെയില്‍ സൈക്കിള്‍ വില്‍പനയില്ല സൈക്കിള്‍ റിപ്പെയര്‍ "സൈക്കിള്‍ റിപ്പെയര്‍ ഇല്ല " @@ -1836,9 +1830,9 @@ സെക്കന്റ് ഹാന്റ് സൈക്കിള്‍ വില്‍പന "സെക്കന്റ് ഹാന്റ് സൈക്കിള്‍ വില്‍പന ഇല്ല " - വന്യമൃഗനിരീഷണസ്ഥലം + വന്യമൃഗനിരീഷണസ്ഥലം - ഭാക്ഷ പരിശീലനം + ഭാക്ഷ പരിശീലനം സംഗീതപരിശീലനം നൃത്തപരിശീലനം കായിക പരിശീലനം @@ -1850,9 +1844,9 @@ വ്യേമയാനപരിശീലനം ഹെയര്‍ ഡ്രെസ്സിങ്ങ് പരിശീലനം - സ്മാരകസൗധമായ വസ്തു + സ്മാരകസൗധമായ വസ്തു - തരം : എണ്ണക്കമ്പനി + തരം : എണ്ണക്കമ്പനി തരം:കിണര്‍ തരം:ഫാക്ടറി "തരം: ഗ്യാസ് ഇന്‍ഡസ്ട്രി " @@ -1869,7 +1863,7 @@ "തരം : പോര്‍ട്ട് " തരം: സംഭരണശാല - "കുറിപ്പ് " + "കുറിപ്പ് " വാട്ടറിങ്ങ് പ്ളേസ് മൃഗങ്ങളുടെ ബോര്‍ഡിങ്ങ് "നായ ബോര്‍ഡിങ്ങ് " @@ -1877,16 +1871,16 @@ "പൂച്ച, നായ ബോര്‍ഡിങ്ങ് " കുതിര ബോര്‍ഡിങ്ങ് - "ചരിത്രപ്രധാനമായ വിമാനം" + "ചരിത്രപ്രധാനമായ വിമാനം" - തേന്‍ കട + തേന്‍ കട - എലിവേറ്റര്‍ + എലിവേറ്റര്‍ "എലിവേറ്റര്‍ ഇല്ല " - സാങ്കേതിക സ്മാരകസൗധം + സാങ്കേതിക സ്മാരകസൗധം - "ക്യാമ്പിങ്ങ് ഓഫീസ്" + "ക്യാമ്പിങ്ങ് ഓഫീസ്" വിമാനത്താവള മോഡല്‍ ഗൈഡ് ഓഫീസ് ഓട്ടോണോമസ് ഗവണ്മെന്റ് ഇന്സ്ടിറ്റൂഷന്‍ @@ -1897,21 +1891,21 @@ പാരിഷ് ഓഫീസ് പബ്ളിഷിങ്ങ് ഓഫീസ് - വ്യോമ ഇന്ധനം 91 അണ്‍ലെഡഡ് + വ്യോമ ഇന്ധനം 91 അണ്‍ലെഡഡ് വ്യോമ ഇന്ധനം 100 ലോലെഡ് പെട്രോള്‍ വ്യോമ ഇന്ധനം ജെറ്റ് എ-1 അഡ്ബ്ളൂ ഇന്ധനം - ഇന്ധനം: വിറക് + ഇന്ധനം: വിറക് ഇന്ധനം: ചാര്‍ക്കോള്‍ ഇന്ധനം : കല്ക്കരി - "തെരുവ് വിളക്ക് " + "തെരുവ് വിളക്ക് " - എസ്കേപ് ലൈന്‍ + എസ്കേപ് ലൈന്‍ - "കൃഷി : നെല്ല് " + "കൃഷി : നെല്ല് " വിള: പുല്ല് കൃഷി : ചോളം കൃഷി:സെറിയല്‍ @@ -1937,11 +1931,11 @@ കൃഷി : അസ്പരാഗസ് കൃഷി: പൂക്കള്‍ - സര്‍വേയിലന്‍സ് : ഇന്‍ഡോര്‍ + സര്‍വേയിലന്‍സ് : ഇന്‍ഡോര്‍ സര്‍വേയിലന്‍സ് : ഔട്ട്ഡോര്‍ "സര്‍വേയിലന്‍സ് : പബ്ളിക് " - സ്ത്രീ‌കളുടെ + സ്ത്രീ‌കളുടെ "അടിവസ്ത്രങ്ങള്‍ " പുരുഷന്‍മാരുടെ വിവാഹവസ്ത്രങ്ങള്‍ @@ -1965,15 +1959,15 @@ നൃത്തവേഷങ്ങള്‍ മിലിട്ടറി - ചരിത്രനേട്ടം + ചരിത്രനേട്ടം - കുട്ടികളുടെ + കുട്ടികളുടെ സ്ത്രീ‌കളുടെ "സ്പോര്‍ട്സ് " പുരുഷന്‍മാരുടെ "ഓര്‍ത്തോപീഡിക് " - ഹിസ്ടോറിക്ക് മാനര്‍ + ഹിസ്ടോറിക്ക് മാനര്‍ "പ്രൗഡഗംഭീരമായ കോട്ട " സുരക്ഷ കോട്ട പ്രതിരോധ കോട്ട @@ -1983,16 +1977,16 @@ കോട്ട : കാസ്ട്രം കോട്ട :ഷിറോ - തായി + തായി സെക്സ്വല്‍ ചൈനീസ് മസ്സാജ് സേവനങ്ങള്‍ ചികിത്സ - സോന സേവനം + സോന സേവനം സൊളെരിയം സേവനം - അനുവദനീയം + അനുവദനീയം ടെന്റ് അനുവദനീയമല്ല തീ അനുവദനീയം തീ അനുവദനീയമല്ല @@ -2016,23 +2010,22 @@ "ഇമ്പ്രോപ്ടു അല്ല " സാനിട്ടറി ഡമ്പ് സ്ടേഷന്‍ "സാനിട്ടറി ഡമ്പ് സ്ടേഷന്‍ അല്ല " - സാനിട്ടറി ഡമ്പ് സ്ടേഷന്‍ : ഇടപാടുകാര്‍ക്ക് മാത്രം - ഉണ്ട് + ഉണ്ട് "പവര്‍ സപ്ളൈ ഇല്ല " പവര്‍ സപ്ളൈ (സോക്കറ്റ്): CEE 17 ബ്ളൂ സോക്കറ്റ് : CEE 7/4 ( 3 പിന്‍ ജര്‍മന്‍) സോക്കറ്റ് : CEE 7/4 ( 3 പിന്‍ ഫ്രെഞ്ച് ) സോക്കറ്റ് : NEMA 5-15 ( 3 പിന്‍ അമേരിക്കന്‍) - ടെന്റുകളുടെ കൂടിയ എണ്ണം + ടെന്റുകളുടെ കൂടിയ എണ്ണം കാരവാനുകളുടെ കൂടിയ എണ്ണം നായകള്‍ അനുവദനീയം "നായകള്‍ അനുവദനീയമല്ല " - അഭയാര്‍ത്ഥികള്‍ക്കുള്ള സൗകര്യങ്ങള്‍ + അഭയാര്‍ത്ഥികള്‍ക്കുള്ള സൗകര്യങ്ങള്‍ "അഭയാര്‍ത്ഥികള്‍ പാടില്ല " - സാമൂഹികസൗകര്യം: ഗ്രൂപ് ഹോം + സാമൂഹികസൗകര്യം: ഗ്രൂപ് ഹോം അസിസ്റ്റ്ഡ് ലിവിങ്ങ് ഔട്ട് റീച്ച് ഭക്ഷണവിതരണം @@ -2041,7 +2034,7 @@ പണിശാല ഡേ കെയര്‍ - വൃദ്ധര്‍ + വൃദ്ധര്‍ കുട്ടികള്‍ അനാഥര്‍ അംഗപരിമിതര്‍ @@ -2055,7 +2048,7 @@ രോഗികള്‍ കുട്ടികള്‍, യുവാക്കള്‍ - ഫില്‍ഹാര്‍മോണിക് ഇനം + ഫില്‍ഹാര്‍മോണിക് ഇനം സംഗീതമയമായ നാടകം ഒപെറാ @@ -2067,7 +2060,7 @@ ബാലറ്റ് നിഴല്‍ക്കൂത്ത് - "ബാന്റ് സ്ടാന്റ് " + "ബാന്റ് സ്ടാന്റ് " ചൂള ഉല്‍പന്നം: ഇഷ്ടിക ഉല്‍പന്നം: കുമ്മായം @@ -2077,11 +2070,11 @@ ഉല്‍പന്നം: ചാര്‍ക്കോള്‍ "ഉല്‍പന്നം: ഇറച്ചി " - വീല്‍ചെയര്‍ ഉപയോക്താക്കള്‍ക്കുള്ള വിവരങ്ങള്‍ + വീല്‍ചെയര്‍ ഉപയോക്താക്കള്‍ക്കുള്ള വിവരങ്ങള്‍ അന്ധര്‍ക്കുള്ള വിവരങ്ങള്‍ കേള്‍വിയില്ലാവര്‍ക്കുള്ള വിവരണം - സ്ടേയര്‍ + സ്ടേയര്‍ "കൈതാങ്ങി ഉണ്ട് " "കൈതാങ്ങി ഇല്ല " "റാംപ് ഉണ്ട് " @@ -2099,13 +2092,13 @@ "ക്രമമല്ലാത്ത പടികള്‍" " പരുപരുത്ത പടികള്‍" - കെയണ്‍ + കെയണ്‍ - ഫസ്സെഡ് ഡെക്കറേഷന്‍ + ഫസ്സെഡ് ഡെക്കറേഷന്‍ ഡീഫിബ്രില്ലേറ്റര്‍ ഡീഫിബ്രില്ലേറ്റര്‍ ഉണ്ട് - തരം: യുദ്ധക്കല്ലറ + തരം: യുദ്ധക്കല്ലറ "തരം: മണ്‍കൂന " തരം: ഗുഹ തരം: ഭൂഗര്‍ഭം @@ -2116,7 +2109,7 @@ തരം:നിലവറ തരം: പിരമിഡ് - പുരാതന റോമന്‍ നാഗരികത (753 BC – 284 AD) + പുരാതന റോമന്‍ നാഗരികത (753 BC – 284 AD) "നുറജിക് നാഗരികത (18th c. BC – 2nd c. AD)" എട്രുസ്കാന്‍ നാഗരികത (12th – 6th c. BC) "ചരിത്രാതീതകാലത്തുള്ള നാഗരികത" @@ -2137,16 +2130,16 @@ മിനോവന്‍ നാഗരികത ടിയാഹുവാനകോട്ടാ നാഗരികത - മൃഗപരിശീലനം + മൃഗപരിശീലനം ശ്വാനന്‍ കുതിര - കുതിര അനുവദനീയം + കുതിര അനുവദനീയം "കുതിര അനുവദനീയമല്ല " മൃഗങ്ങള്‍ അനുവദനീയം "മൃഗങ്ങള്‍ അനുവദനീയമല്ല " - "ചരിത്രകാലഘട്ടം: നുറാജിക് " + "ചരിത്രകാലഘട്ടം: നുറാജിക് " ചരിത്രകാലഘട്ടം: ശിലായുഗം/ലോഹയുഗം ചരിത്രകാലഘട്ടം: പിച്ചളയുഗം ചരിത്രകാലഘട്ടം: പ്രിന്സിപേറ്റ് (27 BC-284 AD) @@ -2180,16 +2173,16 @@ ചരിത്രകാലഘട്ടം:ക്ളാസിക്ക(എപോക് IV, 374 AC – 900 AC)) ചരിത്രകാലഘട്ടം:ഇമ്പീരിയല്‍ (എപോക് V, 900 AC – 1200 AC) - ചരിത്രയുഗം:രണ്ടാം ശിലായുഗം (2.6 million years – 10000 BP) + ചരിത്രയുഗം:രണ്ടാം ശിലായുഗം (2.6 million years – 10000 BP) ചരിത്രയുഗം:മധ്യശിലായുഗം (15000 വര്‍ഷം മുമ്പ് മുതല്‍) ചരിത്രയുഗം:ശിലായുഗാന്ത്യം(10000 വര്‍ഷം മുമ്പ് മുതല്‍) ചരിത്രയുഗം:ചെമ്പ് യുഗം (4000-3000 BC.) - ചരിത്രപ്രാധാന്യമുള്ള ശില + ചരിത്രപ്രാധാന്യമുള്ള ശില തരം :അനുരജ്ഞന കുരിശ് തരം: രാജമുദ്ര - മെറ്റീരിയല്‍ : തടി + മെറ്റീരിയല്‍ : തടി മെറ്റീരിയല്‍ : ലോഹം മെറ്റീരിയല്‍ : കോണ്‍ക്രീറ്റ് (റീ ഇന്‍ഫോര്‍സ്ഡ്) "മെറ്റീരിയല്‍ : കോണ്‍ക്രീറ്റ് " @@ -2209,7 +2202,7 @@ മെറ്റീരിയല്‍ : മാര്‍ബിള്‍ മെറ്റീരിയല്‍ :അലുമിനിയം - "പുരതന പാറകൊണ്ടുള്ള നിര്‍മ്മിതി " + "പുരതന പാറകൊണ്ടുള്ള നിര്‍മ്മിതി " "മണ്‍കൂന " മതില്‍ സെറ്റില്‍മെന്റ് @@ -2225,38 +2218,38 @@ സിനഗോഗ് കുരിശുപള്ളി - കുരിശ് + കുരിശ് മലമുകളിലെ കുരിശ് - പഴയ തടവറ + പഴയ തടവറ "കോണ്‍സെന്റ്രേഷന്‍ ക്യാംപ് " "പി ഓ ഡബ്ളൂ ക്യാമ്പ് " "ലേബര്‍ ക്യാമ്പ് " തരം: നാസി തരം: ഗുലാഗ് - താപനില + താപനില കുളിക്കാനുള്ള സൗകര്യം "കുളിക്കാനുള്ള സൗകര്യമില്ല " - ബോട്ട് സ്ടോറേജ് + ബോട്ട് സ്ടോറേജ് - യാത്രക്കാര്‍ + യാത്രക്കാര്‍ വാഹനങ്ങള്‍ "സൈക്കിള്‍ " കണ്ടെയിനര്‍ എച്ച് ജി വി - "ഫിറ്റ്നെസ് സ്റ്റേഷന്‍" + "ഫിറ്റ്നെസ് സ്റ്റേഷന്‍" - "മലയാളം വിക്കി " + "മലയാളം വിക്കി " ബ്രഷില്ലാത്തത് ഗൊന്ഡോള വീര്‍ കേബിള്‍കാര്‍ വൈനറി - ബീയര്‍ പാര്‍ലര്‍ + ബീയര്‍ പാര്‍ലര്‍ സേഫ് വാട്ടര്‍ ബീക്കണ്‍ പ്ര‌ത്യേകാവശ്യത്തിനുള്ള ബീക്കണ് "ദൂര സൂചിക " @@ -2264,7 +2257,7 @@ "ഭിത്തിയിലുള്ള കൊളുത്ത് " തടസ്സം - ചരിത്രം + ചരിത്രം സൈക്കിള്‍ ഭൂപടം ടാക്ടൈല്‍ മാപ്പ് ബുള്ളറ്റിന്‍ ബോര്‍ഡ് @@ -2273,32 +2266,32 @@ സാങ്കേതികവിവരങ്ങള്‍ വാനനിരീക്ഷണം - "കൊമേഴ്സ്യല്‍ ലാന്റ് യൂസ് " + "കൊമേഴ്സ്യല്‍ ലാന്റ് യൂസ് " റീടെയില്‍ ലാന്റ് യൂസ് - ഉണ്ട് + ഉണ്ട് "ഫയര്‍ പ്ളേസ് ഇല്ല " - ആണ് + ആണ് "കവേര്‍ഡല്ല " - ശില്പി + ശില്പി - കണ്‍വേയിങ്ങാണ് + കണ്‍വേയിങ്ങാണ് - പാലത്തിന്റെ അടയാളം + പാലത്തിന്റെ അടയാളം ടണല്‍ അടയാളം - അടയാളം + അടയാളം - "തമിഴ് വിക്കി " + "തമിഴ് വിക്കി " "ഉറുദു വിക്കി " ഇലെക്ട്രോണിക് റിപെയര്‍ പടക്ക കട - ദൂരം + ദൂരം - ജെനറല്‍ പ്രാക്ടീഷണര്‍ + ജെനറല്‍ പ്രാക്ടീഷണര്‍ ഓഫ്താല്‍മോളജി (നേത്രരോഗങ്ങള്‍) ഗൈനക്കോളജി(ഗര്‍ഭാശയ സംബന്ധമായ) ഇന്റേണല്‍ മെഡിസിന്‍ @@ -2326,16 +2319,16 @@ ഹെര്‍ബലിസം കെട്ടിട ഇനം: പിരമിഡ് - "ഫിറ്റ്നെസ് സെന്റര്‍" + "ഫിറ്റ്നെസ് സെന്റര്‍" "ഫിറ്റ്നെസ് " - ബില്ലിയാര്‍ഡ്സ് + ബില്ലിയാര്‍ഡ്സ് - ബാഡ്മിന്റന്‍ + ബാഡ്മിന്റന്‍ ജൂഡോ ഔദ്യോദിക നാമം - മുദ്രണം:N + മുദ്രണം:N മുദ്രണം:വടക്കുപടിഞ്ഞാറു് (NW) മുദ്രണം :W മുദ്രണം : തെക്കുപടിഞ്ഞാറു് (SW) @@ -2344,21 +2337,20 @@ മുദ്രണം:E മുദ്രണം: വടക്കുകിഴക്കു് (NE) - നിര്‍മ്മാണം - എ ടി എം ഉണ്ട് - എ ടി എം ഇല്ല + നിര്‍മ്മാണം + എ ടി എം ഇല്ല - ഫയര്‍പിറ്റ് + ഫയര്‍പിറ്റ് "വഴിയോരത്തെ പെട്ടി " - സംരക്ഷിത സ്ഥലം + സംരക്ഷിത സ്ഥലം സംരക്ഷിത നാമം സംരക്ഷിത വസ്തു :പുരാതനം "സംരക്ഷിത വസ്തു : പ്രകൃതി " സംരക്ഷിത വസ്തു : വാസസ്ഥലം സംരക്ഷിത വസ്തു : ജലം - അണുസ്പോടനം :രാജ്യം + അണുസ്പോടനം :രാജ്യം അണുസ്പോടനമേഖല അണുസ്പോടന വിധം: ഭൂഗര്‍ഭം,ഷാഫ്ട് അണുസ്പോടന വിധം: ഭൂഗര്‍ഭം,ടണല്‍ @@ -2387,22 +2379,22 @@ ഗൃഹനാമം മതപരമായ സാമഗ്രികള്‍ - ചെടി നര്‍സറി + ചെടി നര്‍സറി - കാറ്റ്(ടയര്‍) ഉണ്ട് + കാറ്റ്(ടയര്‍) ഉണ്ട് "കാറ്റ്(ടയര്‍) ഇല്ല " - കാര്‍ വാഷ് ഉണ്ട് + കാര്‍ വാഷ് ഉണ്ട് - ഉണ്ട് + ഉണ്ട് "വാക്യും ക്ളീനര്‍ ഇല്ല " വാക്യും ക്ളീനര്‍ - "വാട്ടര്‍ ടാപ് " + "വാട്ടര്‍ ടാപ് " ബട്ടണ്‍ ഓപറേറ്റഡ് "ബട്ടണ്‍ ഓപറേറ്റഡ് അല്ല " - ടേകോഫ് + ടേകോഫ് ലാന്റിങ്ങ് പാരഗ്ലൈഡിങ്ങ് "പാരഗ്ലൈഡിങ്ങ് ഇല്ല " @@ -2412,7 +2404,7 @@ സിദ്ദാ യുനാനി - ആരോഗ്യ സേവനം: നര്‍സിങ്ങ് + ആരോഗ്യ സേവനം: നര്‍സിങ്ങ് "ആരോഗ്യ സേവനം: നര്‍സിങ്ങ് ഇല്ല " ആരോഗ്യ സേവനം: കൗണ്‍സലിങ്ങ് "ആരോഗ്യ സേവനം: കൗണ്‍സലിങ്ങ് ഇല്ല " @@ -2429,7 +2421,7 @@ ആരോഗ്യ സേവനം: ടെസ്റ്റ് "ആരോഗ്യ സേവനം: ടെസ്റ്റ് ഇല്ല " - മെഡിക്കല്‍ ഓഫീസ് + മെഡിക്കല്‍ ഓഫീസ് "ആരോഗ്യ കേന്ദ്രം: ഫീല്‍ഡ് ആശുപത്രി " ആരോഗ്യ കേന്ദ്രം: കൗണ്‍സലിങ്ങ് സെന്റര്‍ ആരോഗ്യ കേന്ദ്രം: ലാബോറട്ടറി @@ -2440,14 +2432,14 @@ ആരോഗ്യ കേന്ദ്രം: നര്‍സിങ്ങ് ഹോം ആരോഗ്യ സേവനം: സപ്പോര്‍ട്ട് ഗ്രൂപ് ഹോം - പാലിയേറ്റീവ് മെഡിസിന്‍ + പാലിയേറ്റീവ് മെഡിസിന്‍ - ഭൂഗര്‍ഭം + ഭൂഗര്‍ഭം തൂണ്‍ കുളം ഭിത്തി - ഫസ്ട് എയിഡ് കിറ്റ് + ഫസ്ട് എയിഡ് കിറ്റ് ഹീലര്‍ മിഡ്വൈഫ് നര്‍സ് @@ -2465,13 +2457,13 @@ ഗൃഹസന്ദര്‍ശനം ഉണ്ട് "ഗൃഹസന്ദര്‍ശനമില്ല " - മലേറിയ + മലേറിയ ഓട്ടിസം "ഓട്ടിസം ഇല്ല " എയിഡ്സ് "എയിഡ്സ് ഇല്ല " - ഫിസിഷ്യന്റെ ഓഫീസ് + ഫിസിഷ്യന്റെ ഓഫീസ് തെറാപിസ്റ്റ് ഓഫീസ് പൊഡൊളജിസ്ട് ഓഫീസ് പ്രധാന @@ -2499,21 +2491,21 @@ ക്രോസിങ്ങ് മേല്‍നോട്ടം: കാവല്‍ക്കാരന്‍ ക്രോസിങ്ങ് മേല്‍നോട്ടം : ക്യാമറ - വിതരണം ഉണ്ട് + വിതരണം ഉണ്ട് "വിതരണം ഇല്ല " - ഇന്റെര്‍നാഷണല്‍ + ഇന്റെര്‍നാഷണല്‍ റീജിയണല്‍ പബ്ളിക് മിലിട്ടറി "മിലിട്ടറി/പബ്ളിക് " പ്രൈവറ്റ് - ദൂരം + ദൂരം - വിക്കിപീഡിയ + വിക്കിപീഡിയ - ഭക്ഷണം + ഭക്ഷണം മസ്സാജ് ഇനം ടെന്റുകള്‍ കാരവാനുകള്‍ @@ -2523,7 +2515,7 @@ എയര്‍ വാക്യും ക്ളീനര്‍ -ബോട്ടുകള്‍ക്കുള്ള പെട്റോള്‍ പംബ് + ബോട്ടുകള്‍ക്കുള്ള പെട്റോള്‍ പംബ് ഐസ് ഹോക്കീ സെയിലിങ്ങ് ക്ളബ് ബോസ്നിയന്‍ വിക്കി @@ -2557,7 +2549,7 @@ എസ്യൂബിഇ കാര്‍ഡ് സ്വീകാര്യമല്ല പണമടക്കാനുള്ള വിവരണം - "വെജിറ്റെറിയന്‍ " + "വെജിറ്റെറിയന്‍ " "വെജിറ്റെറിയന്‍ " ഗ്ളൂടെന്‍ ഫ്രീ ഭക്ഷണം കോഷ @@ -2576,13 +2568,13 @@ വാട്ടര്‍ ഹീറ്റര്‍:ഉണ്ട് "വാട്ടര്‍ ഹീറ്റര്‍:ഇല്ല " - തരം: ഉപരിതലം + തരം: ഉപരിതലം ബെഡുകള്‍(ഇടം) - മലേറിയ:ഇല്ല + മലേറിയ:ഇല്ല പ്രസവശുശ്രൂഷികയുടെ ഓഫീസ് - അഗ്നിശമനി (fire hydrant) വ്യാസം + അഗ്നിശമനി (fire hydrant) വ്യാസം അഗ്നിശമനി (fire hydrant) എണ്ണം അഗ്നിശമനി (fire hydrant) ഫ്ളോ കപാസിറ്റി അഗ്നിശമനി (fire hydrant)സ്ഥാനം: പുല്‍തകിടി @@ -2590,9 +2582,9 @@ ലോക്കറുകള്‍ ആഴം - ട്രോയിക കാര്‍ഡ് സ്വീകാര്യമല്ല + ട്രോയിക കാര്‍ഡ് സ്വീകാര്യമല്ല - ഡിസ്പ്ളേ:ഉണ്ട് + ഡിസ്പ്ളേ:ഉണ്ട് "ഡിസ്പ്ളേ:ഇല്ല " അനലോഗ് ഡിസ്പ്ളേ " ഡിജിറ്റല്‍ ഡിസ്പ്ളേ" @@ -2602,15 +2594,15 @@ "ആഹാരം(ഓര്‍ഗാനിക് ):അല്ല " ആഹാരം(ഓര്‍ഗാനിക് ) മാത്രം - കോണ്സുലേറ്റ് ജനറല്‍ + കോണ്സുലേറ്റ് ജനറല്‍ ഹൈക്കമ്മീഷന്‍ - ജലസംഭരണ ടാങ്ക് + ജലസംഭരണ ടാങ്ക് - ടോയ്ലറ്റ് ഇനം: കെമിക്കല്‍ + ടോയ്ലറ്റ് ഇനം: കെമിക്കല്‍ ടോയ്ലറ്റ് ഇനം: ബക്കറ്റ് - ക്രിസ്മസ് + ക്രിസ്മസ് ക്രിസ്തുമസ് ചന്ത ക്രിസ്തുമസ് പിരമിഡ് "ക്രിസ്മസ് ഷോപ്പ് " @@ -2619,7 +2611,7 @@ ക്രിസ്മസ്: തുറക്കുന്ന സമയം ക്രിസ്മസ്:വെബ്സൈറ്റ് - കാപ്പി + കാപ്പി സാന്‍ഡ്‌വിച്ച് ഐസ്ക്രീം മത്സ്യാഹാരം diff --git a/OsmAnd/res/values-ml/strings.xml b/OsmAnd/res/values-ml/strings.xml index 6dc1df8051..37c8ec099f 100644 --- a/OsmAnd/res/values-ml/strings.xml +++ b/OsmAnd/res/values-ml/strings.xml @@ -759,7 +759,6 @@ സ്ഥിരമായി ചോദിക്കുന്ന ചോദ്യങ്ങള്‍ ഡാഷ്ബോര്‍ഡ് ഉപയോഗിക്കുക മെനു ഉപയോഗിക്കുക - " പരിഷ്ക്കരണം" "ഇപ്പോള്‍ തന്നെ പരിഷ്ക്കരിക്കുക " സമയം പരിഷ്ക്കരിക്കുക ഉപവിഭാഗങ്ങള്‍ @@ -781,8 +780,6 @@ ഓഎസ്എംആന്റിന്റെ വിവരസഭരണസ്ഥലം(മാപ്പുകള്‍ ,പാതകള്‍ മുതലായവക്കായി): %1$s. അനുമതി തരുക ഈ സ്ഥലത്ത് പ്രവേഷനാനുമതി നല്‍കുക - "ഓഎസ്എംആന്റിന്റെ പുതിയപതിപ്പുകളേക്കുറിച്ചുള്ളതൊ, വിലക്കുറവ് സംബന്ധമായതോ ആയ ഒരു അപ്ഡേറ്റും കാണിക്കരുത്" - അപ്ഡേറ്റുകള്‍ കാണിക്കരുത് എല്ലാ ഭൂപടങ്ങളും ഇപ്പോള്‍ അപ്ഡേറ്റ് ചെയ്യട്ടെ? %1$s നെ ഭൂപടത്തില്‍ കാണിക്കുക ഓഎസ്എംആന്ഡ് വഴി പങ്കുവച്ചത് @@ -1142,7 +1139,6 @@ ദയവായി ആദ്യം ലക്ഷ്യസ്ഥാനം തെരഞ്ഞെടുക്കുക അടക്കുന്ന മാറ്റപട്ടിക… നോഡ് ഉറപ്പിക്കുന്നു(Committing)… - "പുതിയ റൂട്ട് കണ്ട് പിടിച്ചു, ദൂരം" പൂര്‍ണമായി "3ഡി ഭൂപടദൃശ്യം സജീവമാക്കുക " ഭൂപടം 3ഡി ആയി കാണിക്കുക @@ -1805,24 +1801,6 @@ സ്ഥലമോ, വഴിയോ കണ്ടെത്താനായില്ല. "തെരച്ചിലില്‍ ഒന്നും കണ്ടെത്തിയില്ലെ\? \nദയവായ് നിങ്ങളുടെ ഫീഡ്ബാക്ക് തരുക" - "ചില ഉപകരണങ്ങളില്‍ തുടക്കത്തിലേ ക്രാഷ് പരിഹരിച്ചു -\n -\nപുതിയ മാര്‍ക്കര്‍ ഫീച്ചറുകള്‍ : ഇതുവരെ കടന്നുപോയ മാര്‍ക്കറുകള്‍ കാണിക്കുക -\n -\nതെരച്ചില്‍ ചരിത്രം , നേരത്തെ തെരഞ്ഞ ഇനങ്ങള്‍ കൂടി കാണിക്കും -\n -\nലാറ്റിന്‍ ലിപിയല്ലാത്ത മാപ്പുകളില്‍ തുടക്കത്തിലേ ക്രാഷ് പരിഹരിച്ചു -\n -\nആന്ഡ്രോയ്ഡ് 8.0 ലെ ഗ്രാഫിക്സ് പെര്‍ഫോമന്‍സ് നന്നാക്കി -\n -\nബഹുഭുജ-വസ്തുക്കള്‍ ക്രമീകരിക്കാം -\n -\nദൂരം അളക്കാന്‍: അളക്കാനുള്ള ബട്ടണ്‍ സന്ദര്‍ഭമെനുവിലെ പ്രവര്‍ത്തികളില്‍ ചേര്‍ക്കാം -\n -\n -\n -\n" - വഴി ഉള്‍പെടുത്തുക… "തിരച്ചില്‍ വൃത്തം %1$s ലേക്ക് കൂട്ടുക " "ഞങ്ങള്‍ നിങ്ങളൂടെ ചോദ്യം: "\"%1$s\" , നിങ്ങളൂടെ സ്ഥാനം എന്നിവ അയക്കും. \n \n ഞങ്ങള്‍ നിങ്ങളൂടെ പേര്‍സണല്‍ ആയിട്ടുള്ള ഒരു വിവരവും ശേഖരിക്കുന്നില്ല , തെരച്ചില്‍ വിവരങ്ങള്‍ , സേര്‍ച്ച് അല്‍ഗോരിതം നന്നാക്കാനായ് മാത്രമാണ് ഉപയോഗിക്കുന്നത്. @@ -1926,20 +1904,6 @@ വിക്കിപ്പീഡിയ ലേഖനം എങ്ങനെ തുറക്കാം\? സബ്സ്ക്രിപ്ഷനുകള്‍ ഒസ്മണ്ട് - "നാവിഗേഷന്‍: പ്രോഗ്രസ് ബാര്‍ ശരിയാക്കി, റൂട്ടിന്റെ തുടക്കവും ഒടുക്കവും വേഗത്തില്‍ തിരിച്ചിടാം -\n -\nമാപ്പ് മാര്‍ക്കറുകള്‍: ഗ്രൂപ്പ് ഓണ്‍/ഓഫ് ശരിയാക്കി, മാര്‍ക്കറുകള്‍ മറയ്ക്കാനാവും -\n -\nഓഎസ്എം തിരുത്തലുകള്‍: വഴികളും മറ്റു വസ്തുക്കളും ചേര്‍ക്കാം , കുറിപ്പുകളില്‍ കമന്റുകള്‍ ചേര്‍ക്കാം, തിരുത്തുകള്‍ക്ക് ബാക്ക് അപ്പ് -\n -\nവിക്കിപ്പീഡിയ, വിക്കിവോയേജ് എന്നിവയുടെ പ്രവര്‍ത്തനങ്ങള്‍ മെച്ചപ്പെടുത്തിയിരിക്കുന്നു , പുതുക്കിയ ഫയലുകള്‍ ലഭ്യമാണ് -\n -\nകോന്റെക്സ്ട് മെനു: ട്രാന്സ്പോര്‍ട്ട് ഷീല്‍ഡ് കളര്‍ രാത്രിക്കാഴ്ചക്കായ് ശരിപ്പെടുത്തിയിരിക്കുന്നു, കൂടുതല്‍ മെനു സൈസ് ചേര്‍ത്തിരിക്കുന്നു -\n -\nബോട്ട് നാവിഗേഷന്‍: മെച്ചപ്പെടുത്തിയിരിക്കുന്നു -\n -\nമറ്റു ബഗ് ഫിക്സുകള്‍ -\n" "വിക്കിപീഡിയയും വിക്കിവൊയേജ് ലേഖനങ്ങള്‍ ഓഫ്ലൈനായ് വായിക്കാന്‍ ഓഎസ്എം ആന്‍ഡ് ലൈവ് വരിക്കാരനാവുക." ലിങ്ക് എങ്ങനെ തുറക്കണം\? @@ -2693,20 +2657,6 @@ GPX ട്രാക്കുകൾ മറയ്ക്കുക GPX ട്രാക്കുകൾ കാണിക്കുക ആദ്യം ലക്ഷ്യസ്ഥാനം ചേർക്കുക - "\"• പുതിയ \'ഡയറക്ഷന്‍\' സ്ക്രീൻ: ഹോം, വർക്ക് ഡെസ്റ്റിനേഷൻ ബട്ടണുകൾ, \'മുൻ റൂട്ട്\' കുറുക്കുവഴി, സജീവ ജിപിഎക്സ് ട്രാക്കുകളുടെയും മാർക്കറുകളുടെയും ലിസ്റ്റ്, തിരയൽ ചരിത്രം എന്നിവ പ്രദർശിപ്പിക്കുന്നു. -\n • റൂട്ട് വിശദാംശങ്ങളുടെ ഒപ്പം കൂടുതൽ വിവരങ്ങൾ: റോഡ് തരങ്ങൾ, ഉപരിതലം, കയറ്റം, നിലവാരം... -\n -\n • എല്ലാ തരവുമുള്ള പൊതു ഗതാഗത നാവിഗേഷൻ: മെട്രോ, ബസ്, ട്രാം മുതലായവ. -\n -\n • ട്രാക്കുകളും പകല്‍/ രാത്രി മോഡുകൾ പ്രദർശിപ്പിക്കുകയും മറയ്ക്കുകയും ചെയ്യുന്ന പുതിയ ക്വിക്ക് ആക്ഷന്‍ -\n • ജർമ്മനി, ദക്ഷിണാഫ്രിക്ക, ക്യുബെക് എന്നിവിടങ്ങളിൽ വെള്ളപ്പൊക്കമെന്ന് പ്രദർശിപ്പിക്കപ്പെട്ട പ്രദേശങ്ങൾ ശരിയാക്കി -\n -\n KML, KMZ ഇമ്പോർട്ടിനുള്ള അധിക പിന്തുണ -\n -\n • ചില പൊതുഗതാഗത സ്റ്റോപ്പുകൾ തുറക്കുന്നതിലെ തകരാറുകൾ പരിഹരിച്ചു -\n -\n • ഫ്രീ പതിപ്പിൽ നിന്നും Facebook, Firebase അനലിറ്റിക്സ് നീക്കം ചെയ്തു (OsmAnd + അതിൽ ഉൾപ്പെടുത്തിയിട്ടില്ല) -\n" "OsmAnd ലൈവ് മാറ്റങ്ങൾക്കായി പൊതു ഗതാഗത സംവിധാനത്തെ പ്രാപ്തമാക്കുക." "ഓഎസ്എംആന്റ് ലൈവ് പൊതു ഗതാഗതം" "%1$d കൈമാറ്റങ്ങൾ" @@ -2782,12 +2732,6 @@ ഭൂഗർഭ റെയിൽവേ/ലൈറ്റ്വെയിറ്റ് റെയിൽവേ ഗതാഗതം ഒഴിവാക്കുക കടത്തുവള്ളം ഒഴിവാക്കുക കടത്തുവള്ളം ഒഴിവാക്കുക - • പൊതു ഗതാഗതം മാറിക്കയറുന്നതിനുള്ള സമയം കാണിക്കും -\n റൂട്ട് വിശദാംശങ്ങൾക്ക് ശരിയായി UI ഉണ്ട് -\n ദിശാസൂചന മെനുവിലും റൂട്ട് വിശദാംശങ്ങളിലും ഇരുണ്ട തീമുകൾ പരിഹരിച്ചു -\n • അളവ് ദൂരത്തിൽ അസിംത് പ്രദർശിപ്പിക്കുക -\n\" -\n ലോഗ് അയയ്ക്കുക %1$d ഫയലുകൾ (%2$s) നീക്കി. "%1$d ഫയലുകൾ (%2$s) പകർത്തി." diff --git a/OsmAnd/res/values-mr/strings.xml b/OsmAnd/res/values-mr/strings.xml index dc88632806..52255b0656 100644 --- a/OsmAnd/res/values-mr/strings.xml +++ b/OsmAnd/res/values-mr/strings.xml @@ -233,7 +233,6 @@ परिवहन माध्यम: क्रुपया आधी इच्छिन स्थळ निवडा असफल - नविन मार्ग निवडला, अंतर आपण इच्छित स्थळी पोहोचला आहात बंद करा डेटा लोड करत आहे… diff --git a/OsmAnd/res/values-my/strings.xml b/OsmAnd/res/values-my/strings.xml index 0213e847ac..6c398c0c7c 100644 --- a/OsmAnd/res/values-my/strings.xml +++ b/OsmAnd/res/values-my/strings.xml @@ -113,7 +113,6 @@ ပရိုဖိုင်းအားလုံးကိုပြောင်းလဲမည် စစခြင်းမက်ဆေ့ခ်ျ မြေပုံကို screen သော့ခတ်မျက်နှာပြင်အပေါ်ထက်မှာပြမြည်။ - ပုံပန်းမျက်နှာပြင် မြေပုံမျက်နှာပြင် Installed လုတ်ထားသောပလပ်အင်များ လမ်းညွှန်ခြင်းဖွဲ့စည်းပုံ diff --git a/OsmAnd/res/values-nb/phrases.xml b/OsmAnd/res/values-nb/phrases.xml index 2bc88da15d..03261cff4c 100644 --- a/OsmAnd/res/values-nb/phrases.xml +++ b/OsmAnd/res/values-nb/phrases.xml @@ -80,7 +80,6 @@ Historiske ruiner Historisk skip Historisk gruve - Historisk kloster Fyrtårn Dagligvarebutikk og supermarked Nødstilfelle @@ -135,7 +134,6 @@ Bildeling Internett-kafé Bank - Minibank Betalingsterminal Vekslingskontor Tåkesignal diff --git a/OsmAnd/res/values-nb/strings.xml b/OsmAnd/res/values-nb/strings.xml index 5ef62f39c7..b2a3fc41cb 100644 --- a/OsmAnd/res/values-nb/strings.xml +++ b/OsmAnd/res/values-nb/strings.xml @@ -1580,7 +1580,6 @@ Finn min posisjon Kartsøking… Australia - Ikke vis nye versjoner Filtre Bruk filtre Lagre filter @@ -1598,9 +1597,6 @@ Fargeskjema for koter Tast by, adresse, interessepunktnavn By eller region - Søk (gamlemåten) - Vis søk (gamlemåten) - Legg til søk (gamlemåten) i sidemenyen. Bruk motorveier Tillater motorveier. Last opp interessepunkt @@ -1626,7 +1622,6 @@ Engelske mil/meter Gi tillatelse Tillat adgang til sted - Ikke se etter nye versjoner eller rabatter relatert til OsmAnd. Endre Ingen ny beregning etter å ha forlatt ruten Ingen ny ruteberegning ved motsatt retning @@ -2225,7 +2220,6 @@ Kunne ikke beregne rute. Kunne ikke beregne rute. Beregnet rute er tom. - Ny rute beregnet, distanse Lagrer GPX-fil… Angi språk, last ned/gjeninnlast data. Kameraets fokusmetode @@ -2242,7 +2236,6 @@ Kortet ble skjult Antall linjer Modifiser OSM-endring - Oppdater Live-oppdatering Handling %d Skjerm %d @@ -2532,8 +2525,7 @@ Vis gratisversjonsbanneret selv i den betalte versjonen. Sjekker inn knutepunkt… Den siste kjøringen av OsmAnd krasjet. Loggfilen finnes i {0}. Rapporter hendelsen og legg ved loggfilen. - Knutepunktet ble ikke funnet, eller så består fasiliteten av flere knutepunkter som ikke støttes ennå. - På Android 4.4 (KitKat) og videre, er den gamle lagringsmappen (%s) ikke mulig. Kopier alle OsmAnd-filer til nytt lagringssted\? + På Android 4.4 (KitKat) og videre, er den gamle lagringsmappen (%s) ikke mulig. Kopier alle OsmAnd-filer til nytt lagringssted\? \n Merknad 1: Dine gamle filer forblir urørt (men kan slettes manuelt). \n Merknad 2: På det nye lagringsstedet er det ikke mulig å dele filer mellom OsmAnd og OsmAnd+. Viser innstillinger for å slå på bakgrunnssporing og navigering ved å periodisk vekke opp GPS-enheten (med skjermen av). @@ -2777,47 +2769,15 @@ Punkt %1$s slettet Verden Øk søkeradius til %1$s - Resultatløst? -\nLa det komme oss for øre. Send søkeforespørsel\? Takk for din tilbakemelding Resultatløst\? \nGi oss tilbakemelding Fant ikke node eller vei. - • Navigering: Fiks for fremdriftsindikator, raskt bytte av start- og sluttpunkt på ruten -\n -\n• Kartmarkører: Fiks for av- og påslag grupper, mulighet til å skjule markører på kartet -\n -\n• OSM-redigering: Mulighet til å redigere koder for ikke-punktsobjekter og veier, fiks for manglende kommentarer på notater, sikkerhetskopiering av endringer -\n -\n• Forbedret Wikipedia- og Wikivoyage -fortolkning, oppdaterte filer er allerede tilgjengelige -\n -\n• Kontekstmeny: Fiks for transportskjoldsfarge i nattmodus, fiks for tilleggsmenystørrelser -\n -\n• Båtnavigasjon: Støtte for vannvei-fairway -\n -\n• Andre feilrettinger -\n - Sender inn vei… Vi kommer til å sende inn ditt søk «%1$s», sammen med din plassering. \n \nIngen personlig info samles inn, søkedata brukes kun for å forbedre søkealgoritmen. Trykk på en knapp og lytt til den tilhørende talemeldingen for å høre om den mangler eller er feil - • Fikset krasj ved oppstart som skjedde på noen enheter -\n -\n • Ny mulighet med markører: vis markører som allerede er passert -\n -\n • Søkehistorien viser nå hvilke kategorier du har søkt etter tidligere -\n -\n • Fikset krasj ved oppstart som skjedde med ikke-latinske kart -\n -\n • Forbedret utfordring med opptegningshastighet på Android 8.0-enheter -\n -\n • Støtte for endring av polygon-objekter (ikke-bekvemmelighet) -\n -\n • Mål avstand: la til Avstand-knapp til handlingslisten i kontekstmenyen -\n -\n Innvilg OsmAnd tilgang til plassering for å fortsette. Svart Det er flere ruter på dette stoppestedet. @@ -2846,16 +2806,6 @@ Av OsmAnd Abonnementer Vis kun 360°-bilder - • New: Støtte for verdensomspennende reiseguider. Omtalte plasseringer lenkes til på kartet. Initiell data fra Wikivoyage. -\n -\n • Wikipedia: Nytt utseende, aktive lenker og støtte for bilder -\n -\n • Open Track UI: Støtte for rutepunktgrupper -\n -\n • Kartmarkører: Import av valgte grupper fra GPX-filer, koordiner inndata, nytt utseende -\n -\n • OsmAnd Live-abonnement støtter nå alle OsmAnd-funksjoner -\n Kjør Du bruker {0} kart levert av OsmAnd. Vil du starte fullversjonen av OsmAnd\? Kjør OsmAnd\? @@ -2908,23 +2858,6 @@ Knapp for å vise eller skjule valgte spor på kartet. Skjul spor Vis spor - • Ny \'Anvisninger\'-skjerm: Viser hjem og arbeid som målknapper, snarvei til \"tidligere rute\", liste over aktive GPX-spor og markører, søkehistorikk -\n -\n • Ytterligere info under \"Rutedetaljer\": Veitype, -dekke, bratthet, jevnhet -\n -\n • Offentlig transportnavigasjon med støtte for alle typer transport: Undergrunn, buss, trikk osv. -\n -\n • Ny rask handling for skjuling/visning av spor og dag/natt- modus -\n -\n • Fiks for områder som tidligere vistes som flomrammede i Tyskland, Sør-Afraika, Québec -\n -\n • Ytterligere støtte for KML og MKZ -import -\n -\n • Fikset kræsj ved åpning av noen offentlige transportstopp -\n -\n • Fjernet Facebook of Firebase-overvåkning fra gratisversjonen (OsmAnd+ har det ikke) -\n -\n Skru på offentlig transport i OsmAnd Live-endringer. Offentlig transport i OsmAnd Live %1$d overføringer @@ -3001,15 +2934,6 @@ Unngår tunnelbane og lett bane Ingen ferger Unngår ferger - • Vis tiden mellom overganger i offentlig transport -\n -\n • Fikset grensesnitt for rutedetaljer -\n -\n • Fikset mørk drakt i anvisningsmeny og rutedetaljer -\n -\n • Visning av asimut i måling av distanse -\n -\n Send logg Flyttet %1$d filer (%2$s). Kopierte %1$d filer (%2$s). @@ -3085,7 +3009,6 @@ Tredjepartsruting Velg profilene du vil ha synlig i programmet. Programprofiler - Bruk WunderLINQ for styring Alpin skisport Kjelke Bakker for kjelkebruk. @@ -3107,7 +3030,6 @@ T-bane Baser din egendefinerte profil på en av de forvalgte programprofilene, dette definerer grunnleggende oppsett, som forvalg synliget for miniprogrammer, enheter for hastighet og distanse. Dette er de forvalgte programprofilene, sammen med eksempler på egentilpassede profiler de kan utvides til: Offentlige transporttyper - Endre kartforstørrelse ved å rulle hjulet opp og ned. Escape tar deg tilbake til WunderLINQ-programmet. Legg til minst ett element i listen i hurtighandlingsinnstillingene Bakker for alpin skisport og tilgang til skiheiser. Langrenn @@ -3193,7 +3115,6 @@ Opphev abonnement %1$s • Spar %2$s Enheter og formater - Utseende Installerte programtillegg Sett opp navigasjon Tilbakestill til forvalg @@ -3210,7 +3131,6 @@ Språk og utdata Programtilleggsinnstillinger Som forvalg - Last ned detaljert %s-kart, for å vise dette området. Ingen Flytt OsmAnd-datafiler til det nye målet\? \n%1$s > %2$s @@ -3844,7 +3764,6 @@ Innebygd utvikling for offentlig transport Bytt til Java (sikker) ruteberegning for offentlig transport Takk for at du kjøpte «Koter» - Kompleks ruting Unngå gangveier Unngå gangveier Ekstra rett segment mellom min posisjon og beregnet rute blir vist til ruten er beregnet på nytt diff --git a/OsmAnd/res/values-nl/phrases.xml b/OsmAnd/res/values-nl/phrases.xml index 9f5c6f77d7..c32f63827e 100644 --- a/OsmAnd/res/values-nl/phrases.xml +++ b/OsmAnd/res/values-nl/phrases.xml @@ -38,7 +38,6 @@ Kopieerwinkel Gordijnwinkel Stoffenwinkel - Beddenwinkel Duikbenodigdheden Bouwmarkt Sex-shop @@ -241,7 +240,6 @@ Berghut Chalet Klooster - Historisch klooster Taoïsme Gebedshuis Christelijk @@ -351,7 +349,6 @@ Crematorium Internetcafé Bank - Geldautomaat Accountant Grot-ingang Bergtop @@ -425,7 +422,6 @@ Rijschool Gerechtsgebouw Alternatieve geneeskunde - Gezondheidscentrum Vroedvrouw Ergotherapeut Revalidatie @@ -537,7 +533,6 @@ Dienst Rugby unie Rugby competitie - Handbal Rodelen Kunst Grenspaal @@ -697,7 +692,6 @@ Wijk Woongebied Zeilen - Algemene attractie Schuilhut Jachthut Picnictafel @@ -738,7 +732,6 @@ Deuren Modezaak Freeflying-toebehoren - Verwarmingsinstallatie Tuinmeubelen Lederwarenzaak Muziekwinkel @@ -834,7 +827,6 @@ Fietsen Nucleair afval Waterbekken - Beschermd gebied Meetstation Kraan Braakliggend bouwterrein @@ -1209,7 +1201,6 @@ Routemarkering Wandelkaart Natuur - Dieren/planten informatie Geschiedenis Bordje Audio-info @@ -1311,7 +1302,6 @@ Zomer: ingang en uitgang 1 (Toerist) Kamers - Gratis Dijk (zeebaken) Doodlopende weg 1 S (Superior Tourist) @@ -1323,8 +1313,6 @@ 4S (Superieur Eerste Klasse) 5 (Luxe) 5S (Superieur Luxe) - Sterren: 6 - Sterren: 7 Ontmoetingshotel Muntstukken Betaling met munten niet mogelijk @@ -2205,7 +2193,6 @@ Opschrift:O Opschrift:NO In aanbouw - Geldautomaat: ja Geldautomaat: nee Vuurplaats Verdeelkast @@ -3093,7 +3080,6 @@ Hoofdleiding Vijver Waterloop - Citerne In dienst: ja Kast type: stroom Kast type: telecom diff --git a/OsmAnd/res/values-nl/strings.xml b/OsmAnd/res/values-nl/strings.xml index 3367aad892..3ddd8cdd6c 100644 --- a/OsmAnd/res/values-nl/strings.xml +++ b/OsmAnd/res/values-nl/strings.xml @@ -513,7 +513,6 @@ Fout bij routeberekening. Fout bij routeberekening. Fout: berekende route is leeg. - Nieuwe route berekend, afstand De bestemming is bereikt. Coördinaten zijn ongeldig Ga terug naar de kaart @@ -605,7 +604,6 @@ Kon geen commentaar toevoegen. POI wijzigen POI aanmaken - Punt niet gevonden of voorziening bestaat uit meerdere punten, wat nog niet ondersteund wordt. Verwijderen {0} (geef commentaar)? POI verwijderen Verwijderd @@ -1790,7 +1788,6 @@ Kies audio bitrate. Adres wordt gezocht Ruiterpaden - Bijwerken Alleen downloaden via WiFi Automatisch controleren Nu Controleren @@ -2001,7 +1998,6 @@ Toegang tot locatie toestaan Krijg routeaanwijzingen en ontdek nieuwe plaatsen, zonder Internetverbinding Vind mijn positie - Geen updates tonen Alle opgeslagen kaarttegels wissen Het abonnementsgeld wordt volgens de gekozen abonnementsvorm geïncasseerd. Het abonnement kan op elk moment via Google Play worden gestopt. Gift aan de OSM-gemeenschap @@ -2014,7 +2010,6 @@ Er is geen kaart geïnstalleerd. Kies een kaart uit de lijst, of download later kaarten via \'Menu - %1$s\'. Laat OsmAnd kaarten kiezen om te downloaden aan de hand van uw huidige locatie. OsmAnd bewaart gegevens (kaarten, GPX-tracks, enz.) in: %1$s. - Controleer niet op nieuwe versies en aanbiedingen van OsmAnd. Australië Kabylisch Gekozen categorieën @@ -2064,9 +2059,6 @@ Neem %1$de afslag POI Uploaden Wikipedia artikelen in de buurt - Zoeken (oude manier 2.4) - Zoeken (oude manier 2.4) weergeven - Oude zoekmethode in het zijmenu weergeven. Autosnelwegen gebruiken Staat autosnelwegen toe. Servisch (Latijns schrift) @@ -2746,7 +2738,6 @@ \nWe verzamelen geen persoonlijke informatie, enkel zoekgegevens om het zoeken te verbeteren. Zoekterm versturen\? Wereld - "Weg vastleggen.. ik " Als GPX-track opslaan Neem OsmAnd Live en krijg alle mogelijkheden: Dagelijkse kaartupdates en onbeperkte downloads, alle betaalde en gratis plugins, Wikipedia, Wikivoyage en veel meer. Wijziging van de standaard Kaartstijl met meer constrast voor wandel-en fietspaden. Gebruikt de Mapnik-kleuren. @@ -2766,12 +2757,6 @@ Routepunten toegevoegd aan Markeervlaggetjes Aankomsttijd tussenpunt Tijd tot tussenpunt - • Crash bij starten opgelost die zich voordeed bij non-latin kaarten -\n -\n • Verbeterde weergavesnelheid op Android 8.0 apparaten -\n -\n • Ondersteuning voor het wijzigen van polygon-(non-faciliteits)voorwerpen -\n Tik op een knop en luister naar de bijbehorende gesproken prompt om te horen of deze ontbreekt of incorrect is Abonnementen Mogelijk gemaakt door OsmAnd @@ -2915,38 +2900,12 @@ Steilte U gebruikt {0} kaart geleverd door OsmAnd. Wilt u de \"OsmAnd full\" versie openen\? Open OsmAnd\? - • Toon de overstaptijden in Openbaar Vervoer -\n -\n• UI gecorrigeerd voor Route Details -\n -\n•Fix: donker thema in het Routebeschijvings menu en in Route Details -\n -\n • Toon de azimuth in Afstands Meting -\n -\n Eenheid hoeken %1$d keer overstappen Gras oppervlak Aarde Onverhard Kasseien - • Nieuw \'Routebeschrijving\' scherm: Toont Thuis en Werk bestemming knoppen, \'vorige route\' snellink, lijst van actieve GPX tracks en markeringen, zoekgeschiedenis -\n -\n • Additionele info onder \'Route details\': weg types, wegoppervlak, steilte, wegdek kwaliteit -\n -\n • Openbaar vervoer navigatie ondersteunt alle vervoer mogelijkheden: metro, bus, tram, etc. -\n -\n • Nieuwe Sneloptie om trackes te tonen/verbergen en schakelen tussen dag/nacht modus -\n -\n • Fix: oppervlakken die als \'overstroomd\' getoond werden in Duitsland, Zuid-Afrika, Quebec -\n -\n • Additionele ondersteuning voor KML en KMZ import -\n -\n • Crashes herstelt bij het openen van sommige openbaar vervoer haltes -\n -\n • Facebook en Firebase analytics verwijderd uit de \"free version\" (OsmAnd+ bevat dit niet) -\n -\n Per %1$s Instappen bij halte Aantal overstappen @@ -3123,7 +3082,6 @@ Wit Verwissel %1$s en %2$s Vertrekpunt - Begin- en eindpunt omwisselen Transporttype Coördinaten widget Je kunt je eigen, aangepaste versie van routing.xml in ..osmand/routing toevoegen @@ -3251,7 +3209,6 @@ %1$s • Bespaar %2$s Analyse Timeout na ontwaken - Uiterlijk Kaart weergave Kopieer pad naar de OsmAnd data folder Wijzig OsmAnd data folder\? @@ -3462,7 +3419,6 @@ Groep kiezen Vorm kiezen Cirkel - Ruit Min Combineer POI-types uit verschillende categorieën. Tik op \"Selecteer alles\" om alles binnen een categorie te selecteren, of kies individuele types. Extra kaarten diff --git a/OsmAnd/res/values-nn/strings.xml b/OsmAnd/res/values-nn/strings.xml index ea924a7e6d..3ca4d3c31f 100644 --- a/OsmAnd/res/values-nn/strings.xml +++ b/OsmAnd/res/values-nn/strings.xml @@ -1,7 +1,4 @@ Farga bygningar - - - Hald fram navigering Stopp navigering mellombels T-banemodus @@ -29,12 +26,8 @@ Vis vegkvalitet Vis vegdekke Vis sykkelruter - - - Sorter etter avstand Sorter etter namn - Vis forstørringsknappar ved navigering Vis forstørringsknappar Lagra som favorittgruppe @@ -58,30 +51,12 @@ Spor Mine favorittar Mine stadar - - - - - - - rosa - - brun - - - - - - + rosa + brun Vis fargar - - - - - dagar + dagar Kopla til Skildring - Kinesisk Portugisisk (Brasil) Engelsk @@ -139,9 +114,7 @@ Vel på kartet … Favoritt … Ruteinformasjon - - - Unngår ferjer + Unngår ferjer Unngå ferjer Maksvekt Kopierer OsmAnd-filer @@ -154,16 +127,12 @@ Motorsykkel Båt Fly - Slett alt og eller - Globalt grunnkart - - Versjon: + Versjon: Om - Maksforstørring Minste forstørring Adresse @@ -173,12 +142,10 @@ Canada Europa og Asia Kart: - Til: Via: Frå: - - Vis kart + Vis kart Standardprofil Mål %1$s Vel først by eller gate @@ -192,7 +159,6 @@ Start redigering Fullfør redigering Fjern alle punkta - Opna GPX-fil Bruk Kalman-filter Bruk magnetisk sensor @@ -221,10 +187,7 @@ Føretrekk motorvegar ingen OpenMaps EU - Fjellskugge-lag - - Høgdekurvedata Vis Foto %1$s av %2$s @@ -247,7 +210,6 @@ Start Lyd-/video-notat Avstandsmåling - Lydnotat Ta lyd- eller videonotat under turen Lyd-/videonotat @@ -261,9 +223,7 @@ Kart med berre vegar Fjellturkart Gøym grenser - - - Fartsgrense + Fartsgrense Fann ingen bygningar. Kart med berre vegar Sikkermodus diff --git a/OsmAnd/res/values-oc/phrases.xml b/OsmAnd/res/values-oc/phrases.xml index 939bcfcd76..1ae00162af 100644 --- a/OsmAnd/res/values-oc/phrases.xml +++ b/OsmAnd/res/values-oc/phrases.xml @@ -547,7 +547,6 @@ Medecina alternativa Audiològ Banca dau sang - Centre medicau Levairitz Terapia ocupacionala Optometria diff --git a/OsmAnd/res/values-oc/strings.xml b/OsmAnd/res/values-oc/strings.xml index 666b1c4db6..28149e979a 100644 --- a/OsmAnd/res/values-oc/strings.xml +++ b/OsmAnd/res/values-oc/strings.xml @@ -65,15 +65,6 @@ Evita mètro e transvai Evita lo fèrri (barcatiera) Evita lo fèrri (barcatiera) - "• Mòstra lo temps de transferiment per lo transpòrt public -\n -\n• Corregida la vista per lo menut de la Rota -\n -\n• Tèma nocturne corregit dins lo menut Adreiça e per lo menut de la Rota -\n -\n• Mostra l\'azimut dins la mesura de la distància -\n -\n" Gra Milliradiants Unitat angulària diff --git a/OsmAnd/res/values-pl/phrases.xml b/OsmAnd/res/values-pl/phrases.xml index a16c536915..f76e414eba 100644 --- a/OsmAnd/res/values-pl/phrases.xml +++ b/OsmAnd/res/values-pl/phrases.xml @@ -35,7 +35,6 @@ Sklep komputerowy Sklep z zasłonami Sklep z tkaninami - Sklep z pościelą Sprzęt do nurkowania Punkt ksero i drukowania Sklep dla majsterkowiczów @@ -240,7 +239,6 @@ Medycyna alternatywna Audiolog Bank krwi - Centrum medyczne Okulista Fizjoterapeuta Psychoterapeuta @@ -324,7 +322,6 @@ Motel Miejsce kultu Klasztor - Zabytkowy klasztor Przydrożny krzyż Przydrożna kapliczka Informacja @@ -398,7 +395,6 @@ Krematorium Kawiarenka internetowa Bank - Bankomat Kantor Księgowy Płatność bitcoinami @@ -638,8 +634,6 @@ Rakieta Jazda na rolkach Skate park - Drużyna piłki ręcznej - Ogólne atrakcje turystyczne Ślizgawka Letni tor saneczkowy Stół piknikowy @@ -795,7 +789,6 @@ Ciastkarnia Aparaty i obiektywy Sklep ze świecami - Sklep z urządzeniami grzewczymi Sklep z meblami ogrodowymi Sklep muzyczny Sklep z oponami @@ -840,10 +833,8 @@ Falochron Ostroga brzegowa Zbiornik wodny - Obszar chroniony Dźwig Kraj - Atrakcja turystyczna Przecinka leśna Drzewo Bramka (szerokość powozu) @@ -1036,7 +1027,6 @@ Źródło energii: geotermalne Źródło energii: olej Źródło energii: olej napędowy - Samoobsługa Nazwa międzynarodowa Nazwa regionalna Nazwa lokalna @@ -1362,7 +1352,6 @@ Termometr: nie Higrometr Higrometr: nie - Bankomat: Tak Bankomat: nie Maszynowa Mapa piesza @@ -1486,7 +1475,6 @@ Drogowskaz Terminal Natura - Informacja: fauna Historia Model dla niewidomych Mapa dla niewidomych @@ -1565,8 +1553,6 @@ 4S (pierwsza klasa plus) 5 (deluxe) 5S (deluxe plus) - Gwiazdek: 6 - Gwiazdek: 7 Pokoje Monety Monety nieakceptowane @@ -1590,7 +1576,6 @@ Karty Visa nieakceptowane MasterCard Karty MasterCard nieakceptowane - Bezpłatny Karty płatnicze Brak płatności kartą Maestro @@ -2106,7 +2091,6 @@ Nieformalne: nie Miejsce zrzutu nieczystości: tak Miejsce zrzutu nieczystości: nie - Miejsce zrzutu nieczystości: tylko dla gości Tak Prąd: nie Prąd (wtyczka): CEE 17 niebieska (IEC 60309) @@ -2304,7 +2288,6 @@ Sieć Staw Strumień - Cysterna Działa: tak Wojskowy punkt kontroli Szafki @@ -2595,7 +2578,6 @@ Behawioryzm Zachodni Paramedycyna chińska - System medyczny: tradycyjny Ajurweda (paramedycyna indyjska) Kampō (paramedycyna chińska) Paramedycyna mongolska @@ -3556,9 +3538,7 @@ Pojazdy z wieloma pasażerami Tramwaj Prom - Źródło energii: biomasa Kategoria trudności - Radioterapia Zagrożenie Radioterapia Usunięty obiekt @@ -3782,7 +3762,6 @@ Nieaktywny Liczba erupcji Duch roweru - Wulkan błotny Paintball Błotny Sklep BHP diff --git a/OsmAnd/res/values-pl/strings.xml b/OsmAnd/res/values-pl/strings.xml index 617cbefcb3..152ba05b68 100644 --- a/OsmAnd/res/values-pl/strings.xml +++ b/OsmAnd/res/values-pl/strings.xml @@ -410,7 +410,6 @@ Błąd wyznaczania trasy. Nie wyznaczono trasy. Wyznaczono pustą trasę. - Obliczono nową trasę, odległość Osiągnięto cel. Nieprawidłowe współrzędne Wróć do mapy @@ -517,7 +516,6 @@ Nie dodano komentarza. Edytowanie użytecznego miejsca Dodawanie użytecznego miejsca - Nie można odnaleźć węzła lub też udogodnienie (amenity) składa się z kilku węzłów, co nie jest jeszcze wspierane. Usunąć {0} (komentarz)? Usuń użyteczne miejsce Usuń @@ -1802,7 +1800,6 @@ Pobieranie tylko przez WiFi Uaktualnianie na bieżąco Uaktualnij - Zaktualizuj Odległość: Czas: Wyszukiwanie adresu @@ -2018,8 +2015,6 @@ Zezwól Zezwól na dostęp do położenia Wyszukaj aktualne położenie - Nie sprawdza aktualizacji dotyczących nowych wersji i rabatów związanych z OsmAnd. - Pomijanie aktualizacji Uaktualnić wszystkie mapy? Wyczyść wszystkie kafelki Subskrypcja naliczona za wybrany okres. Anuluj go w Google Play w dowolnym momencie. @@ -2076,9 +2071,6 @@ Zjedź %1$d zjazdem Miasto lub region Artykuły Wikipedii w pobliżu - Przestarzała wyszukiwarka - Przestarzała wyszukiwarka - Dodaj starą wyszukiwarkę do menu rozwijanego. Używanie autostrad Zezwala na autostrady. Serbski (łaciński) @@ -2693,16 +2685,6 @@ Wyświetl pełny opis Odnośnik zostanie otwarty w przeglądarce internetowej. Jak otwierać odnośniki? - • Nowość: Obsługiwanie światowych przewodników turystycznych offline. Opisane miejsca są powiązane z mapą. Wstępne dane z Wikipodróży -\n -\n • Wikipedia: Nowy wygląd, obsługiwanie aktywnych odnośników i obrazów -\n -\n • Open Track UI: Obsługiwanie grup punktów trasy -\n -\n • Znaczniki mapy: Importowanie wybranych grup z plików GPX, wprowadzanie współrzędnych, nowy wygląd -\n -\n • Subskrypcja OsmAnd Live obsługuje teraz wszystkie funkcje OsmAnd -\n można zaimportować jako Ulubione lub plik GPX. Importuj jako Ulubione Zapisz plik @@ -2729,26 +2711,10 @@ Dodaj punkt Dodano %1$s punktów. Proszę wprowadzić nazwę pliku i nacisnąć „Zapisz”. Zapisz jako ślad - • Nawigacja: naprawiono pasek postępu, szybka zamiana punktu początkowego i końcowego trasy -\n -\n• Znaczniki mapy: naprawiono włączanie/wyłączanie grup, możliwość ukrycia znaczników na mapie -\n -\n• Edytowanie OSM: umożliwiono edycję tagów dla niepunktowych obiektów, naprawiono brakujące komentarze do uwag, tworzenie kopii zapasowej edycji -\n -\n• Ulepszono analizowanie Wikipedii i Wikipodróży, zaktualizowane pliki są już dostępne -\n -\n• Menu kontekstowe: poprawiono kolor tarcz transportowych w trybie nocnym, naprawiono dodatkowe rozmiary menu -\n -\n• Nawigacja łodzią: wsparcie dla toru wodnego -\n -\n• Inne poprawki błędów -\n Zwiększ promień wyszukiwania do %1$s Twoje zapytanie wraz z położeniem będzie wysłane do: „%1$s”. \n \n Informacje osobiste nie są gromadzone, dane wyszukiwania są używane tylko do poprawienia algorytmu wyszukiwania. - Brak wyników? -\nPowiedz nam o tym. Wysłać zapytanie? Świat Usunięto punkt %1$s @@ -2756,8 +2722,7 @@ Nie można odnaleźć węzła lub drogi. Brak wyników wyszukiwania\? \nPrześlij opinię - Zatwierdzanie drogi… - OsmAnd+ (Automatyczna nawigacja OSM) to aplikacja do map i nawigacji z dostępem do darmowych, światowych i wysokiej jakości danych OSM. + OsmAnd+ (Automatyczna nawigacja OSM) to aplikacja do map i nawigacji z dostępem do darmowych, światowych i wysokiej jakości danych OSM. \nCiesz się nawigacją głosową i optyczną, przeglądaniem POI (punktów użyteczności publicznej), tworzeniem ścieżek GPX i zarządzaniem nimi, z wykorzystaniem wizualizacji linii konturu i wysokości, wyboru między trybem jazdy samochodem, jazdy na rowerze, poruszania się pieszo, edycji OSM i wielu innych. \n \nOsmAnd+ to płatna wersja aplikacji. Kupując ją, wspierasz projekt, finansujesz rozwój nowych funkcji i otrzymujesz najnowsze aktualizacje. @@ -2809,20 +2774,6 @@ \n Naciśnij przycisk i słuchaj odpowiedniego komunikatu głosowego, aby zidentyfikować brakujące lub błędne monity Proszę przyznać uprawnienia udostępniania położenia, aby kontynuować. - • Naprawiono awarię podczas uruchamiania, która wystąpiła na niektórych urządzeniach -\n -\n• Nowa funkcja Markery: wyświetlaj minięte znaczniki -\n -\n• Historia wyszukiwania pokazuje teraz wcześniej wyszukiwane kategorie -\n -\n• Naprawiono awarię podczas uruchamiania, która miała miejsce w przypadku map innych niż łacińskie -\n -\n• Naprawiono problemy z renderowaniem na urządzeniach z Androidem 8.0 -\n -\n• Obsługa edycji obiektów wielokątnych (nieoryginalnych) -\n -\n• Pomiar odległości: dodaj przycisk pomiaru do akcji w menu kontekstowym -\n Czarny Przywróć Pokazuj na mapie odwiedzone znaczniki @@ -2954,22 +2905,6 @@ Ścieżka Droga rowerowa Niezdefiniowana - • Nowy ekran \"Kierunki\": Pokazuje przyciski kierunku domu i pracy, skrót do \"poprzednich tras\", listę aktywnych śladów GPX i znaczników, historię wyszukiwania -\n -\n • Dodatkowe informacje w \"Szczegółach drogi\": typy dróg, nawierzchnia, stromość, gładkość -\n -\n • Nawigacja transportu publicznego wspiera wszystkie typy transportu: metro, autobusy, tramwaje itp. -\n -\n • Nowe Szybkie czynności dla pokazywania/ukrywania tras i trybu dzień/noc -\n -\n • Naprawione obszary wyświetlane jako zalane w Niemczech, Południowej Afryce, Quebec -\n -\n • Dodatkowe wpieranie importów z KML i KMZ -\n -\n • Naprawione awarie przy otwieraniu niektórych przystanków transportu publicznego -\n -\n • Usunięcie Facebooka i analiz Firebase z darmowej wersji (OsmAnd+ tego nie zawiera) -\n Stopnie Miliradiany Tryb %s @@ -2983,15 +2918,6 @@ Unikaj metra i lekkiego transportu kolejowego Unikanie promów Unikanie promów - • Wyświetl czas między transferami w transporcie publicznym -\n -\n • Poprawiony interfejs użytkownika dla szczegółów trasy -\n -\n • Naprawiono ciemny motyw w menu Kierunek i Szczegóły trasy -\n -\n • Wyświetl azymut w Pomiar Odległości -\n -\n Jednostka kąta Określa jednostki miary azymutu. Wybierz rodzaje transportu publicznego, które pomijać w nawigacji: @@ -3027,7 +2953,6 @@ Wybierz typ danych, które chcesz udostępnić: Pobrane mapy Odwiedzane ekrany - Zebrane Informacje Narciarstwo alpejskie i zjazdowe Określ, które dane pozwalasz OsmAnd udostępniać. Pomóż nam poznać popularność map krajów i regionów. @@ -3083,8 +3008,6 @@ Wyznacza trasy specjalne Wybiera profile widoczne w aplikacji. Profile aplikacji - Zmień powiększenie mapy, pokręć kółkiem w górę i w dół. Escape powraca do aplikacji WunderLINQ. - Użyj WunderLINQ do kontroli Dodaj co najmniej jeden element do listy w ustawieniach \"Szybkiej Akcji\" Stoki narciarskie do narciarstwa alpejskiego i zjazdowego oraz dostęp do wyciągów narciarskich. Biegi narciarskie i narciarstwo klasyczne @@ -3226,7 +3149,6 @@ Zastosuj tylko do %1$s Zastosuj we wszystkich profilach Jednostki i formaty - Wygląd Konfiguruje wygląd mapy Wygląd mapy Zainstalowane wtyczki @@ -3366,7 +3288,6 @@ Zamień %1$s i %2$s Początek trasy Szacuje czas przyjazdu dla nieznanego rodzaju dróg i ograniczenia prędkości na wszystkich drogach (może zmienić trasę) - Odwróć początek i cel Zapisano ślad Pusta nazwa pliku Przywróć @@ -3501,8 +3422,6 @@ Zaimportowany profil zawiera dodatkowe dane. Kliknij \"Importuj\", aby zaimportować tylko dane profilu, lub wybierz dodatkowe dane. Można wybrać dodatkowe dane do wyeksportowania wraz z profilem. Bezpośrednio do punktu - Pokaż powiadomienia systemowe podczas nawigacji z instrukcjami nawigacji. - Powiadomienie nawigacyjne Domyślnie (%s) Bez ponownego obliczania Minimalna odległość do ponownego wyznaczenia trasy @@ -3583,7 +3502,6 @@ Teren %1$s z %2$s Kwadrat - Romb Okrąg Wybierz kształt Cieniowanie wzniesień wymaga dodatkowych map. @@ -3620,8 +3538,6 @@ Języki Język Wszystkie języki - Niektóre artykuły Wikipiedii mogą nie być dostępne w twoim języku, wybierz w których językach artykuły Wikipedii mogą pojawiać się na mapie. -\nBędziesz mógł zmieniać pomiędzy wszystkimi możliwymi językami podczas czytania artykułu. Potrzebne są dodatkowe mapy, żeby przeglądać UM Wikipedii na mapie. Pewne artykuły Wikipedii mogą być nie dostępne w wybranym języku. Dostosowany kolor @@ -3747,7 +3663,6 @@ metry Pokaż lub ukryj dodatkowe szczegóły mapy Mapa nocna - Cały czas Możesz ustawić wysokość statku, aby unikać niskich mostów. Uwaga: dla mostów zwodzonych liczymy wysokość podniesionego mostu. Ustaw wysokość statku, by unikać niskich mostów. Uwaga: dla mostów zwodzonych liczymy wysokość podniesionego mostu. Ustaw wysokość statku @@ -3922,7 +3837,6 @@ Rozwój Dane na żywo z OsmAnd Dane na żywo z OsmAnd - Routing złożony Dwufazowe wyznaczanie tras do nawigacji samochodowej. Rozwój rodzimego transportu publicznego Przejdź do (bezpiecznego) obliczania trasy transportu publicznego w języku Java diff --git a/OsmAnd/res/values-pt-rBR/phrases.xml b/OsmAnd/res/values-pt-rBR/phrases.xml index d2656c04e1..458222fa16 100644 --- a/OsmAnd/res/values-pt-rBR/phrases.xml +++ b/OsmAnd/res/values-pt-rBR/phrases.xml @@ -75,7 +75,6 @@ Reprografia Loja de cortinas Loja de tecidos - Loja de roupa de cama Equipamento de mergulho Bricolagem Sex shop @@ -291,7 +290,6 @@ Medicina alternativa Audiologista Banco de sangue - Centro médico Obstetra Terapeuta ocupacional Optometrista @@ -439,7 +437,6 @@ Surf Natação Tênis de mesa - Handebol olímpico Tênis Tobogã Voleibol @@ -464,7 +461,6 @@ Aquário Parque de diversões Atração turística - Atração turística geral Passeio de diversão Animal (atração) Roda-gigante @@ -503,7 +499,6 @@ Acesso à Internet: público Acesso à Internet: serviço Mosteiro - Mosteiro histórico Cruz de beira de estrada Capelinha de beira de estrada Informação @@ -661,7 +656,6 @@ Crematório Cyber café Agência bancária - Caixa eletrônico Terminal de pagamento Financeira Casa de penhores @@ -820,7 +814,6 @@ Loja de velas Loja de moda Artigos de voo livre - Artigos de calefação Móveis para jardim Artigos de couro Loja de discos musicais @@ -839,9 +832,7 @@ Estacada Cabine de distribuição elétrica Bacia - Edificio Guindaste - Atração turística Árvore Ponto de rede cicloviária internacional Ponto de rede cicloviária nacional @@ -868,7 +859,6 @@ Fiscalização: distância mínima Fiscalização: acesso Fiscalização: pedágio - Área de conservação Horário de coleta Fiscalização: verificação Linha de corte florestal @@ -984,7 +974,6 @@ Com semáforos Sem controle de tráfego Não sinalizado - Lagoa do moinho Twitter Skype YouTube @@ -1160,7 +1149,6 @@ Fonte de energia: geotérmica Fonte de energia: petróleo Fonte de energia: diesel - Auto-serviço Nome internacional Nome nacional Nome regional @@ -1191,7 +1179,6 @@ Marcador de rota Mapa de caminhadas Natureza - Ponto de informação: vida selvagem História Placa Audioguia @@ -1311,8 +1298,6 @@ 4S (Primeira Classe Superior) 5 (Luxo) 5S (Luxo Superior) - Estrelas: 6 - Estrelas: 7 Quartos Motel Moedas @@ -1340,7 +1325,6 @@ Não aceita cartão Visa MasterCard Não aceita cartão MasterCard - Grátis Cartão de crédito Não aceita cartão de crédito Cartão Maestro @@ -1973,7 +1957,6 @@ Caravanas: não Estação de descarga sanitária: sim Estação de descarga sanitária: não - Estação de descarga sanitária: apenas para clientes Sim Fonte de energia: não Fonte de energia (tomada): CEE 17 azul @@ -2380,7 +2363,6 @@ Inscrição: E Inscrição: NE Em construção - Caixa eletrônico: sim Caixa eletrônico: não Pôster: compartimento florestal Pôster: loteamento florestal @@ -2786,7 +2768,6 @@ Rede de água Lagoa Ribeirão/Rio - Cisterna Em serviço: sim Tipo de gabinete: força Tipo de gabinete: telecom @@ -3557,8 +3538,6 @@ Via para veículos com alta ocupação Bonde Balsa - Fonte de energia: biomassa - Radioterapia Perigo Categoria de dificuldade n/c diff --git a/OsmAnd/res/values-pt-rBR/strings.xml b/OsmAnd/res/values-pt-rBR/strings.xml index ce1e4fe24d..da70b09ce8 100644 --- a/OsmAnd/res/values-pt-rBR/strings.xml +++ b/OsmAnd/res/values-pt-rBR/strings.xml @@ -1420,7 +1420,6 @@ Não foi possível calcular a rota. Não foi possível calcular a rota. A rota calculada está vazia. - Nova rota calculada, distância Você chegou. Coordenadas inválidas Voltar ao mapa @@ -1497,7 +1496,6 @@ Comentário adicionado Não foi possível adicionar comentário. Criar POI - Nó não pode ser encontrado ou POI não é um único nó Apagar {0} (comentário)\? Apagar POI Excluído @@ -1796,7 +1794,6 @@ Sem endereço determinado Procurando endereço Rotas hípicas - Atualizar Somente baixar via Wi-Fi Atualização ao vivo Atualizar @@ -1907,8 +1904,6 @@ Dar permissão Permitir acesso à localização Encontrar a minha posição - Não verificar se há novas versões ou descontos relacionados ao OsmAnd. - Não mostrar novas versões Atualizar todos os mapas agora? Limpar quadrículas Você tem certeza que deseja substituir o Favorito %1$s? @@ -2226,9 +2221,6 @@ Espessura das curvas de nível Água Ocultar água - Pesquisa antiga - Mostrar pesquisa antiga - Adicionar pesquisa antiga à lista recolhível. Usar autoestradas Permite autoestradas. Artigos do Wikipédia próximos @@ -2415,16 +2407,6 @@ Nome do preset Um botão para adicionar um marcador de mapa no local central da tela. Um botão para adicionar um local de estacionamento no meio da tela. - • Novo: suporte para guias de viagem off-line globais. Locais referenciados estão lincados ao mapa. Dados iniciais do Wikivoyage. -\n -\n• Wikipédia: novo visual, links ativos, imagens agora suportados. -\n -\n• Interface Open Track: suporte para grupos de waypoint. -\n -\n• Marcadores de mapa: importação de grupos selecionados de arquivos GPX, entrada de coordenadas, novo visual. -\n -\n• Assinatura OsmAnd Live agora suporta todas as funcionalidades do OsmAnd. -\n Converte como visitado nesta rota Não há espaço suficiente! \n{3} MB é necessário temporariamente, {1} MB permanentemente. @@ -2779,7 +2761,6 @@ Não foi possível encontrar o nó ou o caminho. Nenhum resultado de pesquisa\? \nMande-nos o seu comentário - Enviando caminho… Aumentar raio de pesquisa para %1$s Enviar consulta de pesquisa? Por favor, conceda acesso à localização OsmAnd para continuar. @@ -2793,21 +2774,6 @@ Outros transportes disponíveis nesta parada. Manter os marcadores visitados no mapa Marcadores adicionados como grupo de Favoritos ou pontos de passagem GPX marcados como Visitado permanecerão no mapa. Se o grupo não estiver ativo, os marcadores desaparecerão do mapa. - • Corrigida a falha na inicialização que ocorria em alguns dispositivos. -\n -\n• Novo recurso de Marcadores: apresenta os marcadores que já foram percorridos. -\n -\n• Histórico de pesquisa agora mostra as categorias que você pesquisou anteriormente. -\n -\n• Corrigida a falha na inicialização que ocorria com os mapas não-latinos. -\n -\n• Reduz problemas com a velocidade de processamento nos dispositivos Android 8.0. -\n -\n• Suporte para edição de objetos poligonais (exceto utilidades). -\n -\n• Medição de distância: adiciona botão \"Medição\" em Ações no menu de contexto. -\n -\n Toque num botão e ouça o aviso por voz correspondente para checar se está em falta ou com falha Planos e Preços Mensal @@ -2824,21 +2790,7 @@ %1$.2f %2$s Período de pagamento: As doações ajudam a financiar a cartografia no OSM. - • Navegação: Corrige barra de progresso, inversão rápida de início e fim de rota -\n -\n• Marcadores de mapa: Corrige ligar/desligar grupos, habilidade para ocultar os marcadores do mapa -\n -\n• Edição OSM: Habilidade para editar etiquetas de objetos não pontuais e caminhos, corrige falta de comentários em notas, backup de edições -\n -\n• Melhora análise da Wikipédia e Wikivoyage, arquivos atualizados já estão disponíveis -\n -\n• Menu de contexto: Corrige a cor de escudos de rodovias no modo noite, corrige tamanhos adicionais de menu -\n -\n• Navegação a barco: Suporte para o canal navegável -\n -\n• Outras correções de bugs -\n - Enviaremos a sua pesquisa: \"%1$s\", bem como a sua localização. + Enviaremos a sua pesquisa: \"%1$s\", bem como a sua localização. \n \nNenhuma informação pessoal é coletada, os dados de pesquisa são usados apenas para melhorar o algoritmo de pesquisa. Assinaturas @@ -2895,22 +2847,6 @@ Um botão para mostrar ou ocultar as trilhas selecionadas no mapa. Ocultar trilhas Mostrar trilhas - - Nova tela \'Direções\': Apresenta os botões de destino Casa e Trabalho, atalho \"percurso anterior\", lista de faixas e marcadores GPX activos, histórico de pesquisa -\n -\n - Informação adicional em \"Detalhes da rota\": tipos de estrada, superfície, declive, suavidade -\n -\n - Navegação de transporte público que suporta todos os tipos de transporte: metro, ônibus, bonde/VLT, etc. -\n -\n - Nova Ação Rápida para mostrar/ocultar faixas e modos dia/noite -\n -\n - Correção de áreas aparecendo como inundadas na Alemanha, África do Sul, Quebec -\n -\n - Suporte adicional para importação de KML e KMZ -\n -\n - Correção de falha na abertura de algumas paradas de transporte público -\n -\n - Remoção do Facebook e Firebase Analytics da versão gratuita (OsmAnd+ não inclui) -\n Habilitar o transporte público para alterações do OsmAnd Live. Transporte público OsmAnd Live Não pavimentado @@ -2987,14 +2923,6 @@ Evita usar metrôs e transporte ferroviário leve Sem balsas Evita usar balsas - • Exibição do tempo entre transferências em transporte público -\n -\n  • Interface do usuário corrigida para os detalhes da rota -\n -\n  • Tema escuro corrigido no menu Direção e Detalhes da rota -\n -\n  • Exibição do azimute na distância medida -\n Enviar log Arquivos %1$d movidos (%2$s). Arquivos %1$d copiados (%2$s). @@ -3019,7 +2947,6 @@ Escolha o tipo de dados que você deseja compartilhar: Mapas baixados Telas visitadas - Dados coletados Defina quais dados você permite que OsmAnd compartilhe. Ajuda-nos a entender a popularidade dos mapas de países e regiões. Nos ajuda a entender a popularidade do recurso OsmAnd. @@ -3075,8 +3002,6 @@ Roteamento de terceiros Perfis que serão visíveis no aplicativo. Perfis de aplicação - Altere o zoom do mapa rolando a roda para cima e para baixo. Escape retorna para o aplicativo WunderLINQ. - Use o WunderLINQ para controle Adicionar ao menos um item à lista nas configurações de \'Ação rápida\' Esqui alpino e downhill Pistas de esqui alpino ou de declínio e acesso a teleféricos. @@ -3225,7 +3150,6 @@ Configurações para roteamento no perfil selecionado \"%1$s\". Tempo limite após acordar Unidades e formatos - Aparência Aparência do mapa Aparência do mapa Plugins instalados @@ -3254,7 +3178,6 @@ Buffer de Logcat Predefinido Configurações do plugin - Faça o download do mapa %s detalhado, para visualizar esta área. Faça o download do mapa %s detalhado, para visualizar esta área. Mover arquivos de dados OsmAnd para o novo destino\? \n%1$s > %2$s @@ -3720,7 +3643,6 @@ Controle de tela Desligar a tela conforme o tempo limite da tela do sistema. Usar tempo limite da tela do sistema - Opções de ativação da tela: Selecione as opções de ativação da tela (verifique se OsmAnd está em primeiro plano quando o dispositivo está sendo bloqueado): Cada instrução de navegação liga a tela. Instruções de navegação @@ -3748,7 +3670,6 @@ metros Mostrar ou ocultar detalhes adicionais do mapa Mapa noturno - Tempo todo Desativado. Requer \'manter a tela ligada\' em \'tempo limite após a ativação\'. Adicionar fonte online A aplicação dessas alterações limpará os dados em cache dessa origem de bloco @@ -3860,7 +3781,6 @@ Aparecer depois Alterar o tipo de rota antes Alterar o tipo de rota após - Servidor web Trilha simplificada Apenas a linha da rota será salva, os waypoints serão excluídos. Nome do arquivo @@ -3911,7 +3831,6 @@ Desenvolvimento Dados do OsmAnd Live Dados do OsmAnd Live - Roteamento complexo Roteamento de duas fases para navegação automotiva. Desenvolvimento de transporte público nativo Mudar para cálculo de rota de transporte público em Java (seguro) diff --git a/OsmAnd/res/values-pt/phrases.xml b/OsmAnd/res/values-pt/phrases.xml index 9b7cae20de..e2952d968c 100644 --- a/OsmAnd/res/values-pt/phrases.xml +++ b/OsmAnd/res/values-pt/phrases.xml @@ -97,7 +97,6 @@ Florista Loja de molduras Artigos de voo livre - Artigos de aquecimento Mobiliário Centro de jardinagem Móveis para jardim @@ -118,7 +117,6 @@ Impasse Arquitectura: casa grande alemã Estrutura maritíma - ATM: sim Loja de gás líquido Loja genérica Loja de presentes @@ -588,7 +586,6 @@ Medicina alternativa Audiologista Banco de sangue - Centro médico Obstetra Terapeuta ocupacional Optometrista @@ -990,7 +987,6 @@ Crematório Cyber café Agência bancária - Caixa eletrônico Caixa eletrônico Terminal de pagamento Financeira @@ -2752,7 +2748,6 @@ Rede de água Lagoa Ribeirão/Rio - Cisterna Em serviço: sim Tipo de gabinete: força Tipo de gabinete: telecom @@ -3547,7 +3542,6 @@ Via para veículos com alta ocupação Bonde Balsa - Fonte de energia: biomassa n/c n/c* 1A diff --git a/OsmAnd/res/values-pt/strings.xml b/OsmAnd/res/values-pt/strings.xml index d50682dc2f..fdb5eb12ec 100644 --- a/OsmAnd/res/values-pt/strings.xml +++ b/OsmAnd/res/values-pt/strings.xml @@ -257,7 +257,6 @@ Não foi possível calcular a rota. Não foi possível calcular a rota. A rota calculada está vazia. - Nova rota calculada, distância Chegou. Coordenadas inválidas Voltar ao mapa @@ -361,7 +360,6 @@ Não foi possível adicionar um comentário. Editar POI Criar POI - Nó não pode ser encontrado ou POI não é um único nó Eliminar {0} (comentário)\? Eliminar POI Apagar @@ -1574,7 +1572,6 @@ Noite Há uma nova opção para controlar principalmente a app através do painel de controlo flexível ou um menu estático. A sua escolha pode ser alterada nas configurações do painel. Painel de controlo ou menu de controlo - Atualizar Apenas descarregar com Wi-Fi Atualização ao vivo Atualizar agora @@ -2032,9 +2029,6 @@ Largura das curvas de nível Água Ocultar água - Pesquisa antiga - Mostrar pesquisa antiga - Adicionar pesquisa antiga à lista da gaveta Utilizar autoestradas Permite autoestradas. Artigos da Wikipédia próximos @@ -2104,8 +2098,6 @@ Conceder permissão Permitir acesso à localização Encontrar a minha posição - Não verifique atualizações de versão ou descontos relacionados com OsmAnd - Não mostrar atualizações Atualizar todos os mapas agora\? Limpar todas as telhas Percurso económico @@ -2122,7 +2114,6 @@ Não foi possível encontrar o nó ou o caminho. Nenhum resultado de pesquisa\? \nDê-nos a sua opinião - Cometendo caminho… Estender o raio de pesquisa para %1$s Enviaremos a sua consulta de pesquisa: \"%1$s\" com a sua localização. \n @@ -2142,21 +2133,6 @@ Esconder descrição completa Mostrar a descrição completa Obrigado pelos seus comentários - • A falha na inicialização que ocorreu em alguns dispositivos corrigida -\n -\n• Novos Marcadores de recurso: apresentar os marcadores que já foi percorrida -\n -\n• Histórico de pesquisa agora mostra as categorias que você procurou anteriormente -\n -\n• A falha na inicialização que ocorreu com mapas não-latinos corrigida -\n -\n• Melhorar problemas de velocidade em dispositivos com 8.0 Android -\n -\n• Suporte para editar objetos de polígono de renderização (não-cortesia) -\n -\n• Medir a distância: adicionar botão de medição para ações no menu de contexto -\n -\n Procurar rua Restaurar Os marcadores adicionados como um grupo de favoritos ou ponto de rota GPX marcados como Passado permanecerão no mapa. Se o grupo não estiver ativo, os marcadores desaparecerão do mapa. @@ -2181,19 +2157,6 @@ %1$.2f %2$s Período de pagamento: As doações ajudam a financiar a cartografia do OSM. - • Navegação: Fix barra de progresso, troca rápida do ponto inicial e final da rota -\n -\n • Marcadores de mapa: corrigir ligar/desligar grupos, a capacidade de esconder os marcadores do mapa -\n -\n • OSM Edit: capacidade de editar tags para objetos não-ponto e caminhos, corrigir comentários ausentes em notas, backup de edições -\n -\n • Melhore análise Wikipedia e Wikivoyage, ficheiros atualizados já estão disponíveis -\n -\n • Menu de contexto: fixar a cor dos escudos de transporte no modo noturno, fixar tamanhos de menu adicionais -\n -\n • Navegação do barco: sustentação para o fairway do hidrovia -\n -\n • Outras correções de bugs Para condução todo-o-terreno com base no estilo \'Topo\' e para utilização com imagens de satélite verdes como base. Redução da espessura da estrada principal, aumento da espessura dos trajetos, caminhos, ciclovias e outras vias. Para navegação náutica. Características: bóias, faróis, cursos de rios, vias marítimas e marcas, portos, serviços de navegação, contornos de profundidade. Para esquiar. Contém pistas de esqui, elevadores, pistas de cross country, etc. Escurece objetos de mapa secundários. @@ -2328,17 +2291,6 @@ Ações adicionais Ficheiro GPX com coordenadas e dados das anotações selecionadas. Ficheiro GPX com coordenadas e dados de todas as anotações. - • Novo: suporte para guias de viagem offline globais. Locais referenciados estão lincados ao mapa. Dados iniciais do Wikivoyage. -\n -\n• Wikipédia: novo visual, links ativos, imagens agora suportados -\n -\n• Interface Open Track: suporte para grupos de ponto de passagem -\n -\n• Marcadores de mapa: importação de grupos selecionados de ficheiros GPX, entrada de coordenadas, novo visual -\n -\n• Assinatura OsmAnd Live agora suporta todas as funcionalidades do OsmAnd -\n -\n Modifique a sua pesquisa. Ações Marcador @@ -2934,23 +2886,6 @@ Caminho Ciclovia Indefinido - - Novo ecrã \'Direções\': apresenta os botões de destino Casa e Trabalho, atalho \"percurso anterior\", lista de trajetos e marcadores GPX ativos, histórico de pesquisa -\n -\n - Informação adicional em \"Detalhes da rota\": tipos de estrada, superfície, declive, suavidade -\n -\n - Navegação de transporte público que suporta todos os tipos de transporte: metro, autocarro, elétrico, etc. -\n -\n - Nova ação rápida para mostrar/ocultar trajetos e modos dia/noite -\n -\n - Áreas fixas exibidas como inundadas na Alemanha, África do Sul, Quebec -\n -\n - Suporte adicional para importação de KML e KMZ -\n -\n - Quebras fixas na abertura de algumas paragens de transportes públicos -\n -\n - Analíticas do Facebook e Firebase removidas da versão gratuita (OsmAnd+ não as inclui) -\n -\n Ativar transportes públicos para as mudanças do OsmAnd Live. OsmAnd Live transportes públicos Hora do dia @@ -2976,15 +2911,6 @@ Evitar metros subterrâneos e de superfície Sem balsas Evita balsas - • Mostrar o tempo entre transbordos em transportes públicos -\n -\n• Interface corrigida nos detalhes da rota -\n -\n• Tema escuro no menu Direção e Detalhes da Rota corrigido -\n -\n• Mostrar azimute na medição de distância -\n -\n Milirradianos Paralelos Seixos @@ -3081,8 +3007,6 @@ Roteamento de terceiros Escolha os perfis visíveis na aplicação. Perfis de app - Alterar o zoom do mapa deslocando a roda para cima e para baixo. Escapar devolve-o à aplicação WunderLINQ. - Usar WunderLINQ para controle Adicione pelo menos um item à lista nas configurações de \'Ação rápida\' Esqui alpino e downhill Pistas para esqui alpino ou downhill e acesso a teleféricos de esqui. @@ -3228,7 +3152,6 @@ Configurações de roteamento no perfil selecionado \"%1$s\". Tempo limite após despertar Unidades e formatos - Aspeto Aparência do mapa Aspeto do mapa Plugins instalados @@ -3433,7 +3356,6 @@ Selecione o grupo Selecione a forma Círculo - Paralelograma Mín Quadrado Recalcular rota em caso de desvio @@ -3618,8 +3540,6 @@ Idiomas Idioma Todos os idiomas - Alguns artigos da Wikipédia podem não estar disponíveis em seu nome. Selecione os idiomas nos quais os artigos da Wikipédia aparecerão no mapa. -\nPoderá alternar entre todos os idiomas disponíveis enquanto lê o artigo. Mapas adicionais são necessários para visualizar os POIs da Wikipédia no mapa. Selecione as línguas dos artigos da Wikipedia no mapa. Mude para qualquer língua disponível enquanto lê o artigo. OsmAnd + Mapillary @@ -3693,7 +3613,6 @@ Controle de ecrã Desliga o ecrã após o tempo limite do ecrã de acordo com o do sistema. Usar o tempo limite do ecrã do sistema - Opções de acordar o ecrã: Selecione as opções de acordar o ecrã (certifique-se de que OsmAnd está em primeiro plano quando o aparelho está a ser bloqueado): Cada instrução de navegação irá ligar o ecrã. Instruções de navegação @@ -3737,7 +3656,6 @@ metros Mostrar ou ocultar detalhes adicionais do mapa Mapa noturno - O tempo todo Cadeira de rodas Go-cart Os alertas de radares de velocidade em alguns países são proibidos por lei. @@ -3919,7 +3837,6 @@ Desenvolvimento Dados do OsmAnd ao vivo Dados do OsmAnd ao vivo - Roteamento complexo Roteamento em duas fases para a navegação automotiva. Desenvolvimento nativos de transportes públicos Mudar para o Cálculo de rotas de transporte público Java (seguro) diff --git a/OsmAnd/res/values-ro/strings.xml b/OsmAnd/res/values-ro/strings.xml index 3dfeca684a..003d95f5e0 100644 --- a/OsmAnd/res/values-ro/strings.xml +++ b/OsmAnd/res/values-ro/strings.xml @@ -711,7 +711,6 @@ Eroare la calcularea rutei Eroare apărută în timpul calculării rutei Eroare: ruta calculată este vidă - O nouă rută a fost calculată, distanța Ați ajuns la destinație Coordonate invalide Înapoi la harta OsmAnd @@ -811,7 +810,6 @@ Nu s-a putut adăuga comentariul. Editare POI Creează POI - POI-ul nu poate fi găsit sau punctul de interes nu este singular Ștergeți {0} (introduceți comentariu)? Șterge POI Șterge @@ -2121,7 +2119,6 @@ Părere Contact Legendă hartă - Actualizare Descărcare doar pe Wi-Fi Actualizări in timp real Actualizați acum @@ -2414,7 +2411,6 @@ Mai multe optiuni de transport disponibile de la această oprire. Marcajele adăugate ca grup de Favorite sau GPX waypoints marcate vor rămâne pe hartă.Dacă grupul nu este activ, markerii vor dispărea din hartă. Păstraţi markerii trecuţi pe hartă - Schimba adresa de început și de sfârșit Utilizat pentru estimarea timpului de sosire pentru tipul necunoscut de drumuri și pentru a limita viteza pentru toate drumurile (ar putea schimba ruta) Setări pentru profil: Configurează profilul @@ -2522,7 +2518,6 @@ Luați în considerare limitările temporare Setări pentru rutare în profilul selectat \"%1$s\". Unități și formate - Aspect Aspect hartă Plugin-uri instalate Temă aplicație, unități, regiune diff --git a/OsmAnd/res/values-ru/phrases.xml b/OsmAnd/res/values-ru/phrases.xml index 18e2cfe80c..839721ba13 100644 --- a/OsmAnd/res/values-ru/phrases.xml +++ b/OsmAnd/res/values-ru/phrases.xml @@ -42,7 +42,6 @@ Ксерокопия, полиграфия Шторы, портьеры Ткани - Снаряжение для дайвинга Инструменты и стройматериалы Двери @@ -104,7 +103,6 @@ Товары для свободного полёта Магазин игр;Игры Садовая мебель, аксессуары - Системы отопления Магазин кожи, галантерея Пиротехника;Фейерверки Оружие @@ -464,7 +462,6 @@ Синтоизм Даосизм Монастырь - Исторический монастырь Придорожный крест Придорожная святыня Информация @@ -819,7 +816,6 @@ Микрорайон Жилой район Религиозное землепользование - Аттракцион Лесной домик Охотничий домик @@ -1007,7 +1003,6 @@ Метка маршрута Карта для пешего туризма Природа - Дикая природа История Знак Аудиогид @@ -1020,7 +1015,6 @@ Расписание общественного транспорта Технология Астрономия - Достопримечательность Коммерческое землепользование Розничная торговля (землепользование) Место для разведения огня @@ -2598,7 +2592,6 @@ Консультация брачная: да Консультация брачная: нет Консультация по вопросам питания: да - Консультация по вопросам питания: нет Консультация реабилитационная: да Консультация реабилитационная: нет Консультация сексологическая: да @@ -2666,7 +2659,6 @@ Основной Пруд Поток - Ёмкость Используется: да Тип шкафа: электрический Тип шкафа: телекоммуникации @@ -3450,7 +3442,6 @@ Метро Трамвай Паром - Источник энергии: биомасса Википедия Категория сложности Газовый факел diff --git a/OsmAnd/res/values-ru/strings.xml b/OsmAnd/res/values-ru/strings.xml index 784f3e6ba3..40b943342d 100644 --- a/OsmAnd/res/values-ru/strings.xml +++ b/OsmAnd/res/values-ru/strings.xml @@ -182,9 +182,6 @@ Толщина горизонталей Воду Водные объекты - Старый поиск - Показывать старый поиск - Добавить старый поиск в меню. Разрешить магистрали Разрешает движение по автомагистралям. Статьи Википедии рядом @@ -821,7 +818,6 @@ Не удалось рассчитать маршрут. Не удалось рассчитать маршрут Невозможно построить маршрут. - Проложен новый маршрут, расстояние Вы прибыли. Неправильные координаты Вернуться к карте @@ -918,7 +914,6 @@ Автор Редактирование POI Добавление POI - Узел не найден или объект состоит из нескольких узлов, что не поддерживается. Удалить {0} (комментарий)\? Удаление POI Удалено @@ -2031,7 +2026,6 @@ Без лестниц Избегать ступеней и лестниц Без перехода границы - Обновлять Загружать только по Wi-Fi Обновить сейчас Приложение не имеет разрешения на использование SD-карты @@ -2201,8 +2195,6 @@ Автобус Поезд Надземные объекты - Не проверять информацию о новых версиях и скидках от OsmAnd. - Не показывать новые версии Обновить все карты сейчас? Удалить из кеша Снижать расход топлива @@ -2629,16 +2621,6 @@ По дате По типу Измените ваш запрос. - • Новое меню «Путеводитель»: просмотр статей Викигида без использования Интернета -\n -\n • Википедия: обновленный внешний вид, активные ссылки, изображения -\n -\n • Открытый GPX: отображение групп путевых точек -\n -\n • Маркеры: возможность выбрать группы путевых точек GPX для импорта, ввод координат, обновленный внешний вид -\n -\n • Подписка OsmAnd Live теперь включает в себя все возможности OsmAnd -\n Правок %1$s, сумма %2$s mBTC OSM получатели Всего пожертвований @@ -2814,44 +2796,13 @@ Ваш поисковый запрос будет отправлен: «%1$s», вместе с вашим местоположением. \n \nПерсональная информация не собирается, требуются только данные поиска, с целью усовершенствовать поиск. - Нет результатов? -\nРасскажите нам об этом. Отправить поисковый запрос? Нажмите кнопку и прослушайте соответствующую голосовую подсказку, чтобы узнать, отсутствует она или ошибочна Спасибо за ваш отзыв Не удалось найти узел или путь. Нет результатов поиска\? \nОставьте отзыв - • Навигация: исправлен индикатор выполнения, быстрая замена начальной и конечной точки маршрута -\n -\n• Маркеты карт: исправлено включение / выключение групп, возможность скрывать маркеры с карты -\n -\n• Редактирование OSM: возможность редактирования тегов для неточечных объектов и дорог, исправление недостающих комментариев к заметкам, резервное копирование правок -\n -\n• Улучшение анализа Википедии и Викигида, обновленные файлы уже доступны -\n -\n• Контекстное меню: исправлен цвет дорожных знаков в ночном режиме, исправлены размеры дополнительного меню -\n -\n• Навигация: поддержка фарватера -\n -\n• Другие исправления ошибок -\n Расширить радиус поиска до %1$s - Фиксируется путь… - • Исправлено падение приложения при запуске, которое происходило на некоторых устройствах -\n -\n• Новый функционал маркеров: отображение пройденных маркеров -\n -\n• История поиска теперь показывает категории, которые вы искали ранее -\n -\n• Исправлено падение приложения при запуске с нелатинскими картами -\n -\n• Повышена скорость рендеринга на устройствах с Android 8.0 -\n -\n• Поддержка редактирования полигональных объектов (не amenity) -\n -\n• Измерить расстояние: добавлена кнопка «Измерить» в пункт «Действия» контекстного меню -\n Для продолжения дайте OsmAnd разрешение на определение местоположения. Чёрный Поиск улицы @@ -2929,21 +2880,6 @@ На %1$s Выход на Посадка на остановке - • Новый экран \"Маршруты\" отображает: кнопки пунктов назначения \"Дом\" и \"Работа\", ярлык \"Предыдущий маршрут\", список активных GPX треков и маркеров, историю поиска. -\n -\n• Дополнительная информация в разделе \"Детали маршрута\": типы дорог, поверхность, крутизна, проходимость. -\n -\n• Навигация на общественном транспорте поддерживает все виды транспорта: метро, автобус, трамвай и др. -\n -\n• Новые быстрые действия для показа/скрытия треков и дневного/ночного режимов. -\n -\n• Исправлены области, отображаемые как затопленные в Германии, Южной Африке, Квебеке. -\n -\n• Дополнительная поддержка импорта KML и KMZ. -\n -\n• Исправлены падения при открытии некоторых остановок общественного транспорта. -\n -\n• Удалена аналитика Facebook и Firebase из бесплатной версии (OsmAnd+ ее не включает). Включить общественный транспорт с учётом автообновлений OsmAnd Live. Общественный транспорт OsmAnd Live %1$d пересадки @@ -3020,15 +2956,6 @@ Исключить метро и рельсовый транспорт Без паромов Исключить паромы - • Отображение времени между пересадками в общественном транспорте -\n -\n• Исправлен пользовательский интерфейс для \"Детали маршрута\" -\n -\n• Исправлена темная тема в меню \"Маршрут\" и \"Детали маршрута\" -\n -\n• Отображение азимута в инструменте \"Измерить расстояние\" -\n -\n Отправить журнал К сожалению OsmAnd не смог найти подходящий для вас маршрут. Попробуйте пройти навигацию пешком. @@ -3052,7 +2979,6 @@ Выберите тип данных, которыми вы хотите поделиться: Карт скачано Экранов посещено - Собранные данные Определите, какими данными вы разрешаете делиться с OsmAnd. Помогает нам понять популярность карты страны и региона. Помогает нам понять популярность функций OsmAnd. @@ -3098,7 +3024,6 @@ Прямая линия Выберите профили, которые будут отображаться в приложении. Профили приложения - Использовать WunderLINQ для контроля Значок Собранные данные Нажмите ещё раз для смены ориентации карты @@ -3221,7 +3146,6 @@ Параметр выбран по умолчанию для профилей: %s Настройки маршрутизации в профиле «%1$s». Время работы после пробуждения - Внешний вид Настроить навигацию Предупреждения отображаются в левом нижнем углу во время навигации. Общие настройки приложения @@ -3738,7 +3662,6 @@ \n \n%2$s: уровни масштабирования, при которых будут видны оригинальные тайлы; увеличение и уменьшение масштаба может происходить вне этих значений. Управление экраном - Параметры включения экрана: Настройки включения экрана (убедитесь, что перед блокировкой устройства OsmAnd находится на переднем плане): Настройка отключения экрана по умолчанию Вы можете экспортировать или импортировать быстрые действия вместе с профилями приложения. @@ -3751,7 +3674,6 @@ тонны метры Управление отображением дополнительных деталей на карте - Всё время Ночная карта Отключено. Необходимо включить «Держать экран включённым» в разделе «Время работы после пробуждения». Применение этих изменений приведёт к очистке кешированных данных этого источника тайлов @@ -3862,7 +3784,6 @@ Обрезать после Изменить тип маршрута до Изменить тип маршрута после - Веб-сервер Упрощённый трек Будет сохранена только линия маршрута, путевые точки будут удалены. Имя файла @@ -3912,7 +3833,6 @@ \nВы можете управлять своими подписками и отменять их, перейдя в настройки AppGallery. Данные OsmAnd Live Данные OsmAnd Live - Комплексная маршрутизация Двухфазная маршрутизация для автомобильной навигации. Что нового Выполните вход OAuth, чтобы использовать функции osmedit diff --git a/OsmAnd/res/values-sc/phrases.xml b/OsmAnd/res/values-sc/phrases.xml index 7891e73884..90a2e05651 100644 --- a/OsmAnd/res/values-sc/phrases.xml +++ b/OsmAnd/res/values-sc/phrases.xml @@ -36,7 +36,6 @@ Copisteria Butega pro su campègiu Butega de drapègios - Butega de banitas Butega de artìculos pro imberghidura Butega de artìculos pro su bricolage Butega de artìculos eròticos @@ -196,7 +195,6 @@ Sanatòriu Meighina alternativa Banca de su sàmbene - Tzentru mèdicu Levadora Optometrista Fisioterapista @@ -289,7 +287,6 @@ Shintoismu Taoismu Monastèriu/Muristene - Monastèriu/Muristene istòricu Rughe istòrica Tabernàculu istòricu Informatziones @@ -413,7 +410,6 @@ Brusiadorju Ìnternet cafè Banca - Bancomat Pagamentu Bitcoin Intrada gruta Cùcuru de unu monte @@ -660,7 +656,6 @@ Àrea ferroviària Hockey in pradu Vela - Atràida turìstica generale Mesa de picnic Hanami Cantina @@ -733,7 +728,6 @@ Butega de candelas Butega de moda Artìculos pro Freefly (paracadutismu) - Butega de calorìferos Butega de artìculos pro su giardinu Butega de còrgiu Butega de pneumàticos @@ -744,7 +738,6 @@ Pirotècnica Armeria Turre de osservatzione - Àrea amparada Grue Istadu Cabina @@ -792,7 +785,6 @@ Butega de profumos Ponte de perdas Turre de sa funivia - Istagnu de unu mulinu Paraundas Paraundas (Groyne) Cabina de distributzione (elètrica o àteru) @@ -882,7 +874,6 @@ Notàriu Ufìtziu de una fundatzione Ufìtziu de cummertzialista - Atràida turìstica Giostra Montagnas russas Làssina @@ -1210,7 +1201,6 @@ Edifìtziu Indicadore de su caminu Natura - Sinnale de informatziones: fàuna agreste Modellu tàtile Mapa tàtile Fundos/prantas @@ -1621,8 +1611,6 @@ 4S (prima classe superiore) 5 (lussu) 5S (lussu superiore) - Isteddas: 6 - Isteddas: 7 Aposentos Albergu de s’amore Monedas @@ -1641,7 +1629,6 @@ No atzetat cartas Visa MasterCard No atzetat cartas MasterCard - De badas Banchinas Ischinale: eja Ischinale: nono @@ -2558,7 +2545,6 @@ Iscritzione: E Iscritzione: NE In costrutzione - Bancomat: eja Bancomat: nono Logu pro su fogu Tzentralina @@ -2809,7 +2795,6 @@ Printzipale Poju Trainu - Tzisterna In servìtziu: eja Casta de cabina: eletritzidade Casta de cabina: telecomunicatziones @@ -3553,8 +3538,6 @@ Veìculos de capatzidade manna Tram Navile - Mitza de energia: biomassa - Radioterapia Perìgulu Categoria de dificultade n/c diff --git a/OsmAnd/res/values-sc/strings.xml b/OsmAnd/res/values-sc/strings.xml index 41d8b584bf..f5ff13cd8b 100644 --- a/OsmAnd/res/values-sc/strings.xml +++ b/OsmAnd/res/values-sc/strings.xml @@ -1170,7 +1170,6 @@ Impossìbile carculare s\'àndala. Impossìbile carculare s\'àndala. S’àndala carculada est bòida. - Àndala noa calculada, distàntzia Ses arribadu. Coordinadas non vàlidas Torra a sa mapa @@ -1266,7 +1265,6 @@ Impossìbile annànghere su cummentu. Muda PDI Crea PDI - Su nodu non podet èssere agatadu, o s’amenidade est fata de prus nodos, cosa chi no est galu suportada. Iscantzellare {0} (cummentu)? Iscantzelladura PDI Iscantzella @@ -1802,7 +1800,6 @@ Distàntzia: Tempus: Àndalas a caddu - Agiorna cada Iscàrriga petzi cun su WiFi Agiornamentos in tempus reale Agiorna como @@ -2013,8 +2010,6 @@ Dae su permissu Dae su permissu pro s\'atzessu a sa positzione Agata sa positzione mea - Non chircare versiones noas o ofertas promotzionales pro OsmAnd. - No ammustres versiones noas Agiornare totu sas mapas como? Iscantzella totu sos tasseddos Retzi indicatziones e iscoberi logos noos chene una connessione a ìnternet @@ -2078,9 +2073,6 @@ Permitit s\'impreu de sas autostradas. Serbu (latinu) Tzinesu (Hong Kong) - Chirca betza - Ammustra sa chirca betza - Annanghe sa chirca betza a sa lista. Grussesa curvas de livellu Ispessore curvas de livellu Abba @@ -2597,17 +2589,6 @@ Pro data Pro casta Muda sa chirca tua. - • Nou: suportu pro ghias globales de biàgiu non in lìnia. Sos logos numenados sunt ligados a sa mapa. Datos initziales dae WikiVoyage. -\n -\n • Wikipedia: aspetu nou, ligàmenes ativos, immàgines -\n -\n • Interfache pro abèrrere sas rastas: ammustra sos puntos de coladòrgiu -\n -\n • Marcadores mapa: importatzione de grupos ischertados dae documentos GPX, aspetu noude s\'insertada de sas coordinadas -\n -\n • S\'abbonamentu a OsmAnd Live como incluet totu sas funtzionalidades de OsmAnd -\n -\n Ite b\'at inoghe: parchegiadu in Piga intre @@ -2782,46 +2763,13 @@ Mundu Amos a imbiare sos tèrmines de sa chirca tua: \"%1$s\", in paris cun sa positzione tua.\n \n Non benit collida peruna informatzione personale, sos datos de chirca benint impreados petzi pro megiorare s\'algoritmu de chirca. - Perunu risultadu? -\nFaghide·nos·lu ischire. Imbiare sos tèrmines de chirca? - • Nàvigu: Barra de progressu acontzada, cuncàmbiu lestru intre sos puntos de incumintzu e de acabu de s\'àndala -\n -\n • Marcadores de sa mapa: acontzu de s\'allughidura/istudadura de sos grupos, possibilidade de istichire marcadores dae sa mapa -\n -\n • Modìficas OSM: Possibilidade de modificare sas etichetas pro sos ogetos e sas bias chi non sunt puntos, acontzu de su problema de sos cummentos chi mancaiant in sas notas, còpia de seguresa de sas modìficas -\n -\n • Anàlisi de Wikipedia e de Wikivoyage megioradas, sos documentos agiornados sunt giai disponìbiles -\n -\n • Menù de cuntestu: colores de sos iscudos de trasportu in sa modalidade pro sa note acontzados, mannàrias pro sos menùs additzionales acontzadas -\n -\n • Nàvigu in barca: suportu pro sos canales navigàbiles -\n -\n • Àteros acontzos de errores -\n -\n Ismànnia su raju de chirca finas a %1$s Gràtzias pro s\'opinione tua Impossìbile agatare su nodu o sa bia. Perunu risultadu de chirca\? \nFruni·nos s\'opinione tua - Imbiende sa bia… Toca unu butone e ascurta s\'annùntziu vocale chi li currispondet pro intendere si mancat o si est isballiadu - • Curretu s\'errore de istudada a s\'allughidura chi bi fiat pro carchi dispositivu -\n -\n • Funtzionalidae noa pro sos marcadores: ammustra sos marcadores chi as giai coladu -\n -\n • Sa cronologia de sas chircas como ammustrat sas categorias chi as chircadu in antis -\n -\n • Errore de istudada a s\'allughidura cun mapas cun caràteres non latinos curretu -\n -\n • Lestresa de sa renderizatzione in sos dispositivos Android 8.0 megiorada -\n -\n • Suportu a sa modìfica de ogetos poligonales (non amenidades) -\n -\n • Medida de distàntzias: butone pro sas medidas annantu a su butone de sas atziones in su menù de cuntestu -\n -\n Pro praghere fruni a OsmAnd s\'atzessu a sa positzione pro sighire. Nieddu In custa firmada bi sunt àteros mesos de trasportu disponìbiles. @@ -2902,23 +2850,6 @@ Unu butone pro ammustrare o cuare sas rastas ischertadas in sa mapa. Istichi sas rastas Ammustra sas rastas - • Ischermada \'Diretziones\' noa: Ammustrat sos butones de destinatzione pro sa domo e su logu de traballu, s\'incurtzada \'àndala imbeniente\', sa lista de rastas GPX e de marcadores ativos e sa cronologia de sas chircas -\n -\n • Informatziones agiuntivas in suta de \'Minujas de s\'àndala\': casta de carreras, superfìtzies, ratesa, uniformidade -\n -\n • Navigatzione cun su trasportu pùblicu chi suportat cada genia de trasportu: metropolitana, postale, tram, etz. -\n -\n • Butone de atzione nou pro ammustrare/istichire rastas e modalidades die/note -\n -\n • Àreas fissadas ammustradas comente inundadas in Germània, Àfrica de su Sud, Quebec -\n -\n • Suportu agiuntivu pro s\'importatzione de KML e KMZ -\n -\n • Errore de istudada a s\'abertura de carchi firmada de trasportu pùblicu curretu -\n -\n • Anàlisi de Facebook e Firebase bogadas dae sa versione lìbera (OsmAnd+ non las incluet) -\n -\n Abìlita su trasportu pùblicu pro sas modìficas de OsmAnd Live. Trasportu pùblicu in OsmAnd Live %1$d tramudòngios @@ -2995,15 +2926,6 @@ Istransit sas metropolitanas e sas metrotranvias Perunu navile Istransit sos naviles - • Ammustra su tempus intre sos movimentos in su trasportu pùblicu -\n -\n • Interfache pro s\'impreadore pro sas minujas de s\'àndala curreta -\n -\n • Tema iscuru in su menù de sas diretziones e in sas minujas de s\'àndala curretu -\n -\n • Ammustra s\'azimuth in Medi sa distàntzia -\n -\n Imbia su registru %1$d documentos tramudados (%2$s). %1$d documentos copiados (%2$s). @@ -3216,7 +3138,6 @@ Esèmpiu Istandard UTM Còdighe Abertu de Logu (OLC) - Aparèntzia Estensiones installadas Reimposta sos valores predefinidos Allughe s’ischermu @@ -3262,7 +3183,6 @@ Buffer de Logcat Predefinidu Impostatziones de s\'estensione - Iscàrriga sa mapa de %s fata a sa minuda pro pompiare cust\'àrea. Iscàrriga sa mapa de %s fata a sa minuda pro pompiare cust\'àrea. Tramudare sos datos de OsmAnd in sa destinatzione noa\? \n%1$s > %2$s @@ -3711,7 +3631,6 @@ Podes esportare o importare atziones lestras cun profilos de s\'aplicatzione. Iscantzellare totu\? Ses seguru de chèrrere iscantzellare definitivamente %d atziones lestras\? - Totu su tempus metros Ammustra o cua sos detàllios additzionales in sa mapa Mapa noturna diff --git a/OsmAnd/res/values-sk/phrases.xml b/OsmAnd/res/values-sk/phrases.xml index 980c0ca53a..7848da6dee 100644 --- a/OsmAnd/res/values-sk/phrases.xml +++ b/OsmAnd/res/values-sk/phrases.xml @@ -56,7 +56,6 @@ Kopírovanie Závesy Látky - Posteľné prádlo Potápačské vybavenie Pre domácich kutilov Sexshop @@ -261,7 +260,6 @@ Alternatívna medicína Krvná banka Ušný doktor - Medicínske centrum Tehotenská asistentka Rehabilitácia Medicínske zariadenie @@ -344,7 +342,6 @@ Internetové pripojenie: verejné Internetové pripojenie: služba Kláštor - Historický kláštor Božie muky/Náboženský prícestný kríž Náboženská prícestná schránka Informácie @@ -436,7 +433,6 @@ Krematórium Internetová kaviareň Banka - Bankomat Požičovňa peňazí Záložňa Zmenáreň @@ -615,7 +611,6 @@ Surfovanie Plávanie Stolný tenis - Tímová hádzaná Tenis Šmykľavková dráha Volejbal @@ -689,7 +684,6 @@ Les Vyhliadková veža Zvonica - Všeobecná turistická atrakcia Chatka Trojstranný prístrešok Piknikový stôl @@ -802,7 +796,6 @@ Obchod so zákuskami Obchod so sviečkami Módny butik - Obchod s kúrením Obchod so záhradným nábytkom Obchod s kožou Hudobniny @@ -821,12 +814,9 @@ Pobrežná hrádza Káblová rozvodná skriňa Nádrž na dažďovú vodu - Budova Žeriav - Turistická atrakcia Výsek lesa Strom - Chránené územie Bod medzinárodnej cyklistickej siete Bod národnej cyklistickej siete Bod regionálnej cyklistickej siete @@ -967,7 +957,6 @@ Lokálna pešia trasa Číslo pešej trasy Parfuméria - Mlynský rybník Cirkevná kancelária Kancelária asociácie Finančná kancelária @@ -1112,7 +1101,6 @@ Zdroj energie: geotermálny Zdroj energie: ropa Zdroj energie: nafta - Samoobslužné Medzinárodný názov Národný názov Regionálny názov @@ -1139,7 +1127,6 @@ Terminál Turistická mapa Príroda - Informačné značenie: živočíchy História Značka Cyklomapa @@ -1262,8 +1249,6 @@ 4S (Vyššia prvá trieda) 5 (Luxusný) 5S (Vyšší luxus) - Počet hviezd: 6 - Počet hviezd: 7 Počet izieb Hodinový hotel Mince @@ -1301,7 +1286,6 @@ Neprijíma Visa karty MasterCard karty Neprijíma MasterCard karty - Bez poplatku Účtové karty Neprijíma účtové karty Maestro karty @@ -1543,7 +1527,6 @@ Fitnescentrum Fitness Miesto na cvičenie - Bankomat: áno Bankomat: nie Schody Tunel pre peších @@ -1757,7 +1740,6 @@ Vodovod Rybník Potok - Cisterna Materiál: drevo Materiál: kov Materiál: posilnený betón @@ -3278,7 +3260,6 @@ Jizō Prasat Apoštolská cirkev - Radiačná onkológia Nebezpečenstvo Kategória obtiažnosti Zdravotná špecializácia: tropická medicína: nie @@ -3293,7 +3274,6 @@ Vozidlá vysoko obsadené Električka Trajekt - Zdroj energie: biomasa Vymazaný objekt Rádioterapia Áno diff --git a/OsmAnd/res/values-sk/strings.xml b/OsmAnd/res/values-sk/strings.xml index 25ac2b3808..cce41af552 100644 --- a/OsmAnd/res/values-sk/strings.xml +++ b/OsmAnd/res/values-sk/strings.xml @@ -584,7 +584,6 @@ Nepodarilo sa vypočítať trasu. Nepodarilo sa vypočítať trasu. Vypočítaná trasa je prázdna. - Vypočítaná nová cesta, vzdialenosť Dorazili ste do cieľa. Neplatné súradnice Ísť späť na mapu @@ -678,7 +677,6 @@ Nepodarilo sa pridať komentár. Upravenie bodu záujmu (POI) Vytvorenie bodu záujmu (POI) - Bod sa nedá nájsť alebo je bod záujmu tvorený viacerými bodmi, s čím zatiaľ nie je možné pracovať. Vymazať {0} (komentár)? Vymazať POI Odstránené @@ -1800,7 +1798,6 @@ Vzdialenosť: Čas: Aktualizovať teraz - Aktualizovať Sťahovať iba na Wi-Fi Okamžité aktualizácie OsmAnd nemá oprávnenie použiť pamäťovú kartu @@ -2009,8 +2006,6 @@ Povoliť prístup k polohe Získajte pokyny a objavte nové miesta bez pripojenia na Internet Hľadať moju polohu - Nekontrolovať nové verzie a zľavy súvisiace s OsmAnd. - Nezobrazovať nové verzie Aktualizovať všetky mapy teraz? Vymazať všetky dlaždice Získať @@ -2072,9 +2067,6 @@ Odoslať POI Mesto alebo región Články Wikipédie v okolí - Staršie vyhľadávanie - Zobraziť starší spôsob vyhľadávania - Pridať staršie vyhľadávanie do úvodného panelu. Použiť diaľnice Povoliť použiť diaľnice. Srbsky (Latinka) @@ -2595,16 +2587,6 @@ Podľa typu \"Jedno stlačenie\" aktívne Zmeňte vyhľadávacie kritériá. - • Nové: Podpora pre celosvetových cestovných sprievodcov. Odkazované miesta sú prepojené s mapou. Úvodné dáta z Wikivoyage. -\n -\n • Wikipédia: nový vzhľad, aktívne linky, obrázky -\n -\n • Rozhranie zobrazovania stôp: zobrazuje skupiny prechodných bodov (waypointov) -\n -\n • Mapové značky: import vybraných skupín z GPX súborov, nový vzhľad zadávania súradníc -\n -\n • Predplatné OsmAnd Live teraz zahŕňa všetky funkcie OsmAnd -\n Čo je tu: zaparkované o Vyzdvihnúť do @@ -2777,46 +2759,15 @@ Pridali ste %1$s bodov. Zadajte názov súboru a stlačte \"Uložiť\". Bod %1$s vymazaný Celý svet - • Navigácia: Opravený indikátor postupu, rýchle prepínanie začiatočného a koncového bodu trasy -\n -\n • Mapové značky: Opravené zapínanie a vypínanie skupín, možnosť skryť značky z mapy -\n -\n • Úpravy OSM: Možnosť meniť značky nebodových objektov a ciest, oprava chýbajúcich komentárov na poznámkach, záloha úprav -\n -\n • Vylepšené čítanie Wikipédie a Wikivoyage, aktualizované súbory sú už k dispozícii -\n -\n • Kontextové menu: Opravené farby znakov ciest v nočnom režime, opravené doplnkové veľkosti menu -\n -\n • Navigácia lodí: Podpora pre vodné cesty -\n -\n • Opravy ďalších chýb -\n -\n Zväčšiť polomer hľadania na %1$s Odošleme vašu vyhľadávaciu požiadavku: \"%1$s\", ako aj vašu polohu.\n \n Nezbierame osobné údaje, používame len údaje vyhľadávania na vylepšenie vyhľadávacieho algoritmu. - Žiadne výsledky? -\nPovedzte nám o tom. Odoslať vyhľadávaciu požiadavku? Ďakujeme za vašu spätnú väzbu Nebol nájdený bod ani cesta. Žiadne výsledky vyhľadávania\? \nPoskytnite nám spätnú väzbu Stlačte tlačidlo pre vypočutie jeho hlasového povelu, aby ste identifikovali chýbajúce či chybné povely - • Opravený pád pri štarte na niektorých zariadeniach -\n -\n • Nová funkcia značiek: zobrazenie značiek, ktoré už boli prejdené -\n -\n • História vyhľadávania zobrazuje aj v minulosti hľadané kategórie -\n -\n • Opravený pád pri štarte s mapami v inej ako latinskej abecede -\n -\n • Zlepšenie problému pomalého vykresľovania na zariadeniach s Android 8.0 -\n -\n • Podpora pre editovanie plošných objektov -\n -\n • Meranie vzdialenosti: tlačidlo \"Meranie\" pridané do akcií v kontextovom menu -\n Prosím udeľte OsmAnd oprávnenie na prístup k polohe, aby mohol pokračovať. Čierna Z tejto zastávky je možná ešte ďalšia doprava. @@ -2887,23 +2838,6 @@ Vymeniť Zobraziť viac Zobrazené stopy - • Nová obrazovka \'Pokyny\': Zobrazuje tlačidlá pre cieľ Domov a Práca, skratku pre \'predchádzajúcu trasu\', zoznam aktívnych stôp a značiek GPX, históriu vyhľadávania -\n -\n • Doplňujúce informácie pod \'Detaily trasu\': druhy ciest, povrch, strmosť, kvalita povrchu -\n -\n • Navigácia hromadnou dopravou: metro, autobusy, električky, atď. -\n -\n • Nové rýchle akcie pre skrytie/zobrazenie stôp a denného/nočného režimu -\n -\n • Opravené oblasti zobrazené ako zaplavené v Nemecku, Južnej Afrike, Quebecu -\n -\n • Vylepšená podpora pre import KML a KMZ -\n -\n • Opravené pády aplikácie pri otvorení niektorých zastávok hromadnej dopravy -\n -\n • Odstránené analytické moduly Facebook a Firebase z verzie zdarma (OsmAnd+ ich neobsahoval) -\n -\n Povoliť použitie zmien z OsmAnd Live pre hromadnú dopravu. Hromadná doprava z OsmAnd Live Denná doba @@ -2990,14 +2924,6 @@ Vyhnúť sa metru a ľahkej železnici Žiadny trajekt Vyhnúť sa trajektom - • Zobrazovanie času na prestup medzi hromadnou dopravou -\n -\n • Upravené rozhranie detailov trasy -\n -\n • Opravená tmavá téma v menu pokynov a detailov trasy -\n -\n • Zobrazenie azimutu v meraní vzdialenosti -\n Odoslať záznam %1$d súborov presunutých (%2$s). %1$d súborov skopírovaných (%2$s). @@ -3077,8 +3003,6 @@ Navigácia tretej strany Zvoľte profily, ktoré majú byť viditeľné v aplikácii. Profily aplikácie - Zmeňte priblíženie mapy pomocou posúvania kolieskom nahor a nadol. Esc vás vráti do aplikácie WunderLINQ. - Použiť WunderLINQ na približovanie Pridajte aspoň jednu položku do zoznamu v nastaveniach \'Rýchlej akcie\' Alpské alebo zjazdové lyžovanie Svahy pre alpské a zjazdové lyžovanie a prístup k vlekom. @@ -3226,7 +3150,6 @@ Nastavenia navigácie v zvolenom profile \"%1$s\". Časový limit obrazovky po prebudení Jednotky & formáty - Zobrazenie Zobrazenie mapy Vzhľad mapy Nainštalované moduly @@ -3349,7 +3272,6 @@ Vrátiť späť Zobraziť sieť cyklotrás Vymazať %1$s\? - Zameniť štart a cieľ Úpravy OSM Tlačidlo pre zobrazenie alebo skrytie vrstevníc na mape. Zobraziť vrstevnice @@ -3523,7 +3445,6 @@ Menu %1$s — %2$s — %3$s Navigácia - Vlastný štýl vykresľovania Zahrnúť dodatočné údaje Importovaný profil obsahuje dodatočné údaje. Kliknite \"Import\" pre importovanie len údajov profilu, alebo zvoľte dodatočné údaje. Môžete zvoliť dodatočné údaje na importovanie spolu s profilom. @@ -3582,7 +3503,6 @@ Zvoľte skupinu Zvoľte tvar Kruh - Kosoštvorec Štvorec Min Osemholník @@ -3598,8 +3518,6 @@ Jazyky Jazyk Všetky jazyky - Niektoré články Wikipedia nemusia byť dostupné vo vašom jazyku. Zvoľte jazyky, v ktorých sa články Wikipedia budú zobrazovať na mape. -\nPri čítaní článku budete môcť prepínať medzi všetkými dostupnými jazykmi. Pre zobrazenie bodov Wikipedie na mape sú potrebné ďalšie mapy. Upraviť počet položiek v \"Úvodnom paneli\", \"Nastaviť mapu\" a \"Kontextovom menu\". \n @@ -3711,7 +3629,6 @@ Ak je \"%1$s\" zapnuté, čas aktivity bude na tom závisieť. Jeden obrazový súbor na dlaždicu Použiť systémový časový limit obrazovky - Možnosti prebudenia obrazovky: Navigačné pokyny Stlačenie tlačidla napájania zariadenia zapne obrazovku s OsmAndom nad zámkom obrazovky. Tlačidlo napájania @@ -3755,7 +3672,6 @@ metre Zobraziť alebo skryť ďalšie detaily na mape Nočná mapa - Vždy Vypnuté. Vyžaduje \"Nechať obrazovku zapnutú\" pod \"Časový limit obrazovky po prebudení\". Pridať online zdroj Aplikovaním týchto zmien sa vymažú uložené dlaždice pre tento zdroj @@ -3865,7 +3781,6 @@ Pridať prechodný bod stopy Nahrávanie výletu Uložiť ako súbor stopy - Webový server Zjednodušená stopa Bude uložená len čiara trasy, prechodné body budú odstránené. Názov súboru @@ -3916,7 +3831,6 @@ Vývoj Údaje OsmAnd Live Údaje OsmAnd Live - Komplexný výpočet trasy Dvojfázový výpočet trasy pre navigáciu auta. Natívna hromadná doprava (vo vývoji) Prepnúť na výpočet trasy hromadnej dopravy v Jave (bezpečné) diff --git a/OsmAnd/res/values-sl/phrases.xml b/OsmAnd/res/values-sl/phrases.xml index 45bc67e88f..85d0020ebb 100644 --- a/OsmAnd/res/values-sl/phrases.xml +++ b/OsmAnd/res/values-sl/phrases.xml @@ -162,7 +162,6 @@ Krematorij Računovodja Banka - Bankomat Vulkan Krater Reka @@ -245,7 +244,6 @@ Oprema za spalnice Dobrodelna trgovina Trgovina z zavesami - Trgovina s posteljnino Kuhinjsko pohištvo Trgovina s telefonskimi aparati Trgovina z barvami @@ -300,7 +298,6 @@ Alternativna medicina Avdiolog Krvna banka - Zdravstvena ustanova Babica Poklicni terapevt Optik @@ -335,7 +332,6 @@ Akvarij Tematski park Turistična znamenitost - Splošna turistična znamenitost Vrtiljak Labirint Hotel diff --git a/OsmAnd/res/values-sl/strings.xml b/OsmAnd/res/values-sl/strings.xml index 9f9b66e14c..aeaceb1156 100644 --- a/OsmAnd/res/values-sl/strings.xml +++ b/OsmAnd/res/values-sl/strings.xml @@ -46,7 +46,6 @@ Priljubljena točka {0} je izbrisana. Uredi točko POI Ustvari točko POI - Točke ni mogoče najti, ali pa ta združuje več vozlišč, kar trenutno še ni podprto. Ali želite izbrisati {0} (opomba)\? Izbriši točko POI Izbriši @@ -855,7 +854,6 @@ Poti ni mogoče določiti. Poti ni mogoče določiti. Določena pot je brez podatkov. - Izračunana nova pot, razdalja Prispeli ste. Koordinate niso veljavne! Pojdi nazaj na zemljevid OsmAnd @@ -1797,7 +1795,6 @@ Iskanje naslova Razdalja: Čas: - Posodobi vsakih Prejmi le prek WiFi Posodobitev v živo Posodobi takoj @@ -2005,12 +2002,10 @@ Dovoli dostop do mesta Navigacija in spoznavanje novih krajev tudi brez internetne povezave Najdi moje mesto - Ne pokaži posodobitev Ali želite posodobiti vse zemljevide? Počisti vse sličice Nameščenega ni nobenega zemljevida za delo brez povezave. Izbrati je mogoče zemljevid s seznama, ali pa ga prejeti preko menija »%1$s«. Zemljevidi za prejem so predlagani po podatkih trenutnega mesta. - Ne preverjaj za posodobitve programa OsmAnd in drugih ugodnosti. Donacija skupnosti OpenStreetMap Pridobi Pridobi za %1$s @@ -2069,9 +2064,6 @@ Pojdite na %1$d izhod in nadaljujte Poišči mesto ali območje Bližnja mesta s članki Wikipedije - Opuščeno iskanje - Pokaži možnosti opuščenega načina iskanja - Dodaj opuščeno iskanje v seznamu predala. Srbščina (latinica) Kitajščina (Hong Kong) Vodenje po avtocestah @@ -2711,16 +2703,6 @@ Pokaži polni opis Uredi dejanja Izbor načrta - • Novo: podpora za popotniške vodnike – vodniki mest so povezani z zemljevidom, začetni podatki pa s spletiščem Wikivoyage. -\n -\n• Wikipedija: nov videz, dejavne povezave, podpora za prikaz slik -\n -\n• Vmesnik Open Track: podpora za skupine vmesnih točk -\n -\n• Označbe zemljevida: možnost uvoza izbranih skupin iz datotek GPX, vpis koordinat, spremenjen vmesnik -\n -\n• Naročnine na storitev OsmAnd Live podpirajo vse možnosti programa OsmAnd -\n Prejmi podatke Wikipedije Odpri prispevek na spletni strani Pregledovanje prispevkov v spletnem brskalniku. @@ -2765,35 +2747,6 @@ Ohrani prevožene označbe na zemljevidu Na tej postaji ustavlja več različnih prevozov. Vozlišča ali poti ni mogoče najti. - • Odpravljena je napaka, ki je lahko povzročila sesutje programa -\n -\n• Nova zmožnost označb: prikaz že prepotovanih točk -\n -\n• Zgodovina iskanja po novem vključuje tudi že iskane kategorije -\n -\n• Odpravljena je napaka odpiranja zemljevidov z nelatinskimi črkami -\n -\n• Izboljšana hitrost izrisovanja na napravah s sistemom Android 8.0 -\n -\n• Podpora za urejanje večkotnih predmetov (neoznačnih) -\n -\n• Merjenje razdalje: v meni dejanj je mogoče dodati gumb za merjenje -\n - • Navigacija: popravki vrstice napredovanja poti, možnost hitre menjave začetne in končne točke poti -\n -\n• Označbe na zemljevidih: skrivanje in prikaz skupin, možnost shrivanja označb -\n -\n• Urejanje OSM: možnost urejanja oznak za netočkovne predmete in poti, popravki opomb in varnostnih kopij urejanj -\n -\n• Izboljšano razčlenjevanje vsebin Wikipedije in Wikivoyage, posodobljene datoteke so že na voljo -\n -\n• Vsebinski meni: popravek prikaza oznak v nočnem načinu in popravki velikosti menijev -\n -\n• Navigacija za plovila: podpora za plovne poti v vodnem prometu -\n -\n• Številni drugi popravki hroščev -\n - Poteka objavljanje poti … Povečaj območje iskanja na %1$s Dodanih je %1$s točk. Vpisati je treba še ime datoteke in potrditi shranjevanje. Pošljite zaslonsko sliko obvestila na elektronski naslov support@osmand.net @@ -2937,21 +2890,6 @@ Širina Višina %1$d prestopov - • Nov pogled »Smeri«: pokaže gumb za cilja Dom in Služba, bližnjico do »zadnje poti«, seznam dejavnih sledi GPX in oznak, zgodovino iskanja -\n -\n• Dodane so podrobnosti poti: vrste cest, površina, strmina, gladkost -\n -\n• Navigacija z javnimi sredstvi podpira vse vrste prevoza: metro, avtobus, tramvaj itd. -\n -\n• Omogočeno je novo hitro dejanje za prikaz/skrivanje sledi in dnevno-nočni prikaz -\n -\n• Popravljena je napaka prikaza območji kot poplavljena v Nemčiji, Južni Afriki, Quebecu -\n -\n• Posodobljena je podpora za uvoz datotek KML in KMZ -\n -\n• Odpravljena je napaka pri odpiranju nekaterih postajališč javnega prevoza -\n -\n• Odstranjena je analitika Facebook in Firebase iz brezplačne različice (OsmAnd + je ne vključuje) Izstopi na postaji Vstopi na postaji Gumb za prikaz ali skritje izbrane sledi GPX na zemljevidu. @@ -2983,12 +2921,6 @@ Načrtovanje poti brez potovanja s podzemno železnico Izogni se trajektom Načrtovanje poti brez potovanja s trajektom - • Dodan je prikaz časa med prevozi javnega potniškega prometa -\n• Popravljen je vmesnik za prikaz podrobnosti poti -\n• Popravljena je temna tema v meniju smeri in pri izrisu podrobnosti poti -\n• Omogočen je prikaz azimuta pri merjenju razdalje -\n -\n Pošlji dnevnik Premaknjenih je %1$d datotek (%2$s). Kopiranih je %1$d datotek (%2$s). @@ -3203,7 +3135,6 @@ Začetno sporočilo Programska analitika Enote in zapisi - Videz Videz zemljevida Videz zemljevida Nameščeni vstavki diff --git a/OsmAnd/res/values-sq/phrases.xml b/OsmAnd/res/values-sq/phrases.xml index f3b5bb79f1..f76d16116e 100644 --- a/OsmAnd/res/values-sq/phrases.xml +++ b/OsmAnd/res/values-sq/phrases.xml @@ -43,9 +43,9 @@ Wikipedia Sipas përdoruesit - Faqe paleontologjike + Faqe paleontologjike - Furrë buke + Furrë buke Pije alkoolike Dyqan djathi Dyqan çokollatash @@ -68,7 +68,7 @@ Produkte makinerie Dyqan vere - Librari + Librari Dyqan biçikletash Dyqan kafshësh Produkte antike @@ -90,8 +90,7 @@ Fotokopje Dyqan perdesh Metrazhe - Produkte dhoma gjumi - Produkte polumbari + Produkte polumbari Dyqan produkte shtëpie Dyqan erotik Dyqan mode @@ -99,6 +98,5 @@ Dyqan lulesh Dyqan korniza pikture Dyqan shpendësh - Dyqan aparate ngrohje - Mobileri + Mobileri diff --git a/OsmAnd/res/values-sq/strings.xml b/OsmAnd/res/values-sq/strings.xml index deb741dcfe..e7aa450ee6 100644 --- a/OsmAnd/res/values-sq/strings.xml +++ b/OsmAnd/res/values-sq/strings.xml @@ -4,20 +4,16 @@ Motoçikletë Varkë Avion - - Ju po fshini %1$d ndryshime nga OSM. A jeni i sigurt? Fshij të gjitha Ju lutem, fillimisht llogaritni rrugën Kujto zgjedhjen time - dhe ose Nuk ka afrim automatik Jo Po - - Versioni : + Versioni : Rreth Informacion versioni, liçensat, anëtarët e projektit Skadon (minuta): %1$s diff --git a/OsmAnd/res/values-sr/phrases.xml b/OsmAnd/res/values-sr/phrases.xml index 982074dce3..afdde8d735 100644 --- a/OsmAnd/res/values-sr/phrases.xml +++ b/OsmAnd/res/values-sr/phrases.xml @@ -460,7 +460,6 @@ Ветеринар Алтернативна медицина Банка крви - Медицински центар Оптометрист Физиотерапеут Психотерапеут @@ -760,7 +759,6 @@ Крематоријум Интернет кафе Банка - АТМ Терминал за плаћање Новчане позајмице Мењачница @@ -3210,7 +3208,6 @@ Тип кабинета: телекомски Тип кабинета: енергетски У употреби: да - Цистерна Ток Понд Главни diff --git a/OsmAnd/res/values-sr/strings.xml b/OsmAnd/res/values-sr/strings.xml index 85368f3360..7d8b26ca09 100644 --- a/OsmAnd/res/values-sr/strings.xml +++ b/OsmAnd/res/values-sr/strings.xml @@ -957,8 +957,6 @@ Дебљина линије изохипси Воде Сакриј воду - Стара претрага - Приказуј стару претрагу Чланци Википедије о околини Град или регија Одреди %1$d излаз и иди @@ -1029,8 +1027,6 @@ Омогућите приступ одређивању положаја Узми упутства и откриј нова места, и без интернета Пронађи мој положај - Не проверавај да ли постоје нове верзије нити за OsmAnd попусте. - Не приказуј нове верзије Освежити све карте сада? Очисти све плочице Пут који штеди гориво @@ -1141,7 +1137,6 @@ Трака прибора Справице Отпремајте своју белешку ОСМ-а анонимно или коришћењем свог налога на OpenStreetMap.org-у. - Дозволи стару претрагу у списку полице. Користи аутопутеве Дозволи аутопутеве. Магнетно вретено @@ -1581,16 +1576,6 @@ Додаје прво стајање Прикажи или сакриј ОСМ белешке на карти. GPX фајл - • Ново: Подршка за глобалне туристичке водиче без потребе за интернет конекцијом. Референтни положаји су повезани на карти. Иницијални подаци са сајта Wikivoyage. -\n -\n • Википедија: нови изглед, активне везе, слике -\n -\n • Open Track UI: приказ група пролазних тачака -\n -\n • Маркери на карти: увезите означене групе из GPX фајлова -\n -\n • OsmAnd Live претплата сада укључује све OsmAnd функционалности -\n GPX - погодно за извоз у ЈОСМ и друге ОСМ уређиваче. ОСЦ - погодно за извоз у OSM. ОСЦ фајл @@ -2118,7 +2103,6 @@ Израчунавања пута није успело. Израчунавања пута није успело. Израчунати пут је празан. - Израчунат нови пут, удаљеност Врати се на карту Чувам GPX фајл… Користите интернет да израчунате пут. @@ -2203,7 +2187,6 @@ Име садржи превише великих слова. Ипак наставити? Да ли стварно желите да сачувате тачку од интереса без типа? Користи мени - Ажурирај Скидај само на бежичној мрежи Уживо ажурирање Ажурирај сада @@ -2594,7 +2577,6 @@ Предајем чвор… OsmAnd се срушио на прошлом покретању. Записник је у {0}. Молимо пријавите проблем и закачите овај фајл. Одредите OpenStreetMap.org (OSM) поставке потребне за слање на ОСМ. - Чвор не може да се нађе, или се објекат састоји од више чворова што још увел није подржано. Извештај за Унапред постављено име Фајл %1$s не садржи пролазне тачке, да га увезем као путању? @@ -2779,46 +2761,13 @@ Послаћемо упит Ваше претраге: „%1$s“, као и Вашу локацију. \n \n Не сакупљамо личне податке, само нам требају подаци о претрагама да бисмо побољшавали алгоритам претраге. - Нема резултата? -\nРеците нам о овоме. Пошаљи упит претраге? Повећај полупречник претраге на %1$s Хвала за повратну информацију Не могу да нађем чвор или пут. Нема резултата у претрази? \nЈавите нам - • Навођење: Исправка у траци прогреса, брза замена почетне и крајње тачке пута -\n -\n • Ознаке на карти: исправи укључење/искључење група, способност скривања маркера са мапе -\n -\n • OSM измене: Могућност измена ознака за објекте и путеве који нису обичне тачке, исправка недостајућих коментара на белешкама, прављење резервне копије измена -\n -\n • Побољшано парсирање Википедије и Wikivoyage-а, ажурирани фајлови су већ доступни -\n -\n • Контекстни мени: исправка боје превоза у ноћном режиму, исправка величине додатних менија -\n -\n • Бродско навођење: подршка за пловне канале -\n -\n • Остале исправке грешака -\n -\n - Предајем пут… Кликните дугме и слушајте одговарајуће гласовно навођење да чујете да ли је му нешто недостаје или је погрешно - • Исправљени рушење по стартовању које се дешавало на неким уређајима -\n -\n• Нова могућност на ознакама: приказ ознака које се већ прођене -\n -\n• Историјате претраге сада приказује категорије које сте тражили раније -\n -\n• Исправљено рушење апликације при стартовању које се дешавало са не-латиничним картама -\n -\n • Убрзано исцртавање на Андроид 8.0 уређајима -\n -\n • Подршка за измену полигонских објеката -\n -\n • Мерење растојања: додај Измери дугме Акцијама у помоћном менију -\n -\n Одобрите OsmAnd-у приступ локацији да наставите. Црна Постоје још превоза на овој станици. @@ -2975,15 +2924,6 @@ Бициклистичка стаза Без калдрма Избегавај калдрме - • Приказује се време између преседања код јавних превоза -\n -\n • Поправљен кориснички интерфејс за детаље пута -\n -\n • Исправљена тамна тема код менија правца и код детаља пута -\n -\n • Приказује се азимут код мерења удаљености -\n -\n Пошаљи дневник Померено %1$d фајлова (%2$s). Копирано %1$d фајлова (%2$s). @@ -3110,23 +3050,6 @@ Прикажи зоне ниске емисије загађења. Не утиче на рутирање. Прикажи зоне ниске емисије загађења Укључи у обзир и привремена ограничења - • Нови екран за \'Упутства\': Приказује дугмиће за одредиште Кућа и Посао, \'претходна стаза\' пречицу, списак активних GPX стаза и маркера, историјат претраге -\n -\n • Додатне информације испод \'Детаљи пута\': тип пута, подлога, нагиб, углачаност -\n -\n • Навођење јавним превозом са подршком за свакакве типове превоза: метро, аутобус, трамвај, итд. -\n -\n • Нова брза радња за приказивање/скривање путања и дневног/ноћног режима -\n -\n • Исправљене области приказане као поплављене у Немачкој, Јужној Африци и Квебеку -\n -\n • Додатна подршка за увоз KML и KMZ фајлова -\n -\n • Исправке рушења приликом отварања некиј станица јавног превоза -\n -\n • Уклоњена Facebook и Firebase аналитика из бесплатне верзије (OsmAnd+ је не укључује) -\n -\n Поделити Ваше искуство са нама и оценити наш рад на Google Play продавници. Дозволи OsmAnd апликацији да сакупља и обрађује анонимне податке о коришћењу апликације. Не сакупљамо податке о ниједној локацији на карти коју посетите или погледате. \n @@ -3228,7 +3151,6 @@ Поставке за креирање пута у означеном профилу „%1$s”. Тајмаут после буђења Мерне јединице & форматирања - Изглед Изглед карте Изглед карте Инсталирани додаци diff --git a/OsmAnd/res/values-sv/phrases.xml b/OsmAnd/res/values-sv/phrases.xml index e97ce1edf0..93aabdcb68 100644 --- a/OsmAnd/res/values-sv/phrases.xml +++ b/OsmAnd/res/values-sv/phrases.xml @@ -551,7 +551,6 @@ Alternativ medicin Audionom Blodbank - Vårdcentral Barnmorska Arbetsterapeut Optiker @@ -945,7 +944,6 @@ Krematorium Internetcafé Bank - Bankomat Betalterminal Ockrare Pantbank @@ -2505,7 +2503,6 @@ Inskription: Ö Inskription: NÖ Under konstruktion - Bankomat: ja Bankomat: Nej Eldgrop Gatuskåp @@ -2742,7 +2739,6 @@ Huvud Damm Vattendrag - Cistern I tjänst: Ja Skåptyp: el Skåptyp: telekom diff --git a/OsmAnd/res/values-sv/strings.xml b/OsmAnd/res/values-sv/strings.xml index 692e68f62c..d921486bb7 100644 --- a/OsmAnd/res/values-sv/strings.xml +++ b/OsmAnd/res/values-sv/strings.xml @@ -728,7 +728,6 @@ Nyttjat utrymme är {1} MB. Ett undantagsfel inträffade: kommentaren lades inte till Redigera POI Skapa POI - Noden kan inte hittas eller bekvämligheten består av flera noder och detta stöds inte än. Ta bort {0} (ange kommentar)? Ta bort POI Ljud/video spelas in. För att stoppa detta, tryck på AV-knappen på widgeten. @@ -804,7 +803,6 @@ Nyttjat utrymme är {1} MB. Fel vid ruttberäkningen Ett fel uppstod vid ruttberäkningen Fel: Den beräknade rutten är tom - Ny rutt beräknad, avstånd Ogiltiga koordinater Tillbaka till OsmAnd-kartan Den senaste körningen av OsmAnd kraschade. Loggen finns i {0}. Rapportera felet och bifoga gärna loggfilen. @@ -1743,7 +1741,6 @@ Long %2$s Ingen adress angiven Slår upp adressen Hästleder - Uppdatera varje Hämta endast via WiFi Direktuppdatering Uppdatera nu @@ -1954,7 +1951,6 @@ Om du tycker om OsmAnd och OSM och vill stödja dem så är detta ett utmärkt s OsmAnds lagringsplats för data (för kartor, GPX-filer med mera): %1$s. Bevilja tillstånd Tillåt platsåtkomst - Visa inte uppdateringar Uppdatera alla kartor nu\? Bränslesnål väg Använd bränslesnål väg (oftast kortare). @@ -2077,7 +2073,6 @@ Vänligen tillhandahåll fullständig kod Medelhastighet Tid i rörelse Högsta hastighet - Kontrollera inte efter uppdateringar om nya versioner eller rabatter relaterade till OsmAnd. Serbiska (latin) Snabbåtgärd Åtgärd %d @@ -2410,9 +2405,6 @@ Vänligen tillhandahåll fullständig kod Välj höjdfluktuation Auto-split-inspelningar efter lucka Starta nytt segment efter en lucka av 6 min, nya spår efter lucka på 2 timmar eller nya filer efter ett längre gap om datumet har ändrats. - Äldre Sök - Visa äldre sök - Lägg till äldre sökning till lådlistan. Vägbaneintegritet Ytobjekt Redigeringar %1$s, summan %2$s mBTC @@ -2687,17 +2679,6 @@ Vänligen tillhandahåll fullständig kod Redigera åtgärder Skaffa OsmAnd Live för att låsa upp alla funktioner: Dagliga kartuppdateringar med obegränsat antal hämtningar, alla betal-och gratistillägg, Wikipedia, Wikivoyage och mycket mer. Ändring av standardstilen för att öka kontrasten av gång och cykelvägar. Använder färger från tidigare versioner av Mapink. - • Nyhet: Stöd för globala frånkopplade reseguider. Refererade platser är länkade till kartan. Datan kommer initialt från Wikivoyage. -\n -\n • Wikipedia: Nytt utseende, aktiva länkar, stöd för bilder -\n -\n • Open Track UI: Stöd för waypoint-grupper -\n -\n • Kartmarkörer: Importering av valda grupper från GPX-filer, koordinatinmatning, nytt utseende -\n -\n • OsmAnd Live-prenumeration stödjer nu alla OsmAnd funktioner -\n -\n Att trycka på denna åtgärdsknapp bläddrar genom listan nedan. Kunde inte hitta nod eller väg. Inga sökresultat? @@ -2882,7 +2863,6 @@ Vänligen tillhandahåll fullständig kod Inställningar för routing i den valda profilen \"%1$s\". Vakentid Enheter & format - Utseende Kartans utseende Kartans utseende Installerade tillägg @@ -2915,7 +2895,6 @@ Vänligen tillhandahåll fullständig kod Tilläggsinställningar Sida vid sida %1$d filer kopierades (%2$s). - Växla start och mål Du kan bara flytta objekt inom den här kategorin. Utvecklar-plugin Ersätt en annan punkt med den här diff --git a/OsmAnd/res/values-ta/strings.xml b/OsmAnd/res/values-ta/strings.xml index 09fca9eec7..8b2762d85e 100644 --- a/OsmAnd/res/values-ta/strings.xml +++ b/OsmAnd/res/values-ta/strings.xml @@ -30,7 +30,6 @@ தேடல் முடிவு இல்லையா\? \nஎங்களுக்கு கருத்து தெரிவிக்கவும் \n - உறுதி செய்வதற்கான வழி… தேடுதல் வட்டத்தை %1$s ஆக கூட்டவும் நாங்கள் உங்களின் தேடல்: 1\"%1$s\"2, மற்றும் இருப்பிடத்தை அனுப்புவோம்.\n3\n"4 நாங்கள் உங்களது தனிப்பட்ட விவரத்தை சேகரிக்க மாட்டோம், எங்களுடைய தேடுதல் \n வழிமுறையை மேம்படுத்த உங்களின் தேடுதல் தகவல் தேவை படுகிறது ."\n5 @@ -328,33 +327,6 @@ %1$s / மாதம் %1$.2f%2$s / மாதம் %1$.2f %2$s -\n - சில சாதனங்களில் ஏற்பட்ட தொடக்கநிலையில் • நிலையான செயலிழப்பு -\n -\n • புதிய குறிப்பான்கள் இடம்பெறுகின்றன: ஏற்கனவே கடந்து வந்த குறிப்பான்களைக் காட்சிப்படுத்துகின்றன -\n -\n • தேடல் வரலாறு இப்போது நீங்கள் முன்பே தேடியுள்ள பிரிவுகள் காட்டுகிறது -\n -\n இலையுதிர் வரைபடங்களுடன் கூடிய தொடக்கநிலையில் நிலையான செயலிழப்பு -\n -\n • ஆண்ட்ராய்டு 8.0 சாதனங்களில் இடையீட்டு சிக்கல்களை மேம்படுத்துதல் -\n -\n • பலகோணத்திற்கான ஆதரவு (பொருத்தமற்ற) பொருள்கள் எடிட்டிங் -\n -\n • தூரத்தை அளவிடலாம்: சூழல் மெனுவில் நடவடிக்கைகளுக்கான மெஷர் பொத்தானைச் சேர்க்கவும் - • வழிசெலுத்தல்: முன்னேற்றப் பட்டைச் சரிசெய்து, பாதையின் தொடக்கம் மற்றும் இறுதிப் புள்ளியை வேகமாக மாற்றுதல் -\n -\n • வரைபட குறிப்பான்கள்: வரைபடத்திலிருந்து குறிப்பான்களை மறைக்க திறன், குழுக்கள் மீது / அணைக்க -\n -\n • OSM திருத்து: புள்ளி அல்லாத பொருட்கள் மற்றும் வழிகளில் குறிச்சொற்களை திருத்தும் திறன், குறிப்புகளில் காணாமல் கருத்துரைகளை திருத்துதல், திருத்தங்களின் காப்பு -\n -\n • விக்கிபீடியா மற்றும் விக்கிபீடியா பாகுபடுத்தி மேம்படுத்த, மேம்படுத்தப்பட்ட கோப்புகள் ஏற்கனவே கிடைக்கின்றன -\n -\n • சூழல் மெனு: இரவு பயன் உள்ள போக்குவரத்து கவசங்கள் வண்ணத்தை சரிசெய்து, கூடுதல் மெனு அளவுகளை சரிசெய்யவும் -\n -\n • படகு வழிசெலுத்தல்: நீர்வழி நெடுஞ்சாலைக்கான ஆதரவு -\n -\n • பிற பிழை திருத்தங்கள் \n பதிவு பதிவு diff --git a/OsmAnd/res/values-tr/phrases.xml b/OsmAnd/res/values-tr/phrases.xml index cf6117a083..558e72a682 100644 --- a/OsmAnd/res/values-tr/phrases.xml +++ b/OsmAnd/res/values-tr/phrases.xml @@ -88,7 +88,6 @@ Kopyalama merkezi Perde mağazası Kumaş mağazası - Yatak takımı mağazası Dalış ekipmanı Ev geliştirme mağazası Erotik shop @@ -97,7 +96,6 @@ Çiçekçi Resim çerçeve dükkanı Serbest uçuş ürünleri mağazası - Isınma ürünleri mağazası Mobilya mağazası Bahçe merkezi Bahçe mobilya mağazası @@ -279,7 +277,6 @@ Su yolu dönüm noktası Bent Baraj - Gölet Su değirmeni Dalgakıran Dalgakıran @@ -376,7 +373,6 @@ Çayır Demiryolu alanı Havza - Koruma arazisi Kanal Rıhtım Gözetim @@ -446,7 +442,6 @@ Alternatif Tıp Odyolojist Kan Bankası - Tıp Merkezi Ebe Mesleki terapist Göz doktoru @@ -563,8 +558,6 @@ Akvaryum Tema Parkı Turistik - Turistik cazibe - Genel turistik cazibe Eğlence yolculuğu Hayvan (çekici) Dönme dolap @@ -672,7 +665,6 @@ İnternet erişimi: halka açık İnternet erişimi: hizmet Manastır - Tarihi Manastır Dini alan Yol kenarı haçı Yol kenarı türbesi @@ -824,7 +816,6 @@ Ölü yakma yeri İnternet kafe Banka - Bankamatik Ödeme terminali Borç para veren Tefeci @@ -993,8 +984,6 @@ AIDS: evet Çıkmaz Yunus - Atm: evet - Tıp sistemi: bilinmeyen geleneksel Yakıt türü Yakıt türü (avia) Ödeme türü @@ -3124,7 +3113,6 @@ Ekran: hayır Ekran: evet Evet - Su deposu Dere Kuru varil Sütun diff --git a/OsmAnd/res/values-tr/strings.xml b/OsmAnd/res/values-tr/strings.xml index 703abcfe61..7f0578ffc7 100644 --- a/OsmAnd/res/values-tr/strings.xml +++ b/OsmAnd/res/values-tr/strings.xml @@ -901,7 +901,6 @@ Rota hesaplanamadı. Rota hesaplanamadı. Hesaplanan rota boş. - Yeni güzergah hesaplandı, mesafe Yerel veri okunuyor… GPX dosyası kaydediliyor… Dili belirtin, verileri indirin/yeniden yükleyin. @@ -1422,7 +1421,6 @@ Sık Kullanılanı düzenle Sık Kullanılan \'%s\' noktasını sil\? Sık Kullanılan {0} noktası silindi. - Düğüm bulunamadı ya da başlıca tek bir düğüm değil, olabilir {0} sil (yorum)\? Sil {0} eylemi gerçekleştirilemedi. @@ -1803,7 +1801,6 @@ Geçiş hakkındaki kısıtlamaları ve geçiş ücretlerini göster Yol yüzeyi göster Döngüsü yolları göster - Bütün Güncellemler Sadece Wi-Fi üzerinden indir Canlı güncelleştirme Mesafe: @@ -2208,7 +2205,6 @@ İzin ver Konum erişimine izin ver Konumumu bul - Güncelleme göstertme Tüm haritaları şimdi güncelle\? Sık kullanılanlardan %1$s\'ı yenisiyle değiştirmek istediğinizden emin misiniz\? Aramaya geri dön @@ -2251,7 +2247,6 @@ Seyahat Kaydedildi Özel süzgeç oluştur - Sürüm güncelleştirmeler veya OsmAnd ile ilgili indirimler kontrol edilmesin. öncesinde %1$s durak(lar) İşaretleyici konumunu değiştirmek için haritayı hareket ettirin Hedef nokta yönünü sesle belirt. @@ -2592,7 +2587,6 @@ Seçili profildeki yönlendirme ayarları \"%1$s\". Uyandıktan sonra zaman aşımı Birimler ve biçimler - Görünüm Harita görünümü Harita görünümü Yüklü eklentiler @@ -2922,23 +2916,6 @@ Durakta bin Seçilen yolları haritada göstermek veya gizlemek için bir düğme. Lütfen önce hedefi ayarlayın - • Yeni \'Yol Tarifleri\' ekranı: Ev ve İş hedefi düğmelerini, \'önceki rota\' kısayolunu, etkin GPX yol-izlerinin ve işaretleyicilerin listesini, arama geçmişini görüntüler -\n -\n • \'Rota detayları\' altındaki ilave bilgiler: yol tipleri, yüzey, diklik, pürüzsüzlük -\n -\n • Her türlü taşımayı destekleyen toplu taşıma navigasyonu: metro, otobüs, tramvay vb. -\n -\n • Yol-izi gösterme/gizleme ve gündüz/gece modları için yeni Hızlı eylem -\n -\n • Almanya, Güney Afrika ve Quebec’te sular altında gösterilen alanlar düzeltildi -\n -\n • KML ve KMZ içe aktarma için ek destek -\n -\n • Bazı toplu taşıma duraklarını açarken meydana gelen çökmeler düzeltildi -\n -\n • Ücretsiz sürümden Facebook ve Firebase analizleri kaldırıldı (OsmAnd+ bunu içermez) -\n -\n OsmAnd Live değişiklikleri için toplu taşıma araçlarını etkinleştirin. OsmAnd Live toplu taşıma %1$d transfer @@ -2955,15 +2932,6 @@ Miliradyan Açısal birim Azimut\'un ölçüm birimini değiştirin. - • Toplu taşıma araçlarında aktarmalar arasındaki süreyi göster -\n -\n • Rota Ayrıntıları için kullanıcı arayüzü düzeltildi -\n -\n • Yön menüsünde ve Rota Ayrıntılarında koyu tema düzeltildi -\n -\n • Mesafe Ölçümünde azimutu göster -\n -\n %1$d dosya (%2$s) önceki \'%3$s\' konumunda mevcut. Yürüme rotası yaklaşık %1$s, ve toplu taşıma araçlarına göre daha hızlı olabilir Ne yazık ki, OsmAnd ayarlarınıza uygun bir rota bulamadı. @@ -3667,7 +3635,6 @@ Ekran denetimi Sistemin ekran zaman aşımına göre ekranı kapatır. Sistemin ekran zaman aşımını kullan - Ekran uyandırma seçenekleri: Ekran uyandırma seçeneklerini seçin (aygıt kilitlenirken OsmAnd\'ın ön planda olduğundan emin olun): Her navigasyon talimatı ekranı açacaktır. Navigasyon talimatları @@ -3710,7 +3677,6 @@ metre Ek harita ayrıntılarını göster veya gizle Gece haritası - Her zaman ton Devre dışı. \'Uyandıktan sonra zaman aşımı\' altındaki \'Ekranı açık tut\' seçeneği gerekir. Çevrim içi kaynak ekle @@ -3871,7 +3837,6 @@ Geliştirme OsmAnd Live verileri OsmAnd Live verileri - Karmaşık yönlendirme Araç navigasyonu için iki aşamalı yönlendirme. Yerel Toplu Taşıma geliştirme Java (güvenli) Toplu Taşıma güzergah hesaplamasına geçin diff --git a/OsmAnd/res/values-uk/phrases.xml b/OsmAnd/res/values-uk/phrases.xml index 0d2506bab0..759b53b5f9 100644 --- a/OsmAnd/res/values-uk/phrases.xml +++ b/OsmAnd/res/values-uk/phrases.xml @@ -36,7 +36,6 @@ Копіювальні послуги, поліграфія Штори, портьєри Тканини - Постільна білизна Спорядження для пірнання Інструменти та будматеріали Секс-шоп @@ -226,7 +225,6 @@ Крамниця свічок Модний одяг Крамниця для стрибків з парашутом - Магазин обігрівачів Крамниця садових меблів Біогаз Залізнична зупинка @@ -402,7 +400,6 @@ Горо́ди/дачі Левада Територія залізниці - Природоохоронна територія Станція спостереження Місце очищене під забудову Місце під забудову @@ -435,7 +432,6 @@ Альтернативна медицина Отоларинголог Банк крові - Медичний центр Акушерка Окуліст Фізіотерапевт @@ -975,7 +971,6 @@ Крематорій Інтернет-кафе Банк - Банкомат Платіжний термінал Лихвар, позичайло Ломбард @@ -1887,7 +1882,6 @@ Картки Eurowag не приймаються Публічний доступ в інтернет Групове проживання - Цистерна E‑ZPass Вид доступу в Інтернет: службовий Пандус: немає @@ -2357,7 +2351,6 @@ Цинк Навчання: перукар Дитяча - З банкоматом Консультація освітня: немає Головний крос Удон (японська локшина) @@ -3523,7 +3516,6 @@ Збиральна Книги Значення - Променева терапія Кондитерська фабрика Гуртовий магазин Медична лабораторія @@ -3541,7 +3533,6 @@ Метро Трамвай Паром - Джерело енергії: біомаса Категорія складності Перехоплююча автостоянка Небезпека diff --git a/OsmAnd/res/values-uk/strings.xml b/OsmAnd/res/values-uk/strings.xml index 6ea5339e84..3bd300c0e7 100644 --- a/OsmAnd/res/values-uk/strings.xml +++ b/OsmAnd/res/values-uk/strings.xml @@ -58,7 +58,6 @@ Відправити GPX файли в OSM? Видимість Теги - Опис Для вивантаження GPX-файлів вкажіть ваше ім\'я користувача і пароль в OSM. Підтримка Підтримати розробку нових функцій @@ -570,7 +569,6 @@ Не вдалося розрахувати маршрут. Не вдалося розрахувати маршрут. Розрахований маршрут порожній. - Новий маршрут прокладено, відстань Ви прибули. Недійсні координати Повернутись до мапи @@ -672,7 +670,6 @@ Не вдалося додати коментар. Редагування POI Створити POI - Не вдалося знайти вузол або об’єкт складається з декількох вузлів, які ще не підтримується. Видалити {0} (коментар)? Вилучення POI Видалити @@ -1069,7 +1066,6 @@ основна мапа світу Масштаб днів - Опис Порожній GPX-файл Треки Закладки @@ -1438,7 +1434,6 @@ Увімкнено Увімкнути Вимкнути - Опис Для встановлення цього втулка вам потрібне з’єднання з Інтернетом. Отримати Цей втулок збагачує OsmAnd морськими мапами для човнів, вітрильного спорту та інших видів водних видів спорту. @@ -1732,7 +1727,6 @@ Номер будинку Наступний Контактні відомості - Опис Додати години роботи Тип POI Будь ласка, вкажіть тип POI. @@ -1793,7 +1787,6 @@ Показати банер безкоштовної версії Використовувати домашню сторінку Використовувати меню - Оновлювати кожні OSM правки, поширені через OsmAnd Заплановані обʼєкти Ви дійсно хочете зберегти POI, не вказавши його тип? @@ -1981,9 +1974,6 @@ Товщина горизонталей Воду Приховати воду - Старий пошук - Показувати старий пошук - Додати старий пошук до шухлядового списку. Використовувати автомагістралі Дозволяє автомагістралі. Статті Вікіпедії поруч @@ -2056,8 +2046,6 @@ Дозволити доступ до місця розташування Прокладайте маршрути і відкривайте нові для себе місця без підключення до Інтернету Визначити моє розташування - Не перевіряти інформацію про нові версії і знижки від OsmAnd. - Не показувати нові версії Оновити усі мапи зараз? Очистити кеш мережевих мап Паливно-ефективний шлях @@ -2719,26 +2707,10 @@ Туристичні путівники Путівники до найцікавіших місць на планеті – всередині OsmAnd і без підключення до Інтернету. Очистити усі проміжні точки - • Навігація: виправлено прогрес-бар, швидка зміна початкової та кінцевої точок маршруту -\n -\n• Позначки мапи: виправлення увімкнення/вимкнення груп, можливість сховати позначки на мапі -\n -\n• Редагування OSM: можливість редагування тегів для неточкових об\'єктів та шляхів, виправлення відсутніх коментарів до нотаток, резервування редагувань -\n -\n• Поліпшено аналіз Вікіпедії та Вікімандрів, оновлені файли вже доступні -\n -\n• Контекстне меню: у нічному режимі було покращено кольори транспортних щитів, виправлено розміри додаткового меню -\n -\n• Річкова навігація: підтримка фарватеру -\n -\n• Інші виправлення помилок -\n Збільшити область пошуку до %1$s Ми відправимо Ваш пошуковий запит: \"%1$s\", а також Ваше місцерозташування. \n \n Особисті відомості не накопичуються, пошукові дані використовуються лише для покращення алгоритму пошуку. - Немає результатів? -\nРозкажіть нам про це. Надіслати пошуковий запит? Світ Оновлення мап: щомісячно @@ -2783,11 +2755,6 @@ Нічого не знайдено: Додати усі проміжні точки маршруту або вибрати окремі категорії. Усього - • Нове: підтримка глобальних туристичних путівників. Наведені місця, пов\'язані з картою. Вихідні дані з Вікімандрів. -\n• Вікіпедія: новий вигляд, активні посилання, підтримка зображень -\n• Open Track UI: підтримка груп шляхових точок -\n• Маркери мапи: імпорт обраних груп з GPX-файлів, введення координат, новий вигляд -\n• Підписка OsmAnd Live тепер підтримує усі функції OsmAnd Статті путівника Вікімандрів Проміжний час прибуття Проміжний час @@ -2803,22 +2770,7 @@ Вузол або шлях не може бути знайдено. Немає підсумків пошуку\? \nНадішліть нам відгук - Створюється шлях… Натисніть кнопку та прослуховуйте відповідну голосову підказку, щоб визначити відсутні або хибні підказки - • Виправлено аварійне завершення програми при запуску, що траплялося на деяких пристроях -\n -\n• Нова можливість Позначок: відображати пройдені позначки -\n -\n• Історія пошуку тепер показує категорії, які ви раніше шукали -\n -\n• Виправлено аварійне завершення програми при запуску з нелатинськими мапами -\n -\n• Підвищено швидкість відображення на пристроях з Android 8.0 -\n -\n• Підтримка редагування полігональних (не-amenity) об\'єктів -\n -\n• Вимірювання відстані: додано кнопку «Виміряти» до Дій у контекстному меню -\n Будь ласка, для продовження роботи надайте OsmAnd дозвіл визначати позиціювання. Чорний Пошук вулиці @@ -2950,14 +2902,6 @@ Уникати метро та легкого рейкового траспорту Уникати поромних переправ Уникати поромних переправ - • Відображення часу між пересадками у громадському транспорті -\n -\n• Виправлений зовнішній вигляд \"Деталей маршруту\" -\n -\n• Виправлена темна тема в меню \"Напрямок\" та \"Деталі маршруту\" -\n -\n• Відображення азимуту в інструменті \"Вимірювання відстані\" -\n Градуси Мілірадіани Одиниця вимірювання кутів @@ -2973,22 +2917,6 @@ Стежка Велодоріжка Невизначена - • Новий екран \"Напрямки\": Відображає кнопки пунктів призначення \"Дім\" і \"Робота\", ярлик \"Попередній маршрут\", список активних GPX-треків і позначок, історію пошуку -\n -\n• Додаткова інформація у \"Деталях маршруту\": типи доріг, поверхня, крутизна, гладкість -\n -\n• Навігація громадським транспортом з підтримкою усіх видів транспорту: метро, автобус, трамвай тощо -\n -\n• Нова Швидка дія для приховування/відображення треків і денного/нічного режимів -\n -\n• Виправлено відображення районів, що відображалися затопленими, у Німеччині, Південній Африці, Квебеку -\n -\n• Додаткова підтримка імпорту KML і KMZ -\n -\n• Виправлено падіння додатку при виборі деяких зупинок громадського транспорту -\n -\n• Видалено аналітику Facebook і Firebase з безкоштовної версії (OsmAnd+ не містить її) -\n Час доби На %1$s Кнопка, що показує чи приховує вибрані треки на мапі. @@ -3119,8 +3047,6 @@ Стороння маршрутизація Оберіть профілі, видимі у застосунку. Профілі застосунку - Змінюйте масштабування мапи прокручуванням колеса вгору і вниз. Клавіша Escape поверне вас до додатку WunderLINQ. - Використовувати WunderLINQ для контролю Потрібно додати принаймні одну річ до списку у налаштуваннях \'Швидкої дії\' Альпійські та гірські лижі Траси для високогірних і гірських лиж та доступ до лижних підіймачів. @@ -3221,7 +3147,6 @@ Початкове повідомлення Аналітика Одиниці виміру й формати - Зовнішній вигляд Вигляд мапи Вигляд мапи Встановлені втулки @@ -3582,7 +3507,6 @@ Вибрати групу Вибрати фігуру Коло - Ромб Площа Восьмикутник Замінити іншу точку цією. @@ -3709,7 +3633,6 @@ Керування екраном Вимикає екран відповідно до часу очікування екрана системи. Використовувати системний час очікування - Параметри увімкнення екрана Параметри увімкнення екрану (переконайтесь, що OsmAnd стоїть на передньому плані, коли пристрій заблоковано): Екран увімкнеться під час вказівки щодо навігації. Вказівки з навігації @@ -3909,7 +3832,6 @@ \n \nВи можете керувати та скасовувати передплати у налаштуваннях AppGallery. OsmAnd дані в реальному часі - Комплексна маршрутизація Двофазна маршрутизація для автомобільної навігації. Розвиток власного громадського транспорту Перемкнутися на обчислення маршруту громадським транспортом за допомогою Java (безпечний) diff --git a/OsmAnd/res/values-uz/phrases.xml b/OsmAnd/res/values-uz/phrases.xml index 6a716b0d65..c8e7815372 100644 --- a/OsmAnd/res/values-uz/phrases.xml +++ b/OsmAnd/res/values-uz/phrases.xml @@ -42,9 +42,9 @@ Википедия Фойдаланувчи белгилаган - Палеонтология жойи + Палеонтология жойи - Новвойхона + Новвойхона Спиртли ичимлик дўкони Пишлоқ дўкони Шоколад дўкони @@ -96,8 +96,7 @@ Гул дўкони Сурат роми дўкони Эркин учиш учун маҳсулот дўкони - Иситиш системаси дўкони - Мебель дўкони + Мебель дўкони Боғ ва полиз дўкони Боғ мебели дўкони Суюқ газ дўкони @@ -162,7 +161,7 @@ Қурол дўкони Атир дўкони - Милиция + Милиция Ўт ўчириш маркази Фавқулотда телефон Ўт ўчириш гидранти diff --git a/OsmAnd/res/values-vi/strings.xml b/OsmAnd/res/values-vi/strings.xml index 31f022961d..4462bf51df 100644 --- a/OsmAnd/res/values-vi/strings.xml +++ b/OsmAnd/res/values-vi/strings.xml @@ -2,12 +2,10 @@ Translator: Le Viet Thanh; email: lethanhx2k@gmail.com --> Chọn thời gian chờ hiển thị bản đồ để quay lại vị trí vừa xong - - Tự động bám theo trên bản đồ + Tự động bám theo trên bản đồ Bản đồ tự động di chuyển theo vị trí khi định vị. Đã kích hoạt thiết lập tự động bám theo. - - Thiết lập hiển thị Vector + Thiết lập hiển thị Vector Lớp phủ trên / Lớp phủ dưới Thiết lập bản đồ nguồn Thiết lập bản đồ vector @@ -17,8 +15,7 @@ Translator: Le Viet Thanh; email: lethanhx2k@gmail.com --> Làng Thị xã Thành phố - - Dừng mô phỏng + Dừng mô phỏng Bắt đầu mô phỏng Không thể đổi tên tập tin. Tên tập tin đã có. @@ -28,102 +25,73 @@ Translator: Le Viet Thanh; email: lethanhx2k@gmail.com --> Tập dữ liệu địa điểm \'%1$s\' thừa, có thể xóa tập tin này. Tập tin địa phương để duy trì những thay đổi địa điểm không tìm thấy và không thể được tạo ra. Thay đổi địa điểm bên trong ứng dụng không ảnh hưởng đến các tập tin bản đồ tải về, những thay đổi sẽ được lưu vào tập tin địa phương để thay thế. - - Nâng cấp OsmAnd+ + Nâng cấp OsmAnd+ Máy chủ lưu trữ tập tin bản đồ không tương thích với phiên bản hiện tại. Để tải về và dùng được các tập tin này, vui lòng nâng cấp ứng dụng lên phiên bản mới hơn. - - Đổi tên - - Tìm kiếm cụ thể online + Đổi tên + Tìm kiếm cụ thể online Đang tìm vị trí… Vị trí (Đã tìm thấy) Địa chỉ… Ưa thích… Chưa rõ - - - Lần hiển thị bản đồ trước - - Tìm kiếm gần: + Lần hiển thị bản đồ trước + Tìm kiếm gần: Tìm kiếm Đã lưu thành công \'%1$s\'. Tên tập tin : Tên tập tin đã có. Lưu - - - Tải tập tin GPX lên cộng đồng OSM. Nó sẽ hữu ích để cải thiện chất lượng bản đồ. + Tải tập tin GPX lên cộng đồng OSM. Nó sẽ hữu ích để cải thiện chất lượng bản đồ. %1$d của %2$d đối tượng được tải lên thành công. Gửi đến OSM - - Hiển thị chi tiết hơn + Hiển thị chi tiết hơn Đã hiện một số chi tiết bản đồ vector (đường giao thông, vv) ở mức phóng thấp hơn - - Đã xóa các điểm ưa thích. + Đã xóa các điểm ưa thích. Bạn sẽ xóa %1$d ưa thích và %2$d nhóm ưa thích. Bạn có chắc về điều này? Nhà Bạn bè Địa điểm Khác - - Không cần + Không cần Bản đồ nền (bao phủ toàn bộ thế giới ở tỉ lệ xem nhỏ) bị thiếu. Hãy tải về tập tin World_basemap_x.obf để bổ sung đầy đủ. Dữ liệu (\'offline\') không có trên thẻ nhớ SD. Vui lòng tải về để cập nhật. \n\nGiữ một lúc để mở chi tiết hơn - - - - Phiên bản + Phiên bản %1$d của %2$d đối tượng được sao lưu thành công. %1$d của %2$d đối tượng được xóa thành công. %1$d của %2$d đối tượng được khôi phục thành công. Không có đối tượng cho %1$s Bạn sẽ %1$s %2$s đối tượng. Có tiếp tục? Quản lý dữ liệu Offline - - Khôi phục + Khôi phục Sao lưu - - - Tải xuống - - dữ liệu địa điểm + Tải xuống + dữ liệu địa điểm dữ liệu Địa chỉ Dữ liệu giao thông Dữ liệu bản đồ - - Sao lưu + Sao lưu Dữ liệu giọng nói (TTS) Dữ liệu giọng nói (media) - - Dữ liệu bản đồ (tiles) + Dữ liệu bản đồ (tiles) Dữ liệu bản đồ (vector) Dữ liệu địa điểm - - Giọng đọc TTS + Giọng đọc TTS Tìm kiếm mới Chọn kích thước chữ trên bản đồ Kích thước chữ Hiển thị thông tin debug Hiệu năng dựng hình hiển thị - - - - Đang giải nén dữ liệu mới… + Đang giải nén dữ liệu mới… Một dịch vụ định tuyến trực tuyến được chọn nhưng không có kết nối Internet có sẵn. Ngôn ngữ không được hỗ trợ Ngôn ngữ được chọn không được hỗ trợ bởi công cụ Android TTS (text-to-speech) đã cài đặt. Bạn có muốn đi đến Market để tìm kiếm một công cụ TTS? Nếu không, ngôn ngữ TTS cài sẵn sẽ được sử dụng. Thiếu dữ liệu Ngôn ngữ được chọn không có dữ liệu. Bạn có muốn vào Market để cài đặt? - - Đảo hướng GPX + Đảo hướng GPX Sử dụng điểm đến hiện tại Dọc theo toàn bộ track - - - - - Đầu ra hướng dẫn bằng giọng nói + Đầu ra hướng dẫn bằng giọng nói Chọn kênh để chạy hướng dẫn bằng giọng nói Voice call audio Âm thanh thông báo @@ -145,44 +113,17 @@ Translator: Le Viet Thanh; email: lethanhx2k@gmail.com --> Chọn bản đồ cần cài đặt hoặc cập nhật Không vào được Internet Cài đặt thêm… - - - - - Tỉ lệ nhỏ nhất để hiển thị bản đồ vector thay cho bản đồ ảnh + Tỉ lệ nhỏ nhất để hiển thị bản đồ vector thay cho bản đồ ảnh Tỉ lệ nhỏ nhất để xem bản đồ vector - - - - - - - - - - Phân loại bản đồ trên Online OSM với ảnh + Phân loại bản đồ trên Online OSM với ảnh Có lỗi khi tìm kiếm Tìm kiếm địa chỉ bằng bản đồ Offline - - Hệ thống + Hệ thống Lựa chọn ngôn ngữ hiển thị Ngôn ngữ - - - - - - - - - - - - - Tiếp + Tiếp Quay lại - - Đổi đơn vị độ dài và tốc độ + Đổi đơn vị độ dài và tốc độ Đơn vị độ dài Chia sẻ vị trí sử dụng Khu vực: %1$s\n%2$s @@ -228,16 +169,11 @@ Translator: Le Viet Thanh; email: lethanhx2k@gmail.com --> Đang đọc các tiles đã được lưu sẵn… Chỉ mục \'\'{0}\'\' lớn hơn bộ nhớ Phiên bản chỉ mục \'\'{0}\'\' không được hỗ trợ - - - - Tìm đường Offline trên OsmAnd là tính năng thử nghiệm và + Tìm đường Offline trên OsmAnd là tính năng thử nghiệm và nó không thể chạy được với khoảng cách trên 20km.\n\nDịch vụ tìm được sẽ tự động chuyển sang dùng CloudMade. Không tìm thấy thư mục. Thư mục lưu trữ - - - Một phiên bản OsmAnd cũ đã được cài đặt. Tất cả các dữ liệu offline sẽ được hỗ trợ bởi mới các ứng dụng mới. Nhưng điểm yêu thích sẽ được xuất ra trong các ứng dụng cũ và sau đó được nhập vào bởi cái mới. + Một phiên bản OsmAnd cũ đã được cài đặt. Tất cả các dữ liệu offline sẽ được hỗ trợ bởi mới các ứng dụng mới. Nhưng điểm yêu thích sẽ được xuất ra trong các ứng dụng cũ và sau đó được nhập vào bởi cái mới. Phiên bản {0} được cài đặt thành công ({1}). Đang download phiên bản… Tiếp tục cài đặt OsmAnd - {0} từ {1} {2} MB ? @@ -245,8 +181,7 @@ Translator: Le Viet Thanh; email: lethanhx2k@gmail.com --> Đang tải OsmAnd… Lựa chọn một bản OsmAnd để cài đặt Hoạt động đặc biệt cho phiên bản đóng góp - - Ứng dụng Tín hiệu GPS chưa được cài đặt. Tìm trong Market? + Ứng dụng Tín hiệu GPS chưa được cài đặt. Tìm trong Market? Không có giọng đọc nào được chọn Ngày Đêm @@ -254,15 +189,12 @@ Translator: Le Viet Thanh; email: lethanhx2k@gmail.com --> Cảm biến ánh sáng Chọn quy luật chuyển chế độ ngày/đêm Chế độ Ngày/Đêm - - Tải xuống {0} tập tin ({1} MB)? + Tải xuống {0} tập tin ({1} MB)? {0} đối tượng được chọn Bộ lọc đã được tải - - Lựa chọn tất cả + Lựa chọn tất cả Làm mới - - Các thiết lập chung cho ứng dụng + Các thiết lập chung cho ứng dụng Thiết lập chung Tải và Quản lý bản đồ Offline hoặc các dữ liệu khác(GPX) Dữ liệu Offline @@ -274,8 +206,7 @@ Translator: Le Viet Thanh; email: lethanhx2k@gmail.com --> Tải bản đồ Lựa chọn Zoom lớn nhất để tải lại Bản đồ này không tải được - - Hiển thị liên tục + Hiển thị liên tục Hiển thị bản đồ liên tục thay cho hiển thị một lần một ảnh Có lỗi khi hiển thị khu vực được chọn Không đủ bộ nhớ để hiện khu vực được chọn @@ -284,8 +215,7 @@ Translator: Le Viet Thanh; email: lethanhx2k@gmail.com --> Có lỗi: Không hiển thị được Hiển thị Vector Chọn hiển thị bản đồ vector (offline) - - Hiện địa chỉ website + Hiện địa chỉ website Hiện số điện thoại web site Điện thoại @@ -293,26 +223,17 @@ Translator: Le Viet Thanh; email: lethanhx2k@gmail.com --> Hiện độ phân giải cao Cải thiện chất lượng hiển thị cho các thiết bị có độ phân giải cao Vị trí chưa được biết - - Tìm phương tiện giao thông + Tìm phương tiện giao thông Transport results (no target): Transport results ({0} to target): - - Tìm lại - - - Giọng nói + Tìm lại + Giọng nói Chưa đọc được bản đồ vector - - - Tập tin GPX không tìm thấy trong thư mục /track + Tập tin GPX không tìm thấy trong thư mục /track Gặp lỗi khi đọc tập tin GPX - - Bản đồ vector Offline + Bản đồ vector Offline Search transport at stop - - - Sửa địa điểm + Sửa địa điểm Xóa địa điểm Theo la bàn Theo vị trí di chuyển @@ -325,25 +246,21 @@ Translator: Le Viet Thanh; email: lethanhx2k@gmail.com --> Các điểm ưa thích được lưu tới {0} Không có điểm ưa thích được lưu Nhập - - Có lỗi khi đọc tập tin GPX + Có lỗi khi đọc tập tin GPX Gửi báo cáo Không có dữ liệu Offline cho khu vực này trong thẻ nhớ. Hãy tải về từ Internet. Nhập thông tin cần tìm Bất kỳ Ưa thích - - Địa điểm… + Địa điểm… Nguồn bản đồ… Thiết lập Xem - - Tìm Địa điểm + Tìm Địa điểm Dùng trackball để di chuyển bản đồ Dùng trackball Thiết lập thời gian chờ đợi tối đa cho từng vị trí sửa chữa nền Thời gian chờ - - Vị trí của tôi? + Vị trí của tôi? Dịch vụ dẫn đường OsmAnd Network GPS @@ -369,8 +286,7 @@ Translator: Le Viet Thanh; email: lethanhx2k@gmail.com --> Phiên bản không được hỗ trợ Dữ liệu giọng nói bị lỗi Dữ liệu giọng nói được chọn không có - - Không truy xuất được thẻ nhớ.\nBạn không thể dùng được bản đồ. + Không truy xuất được thẻ nhớ.\nBạn không thể dùng được bản đồ. Thẻ SD ở chế độ read-only.\nBạn chỉ có thể xem các bản đồ đã được tải trước đó, không thể tải thêm về máy được. Đang giản nén tập tin… Rẽ phải và đi @@ -397,8 +313,7 @@ Translator: Le Viet Thanh; email: lethanhx2k@gmail.com --> Tuyến Dừng Dừng - - Kết thúc tìm kiếm + Kết thúc tìm kiếm Chọn điểm dừng để xuống khoảng cách trước khoảng cách tiếp theo @@ -442,22 +357,17 @@ Translator: Le Viet Thanh; email: lethanhx2k@gmail.com --> Dữ liệu Offline cho {0} đã có ({1}). Bạn muốn cập nhật nó ({2}) ? Địa chỉ Tải về thành công - - - - Đang tải danh sách các khu vực hiện có… + Đang tải danh sách các khu vực hiện có… Không thể truy cập danh sách các khu vực có bản đồ từ osmand.net. Nếu không có bản đồ trong khu vực bạn cần, bạn có thể tự làm bằng cách tham khảo hướng dẫn tại osmand.net - - Điểm ưa thích đã được chỉnh sửa + Điểm ưa thích đã được chỉnh sửa Không có điểm ưa thích nào Thay đổi Chỉ hiện Đi theo Hãy chọn điểm cần đến Hướng - - Giờ mở cửa + Giờ mở cửa Opening changeset… Closing changeset… Nút kết thúc… @@ -469,13 +379,11 @@ Translator: Le Viet Thanh; email: lethanhx2k@gmail.com --> Đang tải postcodes… Đang tải phố… Đang tải thành phố… - - Địa điểm + Địa điểm Có lỗi khi lưu GPX Có lỗi khi tìm đường đi Lỗi xảy ra khi đang tính toán tuyến đường Tuyến đường trống được tính - Tuyến đường mới được tính toán, khoảng cách Bạn đã đến điểm đích Khu vực không xác định! Quay lại bản đồ OsmAnd @@ -484,19 +392,12 @@ Translator: Le Viet Thanh; email: lethanhx2k@gmail.com --> Đang đọc dữ liệu… Đang lưu tracks GPX vào thẻ nhớ SD… Đã xong - - - - Tìm đường qua Internet Tìm đường qua Internet - Mật khẩu OSM Thiết lập Openstreetmap.org (OSM) - Lựa chọn ngôn ngữ, dữ liệu Dữ liệu - OSM Tự động Zoom bản đồ theo tốc độ di chuyển Tự động Zoom bản đồ @@ -514,9 +415,6 @@ Translator: Le Viet Thanh; email: lethanhx2k@gmail.com --> Tài khoản tại OpenStreetMap.org (OSM) Tài khoản OSM Mục tiêu - - - Thêm vào mục Ưa thích Chọn giữa tên tiếng Anh và tên gốc Dùng tên tiếng Anh @@ -526,13 +424,9 @@ Translator: Le Viet Thanh; email: lethanhx2k@gmail.com --> Chọn tuyến phố Chọn Thành phố Chọn Quốc gia - - - Hiển thị hướng xem Bật chế độ 3D Chế độ 3D - Hiện địa điểm trên bản đồ (sử dụng bộ lọc gần đây nhất) Hiện địa điểm Chọn nguồn cho bản đồ tiles online/offline @@ -540,18 +434,11 @@ Translator: Le Viet Thanh; email: lethanhx2k@gmail.com --> Nguồn bản đồ Dùng Internet Hiện vị trí - - Hiện tọa độ GPS trên bản đồ Dùng Internet để tải các tile bị thiếu - Ứng dụng dẫn đường cá nhân - -Thoát - - - -Tìm kiếm + Thoát + Tìm kiếm Tìm kiếm Chọn địa điểm Tìm thêm @@ -574,21 +461,16 @@ Translator: Le Viet Thanh; email: lethanhx2k@gmail.com --> DDD MM.MMMMM DDD MM SS.SSSSS Hiện trên bản đồ - -Chọn địa chỉ + Chọn địa chỉ Khu vực Thành phố Phố Tòa nhà Tòa nhà Điểm giao cắt - - -Cập nhật bản đồ - -Tạo địa điểm - -OK + Cập nhật bản đồ + Tạo địa điểm + OK Hủy Áp dụng Thêm @@ -596,34 +478,16 @@ Translator: Le Viet Thanh; email: lethanhx2k@gmail.com --> Nhập tên Ưa thích Ưa thích Điểm ưa thích \'\'{0}\'\' đã được thêm thành công. - -Sửa Ưa thích + Sửa Ưa thích Xóa Ưa thích - -Bạn có muốn xóa điểm ưa thích \'%s\'? + Bạn có muốn xóa điểm ưa thích \'%s\'? Điểm Ưa thích {0} đã xóa thành công. - - - - - - -Nội dung + Nội dung Tên tác giả - - -Bình luận được thêm thành công + Bình luận được thêm thành công Ngoại lệ xảy ra: Bình luận không được thêm - - - - - - - -Sửa địa điểm + Sửa địa điểm Tạo địa điểm -Không tìm thấy Nút hoặc cơ sở không phải là nút đơn Xóa {0} (bình luận)? Xóa địa điểm Xóa @@ -631,28 +495,22 @@ Translator: Le Viet Thanh; email: lethanhx2k@gmail.com --> thêm thay đổi Hoàn thành tác vụ {0}. - -Thông tin về node không đọc được - -Thời gian mở + Thông tin về node không đọc được + Thời gian mở Bình luận Thay đổi địa điểm Các thẻ khác được giữa lại Phạm Làm lại Bộ lọc - -Lưu thành + Lưu thành Xóa bộ lọc vừa chọn? Bộ lọc %1$s đã bị xóa Bộ lọc %1$s đã được tạo - -Bật màn hình + Bật màn hình Bật màn hình điện thoại khi tiếp cận một lượt - Tránh đường … Xe điện và xe lửa - Đào tạo và lightrail tuyến Định tuyến xe điện Tìm bải đậu xe diff --git a/OsmAnd/res/values-zh-rCN/strings.xml b/OsmAnd/res/values-zh-rCN/strings.xml index 393b9c049b..97d64f7faf 100644 --- a/OsmAnd/res/values-zh-rCN/strings.xml +++ b/OsmAnd/res/values-zh-rCN/strings.xml @@ -728,7 +728,6 @@ 无法计算路线。 无法计算路线。 错误:计算出的路线为空 - 新路线已计算出,距离 正在加载数据… 正在读取本地数据… OsmAnd 上次运行未能正常退出。日志文件位于 {0}。请报告这个问题,并提交此日志文件。 @@ -782,7 +781,6 @@ 发生异常:备注未能添加 编辑兴趣点 创建兴趣点 - 节点未找到,或者设施不是单个节点,该情况尚不支持。 是否删除 {0} (输入备注)? 删除兴趣点 已删除 @@ -1401,9 +1399,6 @@ 等高线线宽 水系 隐藏水系 - 旧版搜索 - 显示旧版搜索 - 在抽屉列表中添加旧版搜索 使用高速公路 允许高速公路。 利用 %1$d 退出并离开 @@ -1446,8 +1441,6 @@ 允许访问到的位置 在没有互联网连接的情况下,取得指引与探索新地点 寻找我的位置 - 不检查版本更新或与 OsmAnd 有关折扣的信息 - 不显示更新 现在更新所有的地图吗? 清除所有的图砖 你确定你想要替换收藏的 %1$s? @@ -2221,7 +2214,6 @@ 修改 OSM 的变更 使用菜单 还有一种新的选择,主要控制通过灵活的仪表板或静态菜单的应用程序。总是可以在仪表板设置中更改您的选择。 - 更新 只通过 WiFi 下载 实时更新 立即更新 @@ -2492,8 +2484,6 @@ 获取 OsmAnd Live 以解锁全部功能:每日无限量地图下载与更新、所有付费与免费插件、维基百科、维基导游等等。 书签 如何打开维基百科文章? - 没有结果? -\n请告诉我们这个问题。 下载维基百科数据 在线打开条目 未找到条目 @@ -2633,22 +2623,6 @@ 隐藏GPX轨迹 显示GPX路径 请先添加目的地 - • 新的“导向”屏幕:显示家与工作地点按钮、“上一条路径”按钮、活跃的GPX路径与标记,以及搜索记录 -\n -\n • 额外的“路径详情”信息:道路类型及路面的种类、表面材质、陡峭度及平滑度 -\n -\n • 支持各种交通工具的公交导航:地铁、巴士、轻轨…… -\n • 新的快捷操作:显示/隐藏路径及日间/夜间模式 -\n -\n • 修复了德国、南非及魁北克部分区域显示为泛洪的问题 -\n -\n • 对K ML及KMZ数据输入的额外支持 -\n -\n • 修复了打开部分公交站点时程序崩溃的问题 -\n -\n • 移除了免费版本中的Facebook及Firebase分析数据(不包含于OsmAnd+中) -\n -\n 为OsmAnd Live启用公共交通的变更情况。 添加起点与终点 未铺设路面 @@ -2682,15 +2656,6 @@ 自行车道 角度单位 更改方位角测量方式。 - • 在公共交通的中转站间显示时间 -\n -\n • 修正了路径详情的用户界面 -\n -\n • 修复了导航菜单和路径详情中的暗色主题 -\n -\n • 在测距中显示方位角 -\n -\n 无法复制 %1$d 个文件 (%2$s)。 无法找到节点或道路。 一共 @@ -2734,7 +2699,6 @@ 免费 取消订阅 单位与格式 - 外观 已安装插件 配置导航 应用主题、单位、区域 diff --git a/OsmAnd/res/values-zh-rTW/phrases.xml b/OsmAnd/res/values-zh-rTW/phrases.xml index d7224cb178..2677e6653a 100644 --- a/OsmAnd/res/values-zh-rTW/phrases.xml +++ b/OsmAnd/res/values-zh-rTW/phrases.xml @@ -78,7 +78,6 @@ 複印店 窗簾店 布店 - 寢具商店 潛水裝備 住宅裝修用品店 情趣商店 @@ -340,7 +339,6 @@ 另類醫療 聽覺病矯治專家 血庫 - 醫療中心 助產士 職能治療師 驗光師 @@ -433,7 +431,6 @@ 衝浪 游泳 桌球 - 手球 網球 雪橇 排球 @@ -456,7 +453,6 @@ 水族館 主題公園 旅遊景點 - 一般旅遊景點 遊戲機 動物(遊樂園) 摩天輪 @@ -495,7 +491,6 @@ 網際網路存取:公共網路 網際網路存取:網路服務 修道院 - 古時的修道院 路邊十字架 路邊神龕 資訊 @@ -659,7 +654,6 @@ 火葬場 網路咖啡館 銀行 - 自動提款機 支付終端機 放款人 典當鋪 @@ -819,7 +813,6 @@ 糕點店 燈具店 時尚服飾店 - 加熱元件店 園藝器具店 自由飛行用品店 皮革製品店 @@ -839,9 +832,7 @@ 丁壩 電纜配線箱 盆地 - 保育土地 起重機 - 旅遊景點 圖例 國際自行車網路節點 @@ -983,7 +974,6 @@ 動物廢棄物 有監管 沒有監管 - 磨房水塘 推特 Skype Youtube @@ -1166,7 +1156,6 @@ 能源:地熱 能源:石油 能源:柴油 - 自助服務 踏石橋 國際名稱 國家名稱 @@ -1193,7 +1182,6 @@ 資訊標誌:大自然 錨泊點 - 資訊標誌:野生動物 資訊標誌:歷史 標誌 導覽機 @@ -1311,8 +1299,6 @@ 星星:4 (超一流的) 星星:5 (豪華的) 星星: 5S (超豪華的) - 星星: 6 - 星星: 7 房間 情侶賓館 接受硬幣 @@ -1337,7 +1323,6 @@ 不接受 Visa 卡 接受萬事達卡 不接受萬事達卡 - 免費 接受帳戶卡 不接受帳戶卡 接受 Maestro 卡 @@ -1985,7 +1970,6 @@ 難民:無 汚水排放點:有 汚水排放點:無 - 衛生轉儲站:僅客戶 社會設施:團體家屋 社會設施:輔助生活 社會設施:推廣 @@ -2524,7 +2508,6 @@ 拳擊 正式名稱 工事中 - 自動提款機︰有 ATM︰ 無 火塘 街道電箱 @@ -2783,7 +2766,6 @@ 主要管道 池塘 河流 - 水槽 在職︰是的 軍事檢查哨 儲物櫃 @@ -3556,8 +3538,6 @@ 高承載車輛 電車 渡船 - 能源:生物能 - 放射治療 危險 難度分類 放射治療 diff --git a/OsmAnd/res/values-zh-rTW/strings.xml b/OsmAnd/res/values-zh-rTW/strings.xml index 9afe549fa8..738ede85e2 100644 --- a/OsmAnd/res/values-zh-rTW/strings.xml +++ b/OsmAnd/res/values-zh-rTW/strings.xml @@ -722,7 +722,6 @@ 無法計算路線。 無法計算路線。 計算出來的路線為空。 - 重新計算路程,距離有 您已抵達。 座標的無效 回到地圖 @@ -815,7 +814,6 @@ 無法新增評論。 編輯 POI 建立 POI - 找不到節點或便利設施組成的一些節點,哪些尚不支援。 刪除 {0} (評論)? 刪除 POI 已刪除 @@ -1794,7 +1792,6 @@ 沒有確定地址 查尋地址 馬道 - 更新全部 只在 WiFi 連線下載 即時更新 立即更新 @@ -2007,13 +2004,11 @@ 允許位置的存取 在沒有網際網路連線的情況下,取得指引與探索新地點 尋找我的位置 - 不要顯示新版本 取得無限制的地圖下載,並有每週、每日甚至是每個小時的更新。 沒有限制的地圖下載、更新和維基百科外掛元件。 英里/米 讓 OsmAnd 確定您所在的位置和建議下載該區域的地圖。 獲得 %1$s - 不要檢查新版本或 OsmAnd 相關的折扣。 獲得 會定時收取訂閱費用。您隨時都能在 Google Play 取消。 捐款給 OSM 的社群 @@ -2068,9 +2063,6 @@ 利用 %1$d 退出並離開 城市或地區 附近維基百科條目 - 舊版搜尋 - 顯示舊版搜尋 - 增加舊版搜尋到拖曳清單中。 使用高速公路 允許進高速公路。 塞爾維亞語(拉丁文) @@ -2591,16 +2583,6 @@ 按照類型 輕點在地圖上的標記,將其移動到活動標記的頂端,而不用打開內容選單。 變更您的搜尋。 - • 新的:支援全球離線旅遊指南、參考所的位置連結到地圖、初始資料來自維基導遊。 -\n -\n• 維基百科:嶄新的面貌、活動連結、圖片 -\n -\n• 開放式軌跡使用者介面:顯示航點群組 -\n -\n• 地圖標記:從 GPX 檔案匯入所選擇的群組、座標輸入、嶄新的外觀 -\n -\n• OsmAnd Live 訂閱,現在支援 OsmAnd 所有的功能 -\n 包括座標和所選註解資料的 GPX 檔案。 包括座標和所有註解資料的 GPX 檔案。 編輯 %1$s,合計 %2$s mBTC @@ -2776,44 +2758,13 @@ 您的搜尋將會被傳送到:「%1$s」,與您的位置一起。 \n \n不會蒐集個人資訊,僅需要用來改進搜尋的搜尋資料。 - 沒有結果? -\n告訴我們這件事。 送出搜尋查詢? - • 導航:修復進度列,快速交換路線的起點和終點 -\n -\n • 地圖標記:修復開/關群組,從地圖中隱藏標記的功能 -\n -\n • OSM 編輯:能夠編輯非點物件標記,修復評論上遺漏的註解、編輯備份 -\n -\n • 改善 Wikipedia 和維基導遊分析,更新檔案已經能用 -\n -\n • 內容選單:在夜間模式下修復交通保護顏色,修復附加選單大小 -\n -\n • 船艇導航:支援水運航道 -\n -\n • 其他錯誤修復 -\n 將搜尋半徑擴展至 %1$s - 正在提交路線… 感謝您的意見回饋 找不到節點或路徑。 沒有搜尋結果? \n提供回饋 點擊按鈕並聆聽其對應的語音指示來檢查是否有遺失或錯誤 - • 修正了在某些裝置上發生的啟動故障 -\n -\n• 新標記功能:顯示已經過的標記 -\n -\n• 搜尋歷史記錄現在顯示您之前搜尋過的類別 -\n -\n• 修復了在非拉丁地圖啟動時的崩潰問題 -\n -\n• 改善 Android 8.0 裝置上的繪製速度問題 -\n -\n• 支援多邊形 (非生活環境) 的物件編輯 -\n -\n• 測量距離:在快顯選單中為動作增加了「測量」按鈕 -\n 請授予 OsmAnd 位置存取權以繼續。 黑色 提供更多從此站點開始的運輸方式。 @@ -2907,15 +2858,6 @@ 避免捷運與輕軌運輸 避免渡輪 避免渡輪 - • 在大眾運輸工具間轉乘時顯示時間 -\n -\n • 修正路線詳細資訊的使用者介面 -\n -\n • 修復在方向選單與路徑詳細資訊中的暗色主題 -\n -\n • 在測量距離中顯示方位角 -\n -\n 毫弧度 角度單位 @@ -2976,23 +2918,6 @@ 路徑 自行車道 未定義 - • 新的「方向」畫面:顯示家裡與工作目的地按鈕、「前一條路徑」快捷鍵、作用中的 GPX 軌跡與標記清單、搜尋歷史 -\n -\n • 「路徑詳細資訊」下的額外資訊:道路類型、表面、坡度、平滑度 -\n -\n • 大眾運輸導航現在支援所有類型的運輸工具:捷運、巴士、電車等等 -\n -\n • 新的顯示/隱藏軌跡的快速動作與日/夜模式 -\n -\n • 修復德國、南非與魁北克被顯示為淹沒的區域 -\n -\n • 對 KML 與 KMZ 匯入的額外支援 -\n -\n • 在開啟某些大眾運輸站點時當機的問題 -\n -\n • 從免費版中移除 Facebook 與 Firebase 分析(OsmAnd+ 則從未包含其在內) -\n -\n 為 OsmAnd Live 變更啟用大眾運輸。 OsmAnd Live 大眾運輸 避免鵝卵石或枕木 @@ -3075,8 +3000,6 @@ 第三方路徑規畫 選取要在應用程式中顯示的設定檔。 應用程式設定檔 - 透過向上或向下捲以變更地圖縮放。Esc 會將您帶回 WunderLINQ 應用程式。 - 使用 WunderLINQ 來控制 至少在「快速動作」設定中新增一個項目 高山與下坡滑雪 適合高山或下山滑雪的斜坡與滑雪纜車。 @@ -3224,7 +3147,6 @@ 在選定的設定檔「%1$s」的路徑設定。 喚醒後的逾時 單位與格式 - 外觀 地圖外觀 地圖外觀 已安裝的外掛程式 @@ -3579,7 +3501,6 @@ 選取群組 選取形狀 圓形 - 菱形 方形 八邊形 滑雪旅遊 @@ -3706,7 +3627,6 @@ 螢幕控制 根據系統的螢幕逾時關閉螢幕。 使用系統螢幕逾時 - 螢幕喚醒選項: 選取螢幕喚醒選項(確保裝置鎖定時,OsmAnd 在前景): 每次導航說明都將開啟螢幕。 導航說明 @@ -3750,7 +3670,6 @@ 公尺 顯示或隱藏額外的地圖詳細資訊 夜晚地圖 - 全部時間 已停用。需要「喚醒後逾時」的「保持螢幕開啟」。 新增線上來源 套用這些變更將會清除這個圖磚來源的快取資料 @@ -3860,7 +3779,6 @@ 在……後整理 在……前變更路線類型 在……後變更路線類型 - 網路伺服器 簡化軌跡 僅會儲存路線,航點將會被刪除。 檔案名稱 @@ -3911,7 +3829,6 @@ 開發 OsmAnd Live 資料 OsmAnd Live 資料 - 複雜路線 汽車導航的兩階段路線。 原生公共運輸發展 切換到 Java(安全)公共運輸路線計算 diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index 8e88fe3ebf..9d3e5a575c 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -1498,7 +1498,6 @@ Sea depth contour lines and seamarks. Thank you for purchasing \'Nautical depth contours\' Nautical depth contours - Worldwide Wikivoyage articles Southern hemisphere nautical depth points Northern hemisphere nautical depth points From fcf97559dbe4d6f94f9c8c77b2e53cc9fbe5995c Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Thu, 14 Jan 2021 18:43:55 +0200 Subject: [PATCH 024/173] Delete string resources without default value second part --- OsmAnd/res/values-be/strings.xml | 80 -------------------------------- 1 file changed, 80 deletions(-) diff --git a/OsmAnd/res/values-be/strings.xml b/OsmAnd/res/values-be/strings.xml index 37f6301b80..3ee52f5acf 100644 --- a/OsmAnd/res/values-be/strings.xml +++ b/OsmAnd/res/values-be/strings.xml @@ -945,7 +945,6 @@ Не атрымалася разлічыць маршрут. Не атрымалася разлічыць маршрут. Разлічаны маршрут пусты. - Новы шлях разлічаны, адлегласць Вы прыбылі. Хібныя каардынаты Вярнуцца да мапы @@ -1033,7 +1032,6 @@ Не атрымалася дадаць каментар. Рэдагаваць POI Стварыць POI - Вузел не знойдзены або зручнасць (amenity) складаецца з некалькіх вузлоў, што не падтрымліваецца. Выдаліць {0} (каментар)? Выдаліць POI Выдалена @@ -1838,7 +1836,6 @@ Адлегласць: Час: Конныя маршруты - Абнавіць Спампоўваць толькі праз Wi-Fi Аўтаабнаўленне Абнавіць зараз @@ -2035,8 +2032,6 @@ Вы сапраўды хочаце замяніць улюбёную мясціну %1$s\? Абнавіць усе мапы зараз? Ачысціць кэш сеціўных мапаў - Не правяраць новыя версій і зніжкі ад OsmAnd. - Не паказваць новыя версіі Прамінуць спампоўванне мапаў У вас адсутнічаюць мапы. Вы можаце абраць мапу са спіса альбо спампаваць яе пазней праз \"Меню - %1$s\". Абраць іншы рэгіён @@ -2109,10 +2104,7 @@ Дазваляе выкарыстоўваць аўтамагістралі. Сербская (лацінка) Кітайская (Ганконг) - Састарэлы пошук - Паказваць састарэлы пошук Ваду - Дадаць састарэлы пошук у спісе, што раскрываецца. Таўшчыня гарызанталяў Таўшчыня гарызанталяў (ізагіпсы) Шчыльнасць гарызанталяў @@ -2809,17 +2801,6 @@ Мадыфікацыя прадвызначанага стылю для павялічэння кантрастнасці пешаходных і роварных дарог. Выкарыстоўвае старыя Mapnik-колеры. Атрымайце OsmAnd Live, каб разблакаваць усе функцыі: штодзённыя абнаўленні мап з неабмежаванымі спампоўваннямі, усе платныя і бясплатныя ўбудовы, Вікіпедыю, Вікігід і шмат іншага. Рэдагаваць дзеянні - • Новае: падтрымка аўтаномных турыстычных даведнікаў. Мясціны звязаныя з мапай. Зыходныя даныя ад Wikivoyage. -\n -\n • Вікіпедыя: новы выгляд, актыўныя спасылкі, падтрымка выяў -\n -\n • Open Track UI: падтрымка груп пунктаў шляху -\n -\n • Адзнакі мапы: імпарт абраных груп з GPX-файлаў, увод каардынат, новы выгляд -\n -\n • Падпіска OsmAnd Live цяпер падтрымлівае ўсе функцыі OsmAnd -\n -\n Калі ласка, адпраўце здымак экрана з гэтым апавяшчэннем на support@osmand.net Рэдагаваць пункт Дадаць пункт @@ -2830,31 +2811,13 @@ Мы адправім ваш пашуковы запыт \"%1$s\", а таксама вашае месцазнаходжанне. \n \n Збіраюцца толькі агульныя звесткі, даныя пошуку выкарыстоўваюцца толькі для таго, каб палепшыць алгарытм пошуку. - Няма вынікаў? -\nРаспавядзіце нам аб гэтым. Адправіць пашуковы запыт? Павялічыць радыус пошуку да %1$s Дзякуй за Ваш водгук Не атрымалася знайсці вузел ці шлях. Нічога не знойдзена\? \nПакінце водгук - Фіксуецца шлях… Націсніце на кнопку і паслухайце адпаведную галасавую падказку, каб выявіць адсутныя або пашкоджаныя падказкі - • Навігацыя: выпраўленне індыкатару прагрэсу, хуткая замена пачатковага і канчатковага пунктаў маршруту -\n -\n • Адзнакі мапы: выпраўленне ўключэння/выключэння групаў, магчымасць хаваць адзнакі на мапе -\n -\n • Рэдагаванне OSM: магчымасць рэдагавання пазнак для некропкавых аб\'ектаў і шляхоў, выпраўленне адсутных каментароў на нататках, рэзервовае капіяванне правак -\n -\n • Паляпшэнне разбору Wikipedia і Wikivoyage, абноўленыя файлы ўжо даступныя -\n -\n • Кантэкстнае меню: выпраўленне колеру дарожных знакаў у начным рэжыме, выпраўленне памераў дадатковага меню -\n -\n • Рачная навігацыя: падтрымка фарватэру -\n -\n • Выпраўленне іншых хібаў -\n -\n Выдаліць адзнаку мапы «%s»\? Рэдагаваць адзнаку мапы Асобная праграма @@ -2865,21 +2828,6 @@ Пакінуць пройдзеныя адзнакі на мапе На гэтым прыпынку даступна шмат тыпаў грамадскага транспарту. Калі ласка, дайце OsmAnd дазвол на месцазнаходжанне для працягу. - • Выпраўлена хіба пры запуску, што ўзнікала на некаторых прыладах -\n -\n • Новыя функцыі адзнак: паказваюцца ўжо пройдзенныя адзнакі -\n -\n • Гісторыя пошуку зараз паказвае катэгорыі, што вы шукалі раней -\n -\n • Выпраўлена хіба пры запуску, што ўзнікала з нелацінскімі мапамі -\n -\n • Паляпшэнне хуткасці адмалёўкі на прыладах з Android 8.0 -\n -\n • Падтрымка рэдагавання шматвугольных (нязручных) аб\'ектаў -\n -\n • Вымярэнне дыстанцый: дададзена кнопка «Вымярэнне» ў «Дзеянні» кантэкстнага меню -\n -\n Чорны План і цэны Штомесячна @@ -2952,23 +2900,6 @@ Паказаць сляды Уключыць грамадскі транспарт для змен OsmAnd Live. Грамадскі транспарт OsmAnd Live - • Новы экран «Напрамкі»: адлюстроўвае кнопкі напрамкаў дахаты і на працу, скарот «папярэдні маршрут», спіс актыўных GPX-слядоў і адзнак, гісторыю пошуку -\n -\n • Дадатковыя звесткі пад «Дэталі маршруту»: тыпы дарог, пакрыццё, пакатасць, гладкасць -\n -\n • Навігацыя грамадскага транспарту падтрымлівае ўсе тыпы: метро, аўтобус, трамвай і іншыя -\n -\n • Новыя хуткія дзеянні для паказу/схову слядоў і рэжымаў дзень/ноч -\n -\n • Выпраўленыя вобласці, якія выглядалі як затопленыя, у Германіі, Паўднёваё Афрыцы, Квебеку -\n -\n • Дадатковая падтрымка для KML- і KMZ-імпарту -\n -\n • Выпраўлена падзенне пры адкрыцці некаторых прыпынкаў грамадскага транспарту -\n -\n • Выдалена аналітыка Facebook і Firebase са свабоднай версіі (OsmAnd+ не ўключае яе) -\n -\n %1$d перасадак Дадаць пункт адпраўлення і пункт прызначэння Дадаць пункт адпраўлення @@ -3043,16 +2974,6 @@ Пазбягаць метро і лёгкарэйкавага транспарту Без паромаў Пазбягаць паромаў - • Адлюстраванне часу паміж перасадкамі ў грамадскім транспарцн -\n -\n • Выпраўлены інтэрфейс \"Падрабязнасці маршруту\" -\n -\n • Выпраўлена цёмная тэма для \"Маршрут\" і -\n\"Падрабязнасці маршруту\" -\n -\n • Пры вымярэнні адлегласці будзе адлюстроўвацца азімут -\n -\n Адправіць журнал Перамешчана %1$d файлаў (%2$s). Скапіявана %1$d файлаў (%2$s). @@ -3289,7 +3210,6 @@ Налады пабудовы маршруту абранага профілю \"%1$s\". Час працы пасля абуджэння Адзінкі вымярэння і фарматы - Выгляд Выгляд мапы Выгляд мапы Усталяваныя убудовы From b07a0c38bda661f8bcecdbead094143abbb0aba7 Mon Sep 17 00:00:00 2001 From: solokot Date: Thu, 14 Jan 2021 17:58:12 +0000 Subject: [PATCH 025/173] Translated using Weblate (Russian) Currently translated at 99.1% (3582 of 3613 strings) --- OsmAnd/res/values-ru/strings.xml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-ru/strings.xml b/OsmAnd/res/values-ru/strings.xml index 4af14aab63..4cbb9f5008 100644 --- a/OsmAnd/res/values-ru/strings.xml +++ b/OsmAnd/res/values-ru/strings.xml @@ -3942,7 +3942,7 @@ OsmAnd использует MGRS, который похож на формат UTM NATO. Развитие местного общественного транспорта Добавьте не менее двух точек - Данные %1$s доступны только для дорог, нужно рассчитать маршрут с помощью «Маршрут между точками». + Данные %1$s доступны только для дорог, постройте маршрут с помощью «Маршрут между точками» для просмотра графиков. Вводите теги через запятую. Перейти на расчёт маршрутов общественного транспорта с помощью Java (safe) Использовать 2-фазный алгоритм A* @@ -4015,4 +4015,7 @@ \n \n Скопировать адрес + Папки + Выбор папки + Выберите папку или добавьте новую \ No newline at end of file From bee5d324c121ac7e0ac1a190c14015844031d7db Mon Sep 17 00:00:00 2001 From: Temuri Doghonadze Date: Thu, 14 Jan 2021 19:42:45 +0000 Subject: [PATCH 026/173] Translated using Weblate (Georgian) Currently translated at 75.9% (2744 of 3613 strings) --- OsmAnd/res/values-ka/strings.xml | 405 +++++++++++++++++++++++++++++++ 1 file changed, 405 insertions(+) diff --git a/OsmAnd/res/values-ka/strings.xml b/OsmAnd/res/values-ka/strings.xml index 720fa5a374..00e5039ce7 100644 --- a/OsmAnd/res/values-ka/strings.xml +++ b/OsmAnd/res/values-ka/strings.xml @@ -2356,4 +2356,409 @@ ბოლო ცვლილება სახელი: ჰ-ა სახელი: ა-ჰ + შეიყვანეთ სწორი ელ-ფოსტა + შეიყვანეთ პროქსის მისამართი (მაგ. 127.0.0.1). + აირჩიეთ ხატულა, ფერი და სახელი + შეიყვანეთ დასტის მისამართი + აპლიკაციის პროფილი შეცვლილია %s-ზე + %1$s პირველი %2$s-სთვის + %1$s პირველი %2$s-დან + გთხოვთ, ჯერ დანიშნულების წერტილი მონიშნოთ + მადლობა გამოხმაურებისთვის + როგორ გავხსნათ ბმული\? + როგორ გავხსნათ Wikipedia-ს სტატიები\? + მოგესალმებით სატესტო ვერსიაში + რუკაზე ისრების ჩვენება + OSM-ჩანაწერების ჩვენება ან დამალვა + აკრიფეთ ქალაქის სახელი ან მისამართი + %1$s-ის რუკაზე ჩვენება + მდებარეობა: +\n გრძედი: %1$s +\n განედი: %2$s + გადმოწერეთ %1$s რუკა + ყველა ფაილი განახლებულია + სახელწოდების კოპირება + იღება ხვალ + ზამთარი და სრიალი + რუკის წყაროს დამატება + რუკის წყაროს შეცვლა + რჩეულების ჩვენება + პარკინგის ადგილის დამატება + OSM შენიშვნის დამატება + ახალი ფოტოშენიშვნა + ახალი ვიდეოშენიშვნა + ახალი აუდიოშენიშვნა + OSM ჩასწორება + ფოტოშენიშვნები + ვიდეოშენიშვნები + შემოთავაზებული რუკები + მხოლოდ ღამით ჩვენება + დამატებითი კატეგორიის დამატება + %1$s -- %2$s -- %3$s + აქვს მხოლოდ 4 ღილაკი. + %1$s-დან წაკითხვა შეუძლებელია. + %1$s-დან შემოტანა შეუძლებელია. + აირჩიეთ კურსის ფაილი + ხელით შერჩეული ფერი + POI-ის ტიპების ძებნა + გამოწერა - მიმდინარე OsmAnd-ი + POI-ის შექმნა ან ჩასწორება + ჩასწორების გაგრძელება + მხარდაუჭერელი ტიპი + სიახლოვის სენსორი + ეკრანის ჩართულად დატოვება + ონლაინ წყაროს ჩასწორება + სიჩქარის კამერების წაშლა + აქტიურად დატოვება + რუკის დამატებითი დეტალების ჩვენება ან დამალვა + ამოღება და რესტარტი + მოწყობილობას სიჩქარის კამერები არ გააჩნია. + უახლესი დანიშნულების პუნქტის წაშლა + ხმის აწევის ღილაკებით გადიდება + გთხოვთ შეიყვანოთ სახელი მითითებული წერტილისათვის + OSM-ის დახურული განმარტება + კურსისთვის დამატება + დასაწყისის და დასასრულის ხატულების ჩვენება + კურსის შემოტანა + არსებული კურსის გახსნა + არსებულიკურსის ფაილისთვის დამატება + კურსის GPX ფაილში ჩაწერა + კურსის ფაილების დამატება + კურსის ფაილების შემოტანა ან ჩაწერა + კურსზე პუნქტის დამატება + კურსზე პუნქტის დამატება + კურსის ფაილად ჩაწერა + სხვა კურსის დაწყება + კურსის დასაწყისი + გზებზე მიბმა + მოჭრა მანამდე + მოჭრა შემდეგ + გამარტივებული კურსი + %s კურსის ფაილი + მოგზაურობის ჩაწერის პაუზა + მოგზაურობის ჩაწერის გაგრძელება + ყველა წინა სეგმენტი გადაითვლება არჩეული პროფილის გამოყენებით. + ჩაწერილი კურსის გახსნა + გთხოვთ, დაამატოთ ორი წერტილი მაინც. + ხატულების დაწყება და დამთავრება + მადლობა \"კონტურული ხაზების\" შეძენისათვის + OsmAnd-ის მიმდინარე მონაცემები + OsmAnd-ის მიმდინარე მონაცემები + ადგილობრივი საზოგადოებრივი ტრანსპორტის განვითარება + ფაილი უკვე შემოტანილია + დაამატეთ ორი წერტილი მაინც + OsmAnd-ში შესვლა + OsmAndის გამოწერას ვადა გაუვიდა + OsmAndის გამოწერა დაპაუზებულია + OsmAndის გამოწერა შეჩერებულია + URL ყველა პარამეტრით აი ასეთი იქნება: + შეცდომა, გადაამოწმეთ პარამეტრები + Mapillary-ის გამოსახულება + Mapillary-ის ღილაკი + ფერთა გამა + მოძრაობის დრო + " შენახულია " + სახელი უკვე არსებობს + ავტოსტრადების გამოყენება. + ავტოსტრადების გამოყენება + ჩანაწერის გაყოფა + გარემოხაზულობის გამუქება + %1$s-ის და %2$s-ისთვის ადგილების შეცვლა + %1$s -ის შემოტანის შეცდომა: %2$s + პროფილის გატანა შეუძლებელია. + %1$s უკვე არსებობს. გადავაწერო\? + შევცვალო OsmAnd-ის მონაცემების დასტა\? + ნავიგაციის ინსტრუქციები და გამოცხადებები + სიმძიმე, სიმაღლე, სიგრძე და სიჩქარე + სხვა პროფილის ასლის შექმნა + პროფილების შექმნა, შემოტანა და ჩასწორება + აპის თემა, საზომი ერთეულები, რაიონი + %1$s * დაზოგეთ %2$s + ზამთრის და მოყინული გზები + მთის მოტოციკლეტი, მოპედი, ცხენი + კოპირებულია %1$d ფაილი (%2$s). + გადატანილია %1$d ფაილი (%2$s). + ავტობუსების და ტროლეიბუსებისთვის თავის არიდება + %s-ის სიგრძის მნიშვნელობა + აირჩიეთ საწყისი წერტილი + საწყისი წერტილის დამატება + საწყისი და საბოლოო წერტილების დამატება + გზის გასწვრივ ჩვენება + ინტერესის წერტილი (POI) + ორრიცხვიანი სიგანის გამოყენება + ვერაფერი ვიპოვე: + ყველა შუალედური წერტილის გასუფთავება + შეიყვანეთ გრძედი და განედი + რუკაზე გამოჩენა + ციფრების რაოდენობა + GPX ფაილად შემოტანა + გადიდების დონის ჩვენება: %1$s + თვითგადიდების გამორთვა + თვითგადიდების ჩართვა + რუკის თვითგადიდების ჩართვა/გამორთვა + აირჩიეთ სხვა კატეგორია. + შეიყვანეთ ყველა პარამეტრი + რუკის სტილის დამატება + კონტურული ხაზების ფერთა გამა + საჭიროა რუკების გადმოსაწერად. + განვაახლო ყველა რუკა\? + მდებარეობასთან დაკავშირებული რუკა + დაუშვებელი სიმბოლო ფაილის სახელში + რუკის სანიშნებჩი ჩამატება + რუკის ბოლო ცვლილება: %s + მდებარეობაზე წვდომის მინიჭება. + გადმოწერა მხოლოდ W-Fi-ით + %1$.1f მბ %2$.1f-დან + რუკაზე ძებნა + პირველი ნაბიჯები OsmAnd-თან ერტად + ყველას განახლება (%1$s მბ) + გადმოწერა - ფაილი %1$d + სიჩქარის ერთეული. + თქვენი მდებარეობის სიმულაციის შეწყვეტა. + შენახულია: %1$s-თან + გათიშული რუკები +\n& ნავიგაცია + მოგწონთ OsmAnd-ი\? + მთლიანი სტატიის წაკითხვა (ონლაინ) + A-GPS მონაცემები გადმოწერილია: %1$s + პარკინგის დროის ლიმიტი + გრძედი %1$s +\nგანედი %2$s + მიუთითეთ პროქსი სერვერი. + ტრამვაის და ტროლეიბუსის გზები + შესული ხართ, როგორც %1$s + ავტობუსები და ტროლეიბუსები + აირჩიეთ გადასაღები სურათის ზომა + ბოლო დარჩენილი მეტრებისას + %1$s +\n%2$s გზის წერტილი + დასრულების დრო: %1$tF, %1$tT + დაწყების დრო: %1$tF, %1$tT + დაშორება: %1$s (%2$s წერტილი) + ჩრდილო ამერიკა - კანადა + ევროპა - დიდი ბრიტანეთი + OsmAnd-ის მონაცემების კოპურება… + ყველა დარჩენილი სეგმენტი + ყველა წინა სეგმენტი + ახალი გზის შექმნა + წერტილებს შორის გზა + გზის დაგეგმვა + Wikipedia-ის რუკების გადმოწერა + აპის პროფილის შეცვლა + საზოგადოებრივი ტრანსპორტის დამალვა + საზოგადოებრივი ტრანსპორტის ჩვენება + OsmAnd + Mapillary + %1$s / %2$s + მოქმედების შეცდომა %1$s + ნაგულისხმევია (%s) + კატეგორიის მიხედვით დალაგება + %1$s * %2$s + მზის ამოსვლის დრო %1$s + მზის ჩასვლის დრო %1$s + ავტორიზაცია წარმატებულია + სისტემური აპის გამოყენება + მომხმარებელი და პაროლი + ნავიგაციის, ჟურნალიზაციის სიზუსტე + გზის ფაილიდან შემოტანა + ფაილიდან შემოტანა + პროფილები სიის ჩასწორება + ახალი ჩადგმა დამატებულია + შეტყობნებები + რუკის დიალოგის ფანჯარა + OsmAnd-ის პროფილი: %1$s + კონტურული ხაზების ჩვენება/დამალვა + კონტურული ხაზების დამალვა + კონტურული ხაზების ჩვენება + ყველა რუკის განახლება + გამოყენებულია %1$s კბ + გამოყენებულია %1$s მბ + გამოყენებულია %1$s გბ + გამოყენებულია %1$s ტბ + გვერდიგვერდ + მონაცემების შესანახი დასტის შეცვლა + %1$s * %2$s + ეკრანის ჩართვა + ნაგულისხმევზე დაბრუნება + ენა და შეტყობინებები + მდებარეობის კოდის გახსნა + %s შენახულია + ცვლილებების რაოდენობა + პროფილის აწყობა + ჰორიზონტალური სიზუსტე: %s + მაქს/მინ სიჩქარის დაყენება + OsmAnd-ის გადმოწერის სერვისი + საზოგადოებრივი ტრანსპორტის ტიპები + სიარული, ლაშქრობა, სირბილი + მანქანა, მოტოციკლი + აირჩეთ ნავიგაციის ტიპი + შეიყვანეთ პროფილის სახელი + აირჩიეთ ნავიგაციის ტიპი + კომპასის სახაზავის დამალვა + კომპასის სახაზავი + ტრანსპორტის ტიპების თავიდან აცილება… + შუალედური წერტილის დამატება + დღის დრო + ჩასვლის დროა %1$s + საწყისი წერტილის დაყენება + დღის/ღამის რეჟიმებს შორის შეცვლა + ძებნის ისტორიის წაშლა + შეიყვანეთ ფაილის სახელი. + რუკის შემოტანის შეცდომა + მარკერი %s გააქტიურდა. + ჯგუფის დამატება + შეიყვანეთ ახალი სახელი + სისტემური კლავიატურის გამოყენება + ისტორიაში გადატანა + მიმართულების ხაზების ჩვენება + ბოლო 7 დღე + ბოლო: %1$s + GPS ფაილის შემოტანა + გზის წერტილების დამატება + აირჩიეთ ნავიგაციის პროფილი + საზღვაო სიღრმის კონტურები + საზღვაო სიღრმის კონტურები + ანალიზი რუკაზე + ლოკაციის კოდის გახსნა (OLC) + ღილაკის მდებარეობის შეცვლა + კატეგორიის დამატება + რუკის სტილის შეცვლა + რუკის სანიშნის დამატება + კონტურული ხაზის სიმკვრივე + კონტურული ხაზის სიმკვრივე + კონტურული ხაზის სიგანე + თქვენს მდებარეობაზე წვდომის დაშვება + მიმდინარეობს მდებარეობის ძებნა… + ნავიგაციის დაყენება. + OsmAnd-ში შემოტანა + შეიყვანეთ მისამართი + სამხრეთული ძმინნური + UI-ის მორგება + მთავარი მოქმედებები + სწრაფი ქმედებები + კატეგორიების გადალაგება + ფაილის სახელი ცარიელია + %1$s შემოტანილია. + დამატების გამართვა + ჟურნალის ბაფერი + გზის პარამეტრები + პირადი მონაცემები + გახსნის საბოლოო წერტილი + გახსნის საწყისი წერტილი + რა არის აქ: + ანიმაციების გარეშე + ათვლის წერტილი 1 + ათვლის წერტილის დამატება + შეიყვანეთ პარამეტრი + თუ არა, დატოვეთ ცარიელი + გზის გადათვლის ტესტი + აირჩიეთ დასტა ან შექმენით ახალი + კონტურული ხაზის სისქე + ჩინური (ჰონგ კონგი) + უახლოესი სტატიები Wikipedia-ზე + ქალაქი ან რაიონი + გზის საფრის ერთიანობა + საჭიროა ინტერნეტთან კავშირი + აირჩიეთ სხვა რეგიონი + სად ვარ + დარჩენილია %1$s გაჩერება + გაუმჯობესებული ძებნა კოორდინატებით + ძებნაზე დაბრუნება + ინგლისური (გაერთიანებული სამეფო) + თვიური გადასახადი + მიმღებების რაოდენობა + აირჩიეთ რუკის სანიშნი + რუკის მეორე სანიშნი + რუკის პირველი სანიშნი + ჩასწორებების რაოდენობა + შემომწირველების რაოდენობა + თვე და ქვეყანა: + ბოლო განახლება: %s + მისამართი ძებნა + საზღვრის გადაკვეთის გარეშე + რა არის ახალი + მოგზაურობის დაგეგმვა + დაყენება და პრობლემების გადაწყვეტა + ხშირად დასმული კითხვები + შეიყვანეთ ქვეყნის სახელი + გამოყენებული უფასო გადმოწერები + ახალი კატეგორიის დამატება + კონტურული ხაზები გამორთულია + წუთი მილში + წუთი კილომეტრში + მეტრი წამში + მილი საათში + კილომეტრი საათში + სიჩქარის საზომი ერთეული + გაშვება ფონურ რეჟიმში + დარჩენილი გადმოწერები: %1$s + დარწმუნებული ბრძანდებით\? + ხაზების რაოდენობა + გახსნის დროის დამატება + ბარათი დამალული იყო + ატვირთვა შეუძლებელია + გვითხარით, რატომ. + აპის შეფასება + OSM ჩასწორების გაუქმება + ევროპა - ნიდერლანდები + სახელით ფილტრაცია + წასაშლელად მონიშნეთ + რუკაზე არჩევა + რუკაზე დაბრუნება + ჭდის მოცილება + HTTP პროქსის გამოყენება + ამერიკის გზების ატლასი + გერმანიის გზების ატლასი + ახალი რუკის გადმოწერა + გადმოვწერო გათიშული რუკები\? + OpenGL რენდერერის გამოყენება + ეკრანის ანთება + სიჩქარის ლიმიტის შემწყნარებლობა + ჟურნალიზაციის საერთო ინტერვალი + კამერის სურათის ზომა + GPS-ის გაღვიძების შუალედი + ახალი სეგმენტის დაწყება + რუკის არჩეული ენა + გზის ზედაპირის ჩვენება + გზის ხარისხის ჩვენება + დალაგება სახელით + დალაგება დაშორებით + გადიდების ღილაკების ჩვენება + მოძრაობის დრო: %1$s + სიმაღლის დიაპაზონი: %1$s + საშუალო სიმაღლე: %1$s + მაქსიმალური სიჩქარე: %1$s + საშუალო სიჩქარე: %1$s + არასწორი ფორმატი: %s + ევროპა - იტალია + დასტის არჩევა + მისამართის დაკოპირება + API-ის გასაღები + სერვერის URL + სალაპარაკო გერმანული + სიახლეები + გამოხვედით + სისტემურად ნაგულისხმევი + წინა ნაწილი + უახლოესი წერტილი + მისამართის წაშლა + მისამართის დამატება + გავასუფთაო %1$s \? + იხურება + მოძრაობის დრო + მიღება + მაღლა აწევა + მოხსენება + დასტები + ქვეტიპი + მანქანა + მანქანით + ფეხით + ველოსიპედი + მანქანა + სახელმწიფო გზა + საშინელი + ძალიან ცუდი + ქვიშა + ხრეში + ბალახიანი \ No newline at end of file From 126724f8f456e9d0b6574fdc011e2269230727e8 Mon Sep 17 00:00:00 2001 From: ace shadow Date: Wed, 13 Jan 2021 21:14:23 +0000 Subject: [PATCH 027/173] Translated using Weblate (Slovak) Currently translated at 100.0% (3613 of 3613 strings) --- OsmAnd/res/values-sk/strings.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/OsmAnd/res/values-sk/strings.xml b/OsmAnd/res/values-sk/strings.xml index 56a700b27b..00ce8459df 100644 --- a/OsmAnd/res/values-sk/strings.xml +++ b/OsmAnd/res/values-sk/strings.xml @@ -4046,4 +4046,8 @@ Kopírovať adresu Online navigačná služba Online navigačné služby + Priečinky + Zvoľte priečinok + Zvoľte priečinok alebo pridajte nový + Prázdne \ No newline at end of file From a42a312aa16bf44f420564ee18d7f5f199cbe225 Mon Sep 17 00:00:00 2001 From: WaldiS Date: Thu, 14 Jan 2021 15:37:20 +0000 Subject: [PATCH 028/173] Translated using Weblate (Polish) Currently translated at 99.3% (3591 of 3613 strings) --- OsmAnd/res/values-pl/strings.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/OsmAnd/res/values-pl/strings.xml b/OsmAnd/res/values-pl/strings.xml index 9ed8923f81..8c544745f6 100644 --- a/OsmAnd/res/values-pl/strings.xml +++ b/OsmAnd/res/values-pl/strings.xml @@ -4045,4 +4045,10 @@ Samochód Błąd, ponownie sprawdź parametry Skopiuj adres + Jazda + Stopa + Foldery + Wybierz folder + Wybierz folder lub dodaj nowy + Opróżnij \ No newline at end of file From f6463974908b40b36df10f3b1529948f0f44949d Mon Sep 17 00:00:00 2001 From: Softmap Date: Thu, 14 Jan 2021 21:42:13 +0000 Subject: [PATCH 029/173] Translated using Weblate (Arabic) Currently translated at 100.0% (3613 of 3613 strings) --- OsmAnd/res/values-ar/strings.xml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/OsmAnd/res/values-ar/strings.xml b/OsmAnd/res/values-ar/strings.xml index 7da14706cc..6881fd8596 100644 --- a/OsmAnd/res/values-ar/strings.xml +++ b/OsmAnd/res/values-ar/strings.xml @@ -4015,4 +4015,26 @@ السماح بالممرات المائية المتقطعة السماح بالممرات المائية المتقطعة مطالبة صوتية + إضافة محرك توجيه عبر الإنترنت + تعديل محرك التوجيه عبر الإنترنت + النوع الفرعي + مركبة + مفتاح API + احتفظ بها فارغة إذا لم تكن كذلك + عنوان URL السيرفر + أدخل المعيار + عنوان موقع URL مع جميع المعايير سوف يبدو مثل هذا: + اختبار حساب مسار + القيادة + قدم + دراجة هوائية + سيارة + خطأ، أعد التحقق من المعايير + نسخ العنوان + محرك التوجيه عبر الإنترنت + محركات التوجيه عبر الإنترنت + المجلدات + تحديد مجلد + تحديد مجلد أو إضافة واحد جديد + فارغ \ No newline at end of file From 35e2ab7a95524dd3efae26b3a147038b1fed5b0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavel=20Kotr=C4=8D?= Date: Tue, 12 Jan 2021 20:26:58 +0000 Subject: [PATCH 030/173] Translated using Weblate (Czech) Currently translated at 100.0% (3613 of 3613 strings) --- OsmAnd/res/values-cs/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OsmAnd/res/values-cs/strings.xml b/OsmAnd/res/values-cs/strings.xml index 593c4d3bc9..3535979644 100644 --- a/OsmAnd/res/values-cs/strings.xml +++ b/OsmAnd/res/values-cs/strings.xml @@ -1189,7 +1189,7 @@ Sdílet trasu jako GPX soubor Trasa sdílena pomocí OsmAnd Oznámení příjezdu - Jak brzo oznamovat příjezd do cíle? + Jak brzy oznamovat příjezd do cíle\? Pouze manuálně (ťuknout na šipku) Znovu opakovat navigační pokyny v pravidelných intervalech. Opakovat navigační pokyny @@ -3327,7 +3327,7 @@ Opravdu chcete vymazat zaznamenané údaje\? Přepočítat trasu v případě odchýlení Zvolte vzdálenost, při které bude trasa přepočítána. - Trasa bude přepočítaná pokud vzdálenost od trasy k aktuální poloze je větší než zvolená hodnota. + Trasa bude přepočítána, pokud vzdálenost od trasy k aktuální poloze je větší než zvolená hodnota. %1$s z %2$s Svahy Zobrazit nebo skrýt terén From 680c3a78a53039d92a0a008d5b87c9c570474c3c Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Tue, 12 Jan 2021 20:45:30 +0000 Subject: [PATCH 031/173] Translated using Weblate (Dutch) Currently translated at 95.3% (3444 of 3613 strings) --- OsmAnd/res/values-nl/strings.xml | 42 +++++++++++++++++++++++++++++--- 1 file changed, 38 insertions(+), 4 deletions(-) diff --git a/OsmAnd/res/values-nl/strings.xml b/OsmAnd/res/values-nl/strings.xml index 4313500cc9..27ebbe1c9a 100644 --- a/OsmAnd/res/values-nl/strings.xml +++ b/OsmAnd/res/values-nl/strings.xml @@ -3745,7 +3745,7 @@ Selecteer een track waaraan je een nieuw segment wil toevoegen. Selecteer een trackbestand om te openen. Weet u zeker dat u alle wijzigingen in de geplande route wilt annuleren door deze te sluiten\? - "Alles wegknippen voor dit punt" + Alles wegknippen voor dit punt Alles wegknippen na dit punt Wijzig het routetype voor Wijzig het routetype na @@ -3917,7 +3917,7 @@ Identificeerbaar betekent dat de trace openbaar wordt getoond in uw GPS-sporen en in openbare GPS-trace-lijsten, dat wil zeggen dat andere gebruikers de onbewerkte trace kunnen downloaden en deze aan uw gebruikersnaam kunnen koppelen. Gegevens die via de trackpoints-API worden aangeboden, verwijzen naar uw oorspronkelijke tracepagina. Tijdaanduidingen van de traceerpunten zijn beschikbaar via de openbare GPS-API. Trackbaar betekent dat de trace niet in openbare vermeldingen zal verschijnen, maar trackpoints ervan zullen nog steeds beschikbaar zijn via de openbare GPS API met tijdaanduiding. Andere gebruikers kunnen alleen verwerkte trackpoints downloaden van uw trace die niet rechtstreeks aan u kunnen worden gekoppeld. Sluit OSM Note - Opmerking OSM Note + Opmerking maken bij OSM-nota U kunt inloggen met de veilige OAuth-methode of uw login en wachtwoord gebruiken. Een foto toevoegen Registreer u op @@ -3943,8 +3943,8 @@ Selecteer een map Selecteer een map of maak een nieuwe Leeg - Selecteer de groepen om deze te importeren. - Selecteer de items om deze te importeren. + Selecteer de groepen om te importeren. + Selecteer de items om te importeren. Voeg toe aan Mapillary Voeg toe aan OpenPlaceReviews Gebruik dev.openstreetmap.org @@ -3966,4 +3966,38 @@ Online routeplanningssysteem Online routeplanningssystemen Mappen + Timing van gesproken instructies + Duits (spreektaal) + MGRS + MGRS + OsmAnd gebruikt MGRS, die sterk lijkt op het UTM-NATO-formaat. + Resources + Zoekgeschiedenis + Kajak + Motorboot + Het uploaden van de afbeelding is mislukt - probeer later opnieuw + Selecteer een afbeelding + Benaderde bestandsgrootte + Selecteer de gegevens om naar het bestand te exporteren. + Noodzakelijk om te importeren + Je apparaat heeft slechts %1$s beschikbaar. Maak plaats of deselecteer enkele items. + Er is niet genoeg ruimte + Gebruik dev.openstreetmap.org in plaats van openstreetmap.org om het uploaden van OSM-nota\'s, interessepunten of GPX-tracks uit te testen. + OsmAnd toon foto\'s van verschillende bronnen: +\nOpenPlaceReviews - foto\'s van interessepunten; +\nMapillary - foto\'s vanop straatniveau; +\nWikimedia / het Web - foto\'s van interessepunten zoals gelinkt in OpenStreetMap. + Je kan hoogtedata gebruiken om het hoogteverschil van je route te berekenen + • Een optie is toegevoegd om alle data te exporten, waaronder instellingen, andere bronnen en mijn plaatsen +\n +\n • Plan een route: diagram met individuele segmenten is toegevoegd, verschillende segmenten kunnen nu gemaakt en aangepast worden +\n +\n • Inloggen in OpenStreetMap kan nu met OAuth, de UI van de dialogen is verbeterd +\n +\n • Voor favorieten en GPX-track-tussenpunten kan een eigen kleur gegeven worden +\n +\n + Laat regelmatig droogvallende waterwegen toe + Geef een parameter + Laat leeg indien niet \ No newline at end of file From 01fae3a6f53eb623122c55830d36c8b06be83cb0 Mon Sep 17 00:00:00 2001 From: vshcherb Date: Fri, 15 Jan 2021 13:32:47 +0100 Subject: [PATCH 032/173] Update build.gradle --- OsmAnd-api/build.gradle | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/OsmAnd-api/build.gradle b/OsmAnd-api/build.gradle index 4fed658df7..e534315926 100644 --- a/OsmAnd-api/build.gradle +++ b/OsmAnd-api/build.gradle @@ -1,4 +1,5 @@ apply plugin: 'com.android.library' +apply plugin: 'ivy-publish' apply plugin: 'com.github.dcendents.android-maven' group = 'com.github.osmandapp.osmand' @@ -38,4 +39,4 @@ task sourcesJar(type: Jar) { artifacts { archives sourcesJar -} \ No newline at end of file +} From 96af1a7c1e09383a625e2aa8fbdd8b4a12f84011 Mon Sep 17 00:00:00 2001 From: Victor Shcherb Date: Fri, 15 Jan 2021 13:57:57 +0100 Subject: [PATCH 033/173] Update library --- OsmAnd-api/build.gradle | 23 +++++++++++++++++++++-- OsmAnd/build.gradle.lib | 1 - 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/OsmAnd-api/build.gradle b/OsmAnd-api/build.gradle index e534315926..8e0a290a49 100644 --- a/OsmAnd-api/build.gradle +++ b/OsmAnd-api/build.gradle @@ -2,8 +2,6 @@ apply plugin: 'com.android.library' apply plugin: 'ivy-publish' apply plugin: 'com.github.dcendents.android-maven' -group = 'com.github.osmandapp.osmand' -version = '2.0.0' android { compileSdkVersion 28 @@ -27,6 +25,27 @@ android { } } +afterEvaluate { + publishing { + publications { + release(IvyPublication) { + // Applies the component for the release build variant. + from components.release + groupId = 'net.osmand' + artifactId = 'android-aidl-lib' + version = 'master-snapshot' + } + debug(IvyPublication) { + // Applies the component for the release build variant. + from components.debug + groupId = 'net.osmand' + artifactId = 'android-aidl-lib' + version = 'master-snapshot' + } + } + } +} + dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:support-annotations:28.0.0' diff --git a/OsmAnd/build.gradle.lib b/OsmAnd/build.gradle.lib index 6b0f4da990..f71d4a76a0 100644 --- a/OsmAnd/build.gradle.lib +++ b/OsmAnd/build.gradle.lib @@ -342,7 +342,6 @@ project.afterEvaluate { publishing { repositories { ivy { - url = System.getenv("OSMAND_BINARIES_IVY_ROOT") ?: "./" version = "0.1-SNAPSHOT" } } From 946d5d8d2941c51164ac394bc81299172284fbe7 Mon Sep 17 00:00:00 2001 From: Victor Shcherb Date: Fri, 15 Jan 2021 14:08:03 +0100 Subject: [PATCH 034/173] Update library --- OsmAnd-api/build.gradle | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/OsmAnd-api/build.gradle b/OsmAnd-api/build.gradle index 8e0a290a49..2c1f864f5c 100644 --- a/OsmAnd-api/build.gradle +++ b/OsmAnd-api/build.gradle @@ -31,16 +31,16 @@ afterEvaluate { release(IvyPublication) { // Applies the component for the release build variant. from components.release - groupId = 'net.osmand' - artifactId = 'android-aidl-lib' - version = 'master-snapshot' + organisation = 'net.osmand' + module = 'android-aidl-lib' + revision = 'master-snapshot' } debug(IvyPublication) { // Applies the component for the release build variant. from components.debug - groupId = 'net.osmand' - artifactId = 'android-aidl-lib' - version = 'master-snapshot' + organisation = 'net.osmand' + module = 'android-aidl-lib' + revision = 'master-snapshot' } } } From a9c1119c4b4d5be1d3e935554cb031a53212ef01 Mon Sep 17 00:00:00 2001 From: Victor Shcherb Date: Fri, 15 Jan 2021 14:42:50 +0100 Subject: [PATCH 035/173] Add ivy repo --- OsmAnd-api/build.gradle | 6 ++++++ OsmAnd/build.gradle.lib | 1 + build.gradle | 4 +++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/OsmAnd-api/build.gradle b/OsmAnd-api/build.gradle index 2c1f864f5c..4e2be4bc34 100644 --- a/OsmAnd-api/build.gradle +++ b/OsmAnd-api/build.gradle @@ -27,6 +27,12 @@ android { afterEvaluate { publishing { + repositories { + ivy { + url = System.getenv("OSMAND_BINARIES_IVY_ROOT") ?: "./" + } + } + publications { release(IvyPublication) { // Applies the component for the release build variant. diff --git a/OsmAnd/build.gradle.lib b/OsmAnd/build.gradle.lib index f71d4a76a0..6b0f4da990 100644 --- a/OsmAnd/build.gradle.lib +++ b/OsmAnd/build.gradle.lib @@ -342,6 +342,7 @@ project.afterEvaluate { publishing { repositories { ivy { + url = System.getenv("OSMAND_BINARIES_IVY_ROOT") ?: "./" version = "0.1-SNAPSHOT" } } diff --git a/build.gradle b/build.gradle index b2c1082c91..2f7736470a 100644 --- a/build.gradle +++ b/build.gradle @@ -20,10 +20,12 @@ buildscript { } } + + allprojects { group "net.osmand" version "1.0" - + repositories { ivy { name = "OsmAndBinariesIvy" From 839507832945bf9e9239d7137a0ff04d335c68c3 Mon Sep 17 00:00:00 2001 From: nazar-kutz Date: Fri, 15 Jan 2021 17:45:29 +0200 Subject: [PATCH 036/173] Implement Online routing backend p.2 --- .../bottom_sheet_item_with_descr_64dp.xml | 3 +- .../online_routing_preference_segment.xml | 13 + OsmAnd/res/values/strings.xml | 16 +- .../plus/onlinerouting/EngineParameter.java | 10 + .../osmand/plus/onlinerouting/EngineType.java | 24 - .../onlinerouting/OnlineRoutingEngine.java | 109 ---- .../onlinerouting/OnlineRoutingFactory.java | 36 ++ .../onlinerouting/OnlineRoutingHelper.java | 214 +++---- .../plus/onlinerouting/VehicleType.java | 44 +- .../plus/onlinerouting/engine/EngineType.java | 34 + .../engine/GraphhopperEngine.java | 93 +++ .../engine/OnlineRoutingEngine.java | 197 ++++++ .../plus/onlinerouting/engine/OrsEngine.java | 102 +++ .../plus/onlinerouting/engine/OsrmEngine.java | 82 +++ .../onlinerouting/ui/ExampleLocation.java | 52 ++ .../{ => ui}/OnlineRoutingCard.java | 39 +- .../{ => ui}/OnlineRoutingEngineFragment.java | 595 +++++++++--------- .../OnlineRoutingEngineDataObject.java | 17 +- .../plus/profiles/ProfileDataUtils.java | 25 +- .../profiles/SelectProfileBottomSheet.java | 5 +- .../osmand/plus/routing/RouteProvider.java | 18 +- .../backup/OnlineRoutingSettingsItem.java | 9 +- .../backend/backup/SettingsHelper.java | 2 +- .../fragments/DuplicatesSettingsAdapter.java | 2 +- .../fragments/ExportItemsBottomSheet.java | 2 +- .../fragments/ImportDuplicatesFragment.java | 2 +- .../fragments/ImportSettingsFragment.java | 2 +- .../fragments/NavigationFragment.java | 2 +- 28 files changed, 1107 insertions(+), 642 deletions(-) create mode 100644 OsmAnd/src/net/osmand/plus/onlinerouting/EngineParameter.java delete mode 100644 OsmAnd/src/net/osmand/plus/onlinerouting/EngineType.java delete mode 100644 OsmAnd/src/net/osmand/plus/onlinerouting/OnlineRoutingEngine.java create mode 100644 OsmAnd/src/net/osmand/plus/onlinerouting/OnlineRoutingFactory.java create mode 100644 OsmAnd/src/net/osmand/plus/onlinerouting/engine/EngineType.java create mode 100644 OsmAnd/src/net/osmand/plus/onlinerouting/engine/GraphhopperEngine.java create mode 100644 OsmAnd/src/net/osmand/plus/onlinerouting/engine/OnlineRoutingEngine.java create mode 100644 OsmAnd/src/net/osmand/plus/onlinerouting/engine/OrsEngine.java create mode 100644 OsmAnd/src/net/osmand/plus/onlinerouting/engine/OsrmEngine.java create mode 100644 OsmAnd/src/net/osmand/plus/onlinerouting/ui/ExampleLocation.java rename OsmAnd/src/net/osmand/plus/onlinerouting/{ => ui}/OnlineRoutingCard.java (81%) rename OsmAnd/src/net/osmand/plus/onlinerouting/{ => ui}/OnlineRoutingEngineFragment.java (57%) diff --git a/OsmAnd/res/layout/bottom_sheet_item_with_descr_64dp.xml b/OsmAnd/res/layout/bottom_sheet_item_with_descr_64dp.xml index 2ff6a1bf58..95091e1086 100644 --- a/OsmAnd/res/layout/bottom_sheet_item_with_descr_64dp.xml +++ b/OsmAnd/res/layout/bottom_sheet_item_with_descr_64dp.xml @@ -27,6 +27,8 @@ android:layout_weight="1" android:layout_marginLeft="@dimen/content_padding" android:layout_marginStart="@dimen/content_padding" + android:paddingTop="@dimen/content_padding_small" + android:paddingBottom="@dimen/content_padding_small" android:orientation="vertical"> + + - + The name is already exists + Server error: %1$s + MTB + Racing bike + Scooter + Truck + Small truck + HGV + Regular cycling + Road cycling + Mountain cycling + Electric cycling + Walking + Hiking + Wheelchair Empty Select folder or add new one Select folder diff --git a/OsmAnd/src/net/osmand/plus/onlinerouting/EngineParameter.java b/OsmAnd/src/net/osmand/plus/onlinerouting/EngineParameter.java new file mode 100644 index 0000000000..fa3ccd81c7 --- /dev/null +++ b/OsmAnd/src/net/osmand/plus/onlinerouting/EngineParameter.java @@ -0,0 +1,10 @@ +package net.osmand.plus.onlinerouting; + +public enum EngineParameter { + KEY, + VEHICLE_KEY, + CUSTOM_NAME, + NAME_INDEX, + CUSTOM_URL, + API_KEY +} diff --git a/OsmAnd/src/net/osmand/plus/onlinerouting/EngineType.java b/OsmAnd/src/net/osmand/plus/onlinerouting/EngineType.java deleted file mode 100644 index fe5080f14c..0000000000 --- a/OsmAnd/src/net/osmand/plus/onlinerouting/EngineType.java +++ /dev/null @@ -1,24 +0,0 @@ -package net.osmand.plus.onlinerouting; - -public enum EngineType { - - GRAPHHOPPER("Graphhopper", "https://graphhopper.com/api/1/route"), - OSRM("OSRM", "https://router.project-osrm.org/route/v1/"), - ORS("Openroute Service", "https://api.openrouteservice.org/v2/directions/"); - - private String title; - private String standardUrl; - - EngineType(String title, String standardUrl) { - this.title = title; - this.standardUrl = standardUrl; - } - - public String getTitle() { - return title; - } - - public String getStandardUrl() { - return standardUrl; - } -} diff --git a/OsmAnd/src/net/osmand/plus/onlinerouting/OnlineRoutingEngine.java b/OsmAnd/src/net/osmand/plus/onlinerouting/OnlineRoutingEngine.java deleted file mode 100644 index 3193d86d09..0000000000 --- a/OsmAnd/src/net/osmand/plus/onlinerouting/OnlineRoutingEngine.java +++ /dev/null @@ -1,109 +0,0 @@ -package net.osmand.plus.onlinerouting; - -import android.content.Context; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -import net.osmand.plus.R; -import net.osmand.util.Algorithms; - -import java.util.HashMap; -import java.util.Map; - -public class OnlineRoutingEngine { - - public final static String ONLINE_ROUTING_ENGINE_PREFIX = "online_routing_engine_"; - - public enum EngineParameter { - CUSTOM_NAME, - CUSTOM_URL, - API_KEY - } - - private String stringKey; - private EngineType type; - private String vehicleKey; - private Map params = new HashMap<>(); - - public OnlineRoutingEngine(@NonNull String stringKey, - @NonNull EngineType type, - @NonNull String vehicleKey, - @Nullable Map params) { - this(stringKey, type, vehicleKey); - if (!Algorithms.isEmpty(params)) { - this.params.putAll(params); - } - } - - public OnlineRoutingEngine(@NonNull String stringKey, - @NonNull EngineType type, - @NonNull String vehicleKey) { - this.stringKey = stringKey; - this.type = type; - this.vehicleKey = vehicleKey; - } - - public String getStringKey() { - return stringKey; - } - - public EngineType getType() { - return type; - } - - public String getBaseUrl() { - String customUrl = getParameter(EngineParameter.CUSTOM_URL); - if (Algorithms.isEmpty(customUrl)) { - return type.getStandardUrl(); - } - return customUrl; - } - - public String getVehicleKey() { - return vehicleKey; - } - - public Map getParams() { - return params; - } - - public String getParameter(EngineParameter paramKey) { - return params.get(paramKey.name()); - } - - public void putParameter(EngineParameter paramKey, String paramValue) { - params.put(paramKey.name(), paramValue); - } - - public String getName(@NonNull Context ctx) { - String customName = getParameter(EngineParameter.CUSTOM_NAME); - if (customName != null) { - return customName; - } else { - return getStandardName(ctx); - } - } - - private String getStandardName(@NonNull Context ctx) { - return getStandardName(ctx, type, vehicleKey); - } - - public static String getStandardName(@NonNull Context ctx, - @NonNull EngineType type, - @NonNull String vehicleKey) { - String vehicleTitle = VehicleType.toHumanString(ctx, vehicleKey); - String pattern = ctx.getString(R.string.ltr_or_rtl_combine_via_dash); - return String.format(pattern, type.getTitle(), vehicleTitle); - } - - public static OnlineRoutingEngine createNewEngine(@NonNull EngineType type, - @NonNull String vehicleKey, - @Nullable Map params) { - return new OnlineRoutingEngine(generateKey(), type, vehicleKey, params); - } - - private static String generateKey() { - return ONLINE_ROUTING_ENGINE_PREFIX + System.currentTimeMillis(); - } -} diff --git a/OsmAnd/src/net/osmand/plus/onlinerouting/OnlineRoutingFactory.java b/OsmAnd/src/net/osmand/plus/onlinerouting/OnlineRoutingFactory.java new file mode 100644 index 0000000000..4b92000847 --- /dev/null +++ b/OsmAnd/src/net/osmand/plus/onlinerouting/OnlineRoutingFactory.java @@ -0,0 +1,36 @@ +package net.osmand.plus.onlinerouting; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +import net.osmand.plus.onlinerouting.engine.EngineType; +import net.osmand.plus.onlinerouting.engine.GraphhopperEngine; +import net.osmand.plus.onlinerouting.engine.OnlineRoutingEngine; +import net.osmand.plus.onlinerouting.engine.OrsEngine; +import net.osmand.plus.onlinerouting.engine.OsrmEngine; + +import java.util.Map; + +public class OnlineRoutingFactory { + + public static OnlineRoutingEngine createEngine(@NonNull EngineType type) { + return createEngine(type, null); + } + + @NonNull + public static OnlineRoutingEngine createEngine(@NonNull EngineType type, + @Nullable Map params) { + switch (type) { + case GRAPHHOPPER: + return new GraphhopperEngine(params); + case OSRM: + return new OsrmEngine(params); + case ORS: + return new OrsEngine(params); + default: + throw new IllegalArgumentException( + "Online routing type {" + type.name() + "} not supported"); + } + } + +} diff --git a/OsmAnd/src/net/osmand/plus/onlinerouting/OnlineRoutingHelper.java b/OsmAnd/src/net/osmand/plus/onlinerouting/OnlineRoutingHelper.java index b54746ddd6..bf4f41a096 100644 --- a/OsmAnd/src/net/osmand/plus/onlinerouting/OnlineRoutingHelper.java +++ b/OsmAnd/src/net/osmand/plus/onlinerouting/OnlineRoutingHelper.java @@ -1,6 +1,7 @@ package net.osmand.plus.onlinerouting; import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; @@ -10,10 +11,10 @@ import net.osmand.data.LatLon; import net.osmand.osm.io.NetworkUtils; import net.osmand.plus.OsmandApplication; import net.osmand.plus.Version; -import net.osmand.plus.onlinerouting.OnlineRoutingEngine.EngineParameter; +import net.osmand.plus.onlinerouting.engine.EngineType; +import net.osmand.plus.onlinerouting.engine.OnlineRoutingEngine; import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.util.Algorithms; -import net.osmand.util.GeoPolylineParserUtil; import org.apache.commons.logging.Log; import org.json.JSONArray; @@ -24,7 +25,7 @@ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.lang.reflect.Type; -import java.net.URLConnection; +import java.net.HttpURLConnection; import java.util.ArrayList; import java.util.HashMap; import java.util.LinkedHashMap; @@ -35,14 +36,18 @@ public class OnlineRoutingHelper { private static final Log LOG = PlatformUtil.getLog(OnlineRoutingHelper.class); + private static final String ITEMS = "items"; + private static final String TYPE = "type"; + private static final String PARAMS = "params"; + private OsmandApplication app; private OsmandSettings settings; private Map cachedEngines; - public OnlineRoutingHelper(OsmandApplication app) { + public OnlineRoutingHelper(@NonNull OsmandApplication app) { this.app = app; this.settings = app.getSettings(); - loadFromSettings(); + this.cachedEngines = loadSavedEngines(); } @NonNull @@ -50,104 +55,42 @@ public class OnlineRoutingHelper { return new ArrayList<>(cachedEngines.values()); } - public OnlineRoutingEngine getEngineByKey(String stringKey) { + @NonNull + public List getEnginesExceptMentioned(@Nullable String ... excludeKeys) { + List engines = getEngines(); + if (excludeKeys != null) { + for (String key : excludeKeys) { + OnlineRoutingEngine engine = getEngineByKey(key); + engines.remove(engine); + } + } + return engines; + } + + @Nullable + public OnlineRoutingEngine getEngineByKey(@Nullable String stringKey) { return cachedEngines.get(stringKey); } + @NonNull public List calculateRouteOnline(@NonNull OnlineRoutingEngine engine, @NonNull List path) throws IOException, JSONException { - String fullUrl = createFullUrl(engine, path); - String content = makeRequest(fullUrl); - return parseResponse(engine, content); + String url = engine.getFullUrl(path); + String content = makeRequest(url); + return engine.parseServerResponse(content); } - public String createFullUrl(OnlineRoutingEngine engine, List path) { - StringBuilder sb = new StringBuilder(engine.getBaseUrl()); - String vehicle = engine.getVehicleKey(); - String apiKey = engine.getParameter(EngineParameter.API_KEY); - switch (engine.getType()) { - - case GRAPHHOPPER: - sb.append("?"); - for (LatLon point : path) { - sb.append("point=") - .append(point.getLatitude()) - .append(',') - .append(point.getLongitude()) - .append('&'); - } - sb.append("vehicle=").append(vehicle); - - if (!Algorithms.isEmpty(apiKey)) { - sb.append('&').append("key=").append(apiKey); - } - break; - - case OSRM: - sb.append(vehicle).append('/'); - for (int i = 0; i < path.size(); i++) { - LatLon point = path.get(i); - sb.append(point.getLongitude()).append(',').append(point.getLatitude()); - if (i < path.size() - 1) { - sb.append(';'); - } - } - break; - - case ORS: - if (path.size() > 1) { - sb.append("driving-car").append('?'); // todo only for testing - if (!Algorithms.isEmpty(apiKey)) { - sb.append("api_key=").append(apiKey); - } - LatLon start = path.get(0); - LatLon end = path.get(path.size() - 1); - sb.append('&').append("start=") - .append(start.getLatitude()).append(',').append(start.getLongitude()); - sb.append('&').append("end=") - .append(end.getLatitude()).append(',').append(end.getLongitude()); - } - break; - - } - return sb.toString(); - } - - private List parseResponse(OnlineRoutingEngine engine, String content) throws JSONException { - JSONObject obj = new JSONObject(content); - - switch (engine.getType()) { - - case GRAPHHOPPER: - return GeoPolylineParserUtil.parse( - obj.getJSONArray("paths").getJSONObject(0).getString("points"), - GeoPolylineParserUtil.PRECISION_5); - - case OSRM: - return GeoPolylineParserUtil.parse( - obj.getJSONArray("routes").getJSONObject(0).getString("geometry"), - GeoPolylineParserUtil.PRECISION_5); - - case ORS: - JSONArray array = obj.getJSONArray("features").getJSONObject(0) - .getJSONObject("geometry").getJSONArray("coordinates"); - List track = new ArrayList<>(); - for (int i = 0; i < array.length(); i++) { - JSONArray point = array.getJSONArray(i); - double lat = Double.parseDouble(point.getString(0)); - double lon = Double.parseDouble(point.getString(1)); - track.add(new LatLon(lat, lon)); - } - return track; - } - return new ArrayList<>(); - } - - private String makeRequest(String url) throws IOException { - URLConnection connection = NetworkUtils.getHttpURLConnection(url); + @NonNull + public String makeRequest(@NonNull String url) throws IOException { + HttpURLConnection connection = NetworkUtils.getHttpURLConnection(url); connection.setRequestProperty("User-Agent", Version.getFullVersion(app)); StringBuilder content = new StringBuilder(); - BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream())); + BufferedReader reader; + if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) { + reader = new BufferedReader(new InputStreamReader(connection.getInputStream())); + } else { + reader = new BufferedReader(new InputStreamReader(connection.getErrorStream())); + } String s; while ((s = reader.readLine()) != null) { content.append(s); @@ -160,32 +103,49 @@ public class OnlineRoutingHelper { } public void saveEngine(@NonNull OnlineRoutingEngine engine) { - String stringKey = engine.getStringKey(); - cachedEngines.put(stringKey, engine); - saveToSettings(); - } - - public void deleteEngine(@NonNull String stringKey) { - OnlineRoutingEngine engine = getEngineByKey(stringKey); - if (engine != null) { - deleteEngine(engine); - } + deleteInaccessibleParameters(engine); + String key = createEngineKeyIfNeeded(engine); + cachedEngines.put(key, engine); + saveCacheToSettings(); } public void deleteEngine(@NonNull OnlineRoutingEngine engine) { String stringKey = engine.getStringKey(); - if (cachedEngines.containsKey(stringKey)) { + deleteEngine(stringKey); + } + + public void deleteEngine(@Nullable String stringKey) { + if (stringKey != null) { cachedEngines.remove(stringKey); - saveToSettings(); + saveCacheToSettings(); } } - private void loadFromSettings() { + private void deleteInaccessibleParameters(@NonNull OnlineRoutingEngine engine) { + for (EngineParameter key : EngineParameter.values()) { + if (!engine.isParameterAllowed(key)) { + engine.remove(key); + } + } + } + + @NonNull + private String createEngineKeyIfNeeded(@NonNull OnlineRoutingEngine engine) { + String key = engine.get(EngineParameter.KEY); + if (Algorithms.isEmpty(key)) { + key = OnlineRoutingEngine.generateKey(); + engine.put(EngineParameter.KEY, key); + } + return key; + } + + @NonNull + private Map loadSavedEngines() { Map cachedEngines = new LinkedHashMap<>(); for (OnlineRoutingEngine engine : readFromSettings()) { cachedEngines.put(engine.getStringKey(), engine); } - this.cachedEngines = cachedEngines; + return cachedEngines; } @NonNull @@ -203,7 +163,7 @@ public class OnlineRoutingHelper { return engines; } - private void saveToSettings() { + private void saveCacheToSettings() { if (!Algorithms.isEmpty(cachedEngines)) { try { JSONObject json = new JSONObject(); @@ -217,38 +177,44 @@ public class OnlineRoutingHelper { } } - public static void readFromJson(JSONObject json, List engines) throws JSONException { + public static void readFromJson(@NonNull JSONObject json, + @NonNull List engines) throws JSONException { if (!json.has("items")) { return; } Gson gson = new Gson(); - Type type = new TypeToken>() { + Type typeToken = new TypeToken>() { }.getType(); - JSONArray itemsJson = json.getJSONArray("items"); + JSONArray itemsJson = json.getJSONArray(ITEMS); for (int i = 0; i < itemsJson.length(); i++) { JSONObject object = itemsJson.getJSONObject(i); - String key = object.getString("key"); - String vehicleKey = object.getString("vehicle"); - EngineType engineType = EngineType.valueOf(object.getString("type")); - String paramsString = object.getString("params"); - HashMap params = gson.fromJson(paramsString, type); - engines.add(new OnlineRoutingEngine(key, engineType, vehicleKey, params)); + if (object.has(TYPE) && object.has(PARAMS)) { + EngineType type = EngineType.getTypeByName(object.getString(TYPE)); + String paramsString = object.getString(PARAMS); + HashMap params = gson.fromJson(paramsString, typeToken); + OnlineRoutingEngine engine = OnlineRoutingFactory.createEngine(type, params); + if (!Algorithms.isEmpty(engine.getStringKey())) { + engines.add(engine); + } + } } } - public static void writeToJson(JSONObject json, List engines) throws JSONException { + public static void writeToJson(@NonNull JSONObject json, + @NonNull List engines) throws JSONException { JSONArray jsonArray = new JSONArray(); Gson gson = new Gson(); Type type = new TypeToken>() { }.getType(); for (OnlineRoutingEngine engine : engines) { + if (Algorithms.isEmpty(engine.getStringKey())) { + continue; + } JSONObject jsonObject = new JSONObject(); - jsonObject.put("key", engine.getStringKey()); - jsonObject.put("type", engine.getType().name()); - jsonObject.put("vehicle", engine.getVehicleKey()); - jsonObject.put("params", gson.toJson(engine.getParams(), type)); + jsonObject.put(TYPE, engine.getType().name()); + jsonObject.put(PARAMS, gson.toJson(engine.getParams(), type)); jsonArray.put(jsonObject); } - json.put("items", jsonArray); + json.put(ITEMS, jsonArray); } } diff --git a/OsmAnd/src/net/osmand/plus/onlinerouting/VehicleType.java b/OsmAnd/src/net/osmand/plus/onlinerouting/VehicleType.java index 3e3fea6660..9936f8efbf 100644 --- a/OsmAnd/src/net/osmand/plus/onlinerouting/VehicleType.java +++ b/OsmAnd/src/net/osmand/plus/onlinerouting/VehicleType.java @@ -3,48 +3,26 @@ package net.osmand.plus.onlinerouting; import android.content.Context; import androidx.annotation.NonNull; +import androidx.annotation.StringRes; -import net.osmand.plus.R; -import net.osmand.util.Algorithms; +public class VehicleType { + private final String key; + @StringRes + private final int titleId; -public enum VehicleType { - CAR("car", R.string.routing_engine_vehicle_type_car), - BIKE("bike", R.string.routing_engine_vehicle_type_bike), - FOOT("foot", R.string.routing_engine_vehicle_type_foot), - DRIVING("driving", R.string.routing_engine_vehicle_type_driving), - CUSTOM("", R.string.shared_string_custom); - - VehicleType(String key, int titleId) { + public VehicleType(@NonNull String key, + @StringRes int titleId) { this.key = key; this.titleId = titleId; } - private String key; - private int titleId; - + @NonNull public String getKey() { return key; } - public String getTitle(Context ctx) { + @NonNull + public String getTitle(@NonNull Context ctx) { return ctx.getString(titleId); } - - public static String toHumanString(@NonNull Context ctx, - @NonNull String key) { - VehicleType vehicleType = getVehicleByKey(key); - if (vehicleType == CUSTOM) { - return Algorithms.capitalizeFirstLetter(key); - } - return vehicleType.getTitle(ctx); - } - - public static VehicleType getVehicleByKey(String key) { - for (VehicleType v : values()) { - if (Algorithms.objectEquals(v.getKey(), key)) { - return v; - } - } - return CUSTOM; - } -} \ No newline at end of file +} diff --git a/OsmAnd/src/net/osmand/plus/onlinerouting/engine/EngineType.java b/OsmAnd/src/net/osmand/plus/onlinerouting/engine/EngineType.java new file mode 100644 index 0000000000..431ad33a3d --- /dev/null +++ b/OsmAnd/src/net/osmand/plus/onlinerouting/engine/EngineType.java @@ -0,0 +1,34 @@ +package net.osmand.plus.onlinerouting.engine; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +import net.osmand.util.Algorithms; + +public enum EngineType { + GRAPHHOPPER("Graphhopper"), + OSRM("OSRM"), + ORS("Openroute Service"); + + private final String title; + + EngineType(String title) { + this.title = title; + } + + public String getTitle() { + return title; + } + + @NonNull + public static EngineType getTypeByName(@Nullable String name) { + if (!Algorithms.isEmpty(name)) { + for (EngineType type : values()) { + if (type.name().equals(name)) { + return type; + } + } + } + return values()[0]; + } +} diff --git a/OsmAnd/src/net/osmand/plus/onlinerouting/engine/GraphhopperEngine.java b/OsmAnd/src/net/osmand/plus/onlinerouting/engine/GraphhopperEngine.java new file mode 100644 index 0000000000..c7a31fb10c --- /dev/null +++ b/OsmAnd/src/net/osmand/plus/onlinerouting/engine/GraphhopperEngine.java @@ -0,0 +1,93 @@ +package net.osmand.plus.onlinerouting.engine; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +import net.osmand.data.LatLon; +import net.osmand.plus.R; +import net.osmand.plus.onlinerouting.EngineParameter; +import net.osmand.plus.onlinerouting.VehicleType; +import net.osmand.util.GeoPolylineParserUtil; + +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.List; +import java.util.Map; + +public class GraphhopperEngine extends OnlineRoutingEngine { + + public GraphhopperEngine(@Nullable Map params) { + super(params); + } + + @Override + public @NonNull EngineType getType() { + return EngineType.GRAPHHOPPER; + } + + @NonNull + @Override + public String getStandardUrl() { + return "https://graphhopper.com/api/1/route"; + } + + @Override + protected void collectAllowedParameters() { + allowParameters(EngineParameter.API_KEY); + } + + @Override + protected void collectAllowedVehicles(@NonNull List vehicles) { + vehicles.add(new VehicleType("car", R.string.routing_engine_vehicle_type_car)); + vehicles.add(new VehicleType("bike", R.string.routing_engine_vehicle_type_bike)); + vehicles.add(new VehicleType("foot", R.string.routing_engine_vehicle_type_foot)); + vehicles.add(new VehicleType("hike", R.string.routing_engine_vehicle_type_hiking)); + vehicles.add(new VehicleType("mtb", R.string.routing_engine_vehicle_type_mtb)); + vehicles.add(new VehicleType("racingbike", R.string.routing_engine_vehicle_type_racingbike)); + vehicles.add(new VehicleType("scooter", R.string.routing_engine_vehicle_type_scooter)); + vehicles.add(new VehicleType("truck", R.string.routing_engine_vehicle_type_truck)); + vehicles.add(new VehicleType("small_truck", R.string.routing_engine_vehicle_type_small_truck)); + } + + @Override + protected void makeFullUrl(@NonNull StringBuilder sb, + @NonNull List path) { + sb.append("?"); + for (LatLon point : path) { + sb.append("point=") + .append(point.getLatitude()) + .append(',') + .append(point.getLongitude()) + .append('&'); + } + String vehicle = get(EngineParameter.VEHICLE_KEY); + if (vehicle != null) { + sb.append("vehicle=").append(vehicle); + } + String apiKey = get(EngineParameter.API_KEY); + if (apiKey != null) { + sb.append('&').append("key=").append(apiKey); + } + } + + @NonNull + @Override + public List parseServerResponse(@NonNull String content) throws JSONException { + JSONObject obj = new JSONObject(content); + return GeoPolylineParserUtil.parse( + obj.getJSONArray("paths").getJSONObject(0).getString("points"), + GeoPolylineParserUtil.PRECISION_5); + } + + @Override + public boolean parseServerMessage(@NonNull StringBuilder sb, + @NonNull String content) throws JSONException { + JSONObject obj = new JSONObject(content); + if (obj.has("message")) { + String message = obj.getString("message"); + sb.append(message); + } + return obj.has("paths"); + } +} diff --git a/OsmAnd/src/net/osmand/plus/onlinerouting/engine/OnlineRoutingEngine.java b/OsmAnd/src/net/osmand/plus/onlinerouting/engine/OnlineRoutingEngine.java new file mode 100644 index 0000000000..9072c7ada0 --- /dev/null +++ b/OsmAnd/src/net/osmand/plus/onlinerouting/engine/OnlineRoutingEngine.java @@ -0,0 +1,197 @@ +package net.osmand.plus.onlinerouting.engine; + +import android.content.Context; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +import net.osmand.data.LatLon; +import net.osmand.plus.R; +import net.osmand.plus.onlinerouting.EngineParameter; +import net.osmand.plus.onlinerouting.OnlineRoutingFactory; +import net.osmand.plus.onlinerouting.VehicleType; +import net.osmand.util.Algorithms; + +import org.json.JSONException; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +public abstract class OnlineRoutingEngine implements Cloneable { + + public final static String ONLINE_ROUTING_ENGINE_PREFIX = "online_routing_engine_"; + public static final VehicleType CUSTOM_VEHICLE = new VehicleType("", R.string.shared_string_custom); + + private final Map params = new HashMap<>(); + private final List allowedVehicles = new ArrayList<>(); + private final Set allowedParameters = new HashSet<>(); + + public OnlineRoutingEngine(@Nullable Map params) { + if (!Algorithms.isEmpty(params)) { + this.params.putAll(params); + } + collectAllowedVehiclesInternal(); + collectAllowedParametersInternal(); + } + + @NonNull + public abstract EngineType getType(); + + @Nullable + public String getStringKey() { + return get(EngineParameter.KEY); + } + + @NonNull + public String getName(@NonNull Context ctx) { + String customName = get(EngineParameter.CUSTOM_NAME); + if (customName != null) { + return customName; + } else { + return getStandardName(ctx); + } + } + + @NonNull + private String getStandardName(@NonNull Context ctx) { + String base = getBaseName(ctx); + String index = get(EngineParameter.NAME_INDEX); + return !Algorithms.isEmpty(index) ? base + " " + index : base; + } + + @NonNull + public String getBaseName(@NonNull Context ctx) { + String vehicleTitle = getSelectedVehicleName(ctx); + if (Algorithms.isEmpty(vehicleTitle)) { + return getType().getTitle(); + } else { + String pattern = ctx.getString(R.string.ltr_or_rtl_combine_via_dash); + return String.format(pattern, getType().getTitle(), vehicleTitle); + } + } + + @NonNull + public String getBaseUrl() { + String customUrl = get(EngineParameter.CUSTOM_URL); + if (Algorithms.isEmpty(customUrl)) { + return getStandardUrl(); + } + return customUrl; + } + + @NonNull + public String getFullUrl(@NonNull List path) { + StringBuilder sb = new StringBuilder(getBaseUrl()); + makeFullUrl(sb, path); + return sb.toString(); + } + + protected abstract void makeFullUrl(@NonNull StringBuilder sb, + @NonNull List path); + + @NonNull + public abstract List parseServerResponse(@NonNull String content) throws JSONException; + + @NonNull + public abstract String getStandardUrl(); + + @NonNull + public Map getParams() { + return params; + } + + @Nullable + public String get(@NonNull EngineParameter key) { + return params.get(key.name()); + } + + public void put(@NonNull EngineParameter key, @NonNull String value) { + params.put(key.name(), value); + } + + public void remove(@NonNull EngineParameter key) { + params.remove(key.name()); + } + + private void collectAllowedVehiclesInternal() { + allowedVehicles.clear(); + collectAllowedVehicles(allowedVehicles); + allowedVehicles.add(CUSTOM_VEHICLE); + } + + protected abstract void collectAllowedVehicles(@NonNull List vehicles); + + @NonNull + public List getAllowedVehicles() { + return Collections.unmodifiableList(allowedVehicles); + } + + private void collectAllowedParametersInternal() { + allowedParameters.clear(); + allowParameters(EngineParameter.KEY, EngineParameter.VEHICLE_KEY, + EngineParameter.CUSTOM_NAME, EngineParameter.NAME_INDEX, EngineParameter.CUSTOM_URL); + collectAllowedParameters(); + } + + protected abstract void collectAllowedParameters(); + + public boolean isParameterAllowed(EngineParameter key) { + return allowedParameters.contains(key); + } + + protected void allowParameters(@NonNull EngineParameter ... allowedParams) { + allowedParameters.addAll(Arrays.asList(allowedParams)); + } + + @Nullable + private String getSelectedVehicleName(@NonNull Context ctx) { + String key = get(EngineParameter.VEHICLE_KEY); + VehicleType vt = getVehicleTypeByKey(key); + if (!vt.equals(CUSTOM_VEHICLE)) { + return vt.getTitle(ctx); + } + return key != null ? Algorithms.capitalizeFirstLetter(key) : null; + } + + @NonNull + public VehicleType getSelectedVehicleType() { + String key = get(EngineParameter.VEHICLE_KEY); + return getVehicleTypeByKey(key); + } + + @NonNull + public VehicleType getVehicleTypeByKey(@Nullable String vehicleKey) { + if (!isEmpty(vehicleKey)) { + for (VehicleType vt : allowedVehicles) { + if (Algorithms.objectEquals(vt.getKey(), vehicleKey)) { + return vt; + } + } + } + return CUSTOM_VEHICLE; + } + + public abstract boolean parseServerMessage(@NonNull StringBuilder sb, + @NonNull String content) throws JSONException; + + @NonNull + @Override + public Object clone() { + return OnlineRoutingFactory.createEngine(getType(), getParams()); + } + + protected boolean isEmpty(@Nullable String s) { + return Algorithms.isEmpty(s); + } + + @NonNull + public static String generateKey() { + return ONLINE_ROUTING_ENGINE_PREFIX + System.currentTimeMillis(); + } +} diff --git a/OsmAnd/src/net/osmand/plus/onlinerouting/engine/OrsEngine.java b/OsmAnd/src/net/osmand/plus/onlinerouting/engine/OrsEngine.java new file mode 100644 index 0000000000..507ecd3af0 --- /dev/null +++ b/OsmAnd/src/net/osmand/plus/onlinerouting/engine/OrsEngine.java @@ -0,0 +1,102 @@ +package net.osmand.plus.onlinerouting.engine; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +import net.osmand.data.LatLon; +import net.osmand.plus.R; +import net.osmand.plus.onlinerouting.EngineParameter; +import net.osmand.plus.onlinerouting.VehicleType; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public class OrsEngine extends OnlineRoutingEngine { + + public OrsEngine(@Nullable Map params) { + super(params); + } + + @Override + public @NonNull EngineType getType() { + return EngineType.ORS; + } + + @NonNull + @Override + public String getStandardUrl() { + return "https://api.openrouteservice.org/v2/directions/"; + } + + @Override + protected void collectAllowedParameters() { + allowParameters(EngineParameter.API_KEY); + } + + @Override + protected void collectAllowedVehicles(@NonNull List vehicles) { + vehicles.add(new VehicleType("driving-car", R.string.routing_engine_vehicle_type_car)); + vehicles.add(new VehicleType("driving-hgv", R.string.routing_engine_vehicle_type_hgv)); + vehicles.add(new VehicleType("cycling-regular", R.string.routing_engine_vehicle_type_cycling_regular)); + vehicles.add(new VehicleType("cycling-road", R.string.routing_engine_vehicle_type_cycling_road)); + vehicles.add(new VehicleType("cycling-mountain", R.string.routing_engine_vehicle_type_cycling_mountain)); + vehicles.add(new VehicleType("cycling-electric", R.string.routing_engine_vehicle_type_cycling_electric)); + vehicles.add(new VehicleType("foot-walking", R.string.routing_engine_vehicle_type_walking)); + vehicles.add(new VehicleType("foot-hiking", R.string.routing_engine_vehicle_type_hiking)); + vehicles.add(new VehicleType("wheelchair", R.string.routing_engine_vehicle_type_wheelchair)); + } + + @Override + protected void makeFullUrl(@NonNull StringBuilder sb, + @NonNull List path) { + if (path.size() > 1) { + String vehicleKey = get(EngineParameter.VEHICLE_KEY); + if (!isEmpty(vehicleKey)) { + sb.append(vehicleKey); + } + sb.append('?'); + String apiKey = get(EngineParameter.API_KEY); + if (!isEmpty(apiKey)) { + sb.append("api_key=").append(apiKey); + } + LatLon start = path.get(0); + LatLon end = path.get(path.size() - 1); + sb.append('&').append("start=") + .append(start.getLatitude()).append(',').append(start.getLongitude()); + sb.append('&').append("end=") + .append(end.getLatitude()).append(',').append(end.getLongitude()); + } + } + + @NonNull + @Override + public List parseServerResponse(@NonNull String content) throws JSONException { + JSONObject obj = new JSONObject(content); + JSONArray array = obj.getJSONArray("features").getJSONObject(0) + .getJSONObject("geometry").getJSONArray("coordinates"); + List track = new ArrayList<>(); + for (int i = 0; i < array.length(); i++) { + JSONArray point = array.getJSONArray(i); + double lat = Double.parseDouble(point.getString(0)); + double lon = Double.parseDouble(point.getString(1)); + track.add(new LatLon(lat, lon)); + } + return track; + } + + @Override + public boolean parseServerMessage(@NonNull StringBuilder sb, + @NonNull String content) throws JSONException { + JSONObject obj = new JSONObject(content); + if (obj.has("error")) { + String message = obj.getString("error"); + sb.append(message); + } + return obj.has("features"); + } +} diff --git a/OsmAnd/src/net/osmand/plus/onlinerouting/engine/OsrmEngine.java b/OsmAnd/src/net/osmand/plus/onlinerouting/engine/OsrmEngine.java new file mode 100644 index 0000000000..d88ae42ff7 --- /dev/null +++ b/OsmAnd/src/net/osmand/plus/onlinerouting/engine/OsrmEngine.java @@ -0,0 +1,82 @@ +package net.osmand.plus.onlinerouting.engine; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +import net.osmand.data.LatLon; +import net.osmand.plus.R; +import net.osmand.plus.onlinerouting.EngineParameter; +import net.osmand.plus.onlinerouting.VehicleType; +import net.osmand.util.GeoPolylineParserUtil; + +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.List; +import java.util.Map; + +public class OsrmEngine extends OnlineRoutingEngine { + + public OsrmEngine(@Nullable Map params) { + super(params); + } + + @Override + public @NonNull EngineType getType() { + return EngineType.OSRM; + } + + @NonNull + @Override + public String getStandardUrl() { + return "https://router.project-osrm.org/route/v1/"; + } + + @Override + protected void collectAllowedParameters() { } + + @Override + protected void collectAllowedVehicles(@NonNull List vehicles) { + vehicles.add(new VehicleType("car", R.string.routing_engine_vehicle_type_car)); + vehicles.add(new VehicleType("bike", R.string.routing_engine_vehicle_type_bike)); + vehicles.add(new VehicleType("foot", R.string.routing_engine_vehicle_type_foot)); + } + + @Override + protected void makeFullUrl(@NonNull StringBuilder sb, + @NonNull List path) { + String vehicleKey = get(EngineParameter.VEHICLE_KEY); + if (!isEmpty(vehicleKey)) { + sb.append(vehicleKey).append('/'); + } + for (int i = 0; i < path.size(); i++) { + LatLon point = path.get(i); + sb.append(point.getLongitude()).append(',').append(point.getLatitude()); + if (i < path.size() - 1) { + sb.append(';'); + } + } + sb.append('?'); + sb.append("overview=full"); + } + + @NonNull + @Override + public List parseServerResponse(@NonNull String content) throws JSONException { + JSONObject obj = new JSONObject(content); + return GeoPolylineParserUtil.parse( + obj.getJSONArray("routes").getJSONObject(0).getString("geometry"), + GeoPolylineParserUtil.PRECISION_5); + } + + @Override + public boolean parseServerMessage(@NonNull StringBuilder sb, + @NonNull String content) throws JSONException { + JSONObject obj = new JSONObject(content); + if (obj.has("message")) { + String message = obj.getString("message"); + sb.append(message); + } + return obj.has("routes"); + } +} diff --git a/OsmAnd/src/net/osmand/plus/onlinerouting/ui/ExampleLocation.java b/OsmAnd/src/net/osmand/plus/onlinerouting/ui/ExampleLocation.java new file mode 100644 index 0000000000..0a384002f7 --- /dev/null +++ b/OsmAnd/src/net/osmand/plus/onlinerouting/ui/ExampleLocation.java @@ -0,0 +1,52 @@ +package net.osmand.plus.onlinerouting.ui; + +import androidx.annotation.NonNull; + +import net.osmand.data.LatLon; + +public enum ExampleLocation { + + AMSTERDAM("Amsterdam", + new LatLon(52.379189, 4.899431), + new LatLon(52.308056, 4.764167)), + + BERLIN("Berlin", + new LatLon(52.520008, 13.404954), + new LatLon(52.3666652, 13.501997992)), + + NEW_YORK("New York", + new LatLon(43.000000, -75.000000), + new LatLon(40.641766, -73.780968)), + + PARIS("Paris", + new LatLon(48.864716, 2.349014), + new LatLon(48.948437, 2.434931)); + + ExampleLocation(@NonNull String name, + @NonNull LatLon cityCenterLatLon, + @NonNull LatLon cityAirportLatLon) { + this.name = name; + this.cityCenterLatLon = cityCenterLatLon; + this.cityAirportLatLon = cityAirportLatLon; + } + + private String name; + private LatLon cityCenterLatLon; + private LatLon cityAirportLatLon; + + @NonNull + public String getName() { + return name; + } + + @NonNull + public LatLon getCityCenterLatLon() { + return cityCenterLatLon; + } + + @NonNull + public LatLon getCityAirportLatLon() { + return cityAirportLatLon; + } + +} diff --git a/OsmAnd/src/net/osmand/plus/onlinerouting/OnlineRoutingCard.java b/OsmAnd/src/net/osmand/plus/onlinerouting/ui/OnlineRoutingCard.java similarity index 81% rename from OsmAnd/src/net/osmand/plus/onlinerouting/OnlineRoutingCard.java rename to OsmAnd/src/net/osmand/plus/onlinerouting/ui/OnlineRoutingCard.java index 1b9e7f3b29..7a1f4c6b4b 100644 --- a/OsmAnd/src/net/osmand/plus/onlinerouting/OnlineRoutingCard.java +++ b/OsmAnd/src/net/osmand/plus/onlinerouting/ui/OnlineRoutingCard.java @@ -1,4 +1,4 @@ -package net.osmand.plus.onlinerouting; +package net.osmand.plus.onlinerouting.ui; import android.text.Editable; import android.text.TextWatcher; @@ -9,6 +9,7 @@ import android.widget.EditText; import android.widget.TextView; import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; @@ -39,9 +40,11 @@ public class OnlineRoutingCard extends BaseCard { private OsmandTextFieldBoxes textFieldBoxes; private EditText editText; private TextView tvHelperText; + private TextView tvErrorText; private View bottomDivider; private View button; private OnTextChangedListener onTextChangedListener; + private boolean fieldBoxHelperTextShowed; public OnlineRoutingCard(@NonNull MapActivity mapActivity, boolean nightMode) { super(mapActivity); @@ -64,6 +67,7 @@ public class OnlineRoutingCard extends BaseCard { textFieldBoxes = view.findViewById(R.id.field_box); editText = view.findViewById(R.id.edit_text); tvHelperText = view.findViewById(R.id.helper_text); + tvErrorText = view.findViewById(R.id.error_text); bottomDivider = view.findViewById(R.id.bottom_divider); button = view.findViewById(R.id.button); @@ -80,7 +84,7 @@ public class OnlineRoutingCard extends BaseCard { public void afterTextChanged(Editable s) { if (onTextChangedListener != null) { boolean editedByUser = editText.getTag() == null; - String text = editText.getText().toString(); + String text = editText.getText().toString().trim(); onTextChangedListener.onTextChanged(editedByUser, text); } } @@ -107,9 +111,9 @@ public class OnlineRoutingCard extends BaseCard { tvHeaderSubtitle.setText(subtitle); } - public void setSelectionMenu(List items, - String selectedItemTitle, - final CallbackWithObject callback) { + public void setSelectionMenu(@NonNull List items, + @NonNull String selectedItemTitle, + @NonNull final CallbackWithObject callback) { showElements(rvSelectionMenu); rvSelectionMenu.setLayoutManager( new LinearLayoutManager(app, RecyclerView.HORIZONTAL, false)); @@ -139,15 +143,31 @@ public class OnlineRoutingCard extends BaseCard { public void setFieldBoxHelperText(@NonNull String helperText) { showElements(fieldBoxContainer, tvHelperText); + fieldBoxHelperTextShowed = true; tvHelperText.setText(helperText); } + public void showFieldBoxError(@NonNull String errorText) { + showElements(fieldBoxContainer, tvErrorText); + hideElements(tvHelperText); + tvErrorText.setText(errorText); + } + + public void hideFieldBoxError() { + hideElements(tvErrorText); + if (fieldBoxHelperTextShowed) { + showElements(tvErrorText); + } + } + public void setEditedText(@NonNull String text) { - editText.setTag(""); // needed to indicate that the text was edited programmatically + showElements(fieldBoxContainer); + editText.setTag(""); // indicate that the text was edited programmatically editText.setText(text); editText.setTag(null); } + @NonNull public String getEditedText() { return editText.getText().toString(); } @@ -156,7 +176,8 @@ public class OnlineRoutingCard extends BaseCard { showElements(bottomDivider); } - public void setButton(String title, OnClickListener listener) { + public void setButton(@NonNull String title, + @NonNull OnClickListener listener) { showElements(button); button.setOnClickListener(listener); UiUtilities.setupDialogButton(nightMode, button, DialogButtonType.PRIMARY, title); @@ -186,11 +207,11 @@ public class OnlineRoutingCard extends BaseCard { AndroidUiHelper.setVisibility(View.GONE, views); } - public void setOnTextChangedListener(OnTextChangedListener onTextChangedListener) { + public void setOnTextChangedListener(@Nullable OnTextChangedListener onTextChangedListener) { this.onTextChangedListener = onTextChangedListener; } public interface OnTextChangedListener { - void onTextChanged(boolean editedByUser, String text); + void onTextChanged(boolean editedByUser, @NonNull String text); } } diff --git a/OsmAnd/src/net/osmand/plus/onlinerouting/OnlineRoutingEngineFragment.java b/OsmAnd/src/net/osmand/plus/onlinerouting/ui/OnlineRoutingEngineFragment.java similarity index 57% rename from OsmAnd/src/net/osmand/plus/onlinerouting/OnlineRoutingEngineFragment.java rename to OsmAnd/src/net/osmand/plus/onlinerouting/ui/OnlineRoutingEngineFragment.java index 59df4ef698..f44b936b39 100644 --- a/OsmAnd/src/net/osmand/plus/onlinerouting/OnlineRoutingEngineFragment.java +++ b/OsmAnd/src/net/osmand/plus/onlinerouting/ui/OnlineRoutingEngineFragment.java @@ -1,13 +1,11 @@ -package net.osmand.plus.onlinerouting; +package net.osmand.plus.onlinerouting.ui; -import android.content.Context; import android.os.Build; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; -import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.TextView; @@ -17,8 +15,6 @@ import androidx.appcompat.widget.Toolbar; import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentManager; -import net.osmand.AndroidNetworkUtils; -import net.osmand.AndroidNetworkUtils.OnRequestResultListener; import net.osmand.AndroidUtils; import net.osmand.CallbackWithObject; import net.osmand.data.LatLon; @@ -29,33 +25,37 @@ import net.osmand.plus.UiUtilities.DialogButtonType; import net.osmand.plus.activities.MapActivity; import net.osmand.plus.base.BaseOsmAndFragment; import net.osmand.plus.mapcontextmenu.other.HorizontalSelectionAdapter.HorizontalSelectionItem; -import net.osmand.plus.onlinerouting.OnlineRoutingCard.OnTextChangedListener; -import net.osmand.plus.onlinerouting.OnlineRoutingEngine.EngineParameter; +import net.osmand.plus.onlinerouting.EngineParameter; +import net.osmand.plus.onlinerouting.OnlineRoutingFactory; +import net.osmand.plus.onlinerouting.OnlineRoutingHelper; +import net.osmand.plus.onlinerouting.VehicleType; +import net.osmand.plus.onlinerouting.ui.OnlineRoutingCard.OnTextChangedListener; +import net.osmand.plus.onlinerouting.engine.EngineType; +import net.osmand.plus.onlinerouting.engine.OnlineRoutingEngine; import net.osmand.plus.routepreparationmenu.cards.BaseCard; import net.osmand.plus.settings.backend.ApplicationMode; import net.osmand.util.Algorithms; import org.json.JSONException; -import org.json.JSONObject; +import java.io.IOException; import java.util.ArrayList; import java.util.List; +import static net.osmand.plus.onlinerouting.engine.OnlineRoutingEngine.CUSTOM_VEHICLE; + public class OnlineRoutingEngineFragment extends BaseOsmAndFragment { public static final String TAG = OnlineRoutingEngineFragment.class.getSimpleName(); - private static final String ENGINE_NAME_KEY = "engine_name"; - private static final String ENGINE_SERVER_KEY = "engine_server"; - private static final String ENGINE_SERVER_URL_KEY = "engine_server_url"; - private static final String ENGINE_VEHICLE_TYPE_KEY = "engine_vehicle_type"; + private static final String ENGINE_TYPE_KEY = "engine_type"; private static final String ENGINE_CUSTOM_VEHICLE_KEY = "engine_custom_vehicle"; - private static final String ENGINE_API_KEY_KEY = "engine_api_key"; private static final String EXAMPLE_LOCATION_KEY = "example_location"; private static final String APP_MODE_KEY = "app_mode"; private static final String EDITED_ENGINE_KEY = "edited_engine_key"; private OsmandApplication app; + private ApplicationMode appMode; private MapActivity mapActivity; private OnlineRoutingHelper helper; @@ -67,61 +67,19 @@ public class OnlineRoutingEngineFragment extends BaseOsmAndFragment { private OnlineRoutingCard apiKeyCard; private OnlineRoutingCard exampleCard; private View testResultsContainer; + private View saveButton; - private ApplicationMode appMode; - - private OnlineRoutingEngineObject engine; + private OnlineRoutingEngine engine; + private String customVehicleKey; private ExampleLocation selectedLocation; private String editedEngineKey; - private enum ExampleLocation { - - AMSTERDAM("Amsterdam", - new LatLon(52.379189, 4.899431), - new LatLon(52.308056, 4.764167)), - - BERLIN("Berlin", - new LatLon(52.520008, 13.404954), - new LatLon(52.3666652, 13.501997992)), - - NEW_YORK("New York", - new LatLon(43.000000, -75.000000), - new LatLon(40.641766, -73.780968)), - - PARIS("Paris", - new LatLon(48.864716, 2.349014), - new LatLon(48.948437, 2.434931)); - - ExampleLocation(String name, LatLon cityCenterLatLon, LatLon cityAirportLatLon) { - this.name = name; - this.cityCenterLatLon = cityCenterLatLon; - this.cityAirportLatLon = cityAirportLatLon; - } - - private String name; - private LatLon cityCenterLatLon; - private LatLon cityAirportLatLon; - - public String getName() { - return name; - } - - public LatLon getCityCenterLatLon() { - return cityCenterLatLon; - } - - public LatLon getCityAirportLatLon() { - return cityAirportLatLon; - } - } - @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); app = requireMyApplication(); mapActivity = getMapActivity(); helper = app.getOnlineRoutingHelper(); - engine = new OnlineRoutingEngineObject(); if (savedInstanceState != null) { restoreState(savedInstanceState); } else { @@ -148,14 +106,43 @@ public class OnlineRoutingEngineFragment extends BaseOsmAndFragment { setupApiKeyCard(); setupExampleCard(); setupResultsContainer(); - addSpaceSegment(); - setupButtons(); + generateUniqueNameIfNeeded(); updateCardViews(nameCard, typeCard, vehicleCard, exampleCard); return view; } + private void setupToolbar(Toolbar toolbar) { + ImageView navigationIcon = toolbar.findViewById(R.id.close_button); + navigationIcon.setImageResource(R.drawable.ic_action_close); + navigationIcon.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + dismiss(); + } + }); + TextView title = toolbar.findViewById(R.id.toolbar_title); + toolbar.findViewById(R.id.toolbar_subtitle).setVisibility(View.GONE); + View actionBtn = toolbar.findViewById(R.id.action_button); + if (isEditingMode()) { + title.setText(getString(R.string.edit_online_routing_engine)); + ImageView ivBtn = toolbar.findViewById(R.id.action_button_icon); + ivBtn.setImageDrawable( + getIcon(R.drawable.ic_action_delete_dark, R.color.color_osm_edit_delete)); + actionBtn.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + onDeleteEngine(); + dismiss(); + } + }); + } else { + title.setText(getString(R.string.add_online_routing_engine)); + actionBtn.setVisibility(View.GONE); + } + } + private void setupNameCard() { nameCard = new OnlineRoutingCard(mapActivity, isNightMode()); nameCard.build(mapActivity); @@ -164,9 +151,10 @@ public class OnlineRoutingEngineFragment extends BaseOsmAndFragment { nameCard.setFieldBoxLabelText(getString(R.string.shared_string_name)); nameCard.setOnTextChangedListener(new OnTextChangedListener() { @Override - public void onTextChanged(boolean changedByUser, String text) { + public void onTextChanged(boolean changedByUser, @NonNull String text) { if (changedByUser) { - engine.customName = text; + engine.put(EngineParameter.CUSTOM_NAME, text); + checkCustomNameUnique(engine); } } }); @@ -182,14 +170,13 @@ public class OnlineRoutingEngineFragment extends BaseOsmAndFragment { for (EngineType server : EngineType.values()) { serverItems.add(new HorizontalSelectionItem(server.getTitle(), server)); } - typeCard.setSelectionMenu(serverItems, engine.type.getTitle(), + typeCard.setSelectionMenu(serverItems, engine.getType().getTitle(), new CallbackWithObject() { @Override public boolean processResult(HorizontalSelectionItem result) { EngineType type = (EngineType) result.getObject(); - if (engine.type != type) { - engine.type = type; - updateCardViews(nameCard, typeCard, exampleCard); + if (engine.getType() != type) { + changeEngineType(type); return true; } return false; @@ -197,9 +184,9 @@ public class OnlineRoutingEngineFragment extends BaseOsmAndFragment { }); typeCard.setOnTextChangedListener(new OnTextChangedListener() { @Override - public void onTextChanged(boolean editedByUser, String text) { + public void onTextChanged(boolean editedByUser, @NonNull String text) { if (editedByUser) { - engine.customServerUrl = text; + engine.put(EngineParameter.CUSTOM_URL, text); updateCardViews(exampleCard); } } @@ -213,37 +200,44 @@ public class OnlineRoutingEngineFragment extends BaseOsmAndFragment { vehicleCard = new OnlineRoutingCard(mapActivity, isNightMode()); vehicleCard.build(mapActivity); vehicleCard.setHeaderTitle(getString(R.string.shared_string_vehicle)); + vehicleCard.setFieldBoxLabelText(getString(R.string.shared_string_custom)); + vehicleCard.setOnTextChangedListener(new OnTextChangedListener() { + @Override + public void onTextChanged(boolean editedByUser, @NonNull String text) { + if (editedByUser) { + customVehicleKey = text; + engine.put(EngineParameter.VEHICLE_KEY, customVehicleKey); + updateCardViews(nameCard, exampleCard); + } + } + }); + vehicleCard.setEditedText(customVehicleKey); + vehicleCard.setFieldBoxHelperText(getString(R.string.shared_string_enter_param)); + vehicleCard.showDivider(); + segmentsContainer.addView(vehicleCard.getView()); + setupVehicleTypes(); + } + + private void setupVehicleTypes() { List vehicleItems = new ArrayList<>(); - for (VehicleType vehicle : VehicleType.values()) { + for (VehicleType vehicle : engine.getAllowedVehicles()) { vehicleItems.add(new HorizontalSelectionItem(vehicle.getTitle(app), vehicle)); } - vehicleCard.setSelectionMenu(vehicleItems, engine.vehicleType.getTitle(app), + vehicleCard.setSelectionMenu(vehicleItems, engine.getSelectedVehicleType().getTitle(app), new CallbackWithObject() { @Override public boolean processResult(HorizontalSelectionItem result) { VehicleType vehicle = (VehicleType) result.getObject(); - if (engine.vehicleType != vehicle) { - engine.vehicleType = vehicle; + if (!Algorithms.objectEquals(engine.getSelectedVehicleType(), vehicle)) { + String vehicleKey = vehicle.equals(CUSTOM_VEHICLE) ? customVehicleKey : vehicle.getKey(); + engine.put(EngineParameter.VEHICLE_KEY, vehicleKey); + generateUniqueNameIfNeeded(); updateCardViews(nameCard, vehicleCard, exampleCard); return true; } return false; } }); - vehicleCard.setFieldBoxLabelText(getString(R.string.shared_string_custom)); - vehicleCard.setOnTextChangedListener(new OnTextChangedListener() { - @Override - public void onTextChanged(boolean editedByUser, String text) { - if (editedByUser) { - engine.customVehicleKey = text; - updateCardViews(nameCard, exampleCard); - } - } - }); - vehicleCard.setEditedText(engine.customVehicleKey); - vehicleCard.setFieldBoxHelperText(getString(R.string.shared_string_enter_param)); - vehicleCard.showDivider(); - segmentsContainer.addView(vehicleCard.getView()); } private void setupApiKeyCard() { @@ -251,12 +245,15 @@ public class OnlineRoutingEngineFragment extends BaseOsmAndFragment { apiKeyCard.build(mapActivity); apiKeyCard.setHeaderTitle(getString(R.string.shared_string_api_key)); apiKeyCard.setFieldBoxLabelText(getString(R.string.keep_it_empty_if_not)); - apiKeyCard.setEditedText(engine.apiKey); + String apiKey = engine.get(EngineParameter.API_KEY); + if (apiKey != null) { + apiKeyCard.setEditedText(apiKey); + } apiKeyCard.showDivider(); apiKeyCard.setOnTextChangedListener(new OnTextChangedListener() { @Override - public void onTextChanged(boolean editedByUser, String text) { - engine.apiKey = text; + public void onTextChanged(boolean editedByUser, @NonNull String text) { + engine.put(EngineParameter.API_KEY, text); updateCardViews(exampleCard); } }); @@ -297,86 +294,10 @@ public class OnlineRoutingEngineFragment extends BaseOsmAndFragment { private void setupResultsContainer() { testResultsContainer = getInflater().inflate( R.layout.bottom_sheet_item_with_descr_64dp, segmentsContainer, false); - testResultsContainer.setVisibility(View.GONE); + testResultsContainer.setVisibility(View.INVISIBLE); segmentsContainer.addView(testResultsContainer); } - private void addSpaceSegment() { - int space = (int) getResources().getDimension(R.dimen.empty_state_text_button_padding_top); - View bottomSpaceView = new View(app); - bottomSpaceView.setLayoutParams( - new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, space)); - segmentsContainer.addView(bottomSpaceView); - } - - private void setupToolbar(Toolbar toolbar) { - ImageView navigationIcon = toolbar.findViewById(R.id.close_button); - navigationIcon.setImageResource(R.drawable.ic_action_close); - navigationIcon.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - dismiss(); - } - }); - TextView title = toolbar.findViewById(R.id.toolbar_title); - toolbar.findViewById(R.id.toolbar_subtitle).setVisibility(View.GONE); - View actionBtn = toolbar.findViewById(R.id.action_button); - if (isEditingMode()) { - title.setText(getString(R.string.edit_online_routing_engine)); - ImageView ivBtn = toolbar.findViewById(R.id.action_button_icon); - ivBtn.setImageDrawable( - getIcon(R.drawable.ic_action_delete_dark, R.color.color_osm_edit_delete)); - actionBtn.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - deleteEngine(); - dismiss(); - } - }); - } else { - title.setText(getString(R.string.add_online_routing_engine)); - actionBtn.setVisibility(View.GONE); - } - } - - private void updateCardViews(BaseCard... cardsToUpdate) { - for (BaseCard card : cardsToUpdate) { - if (nameCard.equals(card)) { - if (Algorithms.isEmpty(engine.customName)) { - String name; - if (Algorithms.isEmpty(engine.getVehicleKey())) { - name = engine.type.getTitle(); - } else { - name = OnlineRoutingEngine.getStandardName(app, engine.type, engine.getVehicleKey()); - } - nameCard.setEditedText(name); - } - - } else if (typeCard.equals(card)) { - typeCard.setHeaderSubtitle(engine.type.getTitle()); - typeCard.setEditedText(engine.getBaseUrl()); - if (engine.type == EngineType.GRAPHHOPPER || engine.type == EngineType.ORS) { - apiKeyCard.show(); - } else { - apiKeyCard.hide(); - } - - } else if (vehicleCard.equals(card)) { - VehicleType vt = VehicleType.getVehicleByKey(engine.getVehicleKey()); - vehicleCard.setHeaderSubtitle(vt.getTitle(app)); - if (vt == VehicleType.CUSTOM) { - vehicleCard.showFieldBox(); - vehicleCard.setEditedText(engine.getVehicleKey()); - } else { - vehicleCard.hideFieldBox(); - } - - } else if (exampleCard.equals(card)) { - exampleCard.setEditedText(getTestUrl()); - } - } - } - private void setupButtons() { boolean nightMode = isNightMode(); View cancelButton = view.findViewById(R.id.dismiss_button); @@ -391,149 +312,167 @@ public class OnlineRoutingEngineFragment extends BaseOsmAndFragment { view.findViewById(R.id.buttons_divider).setVisibility(View.VISIBLE); - View saveButton = view.findViewById(R.id.right_bottom_button); + saveButton = view.findViewById(R.id.right_bottom_button); UiUtilities.setupDialogButton(nightMode, saveButton, UiUtilities.DialogButtonType.PRIMARY, R.string.shared_string_save); saveButton.setVisibility(View.VISIBLE); saveButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { - saveChanges(); + onSaveEngine(); dismiss(); } }); } - private void saveChanges() { - OnlineRoutingEngine engineToSave; - if (isEditingMode()) { - engineToSave = new OnlineRoutingEngine(editedEngineKey, engine.type, engine.getVehicleKey()); + private void changeEngineType(EngineType type) { + OnlineRoutingEngine tmp = (OnlineRoutingEngine) engine.clone(); + engine = OnlineRoutingFactory.createEngine(type, tmp.getParams()); + + // after changing the type, select the vehicle + // with the same name that was selected before + VehicleType previous = tmp.getSelectedVehicleType(); + VehicleType next = null; + for (VehicleType vt : engine.getAllowedVehicles()) { + if (Algorithms.objectEquals(previous.getTitle(app), vt.getTitle(app))) { + next = vt; + break; + } + } + String vehicleKey; + if (next != null) { + vehicleKey = next.equals(CUSTOM_VEHICLE) ? customVehicleKey : next.getKey(); } else { - engineToSave = OnlineRoutingEngine.createNewEngine(engine.type, engine.getVehicleKey(), null); + vehicleKey = engine.getAllowedVehicles().get(0).getKey(); } + engine.put(EngineParameter.VEHICLE_KEY, vehicleKey); - engineToSave.putParameter(EngineParameter.CUSTOM_NAME, engine.customName); - engineToSave.putParameter(EngineParameter.CUSTOM_URL, engine.customServerUrl); - if (engine.type == EngineType.GRAPHHOPPER || engine.type == EngineType.ORS) { - engineToSave.putParameter(EngineParameter.API_KEY, engine.apiKey); + setupVehicleTypes(); + generateUniqueNameIfNeeded(); + updateCardViews(nameCard, typeCard, vehicleCard, exampleCard); + } + + private void generateUniqueNameIfNeeded() { + if (engine.get(EngineParameter.CUSTOM_NAME) == null) { + engine.remove(EngineParameter.NAME_INDEX); + if (hasNameDuplicate(engine.getName(app))) { + int index = 0; + do { + engine.put(EngineParameter.NAME_INDEX, String.valueOf(++index)); + } while (hasNameDuplicate(engine.getName(app))); + } } - - helper.saveEngine(engineToSave); } - private void deleteEngine() { - helper.deleteEngine(editedEngineKey); - } - - private String getTestUrl() { - List path = new ArrayList<>(); - path.add(selectedLocation.getCityCenterLatLon()); - path.add(selectedLocation.getCityAirportLatLon()); - OnlineRoutingEngine tmpEngine = - OnlineRoutingEngine.createNewEngine(engine.type, engine.getVehicleKey(), null); - tmpEngine.putParameter(EngineParameter.CUSTOM_URL, engine.customServerUrl); - tmpEngine.putParameter(EngineParameter.API_KEY, engine.apiKey); - return helper.createFullUrl(tmpEngine, path); - } - - private void testEngineWork() { - final EngineType type = engine.type; - final ExampleLocation location = selectedLocation; - AndroidNetworkUtils.sendRequestAsync(app, exampleCard.getEditedText(), null, - null, false, false, new OnRequestResultListener() { - @Override - public void onResult(String response) { - boolean resultOk = false; - if (response != null) { - try { - JSONObject obj = new JSONObject(response); - - if (type == EngineType.GRAPHHOPPER) { - resultOk = obj.has("paths"); - } else if (type == EngineType.OSRM) { - resultOk = obj.has("routes"); - } else if (type == EngineType.ORS) { - resultOk = obj.has("features"); - } - } catch (JSONException e) { - - } - } - showTestResults(resultOk, location); - } - }); - } - - private void showTestResults(boolean resultOk, ExampleLocation location) { - testResultsContainer.setVisibility(View.VISIBLE); - ImageView ivImage = testResultsContainer.findViewById(R.id.icon); - TextView tvTitle = testResultsContainer.findViewById(R.id.title); - TextView tvDescription = testResultsContainer.findViewById(R.id.description); - if (resultOk) { - ivImage.setImageDrawable(getContentIcon(R.drawable.ic_action_gdirections_dark)); - tvTitle.setText(getString(R.string.shared_string_ok)); + private void checkCustomNameUnique(@NonNull OnlineRoutingEngine engine) { + if (hasNameDuplicate(engine.getName(app))) { + nameCard.showFieldBoxError(getString(R.string.message_name_is_already_exists)); + saveButton.setEnabled(false); } else { - ivImage.setImageDrawable(getContentIcon(R.drawable.ic_action_alert)); - tvTitle.setText(getString(R.string.message_error_recheck_parameters)); + nameCard.hideFieldBoxError(); + saveButton.setEnabled(true); } - tvDescription.setText(location.getName()); + } + + private boolean hasNameDuplicate(@NonNull String name) { + for (OnlineRoutingEngine engine : helper.getEnginesExceptMentioned(editedEngineKey)) { + if (Algorithms.objectEquals(engine.getName(app), name)) { + return true; + } + } + return false; + } + + private void onSaveEngine() { + if (engine != null) { + helper.saveEngine(engine); + } + } + + private void onDeleteEngine() { + helper.deleteEngine(engine); } private boolean isEditingMode() { return editedEngineKey != null; } - @Override - public void onSaveInstanceState(@NonNull Bundle outState) { - super.onSaveInstanceState(outState); - saveState(outState); + private String getTestUrl() { + List path = new ArrayList<>(); + path.add(selectedLocation.getCityCenterLatLon()); + path.add(selectedLocation.getCityAirportLatLon()); + return engine.getFullUrl(path); } - private void saveState(Bundle outState) { - outState.putString(ENGINE_NAME_KEY, engine.customName); - outState.putString(ENGINE_SERVER_KEY, engine.type.name()); - outState.putString(ENGINE_SERVER_URL_KEY, engine.customServerUrl); - outState.putString(ENGINE_VEHICLE_TYPE_KEY, engine.vehicleType.name()); - outState.putString(ENGINE_CUSTOM_VEHICLE_KEY, engine.customVehicleKey); - outState.putString(ENGINE_API_KEY_KEY, engine.apiKey); - outState.putString(EXAMPLE_LOCATION_KEY, selectedLocation.name()); - if (appMode != null) { - outState.putString(APP_MODE_KEY, appMode.getStringKey()); - } - outState.putString(EDITED_ENGINE_KEY, editedEngineKey); - } - - private void restoreState(Bundle savedState) { - engine.customName = savedState.getString(ENGINE_NAME_KEY); - engine.type = EngineType.valueOf(savedState.getString(ENGINE_SERVER_KEY)); - engine.customServerUrl = savedState.getString(ENGINE_SERVER_URL_KEY); - engine.vehicleType = VehicleType.valueOf(savedState.getString(ENGINE_VEHICLE_TYPE_KEY)); - engine.customVehicleKey = savedState.getString(ENGINE_CUSTOM_VEHICLE_KEY); - engine.apiKey = savedState.getString(ENGINE_API_KEY_KEY); - selectedLocation = ExampleLocation.valueOf(savedState.getString(EXAMPLE_LOCATION_KEY)); - appMode = ApplicationMode.valueOfStringKey(savedState.getString(APP_MODE_KEY), null); - editedEngineKey = savedState.getString(EDITED_ENGINE_KEY); - } - - private void initState() { - engine.type = EngineType.values()[0]; - engine.vehicleType = VehicleType.values()[0]; - selectedLocation = ExampleLocation.values()[0]; - - if (isEditingMode()) { - OnlineRoutingEngine editedEngine = helper.getEngineByKey(editedEngineKey); - if (editedEngine != null) { - engine.customName = editedEngine.getParameter(EngineParameter.CUSTOM_NAME); - engine.type = editedEngine.getType(); - String vehicleKey = editedEngine.getVehicleKey(); - if (vehicleKey != null) { - VehicleType vehicleType = VehicleType.getVehicleByKey(vehicleKey); - if (vehicleType == VehicleType.CUSTOM) { - engine.customVehicleKey = vehicleKey; - } - engine.vehicleType = vehicleType; + private void testEngineWork() { + final OnlineRoutingEngine requestedEngine = (OnlineRoutingEngine) engine.clone(); + final ExampleLocation location = selectedLocation; + new Thread(new Runnable() { + @Override + public void run() { + StringBuilder message = new StringBuilder(); + boolean resultOk = false; + try { + String response = helper.makeRequest(exampleCard.getEditedText()); + resultOk = requestedEngine.parseServerMessage(message, response); + } catch (IOException | JSONException e) { + message.append(e.toString()); } - engine.apiKey = editedEngine.getParameter(EngineParameter.API_KEY); + showTestResults(resultOk, message.toString(), location); + } + }).start(); + } + + private void showTestResults(final boolean resultOk, + final @NonNull String message, + final @NonNull ExampleLocation location) { + app.runInUIThread(new Runnable() { + @Override + public void run() { + testResultsContainer.setVisibility(View.VISIBLE); + ImageView ivImage = testResultsContainer.findViewById(R.id.icon); + TextView tvTitle = testResultsContainer.findViewById(R.id.title); + TextView tvDescription = testResultsContainer.findViewById(R.id.description); + if (resultOk) { + ivImage.setImageDrawable(getContentIcon(R.drawable.ic_action_gdirections_dark)); + tvTitle.setText(getString(R.string.shared_string_ok)); + } else { + ivImage.setImageDrawable(getContentIcon(R.drawable.ic_action_alert)); + tvTitle.setText(String.format(getString(R.string.message_server_error), message)); + } + tvDescription.setText(location.getName()); + } + }); + } + + private void updateCardViews(@NonNull BaseCard... cardsToUpdate) { + for (BaseCard card : cardsToUpdate) { + if (nameCard.equals(card)) { + if (Algorithms.isEmpty(engine.get(EngineParameter.CUSTOM_NAME))) { + nameCard.setEditedText(engine.getName(app)); + } + + } else if (typeCard.equals(card)) { + typeCard.setHeaderSubtitle(engine.getType().getTitle()); + typeCard.setEditedText(engine.getBaseUrl()); + if (engine.isParameterAllowed(EngineParameter.API_KEY)) { + apiKeyCard.show(); + } else { + apiKeyCard.hide(); + } + + } else if (vehicleCard.equals(card)) { + VehicleType vt = engine.getSelectedVehicleType(); + vehicleCard.setHeaderSubtitle(vt.getTitle(app)); + if (vt.equals(CUSTOM_VEHICLE)) { + vehicleCard.showFieldBox(); + vehicleCard.setEditedText(customVehicleKey); + } else { + vehicleCard.hideFieldBox(); + } + + } else if (exampleCard.equals(card)) { + exampleCard.setEditedText(getTestUrl()); } } } @@ -546,7 +485,12 @@ public class OnlineRoutingEngineFragment extends BaseOsmAndFragment { } private boolean isNightMode() { - return !app.getSettings().isLightContentForMode(appMode); + return !app.getSettings().isLightContentForMode(getAppMode()); + } + + @NonNull + private ApplicationMode getAppMode() { + return appMode != null ? appMode : app.getSettings().getApplicationMode(); } @Nullable @@ -563,9 +507,64 @@ public class OnlineRoutingEngineFragment extends BaseOsmAndFragment { return UiUtilities.getInflater(mapActivity, isNightMode()); } + @Override + public void onSaveInstanceState(@NonNull Bundle outState) { + super.onSaveInstanceState(outState); + saveState(outState); + } + + private void saveState(@NonNull Bundle outState) { + outState.putString(ENGINE_TYPE_KEY, engine.getType().name()); + for (EngineParameter key : EngineParameter.values()) { + String value = engine.get(key); + if (value != null) { + outState.putString(key.name(), value); + } + } + outState.putString(ENGINE_CUSTOM_VEHICLE_KEY, customVehicleKey); + outState.putString(EXAMPLE_LOCATION_KEY, selectedLocation.name()); + outState.putString(APP_MODE_KEY, getAppMode().getStringKey()); + outState.putString(EDITED_ENGINE_KEY, editedEngineKey); + } + + private void restoreState(@NonNull Bundle savedState) { + String typeKey = savedState.getString(ENGINE_TYPE_KEY); + EngineType type = EngineType.getTypeByName(typeKey); + engine = OnlineRoutingFactory.createEngine(type); + for (EngineParameter key : EngineParameter.values()) { + String value = savedState.getString(key.name()); + if (value != null) { + engine.put(key, value); + } + } + customVehicleKey = savedState.getString(ENGINE_CUSTOM_VEHICLE_KEY); + selectedLocation = ExampleLocation.valueOf(savedState.getString(EXAMPLE_LOCATION_KEY)); + appMode = ApplicationMode.valueOfStringKey(savedState.getString(APP_MODE_KEY), null); + editedEngineKey = savedState.getString(EngineParameter.KEY.name()); + } + + private void initState() { + selectedLocation = ExampleLocation.values()[0]; + OnlineRoutingEngine editedEngine = helper.getEngineByKey(editedEngineKey); + if (editedEngine != null) { + engine = (OnlineRoutingEngine) editedEngine.clone(); + if (Algorithms.objectEquals(engine.getSelectedVehicleType(), CUSTOM_VEHICLE)) { + customVehicleKey = engine.get(EngineParameter.VEHICLE_KEY); + } + } else { + engine = OnlineRoutingFactory.createEngine(EngineType.values()[0]); + String vehicle = engine.getAllowedVehicles().get(0).getKey(); + engine.put(EngineParameter.VEHICLE_KEY, vehicle); + customVehicleKey = ""; + if (editedEngineKey != null) { + engine.put(EngineParameter.KEY, editedEngineKey); + } + } + } + public static void showInstance(@NonNull FragmentActivity activity, @NonNull ApplicationMode appMode, - String editedEngineKey) { + @Nullable String editedEngineKey) { FragmentManager fm = activity.getSupportFragmentManager(); if (!fm.isStateSaved() && fm.findFragmentByTag(OnlineRoutingEngineFragment.TAG) == null) { OnlineRoutingEngineFragment fragment = new OnlineRoutingEngineFragment(); @@ -576,34 +575,4 @@ public class OnlineRoutingEngineFragment extends BaseOsmAndFragment { .addToBackStack(TAG).commitAllowingStateLoss(); } } - - private static class OnlineRoutingEngineObject { - private String customName; - private EngineType type; - private String customServerUrl; - private VehicleType vehicleType; - private String customVehicleKey; - private String apiKey; - - public String getVehicleKey() { - if (vehicleType == VehicleType.CUSTOM) { - return customVehicleKey; - } - return vehicleType.getKey(); - } - - public String getName(Context ctx) { - if (customName != null) { - return customName; - } - return OnlineRoutingEngine.getStandardName(ctx, type, getVehicleKey()); - } - - public String getBaseUrl() { - if (Algorithms.isEmpty(customServerUrl)) { - return type.getStandardUrl(); - } - return customServerUrl; - } - } } diff --git a/OsmAnd/src/net/osmand/plus/profiles/OnlineRoutingEngineDataObject.java b/OsmAnd/src/net/osmand/plus/profiles/OnlineRoutingEngineDataObject.java index 46a35ea67e..86b79ed910 100644 --- a/OsmAnd/src/net/osmand/plus/profiles/OnlineRoutingEngineDataObject.java +++ b/OsmAnd/src/net/osmand/plus/profiles/OnlineRoutingEngineDataObject.java @@ -1,12 +1,27 @@ package net.osmand.plus.profiles; +import androidx.annotation.NonNull; + import net.osmand.plus.R; public class OnlineRoutingEngineDataObject extends ProfileDataObject { + private int order; + public OnlineRoutingEngineDataObject(String name, String description, - String stringKey) { + String stringKey, + int order) { super(name, description, stringKey, R.drawable.ic_world_globe_dark, false, null); + this.order = order; + } + + @Override + public int compareTo(@NonNull ProfileDataObject another) { + if (another instanceof OnlineRoutingEngineDataObject) { + OnlineRoutingEngineDataObject anotherEngine = (OnlineRoutingEngineDataObject) another; + return Integer.compare(this.order, anotherEngine.order); + } + return 0; } } diff --git a/OsmAnd/src/net/osmand/plus/profiles/ProfileDataUtils.java b/OsmAnd/src/net/osmand/plus/profiles/ProfileDataUtils.java index 28967ba2f3..6306dee9cc 100644 --- a/OsmAnd/src/net/osmand/plus/profiles/ProfileDataUtils.java +++ b/OsmAnd/src/net/osmand/plus/profiles/ProfileDataUtils.java @@ -5,7 +5,7 @@ import android.content.Context; import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandPlugin; import net.osmand.plus.R; -import net.osmand.plus.onlinerouting.OnlineRoutingEngine; +import net.osmand.plus.onlinerouting.engine.OnlineRoutingEngine; import net.osmand.plus.profiles.RoutingProfileDataObject.RoutingProfilesResources; import net.osmand.plus.settings.backend.ApplicationMode; import net.osmand.router.GeneralRouter; @@ -56,7 +56,22 @@ public class ProfileDataUtils { Collections.sort(fileNames, new Comparator() { @Override public int compare(String s, String t1) { - return s.equals(OSMAND_NAVIGATION) ? -1 : t1.equals(OSMAND_NAVIGATION) ? 1 : s.compareToIgnoreCase(t1); + // OsmAnd navigation should be at the top of the list + if (s.equals(OSMAND_NAVIGATION)) { + return -1; + } else if (t1.equals(OSMAND_NAVIGATION)) { + return 1; + + // Online navigation should be at the bottom of the list + } else if (s.equals(ONLINE_NAVIGATION)) { + return 1; + } else if (t1.equals(ONLINE_NAVIGATION)) { + return -1; + + // Other sorted by file names + } else { + return s.compareToIgnoreCase(t1); + } } }); for (String fileName : fileNames) { @@ -71,9 +86,11 @@ public class ProfileDataUtils { public static List getOnlineRoutingProfiles(OsmandApplication app) { List objects = new ArrayList<>(); - for (OnlineRoutingEngine engine : app.getOnlineRoutingHelper().getEngines()) { + List engines = app.getOnlineRoutingHelper().getEngines(); + for (int i = 0; i < engines.size(); i++) { + OnlineRoutingEngine engine = engines.get(i); objects.add(new OnlineRoutingEngineDataObject( - engine.getName(app), engine.getBaseUrl(), engine.getStringKey())); + engine.getName(app), engine.getBaseUrl(), engine.getStringKey(), i)); } return objects; } diff --git a/OsmAnd/src/net/osmand/plus/profiles/SelectProfileBottomSheet.java b/OsmAnd/src/net/osmand/plus/profiles/SelectProfileBottomSheet.java index 98ca4771cc..eb97a8ae85 100644 --- a/OsmAnd/src/net/osmand/plus/profiles/SelectProfileBottomSheet.java +++ b/OsmAnd/src/net/osmand/plus/profiles/SelectProfileBottomSheet.java @@ -39,8 +39,9 @@ import net.osmand.plus.base.bottomsheetmenu.simpleitems.TitleItem; import net.osmand.plus.helpers.FontCache; import net.osmand.plus.settings.backend.ApplicationMode; import net.osmand.plus.settings.bottomsheets.BasePreferenceBottomSheet; -import net.osmand.plus.onlinerouting.OnlineRoutingEngineFragment; +import net.osmand.plus.onlinerouting.ui.OnlineRoutingEngineFragment; import net.osmand.router.RoutingConfiguration; +import net.osmand.util.Algorithms; import org.apache.commons.logging.Log; @@ -250,7 +251,7 @@ public class SelectProfileBottomSheet extends BasePreferenceBottomSheet { tvTitle.setText(profile.getName()); tvDescription.setText(profile.getDescription()); - boolean isSelected = setupSelected && profile.getStringKey().equals(selectedItemKey); + boolean isSelected = setupSelected && Algorithms.objectEquals(profile.getStringKey(), selectedItemKey); int iconColor; if (dialogMode == DialogMode.NAVIGATION_PROFILE) { iconColor = isSelected ? activeColorResId : iconDefaultColorResId; diff --git a/OsmAnd/src/net/osmand/plus/routing/RouteProvider.java b/OsmAnd/src/net/osmand/plus/routing/RouteProvider.java index 89c17f1c2b..96017bc96c 100644 --- a/OsmAnd/src/net/osmand/plus/routing/RouteProvider.java +++ b/OsmAnd/src/net/osmand/plus/routing/RouteProvider.java @@ -2,7 +2,6 @@ package net.osmand.plus.routing; import android.content.Context; -import android.os.Build; import android.os.Bundle; import android.util.Base64; @@ -20,16 +19,14 @@ import net.osmand.binary.BinaryMapIndexReader; import net.osmand.data.LatLon; import net.osmand.data.LocationPoint; import net.osmand.data.WptLocationPoint; -import net.osmand.osm.io.NetworkUtils; import net.osmand.plus.OsmandApplication; -import net.osmand.plus.onlinerouting.OnlineRoutingEngine; import net.osmand.plus.onlinerouting.OnlineRoutingHelper; +import net.osmand.plus.onlinerouting.engine.OnlineRoutingEngine; import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.plus.settings.backend.CommonPreference; import net.osmand.plus.R; import net.osmand.plus.TargetPointsHelper; import net.osmand.plus.TargetPointsHelper.TargetPoint; -import net.osmand.plus.Version; import net.osmand.plus.render.NativeOsmandLibrary; import net.osmand.plus.settings.backend.ApplicationMode; import net.osmand.router.GeneralRouter; @@ -48,21 +45,16 @@ import net.osmand.router.RoutingConfiguration.Builder; import net.osmand.router.RoutingContext; import net.osmand.router.TurnType; import net.osmand.util.Algorithms; -import net.osmand.util.GeoPolylineParserUtil; import net.osmand.util.MapUtils; import org.json.JSONException; -import org.json.JSONObject; import org.xml.sax.SAXException; -import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; -import java.io.InputStreamReader; import java.net.MalformedURLException; -import java.net.URLConnection; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -1210,8 +1202,12 @@ public class RouteProvider { private RouteCalculationResult findOnlineRoute(RouteCalculationParams params) throws IOException, JSONException { OnlineRoutingHelper helper = params.ctx.getOnlineRoutingHelper(); String stringKey = params.mode.getRoutingProfile(); - List route = helper.calculateRouteOnline(helper.getEngineByKey(stringKey), getFullPathFromParams(params)); - if (!route.isEmpty()) { + OnlineRoutingEngine engine = helper.getEngineByKey(stringKey); + List route = null; + if (engine != null) { + route = helper.calculateRouteOnline(engine, getFullPathFromParams(params)); + } + if (!Algorithms.isEmpty(route)) { List res = new ArrayList<>(); for (LatLon pt : route) { WptPt wpt = new WptPt(); diff --git a/OsmAnd/src/net/osmand/plus/settings/backend/backup/OnlineRoutingSettingsItem.java b/OsmAnd/src/net/osmand/plus/settings/backend/backup/OnlineRoutingSettingsItem.java index 779a97d1df..fc71e8d183 100644 --- a/OsmAnd/src/net/osmand/plus/settings/backend/backup/OnlineRoutingSettingsItem.java +++ b/OsmAnd/src/net/osmand/plus/settings/backend/backup/OnlineRoutingSettingsItem.java @@ -7,8 +7,9 @@ import androidx.annotation.Nullable; import net.osmand.plus.OsmandApplication; import net.osmand.plus.R; -import net.osmand.plus.onlinerouting.OnlineRoutingEngine; -import net.osmand.plus.onlinerouting.OnlineRoutingEngine.EngineParameter; +import net.osmand.plus.onlinerouting.EngineParameter; +import net.osmand.plus.onlinerouting.OnlineRoutingFactory; +import net.osmand.plus.onlinerouting.engine.OnlineRoutingEngine; import net.osmand.plus.onlinerouting.OnlineRoutingHelper; import org.json.JSONException; @@ -93,8 +94,8 @@ public class OnlineRoutingSettingsItem extends CollectionSettingsItem Date: Fri, 15 Jan 2021 19:35:20 +0200 Subject: [PATCH 037/173] fix interpolation for alphabetic --- .../src/main/java/net/osmand/data/Building.java | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/data/Building.java b/OsmAnd-java/src/main/java/net/osmand/data/Building.java index 379b399fe9..67870ec383 100644 --- a/OsmAnd-java/src/main/java/net/osmand/data/Building.java +++ b/OsmAnd-java/src/main/java/net/osmand/data/Building.java @@ -116,14 +116,17 @@ public class Building extends MapObject { String sname = getName2(); if (getInterpolationType() == BuildingInterpolation.ALPHABETIC && num == numB) { - char ch = hno.charAt(hno.length() - 1); - char chF = fname.charAt(fname.length() - 1); - char chS = sname.charAt(sname.length() - 1); - if (chS < chF && chF < ch) { - return -1; + char hCh = hno.charAt(hno.length() - 1); + char fCh = fname.charAt(fname.length() - 1); + char sCh = sname.charAt(sname.length() - 1); + int h = Character.getNumericValue(hCh); + int f = Character.getNumericValue(fCh); + int s = Character.getNumericValue(sCh); + if (sCh > fCh) { + return ((float) h - f) / (((float) s - f)); } - if (chS > chF && ch < chF) { - return -1; + if (sCh < fCh) { + return ((float) f - h) / (((float) f - s)); } } if (num >= numB) { From c98ae20599bd3dbb12c34ca5ac67f732434662a7 Mon Sep 17 00:00:00 2001 From: vshcherb Date: Fri, 15 Jan 2021 18:47:02 +0100 Subject: [PATCH 038/173] Update Building.java --- .../main/java/net/osmand/data/Building.java | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/data/Building.java b/OsmAnd-java/src/main/java/net/osmand/data/Building.java index 67870ec383..de3d8d5148 100644 --- a/OsmAnd-java/src/main/java/net/osmand/data/Building.java +++ b/OsmAnd-java/src/main/java/net/osmand/data/Building.java @@ -116,17 +116,15 @@ public class Building extends MapObject { String sname = getName2(); if (getInterpolationType() == BuildingInterpolation.ALPHABETIC && num == numB) { - char hCh = hno.charAt(hno.length() - 1); - char fCh = fname.charAt(fname.length() - 1); - char sCh = sname.charAt(sname.length() - 1); - int h = Character.getNumericValue(hCh); - int f = Character.getNumericValue(fCh); - int s = Character.getNumericValue(sCh); - if (sCh > fCh) { - return ((float) h - f) / (((float) s - f)); + int hint = (int) hno.charAt(hno.length() - 1); + int fch = (int) fname.charAt(fname.length() - 1); + int sch = sname.charAt(sname.length() - 1); + if (fch == sch) { + return -1; } - if (sCh < fCh) { - return ((float) f - h) / (((float) f - s)); + float res = ((float) hint - fch) / (((float) sch - fch)); + if (res > 1 || res < -1) { + return -1; } } if (num >= numB) { From 1d16ff216ae67458999b54f0d8843187af681801 Mon Sep 17 00:00:00 2001 From: vshcherb Date: Fri, 15 Jan 2021 18:49:17 +0100 Subject: [PATCH 039/173] Update Building.java --- OsmAnd-java/src/main/java/net/osmand/data/Building.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/data/Building.java b/OsmAnd-java/src/main/java/net/osmand/data/Building.java index de3d8d5148..ec96ee35d6 100644 --- a/OsmAnd-java/src/main/java/net/osmand/data/Building.java +++ b/OsmAnd-java/src/main/java/net/osmand/data/Building.java @@ -114,8 +114,11 @@ public class Building extends MapObject { int numB = Algorithms.extractFirstIntegerNumber(fname); int numT = numB; String sname = getName2(); - - if (getInterpolationType() == BuildingInterpolation.ALPHABETIC && num == numB) { + if (getInterpolationType() == BuildingInterpolation.ALPHABETIC) { + if (num != numB) { + // currently not supported + return -1; + } int hint = (int) hno.charAt(hno.length() - 1); int fch = (int) fname.charAt(fname.length() - 1); int sch = sname.charAt(sname.length() - 1); From d29c271471919c0d7d4c113601c970ac915ecf70 Mon Sep 17 00:00:00 2001 From: Kseniia Date: Fri, 15 Jan 2021 21:13:18 +0200 Subject: [PATCH 040/173] fix interpolation for alphabetic --- OsmAnd-java/src/main/java/net/osmand/data/Building.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/data/Building.java b/OsmAnd-java/src/main/java/net/osmand/data/Building.java index ec96ee35d6..a1247c4b15 100644 --- a/OsmAnd-java/src/main/java/net/osmand/data/Building.java +++ b/OsmAnd-java/src/main/java/net/osmand/data/Building.java @@ -128,7 +128,8 @@ public class Building extends MapObject { float res = ((float) hint - fch) / (((float) sch - fch)); if (res > 1 || res < -1) { return -1; - } + } + return res; } if (num >= numB) { if (fname.contains("-") && sname == null) { From 85c0e66852f4ca6c49a6ce49fbd9c295654df96a Mon Sep 17 00:00:00 2001 From: Kseniia Date: Fri, 15 Jan 2021 21:27:42 +0200 Subject: [PATCH 041/173] fix interpolation for alphabetic --- OsmAnd-java/src/main/java/net/osmand/data/Building.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/data/Building.java b/OsmAnd-java/src/main/java/net/osmand/data/Building.java index a1247c4b15..0adacd411a 100644 --- a/OsmAnd-java/src/main/java/net/osmand/data/Building.java +++ b/OsmAnd-java/src/main/java/net/osmand/data/Building.java @@ -126,7 +126,7 @@ public class Building extends MapObject { return -1; } float res = ((float) hint - fch) / (((float) sch - fch)); - if (res > 1 || res < -1) { + if (res > 1 || res < 0) { return -1; } return res; From 8aa68a9ad21661771aa2883a7e87e5fbf8e152f8 Mon Sep 17 00:00:00 2001 From: Jurijus Date: Fri, 15 Jan 2021 07:48:48 +0000 Subject: [PATCH 042/173] Translated using Weblate (Lithuanian) Currently translated at 59.5% (2156 of 3618 strings) --- OsmAnd/res/values-lt/strings.xml | 47 ++++++++++++++++++++++---------- 1 file changed, 33 insertions(+), 14 deletions(-) diff --git a/OsmAnd/res/values-lt/strings.xml b/OsmAnd/res/values-lt/strings.xml index 90d507f617..65c711462f 100644 --- a/OsmAnd/res/values-lt/strings.xml +++ b/OsmAnd/res/values-lt/strings.xml @@ -321,8 +321,7 @@ Tam prireiks {1} MB pastoviam saugojimui. Įdiegti daugiau… Mažiausias dydis, kuriuo rodyti vektorinius žemėlapius. Mažiausias vektorinių žemėl. dydis - - Online OSM žemėlapis su nuotraukomis. + Online OSM žemėlapis su nuotraukomis. Įvyko klaida vykdant paiešką be interneto. Ieškoti adreso parsiųstuose žemėlapiuose Sistemos @@ -597,7 +596,7 @@ Tam prireiks {1} MB pastoviam saugojimui. Įvyko klaida skaičiuojant maršrutą Klaida: Sudarytas maršrutas yra tuščias Jūs pasiekėte savo kelionės tikslą - Koordinatės yra neteisingos! + Neteisingos koordinatės Grįžti į OsmAnd žemėlapį Uždaryti Įkeliami duomenys… @@ -782,7 +781,16 @@ Tam prireiks {1} MB pastoviam saugojimui. OsmAnd (OSM Automated Navigation Directions) \nOsmAnd yra atviro kodo programa naudojanti įvairius OpenStreetMap (OSM) duomenis. Visi žemėlapių duomenys (vektoriniai ar lakštiniai) gali būti išsaugoti telefone ir naudojami be interneto prieigos. OsmAnd taip pat gali pasiūlyti maršruto skaičiavimo paslaugas internete ar įrenginyje, bei balso nurodymus kelionei apskaičiuotu maršrutu. Dalis pagrindinių savybių: - Veikia be interneto (išsaugokite parsiųstus žemėlapius ar jų lakštus įrenginyje) - Kompaktiški vektoriniai viso pasaulio žemėlapiai - Parsisųskite šalies ar regiono žemėlapius tiesiai iš pačios propgramos - Galima sulieti kelis žemėlapop sluoksnius, tokius kaip GPX ar judėjimo istoriją, Lankytinas Vietas, mėgiamas vietas, kontūrų linijas, viešojo transporto stoteles, papildomus žemėlapius su pasirinktinai nustatomu permatomumo lygiu - Adresų ir LV paieška nenaudojant interneto - Vidutinio ilgio maršruto apskaičiavimas be interneto paslaugų - Automobilio, dviračio ir pėsčiojo režimai su: - pasirinktiniu dineos/nakties rodinio perjungimu - pasirinktiniu pagal judėjimo greitį automatiškai nustatomu mąsteliu - pasirinktine žemėlapio orientacija pagal kompaso arba judėjimo kryptį - pasirinktinis eismo juostų nurodymas, greičio ribojimų rodymas, įrašyti ar generuojami balsai Šios nemokamos OsmAnd versijos apribojimai: - Ribojamas žemėlapių parsiuntimų skaičius - Nėra prieigos prie iš Wikipedia parsiunčiamų LV OsmAnd yra aktyviai tobulinama ir mūsų projektas bei jo tolesnis progresas priklauso nuo finansinės paramos, kuri įgalina tolesnį vystymą ir naujų funkcijų kūrimą. Norime paskatinti jus nusipirkti OsmAnd+ programą arba finansiškai prisidėti prie specifinių funkcijų kūrimo arba šiaip paremti programą osmand.net svetainėje. OsmAnd - atviro kodo navigacijos programa su žemėlapiais - "OsmAnd+ (OSM Automated Navigation Directions) OsmAnd+ yra atviro kodo programa naudojanti visą spektrą OpenStreetMap (OSM) duomenų. Visi žemėlapiai (vektoriniai ar lakštiniai) gali būti išsaugoti telefono atmintyje ar atminties kortelėje ir naudojami be interneto prieigos. OsmAnd taip pat gali pasiūlyti maršruto skaičiavimo paslaugas internete ar įrenginyje, bei balso nurodymus kelionei apskaičiuotu maršrutu. OsmAnd+ yra mokama programos versiją, kurią pirkdami jūs remiate šį projektą, skiriate lėšas naujų funkcijų kūrimui ir tuo pačiu gaunate naujausius atnaujinimus. Savybės: - Veikia visiškai be interneto (išsaugokite parsiųstus žemėlapius ar jų lakštus įrenginyje) - Kompaktiški vektoriniai viso pasaulio žemėlapiai - Neribota galimybė parsisiųsti šalies ar regiono žemėlapius pačioje programoje - Parsiųstos Vikpedijos funkcionalumas (parsisiųskite LV iš Vikipedijos) puikiai tinkantis lankytinų objektų pažinimui - Galimybė sudėti kelis žemėlapių sluoksnius, pvz. GPX ar kelionės istoriją, Lankytinas, Išsaugotas vietas, kontūrų linijas, viešo transporto sustojimus, papildomus žemėlapius pasirenkant jų permatomumą - Adresų ir LV paieška nenaudojant interneto - Vidutinio ilgio maršrutų skaičiavimas nenaudojant interneto - Automobilio, dviračio ir pėsčiojo režimai su: - pasirenkamu automatiniu dienos/nakties vaizdo perjungimu - pasirenkamas prie judėjimo greičio priderinamas žemėlapio didinimas - pasirenkamas žemėlapio pasukimas pagal kompasą arba judėjimo kryptį - pasirenkamas eismo juostų keitimo nurodymų įjungimas, greičių apribojimo rodymas, įrašyti arba sintetiniai (TTS) balsai" + OsmAnd+ (OSM Automated Navigation Directions) +\n +\nOsmAnd+ yra atviro kodo programa naudojanti visą spektrą OpenStreetMap (OSM) duomenų. Visi žemėlapiai (vektoriniai ar lakštiniai) gali būti išsaugoti telefono atmintyje ar atminties kortelėje ir naudojami be interneto prieigos. OsmAnd taip pat gali pasiūlyti maršruto skaičiavimo paslaugas internete ar įrenginyje, bei balso nurodymus kelionei apskaičiuotu maršrutu. +\n +\nOsmAnd+ yra mokama programos versiją, kurią pirkdami jūs remiate šį projektą, skiriate lėšas naujų funkcijų kūrimui ir tuo pačiu gaunate naujausius atnaujinimus. +\n +\nKeletas pagrindinių savybių: +\n- Veikia visiškai be interneto (išsaugokite parsiųstus žemėlapius ar jų lakštus įrenginyje) +\n- Kompaktiški vektoriniai viso pasaulio žemėlapiai - Neribota galimybė parsisiųsti šalies ar regiono žemėlapius pačioje programoje - Parsiųstos Vikpedijos funkcionalumas (parsisiųskite LV iš Vikipedijos) puikiai tinkantis lankytinų objektų pažinimui - Galimybė sudėti kelis žemėlapių sluoksnius, pvz. GPX ar kelionės istoriją, Lankytinas, Išsaugotas vietas, kontūrų linijas, viešo transporto sustojimus, papildomus žemėlapius pasirenkant jų permatomumą - Adresų ir LV paieška nenaudojant interneto - Vidutinio ilgio maršrutų skaičiavimas nenaudojant interneto - Automobilio, dviračio ir pėsčiojo režimai su: - pasirenkamu automatiniu dienos/nakties vaizdo perjungimu - pasirenkamas prie judėjimo greičio priderinamas žemėlapio didinimas - pasirenkamas žemėlapio pasukimas pagal kompasą arba judėjimo kryptį - pasirenkamas eismo juostų keitimo nurodymų įjungimas, greičių apribojimo rodymas, įrašyti arba sintetiniai (TTS) balsai +\n Pasiimti automobilį iš stovėjimo vietos Pridėti paskutinį tarpinį tikslą Nustatyti pirmą tarpinį tikslą @@ -858,7 +866,7 @@ Tam prireiks {1} MB pastoviam saugojimui. Pasirinkti vaizdo įrašo formatą. Vaizdo įrašo formatas Naudoti sistemos vaizdo įrašymo įrankį. - Nuadoti kitą įrašymo įrankį + Naudoti sisteminį įrašymo įrankį Konfigūruoti vaizdo ir garso parametrus. Garso/vaizdo nustatymai Įrašymo klaida @@ -874,7 +882,7 @@ Tam prireiks {1} MB pastoviam saugojimui. Įrašo neina pagroti Ištrinti įrašą Groti - "Įrašas %1$s %3$s %2$s" + Įrašas %1$s %3$s %2$s Įrašas Įrašyti Audio užrašai @@ -905,7 +913,7 @@ Tam prireiks {1} MB pastoviam saugojimui. patikrinta nepatikrinta Žemėlapis - Pasirinkti paprašius + Pasirinkti paprašius\? Atvykimo laikas GPS informacija Kalnų šešėlių sluoksnis @@ -926,7 +934,7 @@ Tam prireiks {1} MB pastoviam saugojimui. liko %1$d failų(-ai) Liko parsiųsti %1$d failus(-ų) Pilna versija - Atšaukti maršrutą + Atšaukti maršrutą\? Stabdyti navigaciją Išvalyti tikslą Šiuo metu Wi-Fi neprijungta. Ar norite tęsti siuntimąsį interneto ryšiu? @@ -936,7 +944,7 @@ Tam prireiks {1} MB pastoviam saugojimui. Naudoti Kalmano filtrą Kontūrinės linijos Palaukite kol dabartinė užduotis bus baigta - Parsiunčiama + Parsiunčiama… OSM pakeitimų failas sėkmingai sugeneruotas %1$s OSM pakeitimų atsarginės kopijos išsaugoti nepavyko Išsaugoti vietinę OSM pakeitimų kopiją @@ -1365,7 +1373,7 @@ Tam prireiks {1} MB pastoviam saugojimui. Nurodykite jūsų proksi serverio pavadinimą (pvz., 127.0.0.1). Proksi serverio portas Nurodykite jūsų proksi serverio porto numerį (pvz., 8118). - "Konfigūruoti HTTP proksi serverį visoms tinklo užklausoms." + Konfigūruoti HTTP proksi serverį visoms tinklo užklausoms. Išjungta Įjungta Redaguoti grupę @@ -1418,7 +1426,7 @@ Tam prireiks {1} MB pastoviam saugojimui. Aplankyti po Aplankyti iki Platuma %1$s -Ilguma %2$s +\nIlguma %2$s Dažni klausimai, paskutiniai keitimai ir kita. Navigacijos nustatymai Pagrindiniai nutatymai @@ -1559,7 +1567,7 @@ Ilguma %2$s GPX plotis Numatytoji (13) Numatytoji (skaidri žalsvai mėlyna) - "Ar jums patinka OsmAnd?" + Ar jums patinka OsmAnd\? Įvertinkite programėlę Įvertinkite OsmAnd Google Play puslapyje Pasakykite, kodėl. @@ -2186,7 +2194,7 @@ Tai yra puikus būdas paremti OsmAnd ir OSM, jei jie jums patinka. Jokio apatnio sluoksnio Prenumeruokite mūsų naujienlaiškį apie programėlės nuolaidas ir gaukite dar 3 žemėlapio parsiuntimus! Jūrlapių komplektas su gylio kontūrų linijomis ir jūriniais taškais. - Ačiū kad pirkote jūrlapius su gylio kontūrais! + Ačiū kad pirkote jūrlapius su gylio kontūrais Jūrlapiai su gylio kontūrais Pietų pusrutulio jūrlapiai su gylių taškais Šiaurės pusrutulio jūrlapiai su gylių taškais @@ -2638,7 +2646,7 @@ Tai yra puikus būdas paremti OsmAnd ir OSM, jei jie jums patinka. Gaukite %1$d %2$s su %3$s nuolaida. Nutraukti prenumeratą Pavyzdys - "UTM Standartas" + UTM Standartas Pakeisti nustatymą Kalba ir išvestis Atstatyti numatytąsias reikšmes @@ -2757,4 +2765,15 @@ Tai yra puikus būdas paremti OsmAnd ir OSM, jei jie jums patinka. Pridėti nuotrauką Sukurti naują paskyrą Aš jau turiu paskyrą + Potipis + API raktas + Patikrinti maršruto apskaičiavimą + Dviratis + Automobilis + Įvyko klaida, patikrinkite paametrus + Kopijuoti adresą + Folderiai + Pasirinkite folderį + Pasirinkite folderį arba sukurkite naują + Siųsti į OpenStreetMap \ No newline at end of file From e40870b91549ff226b487beca6dd3ae1d3a66b6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?O=C4=9Fuz=20Ersen?= Date: Fri, 15 Jan 2021 10:36:38 +0000 Subject: [PATCH 043/173] Translated using Weblate (Turkish) Currently translated at 100.0% (3618 of 3618 strings) --- OsmAnd/res/values-tr/strings.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/OsmAnd/res/values-tr/strings.xml b/OsmAnd/res/values-tr/strings.xml index 7f0578ffc7..ee5e25124a 100644 --- a/OsmAnd/res/values-tr/strings.xml +++ b/OsmAnd/res/values-tr/strings.xml @@ -3969,4 +3969,9 @@ Klasör seç Klasör seçin veya yeni bir tane ekleyin Boş + Aralıklara göre analiz et (bölme aralığı) + OpenStreetMap\'e yükle + Yolu düzenle + Yolu yeniden adlandır + Klasörü değiştir \ No newline at end of file From 3d20e5be2c137cd6859a091826754db833fa2be2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Babos=20G=C3=A1bor?= Date: Fri, 15 Jan 2021 13:36:23 +0000 Subject: [PATCH 044/173] Translated using Weblate (Hungarian) Currently translated at 100.0% (3618 of 3618 strings) --- OsmAnd/res/values-hu/strings.xml | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/OsmAnd/res/values-hu/strings.xml b/OsmAnd/res/values-hu/strings.xml index 9c1aeff077..d893dcf47e 100644 --- a/OsmAnd/res/values-hu/strings.xml +++ b/OsmAnd/res/values-hu/strings.xml @@ -74,8 +74,8 @@ Aszinkron OSM szerkesztés: Eszközön tárolt OSM POI-k, jegyzetek Az eszköz adatbázisában tárolt OSM POI-k és jegyzetek megjelenítése, kezelése. - Online útvonalrögzítés sűrűségének megadása. - Online útvonalrögzítés sűrűsége + Online útvonalrögzítés intervallumának megadása. + Online útvonalrögzítés intervalluma A webcímet a következő paraméterszintaxissal kell megadni: lat={0}, lon={1}, timestamp={2}, hdop={3}, altitude={4}, speed={5}, bearing={6}. Online útvonalrögzítés webcíme Nyomvonal naplózása GPX-widgettel vagy az Útvonalrögzítés beállításokban. @@ -404,7 +404,7 @@ másodperc perc Háttérszolgáltatás felébredési intervalluma: - GPS felébredési időköz + GPS felébredési intervallum Háttérszolgáltatás helymeghatározási módszere: Helymeghatározási szolgáltatás A pozíciód követése kikapcsolt képernyőnél. @@ -545,8 +545,8 @@ Beállítások Jelenlegi nyomvonal mentése GPX fájlba most. Jelenlegi nyomvonal mentése - Adja meg a naplózási időközt a navigáció alatti útvonalrögzítéshez - Rögzítési sűrűség navigáció közben + A navigáció alatti útvonalrögzítéshez adja meg a naplózási intervallumot + Naplózási intervallum navigáció közben Navigáció közben a GPX útvonal automatikusan mentésre kerül az OsmAnd „tracks” könyvtárába. Térképcsempe újratöltése Célpont @@ -752,7 +752,7 @@ Kicsi útvonaltérkép Képernyőzár Képernyő lezárva - GPS bekapcsolási időköz: + Felébredési intervallum megadása: Feloldásához koppintson a lakat ikonra Feloldás Futtatás\n háttérben @@ -1235,7 +1235,7 @@ Megtart Leállítás GPS háttér mód engedélyezése - GPS felébresztési intervallum + GPS felébredési intervallum Leállítod a GPS háttér módot? A térképfeliratok előnyben részesített nyelve (ha nem elérhető, angolul vagy a helyi nyelven fogja mutatni). Térkép előnyben részesített nyelve @@ -1301,9 +1301,9 @@ Időtartam Távolság Mindig kérdezzen rá - Általános naplózási időköz + Általános naplózási intervallum A GPX-fájlba történő általános pozíciónaplózás be- és kikapcsolható a térképen lévő GPX-naplózó widgettel. - Rögzítési időköz + Naplózási intervallum Busz-, trolibusz-, ingajárat-útvonalak Sebességkorlátozás Határellenőrzés @@ -1951,7 +1951,7 @@ Okos automatikus bejelentés Figyelmeztetés, csak ha a célpont iránya megváltozott. Automatikus bejelentések időköz - Legkisebb időköz a bejelentések között. + A bejelentések közötti legkisebb időköz. magyar (magázó) Jelenlegi nyomvonal Jelölő helyének módosítása @@ -3641,7 +3641,7 @@ Az alapértelmezés visszaállítása a sorrendet visszaállítja a telepítés utáni alapértelmezett állapotba. A kisegítő lehetőségek a készülékén az Android rendszerben ki vannak kapcsolva. Idő puffer - Naplózási időköz + Rögzítési intervallum Webcím Adja meg a webcímet a következő paraméter szintaxissal: szélesség={0}, hosszúság={1}, időbélyeg={2}, pontosság={3}, magasság={4}, sebesség={5}, irány={6}. Értesítés @@ -3962,4 +3962,9 @@ Mappa kijelölése Mappa kijelölése vagy új hozzáadása Üres + Intervallumonkénti elemzés (felosztási intervallumok) + Feltöltés az OpenStreetMapre + Nyomvonal szerkesztése + Nyomvonal átnevezése + Mappa módosítása \ No newline at end of file From e28dc59f04ef85e4968f9ae663106522f5839b01 Mon Sep 17 00:00:00 2001 From: Ihor Hordiichuk Date: Fri, 15 Jan 2021 09:32:05 +0000 Subject: [PATCH 045/173] Translated using Weblate (Ukrainian) Currently translated at 100.0% (3618 of 3618 strings) --- OsmAnd/res/values-uk/strings.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/OsmAnd/res/values-uk/strings.xml b/OsmAnd/res/values-uk/strings.xml index 3bd300c0e7..2738eda283 100644 --- a/OsmAnd/res/values-uk/strings.xml +++ b/OsmAnd/res/values-uk/strings.xml @@ -3967,4 +3967,9 @@ Вибрати теку Виберіть теку або додайте нову Порожньо + Аналіз за інтервалами (розділений інтервал) + Відвантажити на OpenStreetMap + Редагувати трек + Перейменувати трек + Змінити теку \ No newline at end of file From bde1f99ac638399c04f344c7807708ba06d30733 Mon Sep 17 00:00:00 2001 From: Yaron Shahrabani Date: Fri, 15 Jan 2021 09:10:02 +0000 Subject: [PATCH 046/173] Translated using Weblate (Hebrew) Currently translated at 99.9% (3617 of 3618 strings) --- OsmAnd/res/values-iw/strings.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/OsmAnd/res/values-iw/strings.xml b/OsmAnd/res/values-iw/strings.xml index e45fce6969..44f2c8c034 100644 --- a/OsmAnd/res/values-iw/strings.xml +++ b/OsmAnd/res/values-iw/strings.xml @@ -3971,4 +3971,9 @@ בחירת תקינה נא לבחור תיקייה או להוסיף אחת חדשה ריק + ניתוח לפי מרווחים (פיצול מרווחים) + העלאה ל־OpenStreetMap + עריכת מסלול + שינוי שם מסלול + החלפת תיקייה \ No newline at end of file From 50aa51890d2ba446770d23ce0d7091036dc5a0ad Mon Sep 17 00:00:00 2001 From: Jukefox Date: Fri, 15 Jan 2021 16:22:04 +0000 Subject: [PATCH 047/173] Translated using Weblate (Finnish) Currently translated at 64.2% (2323 of 3618 strings) --- OsmAnd/res/values-fi/strings.xml | 141 +++++++++++++++++++++++++++++-- 1 file changed, 136 insertions(+), 5 deletions(-) diff --git a/OsmAnd/res/values-fi/strings.xml b/OsmAnd/res/values-fi/strings.xml index 0b910710b9..95df84bf3e 100644 --- a/OsmAnd/res/values-fi/strings.xml +++ b/OsmAnd/res/values-fi/strings.xml @@ -172,7 +172,7 @@ Globaalit sovellusasetukset OSM käyttäjänimesi Tarvitaan openstreetmap.org ehdotuksia varten - OSM salasanasi + Salasana Ei ole tarpeeksi tilaa jotta voitaisiin ladata %1$s MB (vapaana: %2$s). Lataa {0} tiedosto(a)\? \n{1} Mt (/ {2} Mt) käytetään. @@ -1871,7 +1871,7 @@ Jos pidät OsmAndista ja OSMsta ja haluat tukea niitä, on tämä täydellinen t KP:n muutos Virheellinen formaatti: %s Älykäs reitin uudelleen laskenta - Laske uudelleen ainoastaan reitin alkuosa pidemmille matkoille. + Laskee uudelleen ainoastaan reitin alkuosan. Hyödyllinen pitkille matkoille. Arvostele tämä sovellutus Kerro meille miksi. Ole hyvä ja kerro meille mitä haluaisit muuttaa tässä sovelluksessa. @@ -2421,7 +2421,7 @@ Jos pidät OsmAndista ja OSMsta ja haluat tukea niitä, on tämä täydellinen t Tallenna ensin profiiliin tehdyt muutokset Poista profiili Haluatko varmasti poistaa profiilin \"%s\" - Valitse pohjaprofiili + Valitse pohjaprofiili jolla aloitetaan Auto, kuorma-auto, moottoripyörä Maastopyörä, mopo, hevonen Kävely, vaellus, juokseminen @@ -2523,7 +2523,7 @@ Jos pidät OsmAndista ja OSMsta ja haluat tukea niitä, on tämä täydellinen t Suosikit Tilaus - OsmAnd Live OsmAnd ostot - Kartan symboliikkaopas + Kartan symboliikkaopas. Navigointiprofiilit baškiiri Voit siirtää kohteita vain tämän kategorian sisällä. @@ -2565,7 +2565,7 @@ Jos pidät OsmAndista ja OSMsta ja haluat tukea niitä, on tämä täydellinen t Viikko Suuntima Suunnittele reitti - Viimeksi muokatut + Viimeksi muokattu Luo uusi reitti Valitse väri Valitse kuvake @@ -2608,4 +2608,135 @@ Jos pidät OsmAndista ja OSMsta ja haluat tukea niitä, on tämä täydellinen t Piilota julkinen liikenne Symbolit Korvaa toinen kohde tällä. + Kansiot + Valitse kansio + Valitse kansio tai lisää uusi + Tyhjä + Analysoi välein (jaettu välein) + Lähetä OpenStreetMappiin + Muokkaa jälkeä + Uudelleennimeä jälki + Muuta kansiota + Valitse leveys + Valitse kuinka usein merkit näytetään välimatkalle tai ajalle jäljellä. + Valitse mieluisin jakoasetus: ajan tai välimatkan perusteella. + Mukautettu + Suuntanuolet + Kiinteä + Tuo jälki + Avaa olemassaoleva jälki + Lisää jälkeen + Näytä alku- ja lopetusikonit + Laita työskentelypäivät jatkaaksesi + Poista lähin määränpääpiste + Zoomaa äänenvoimakkuusnäppäimillä + Hallitse kartan zoomaustasoa laitteen äänenvoimakkuusnäppäimillä. + Anna nimi pisteelle + Poistaa seuraavan määränpään reitiltäsi. Jos se on viimeinen määränpää niin navigointi loppuu. + Lataa Wikipedia-kartat + Löydä tiedoa kiinnostuksen kohteista Wikipediasta, offline taskuoppaasta joka sisältää artikkeleita paikoista ja sijainneista. + Lisätty piste ei tule näkymään kartalla koska valittu ryhmä on piilotettu, löydät sen \"%s\" sisältä. + Enduro-moottoripyörä + Skootteri + Pyörätuoli + Pyörätuoli eteenpäin + Suljettu OSM Note + Koko jälki + Navigaatioprofiili + Valitse jälkitiedosto johon uusi segmentti lisätään. + Seuraavaksi laita jälkesi lähimpään sallittuun tiehen yhdellä navigaatioprofiileistasi jotta voit käyttää tätä asetusta. + Valitse miten pisteet yhdistetään, suoralla viivalla tai laskemalla reitti niiden välillä alla määritellyllä tavalla. + Jos suunta on päinvastainen + Valitse avattava jälkitiedosto. + Tehty + Ylikirjoita jälki + Tallenna uutena jälkenä + Päinvastainen reitti + Koko jälki lasketaan uudelleen käyttäen valittua profiilia. + Haluatko varmasti menettää kaikki muutokset suunnitellusta reitistä\? + Tallenna jälkitiedostona + Seuraa jälkeä + Valitse seurattava jälkitiedosto + Tallenna uutena jälkitiedostona + Lisää jälkitiedostoon + Jäljet + Jäljet + Jäljet + Lisää jäljen väyläpiste + Matkan nauhoitus + Lisää jälkitiedostoja + Tuo tai nauhoita jälkitiedostoa + Lisää jäljen väyläpiste + Jäljen reitti + Kirjaa jälki GPX tiedostoon + Tiedostonnimi + %s ratatiedostoa valittu + Tauota matkan nauhoitus + Jatka matkan nauhoitusta + Tee uudelleen + Avaa tallennettu rata + on tallennettu + Lisää ainakin kaksi pistettä. + Viimeksi muokattu + Tilaus veloitetaan valitun aikajakson mukaan. Peruuta se omassa AppGalleryssä milloin tahansa. + Sinun AppGallery-tili veloitetaan maksun vahvistuksen jälkeen. +\n +\nTilaus jatkuu automaattisesti jos sitä ei peruuteta ennen uusintapäivämäärää. Tilisi veloitetaan uusimisajalta (1 kuukausi/3 kuukautta/1 vuosi) vain uusintapäivänä. +\n +\nVoit muokata ja peruuttaa tilauksiasi AppGallery-asetuksissasi. + Vältä kävelyteitä + Vältä kävelyteitä + Kirjaudu sisään käyttäen OAuth käyttääksesi osmedit-ominaisuuksia + Kirjaudu käyttämällä OAuth + Tyhjennä OpenStreetMap OAuth token + Kirjautunut ulos + Lisää ainakin kaksi pistettä + Nämä laajennusasetukset ovat globaaleja ja vaikuttavat kaikkiin profiileihin + %1$s — %2$s + Väli + Käytä kaksivaiheista A*-reititys algoritmiä + Graafi + %1$s data on käytettävissä ainoastaan teillä, laske reitti käyttäen \"Reitti pisteiden välillä\" nähdäksesi graafit. + Odota. +\nGraafi on käytössä reitin uudelleenlaskemisen jälkeen. + Paikalliset kartat + Kirjaudu sisään OpenStreetMap.org + Kirjaudu sisään OpenStreetMap + Kirjaudu käyttäen OpenStreetMap + Sinun pitää kirjautua lähettääksesi uusia tai päivittääksesi tekemäsi muutokset. +\n +\nVoit kirjautua turvallisella OAuth-tavalla tai kirjautua salasanalla. + Käytä kirjautumista ja salasanaa + Tili + Paina nappulaa korjataksesi tilauksesi maksutavan Google Playssä. + Kirjaudu + Muokkaa tilausta + OsmAnd Live-tilaus on vanhentunut + OsmAnd Live-tilaus on pysäytetty + OsmAnd Live-tilaus on pidossa + Sulje OSM Note + Kommentoi OSM Notea + Voit kirjautua turvallisesti käyttämällä turvallista OAuth-tapaa tai kirjaudu tunnuksellasi ja salasanallasi. + Lisää kuva + Rekistöröidy +\nOpenPlaceReviews.org-sivulla + Kuvat ovat peräisin OpenPlaceReviews.org-sivun vapaasta dataprojektista. Jos haluat lähettää omia kuvia, sinun pitää luoda tunnukset heidän sivulla. + Luo uudet tunnukset + Minulla on jo tunnukset + Hakuhistoria + Kajakki + Moottorivene + Kuvaa ei voitu lähettää, yritä uudelleen myöhemmin + Valitse kuva + Resurssit + Likimääräinen tiedostonkoko + Valitse data joka viedään tiedostoon. + Tarvitaan tuontiin + Laitteellasi on vain %1$s vapaata tallennustilaa. Vapauta tilaa tai valitse vähemmän vietäviä kohteita. + Ei ole tarpeeksi tilaa + Jaa jälkeen + Jaa ennen + Kävely + Polkupyörä + Auto \ No newline at end of file From f0d54c62178765ba7f2e651a57e1364863a884d5 Mon Sep 17 00:00:00 2001 From: jensMF Date: Sat, 16 Jan 2021 01:15:49 +0100 Subject: [PATCH 048/173] fixed xml schema by changing the order of wpt rte and trk and adding the osmand namespace to the route and types extensions --- .../main/java/net/osmand/GPXUtilities.java | 39 +++++++++---------- .../net/osmand/binary/StringBundleWriter.java | 2 +- 2 files changed, 20 insertions(+), 21 deletions(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/GPXUtilities.java b/OsmAnd-java/src/main/java/net/osmand/GPXUtilities.java index bee9fa2b19..ede3b6f8cf 100644 --- a/OsmAnd-java/src/main/java/net/osmand/GPXUtilities.java +++ b/OsmAnd-java/src/main/java/net/osmand/GPXUtilities.java @@ -1822,6 +1822,25 @@ public class GPXUtilities { } serializer.endTag(null, "metadata"); + for (WptPt l : file.points) { + serializer.startTag(null, "wpt"); //$NON-NLS-1$ + writeWpt(format, serializer, l); + serializer.endTag(null, "wpt"); //$NON-NLS-1$ + } + + for (Route track : file.routes) { + serializer.startTag(null, "rte"); //$NON-NLS-1$ + writeNotNullText(serializer, "name", track.name); + writeNotNullText(serializer, "desc", track.desc); + + for (WptPt p : track.points) { + serializer.startTag(null, "rtept"); //$NON-NLS-1$ + writeWpt(format, serializer, p); + serializer.endTag(null, "rtept"); //$NON-NLS-1$ + } + writeExtensions(serializer, track); + serializer.endTag(null, "rte"); //$NON-NLS-1$ + } for (Track track : file.tracks) { if (!track.generalTrack) { @@ -1844,26 +1863,6 @@ public class GPXUtilities { } } - for (Route track : file.routes) { - serializer.startTag(null, "rte"); //$NON-NLS-1$ - writeNotNullText(serializer, "name", track.name); - writeNotNullText(serializer, "desc", track.desc); - - for (WptPt p : track.points) { - serializer.startTag(null, "rtept"); //$NON-NLS-1$ - writeWpt(format, serializer, p); - serializer.endTag(null, "rtept"); //$NON-NLS-1$ - } - writeExtensions(serializer, track); - serializer.endTag(null, "rte"); //$NON-NLS-1$ - } - - for (WptPt l : file.points) { - serializer.startTag(null, "wpt"); //$NON-NLS-1$ - writeWpt(format, serializer, l); - serializer.endTag(null, "wpt"); //$NON-NLS-1$ - } - writeExtensions(serializer, file); serializer.endTag(null, "gpx"); //$NON-NLS-1$ diff --git a/OsmAnd-java/src/main/java/net/osmand/binary/StringBundleWriter.java b/OsmAnd-java/src/main/java/net/osmand/binary/StringBundleWriter.java index 2f607aef3a..d3c151c12a 100644 --- a/OsmAnd-java/src/main/java/net/osmand/binary/StringBundleWriter.java +++ b/OsmAnd-java/src/main/java/net/osmand/binary/StringBundleWriter.java @@ -20,7 +20,7 @@ public abstract class StringBundleWriter { public void writeBundle() { for (Entry> entry : bundle.getMap().entrySet()) { - writeItem(entry.getKey(), entry.getValue()); + writeItem("osmand:" + entry.getKey(), entry.getValue()); } } } From 410f01d21ec11157fb9b39a2091f93db19cfae86 Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Sat, 16 Jan 2021 17:05:45 +0200 Subject: [PATCH 049/173] Minor fixes --- .../plus/mapcontextmenu/MenuBuilder.java | 127 ++++++++++-------- .../builders/AmenityMenuBuilder.java | 8 +- 2 files changed, 72 insertions(+), 63 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MenuBuilder.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MenuBuilder.java index 64f2e0668d..41a7abbf27 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MenuBuilder.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MenuBuilder.java @@ -102,6 +102,8 @@ public class MenuBuilder { public static final float SHADOW_HEIGHT_TOP_DP = 17f; public static final int TITLE_LIMIT = 60; protected static final String[] arrowChars = new String[] {"=>", " - "}; + protected final String NEAREST_WIKI_KEY = "nearest_wiki_key"; + protected final String NEAREST_POI_KEY = "nearest_poi_key"; protected MapActivity mapActivity; protected MapContextMenu mapContextMenu; @@ -119,9 +121,6 @@ public class MenuBuilder { private boolean showOnlinePhotos = true; protected List nearestWiki = new ArrayList<>(); protected List nearestPoi = new ArrayList<>(); - protected final String keyWiki = "nearest_wiki"; - protected final String keyPoi = "nearest_poi"; - private PoiUIFilter poiFilter; private List menuPlugins = new ArrayList<>(); @Nullable private CardsRowBuilder onlinePhotoCardsRow; @@ -358,13 +357,13 @@ public class MenuBuilder { protected void buildNearestWikiRow(View view) { buildNearestRow(view, nearestWiki, processNearestWiki(), - R.drawable.ic_action_wikipedia, app.getString(R.string.wiki_around), keyWiki); + R.drawable.ic_action_wikipedia, app.getString(R.string.wiki_around), NEAREST_WIKI_KEY); } protected void buildNearestPoiRow(View view) { if (amenity != null) { buildNearestRow(view, nearestPoi, processNearestPoi(), AmenityMenuController.getRightIconId(amenity), - app.getString(R.string.speak_poi) + " \"" + AmenityMenuController.getTypeStr(amenity) + "\" (" + nearestPoi.size() + ")", keyPoi); + app.getString(R.string.speak_poi) + " \"" + AmenityMenuController.getTypeStr(amenity) + "\" (" + nearestPoi.size() + ")", NEAREST_POI_KEY); } } @@ -1161,8 +1160,8 @@ public class MenuBuilder { return new CollapsableView(textView, this, collapsed); } - protected CollapsableView getCollapsableView(Context context, boolean collapsed, List nearestAmenities, final String amenityKey) { - LinearLayout view = (LinearLayout) buildCollapsableContentView(context, collapsed, true); + protected CollapsableView getCollapsableView(Context context, boolean collapsed, List nearestAmenities, String nearestPoiType) { + LinearLayout view = buildCollapsableContentView(context, collapsed, true); for (final Amenity poi : nearestAmenities) { TextViewEx button = buildButtonInCollapsableView(context, false, false); @@ -1184,58 +1183,52 @@ public class MenuBuilder { }); view.addView(button); } - - final PoiUIFilter filter; - if (amenityKey.equals(keyPoi)) { - filter = poiFilter; - } else if (amenityKey.equals(keyWiki)) { - filter = app.getPoiFilters().getTopWikiPoiFilter(); - } else { - filter = null; - } + PoiUIFilter filter = getPoiFilterForType(nearestPoiType); if (filter != null) { - TextViewEx buttonShowAll = buildButtonInCollapsableView(context, false, false); - buttonShowAll.setText(app.getString(R.string.shared_string_show_on_map)); - buttonShowAll.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - final PoiFiltersHelper ph = app.getPoiFilters(); - ph.clearSelectedPoiFilters(); - ph.addSelectedPoiFilter(filter); - final QuickSearchToolbarController controller = new QuickSearchToolbarController(); - controller.setTitle(filter.getName()); - controller.setOnBackButtonClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - mapActivity.showQuickSearch(filter); - } - }); - controller.setOnTitleClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - mapActivity.showQuickSearch(filter); - } - }); - controller.setOnCloseButtonClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - ph.clearSelectedPoiFilters(); - mapActivity.hideTopToolbar(controller); - mapActivity.refreshMap(); - } - }); - mapContextMenu.hideMenues(); - mapActivity.showTopToolbar(controller); - mapActivity.refreshMap(); - } - }); - - view.addView(buttonShowAll); + view.addView(createShowAllButton(context, filter)); } - return new CollapsableView(view, this, collapsed); } + private View createShowAllButton(Context context, final PoiUIFilter filter) { + TextViewEx buttonShowAll = buildButtonInCollapsableView(context, false, false); + buttonShowAll.setText(app.getString(R.string.shared_string_show_on_map)); + buttonShowAll.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + final PoiFiltersHelper poiFiltersHelper = app.getPoiFilters(); + poiFiltersHelper.clearSelectedPoiFilters(); + poiFiltersHelper.addSelectedPoiFilter(filter); + final QuickSearchToolbarController controller = new QuickSearchToolbarController(); + controller.setTitle(filter.getName()); + controller.setOnBackButtonClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + mapContextMenu.show(); + } + }); + controller.setOnTitleClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + mapActivity.showQuickSearch(filter); + } + }); + controller.setOnCloseButtonClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + poiFiltersHelper.clearSelectedPoiFilters(); + mapActivity.hideTopToolbar(controller); + mapActivity.refreshMap(); + } + }); + mapContextMenu.hideMenues(); + mapActivity.showTopToolbar(controller); + mapActivity.refreshMap(); + } + }); + return buttonShowAll; + } + protected LinearLayout buildCollapsableContentView(Context context, boolean collapsed, boolean needMargin) { final LinearLayout view = new LinearLayout(context); view.setOrientation(LinearLayout.VERTICAL); @@ -1299,17 +1292,33 @@ public class MenuBuilder { protected boolean processNearestPoi() { if (showNearestPoi && latLon != null && amenity != null) { - PoiCategory pc = amenity.getType(); - PoiType pt = pc.getPoiTypeByKeyName(amenity.getSubType()); - poiFilter = app.getPoiFilters().getFilterById(PoiUIFilter.STD_PREFIX + pt.getKeyName()); - if (poiFilter != null) { - nearestPoi = getSortedAmenities(poiFilter, latLon); + PoiUIFilter filter = getPoiFilterForAmenity(amenity); + if (filter != null) { + nearestPoi = getSortedAmenities(filter, latLon); return true; } } return false; } + private PoiUIFilter getPoiFilterForType(String nearestPoiType) { + if (NEAREST_POI_KEY.equals(nearestPoiType)) { + return getPoiFilterForAmenity(amenity); + } else if (NEAREST_WIKI_KEY.equals(nearestPoiType)) { + return app.getPoiFilters().getTopWikiPoiFilter(); + } + return null; + } + + private PoiUIFilter getPoiFilterForAmenity(Amenity amenity) { + if (amenity != null) { + PoiCategory category = amenity.getType(); + PoiType poiType = category.getPoiTypeByKeyName(amenity.getSubType()); + return app.getPoiFilters().getFilterById(PoiUIFilter.STD_PREFIX + poiType.getKeyName()); + } + return null; + } + private List getSortedAmenities(PoiUIFilter filter, final LatLon latLon) { QuadRect rect = MapUtils.calculateLatLonBbox(latLon.getLatitude(), latLon.getLongitude(), 250); diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/AmenityMenuBuilder.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/AmenityMenuBuilder.java index 8b0d02546a..54e04071fa 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/AmenityMenuBuilder.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/AmenityMenuBuilder.java @@ -684,18 +684,18 @@ public class AmenityMenuBuilder extends MenuBuilder { if (processNearestWiki() && nearestWiki.size() > 0) { AmenityInfoRow wikiInfo = new AmenityInfoRow( - keyWiki, R.drawable.ic_plugin_wikipedia, null, + NEAREST_WIKI_KEY, R.drawable.ic_plugin_wikipedia, null, app.getString(R.string.wiki_around) + " (" + nearestWiki.size() + ")", - null, true, getCollapsableView(view.getContext(), true, nearestWiki, keyWiki), + null, true, getCollapsableView(view.getContext(), true, nearestWiki, NEAREST_WIKI_KEY), 0, false, false, false, 1000, null, false, false, false, 0); buildAmenityRow(view, wikiInfo); } if (processNearestPoi() && nearestPoi.size() > 0) { AmenityInfoRow poiInfo = new AmenityInfoRow( - keyPoi, AmenityMenuController.getRightIconId(amenity), null, + NEAREST_POI_KEY, AmenityMenuController.getRightIconId(amenity), null, app.getString(R.string.speak_poi) + " \"" + AmenityMenuController.getTypeStr(amenity) + "\" (" + nearestPoi.size() + ")", - null, true, getCollapsableView(view.getContext(), true, nearestPoi, keyPoi), + null, true, getCollapsableView(view.getContext(), true, nearestPoi, NEAREST_POI_KEY), 0, false, false, false, 1000, null, false, false, false, 0); buildAmenityRow(view, poiInfo); } From ade94c9932149c43f995559a54c20a8100a52b66 Mon Sep 17 00:00:00 2001 From: max-klaus Date: Sat, 16 Jan 2021 22:02:46 +0300 Subject: [PATCH 050/173] Move tracker to gms location --- OsmAnd-telegram/AndroidManifest.xml | 11 + OsmAnd-telegram/build.gradle | 2 + .../osmand/telegram/TelegramApplication.kt | 2 - .../telegram/TelegramLocationProvider.kt | 202 +++--------------- .../net/osmand/telegram/TelegramService.kt | 142 ++++++------ .../net/osmand/telegram/TelegramSettings.kt | 1 - 6 files changed, 121 insertions(+), 239 deletions(-) diff --git a/OsmAnd-telegram/AndroidManifest.xml b/OsmAnd-telegram/AndroidManifest.xml index 625e51ee8e..d3d2a945a9 100644 --- a/OsmAnd-telegram/AndroidManifest.xml +++ b/OsmAnd-telegram/AndroidManifest.xml @@ -8,6 +8,7 @@ + + + + + + + () private val compassListeners = ArrayList() - private var gpsStatusListener: GpsStatus.Listener? = null private val mRotationM = FloatArray(9) - private var agpsDataLastTimeDownloaded: Long = 0 private val useMagneticFieldSensorCompass = false - private val gpsListener = object : LocationListener { - override fun onLocationChanged(location: Location?) { - if (location != null) { - lastTimeGPSLocationFixed = location.time - } - setLocation(convertLocation(location)) - } - - override fun onProviderDisabled(provider: String) {} - - override fun onProviderEnabled(provider: String) {} - - override fun onStatusChanged(provider: String, status: Int, extras: Bundle) {} - } - private val networkListeners = LinkedList() - val lastKnownLocationLatLon: LatLon? get() = if (lastKnownLocation != null) { LatLon(lastKnownLocation!!.latitude, lastKnownLocation!!.longitude) @@ -87,109 +83,20 @@ class TelegramLocationProvider(private val app: TelegramApplication) : SensorEve @SuppressLint("MissingPermission") fun resumeAllUpdates() { - val service = app.getSystemService(Context.LOCATION_SERVICE) as LocationManager - if (app.isInternetConnectionAvailable) { - if (System.currentTimeMillis() - agpsDataLastTimeDownloaded > AGPS_TO_REDOWNLOAD) { - //force an updated check for internet connectivity here before destroying A-GPS-data - if (app.isInternetConnectionAvailable(true)) { - //redownloadAGPS() - } - } + if (AndroidUtils.isLocationPermissionAvailable(app) && fusedLocationProviderClient == null) { + fusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(app) } - if (AndroidUtils.isLocationPermissionAvailable(app)) { - service.addGpsStatusListener(getGpsStatusListener(service)) - try { - service.requestLocationUpdates( - LocationManager.GPS_PROVIDER, - GPS_TIMEOUT_REQUEST.toLong(), - GPS_DIST_REQUEST.toFloat(), - gpsListener - ) - } catch (e: IllegalArgumentException) { - Log.d(PlatformUtil.TAG, "GPS location provider not available") //$NON-NLS-1$ - } - // try to always ask for network provide : it is faster way to find location - - val providers = service.getProviders(true) ?: return - for (provider in providers) { - if (provider == null || provider == LocationManager.GPS_PROVIDER) { - continue - } - try { - val networkListener = NetworkListener() - service.requestLocationUpdates( - provider, - GPS_TIMEOUT_REQUEST.toLong(), - GPS_DIST_REQUEST.toFloat(), - networkListener - ) - networkListeners.add(networkListener) - } catch (e: IllegalArgumentException) { - Log.d( - PlatformUtil.TAG, - "$provider location provider not available" - ) //$NON-NLS-1$ - } - - } + try { + fusedLocationProviderClient?.requestLocationUpdates( + locationRequest, locationCallback, Looper.myLooper()) + } catch (unlikely: SecurityException) { + Log.d(PlatformUtil.TAG, "Lost location permissions. Couldn't request updates. $unlikely") } registerOrUnregisterCompassListener(true) } - private fun redownloadAGPS() { - try { - val service = app.getSystemService(Context.LOCATION_SERVICE) as LocationManager - service.sendExtraCommand(LocationManager.GPS_PROVIDER, "delete_aiding_data", null) - val bundle = Bundle() - service.sendExtraCommand("gps", "force_xtra_injection", bundle) - service.sendExtraCommand("gps", "force_time_injection", bundle) - agpsDataLastTimeDownloaded = System.currentTimeMillis() - } catch (e: Exception) { - agpsDataLastTimeDownloaded = 0L - e.printStackTrace() - } - } - - private fun getGpsStatusListener(service: LocationManager): GpsStatus.Listener { - gpsStatusListener = object : GpsStatus.Listener { - private var gpsStatus: GpsStatus? = null - - @SuppressLint("MissingPermission") - override fun onGpsStatusChanged(event: Int) { - try { - gpsStatus = service.getGpsStatus(gpsStatus) - } catch (e: Exception) { - e.printStackTrace() - } - updateGPSInfo(gpsStatus) - updateLocation(lastKnownLocation) - } - } - return gpsStatusListener!! - } - - private fun updateGPSInfo(s: GpsStatus?) { - var fixed = false - var n = 0 - var u = 0 - if (s != null) { - val iterator = s.satellites.iterator() - while (iterator.hasNext()) { - val g = iterator.next() - n++ - if (g.usedInFix()) { - u++ - fixed = true - } - } - } - gpsInfo.fixed = fixed - gpsInfo.foundSatellites = n - gpsInfo.usedSatellites = u - } - fun updateScreenOrientation(orientation: Int) { currentScreenOrientation = orientation } @@ -217,12 +124,12 @@ class TelegramLocationProvider(private val app: TelegramApplication) : SensorEve @Synchronized fun registerOrUnregisterCompassListener(register: Boolean) { if (sensorRegistered && !register) { - Log.d(PlatformUtil.TAG, "Disable sensor") //$NON-NLS-1$ + Log.d(PlatformUtil.TAG, "Disable sensor") (app.getSystemService(Context.SENSOR_SERVICE) as SensorManager).unregisterListener(this) sensorRegistered = false heading = null } else if (!sensorRegistered && register) { - Log.d(PlatformUtil.TAG, "Enable sensor") //$NON-NLS-1$ + Log.d(PlatformUtil.TAG, "Enable sensor") val sensorMgr = app.getSystemService(Context.SENSOR_SERVICE) as SensorManager if (useMagneticFieldSensorCompass) { var s: Sensor? = sensorMgr.getDefaultSensor(Sensor.TYPE_ACCELEROMETER) @@ -360,7 +267,7 @@ class TelegramLocationProvider(private val app: TelegramApplication) : SensorEve } private fun getAngle(sinA: Float, cosA: Float) = MapUtils.unifyRotationTo360( - (Math.atan2(sinA.toDouble(), cosA.toDouble()) * 180 / Math.PI).toFloat() + (atan2(sinA.toDouble(), cosA.toDouble()) * 180 / Math.PI).toFloat() ) private fun updateLocation(loc: net.osmand.Location?) { @@ -369,31 +276,11 @@ class TelegramLocationProvider(private val app: TelegramApplication) : SensorEve } } - private fun useOnlyGPS() = - System.currentTimeMillis() - lastTimeGPSLocationFixed < NOT_SWITCH_TO_NETWORK_WHEN_GPS_LOST_MS - - // Working with location checkListeners - private inner class NetworkListener : LocationListener { - - override fun onLocationChanged(location: Location) { - if (!useOnlyGPS()) { - setLocation(convertLocation(location)) - } - } - - override fun onProviderDisabled(provider: String) {} - - override fun onProviderEnabled(provider: String) {} - - override fun onStatusChanged(provider: String, status: Int, extras: Bundle) {} - } - private fun stopLocationRequests() { - val service = app.getSystemService(Context.LOCATION_SERVICE) as LocationManager - service.removeGpsStatusListener(gpsStatusListener) - service.removeUpdates(gpsListener) - while (!networkListeners.isEmpty()) { - service.removeUpdates(networkListeners.poll()) + try { + fusedLocationProviderClient?.removeLocationUpdates(locationCallback) + } catch (unlikely: SecurityException) { + Log.d(PlatformUtil.TAG, "Lost location permissions. Couldn't remove updates. $unlikely") } } @@ -403,17 +290,7 @@ class TelegramLocationProvider(private val app: TelegramApplication) : SensorEve } private fun setLocation(location: net.osmand.Location?) { - if (location == null) { - updateGPSInfo(null) - } - if (location != null) { - if (gpsSignalLost) { - gpsSignalLost = false - } - } this.lastKnownLocation = location - - // Update information updateLocation(this.lastKnownLocation) } @@ -424,21 +301,10 @@ class TelegramLocationProvider(private val app: TelegramApplication) : SensorEve } } - class GPSInfo { - var foundSatellites = 0 - var usedSatellites = 0 - var fixed = false - } - companion object { private const val INTERVAL_TO_CLEAR_SET_LOCATION = 30 * 1000 - private const val GPS_TIMEOUT_REQUEST = 0 - private const val GPS_DIST_REQUEST = 0 - private const val NOT_SWITCH_TO_NETWORK_WHEN_GPS_LOST_MS = 12000 - private const val AGPS_TO_REDOWNLOAD = 16L * 60 * 60 * 1000 // 16 hours - fun convertLocation(l: Location?): net.osmand.Location? { if (l == null) { return null diff --git a/OsmAnd-telegram/src/net/osmand/telegram/TelegramService.kt b/OsmAnd-telegram/src/net/osmand/telegram/TelegramService.kt index c3dde54e76..2d85e971b0 100644 --- a/OsmAnd-telegram/src/net/osmand/telegram/TelegramService.kt +++ b/OsmAnd-telegram/src/net/osmand/telegram/TelegramService.kt @@ -4,30 +4,27 @@ import android.annotation.SuppressLint import android.app.Service import android.content.Context import android.content.Intent -import android.content.pm.ServiceInfo import android.location.Location -import android.location.LocationListener -import android.location.LocationManager import android.os.* +import android.util.Log import android.widget.Toast +import com.google.android.gms.location.* import net.osmand.PlatformUtil import net.osmand.telegram.TelegramSettings.ShareChatInfo import net.osmand.telegram.helpers.TelegramHelper -import net.osmand.telegram.helpers.TelegramHelper.* +import net.osmand.telegram.helpers.TelegramHelper.TelegramIncomingMessagesListener +import net.osmand.telegram.helpers.TelegramHelper.TelegramOutgoingMessagesListener import net.osmand.telegram.notifications.TelegramNotification.NotificationType import net.osmand.telegram.utils.AndroidUtils import org.drinkless.td.libcore.telegram.TdApi -import java.util.* private const val UPDATE_WIDGET_INTERVAL_MS = 1000L // 1 sec private const val UPDATE_LIVE_MESSAGES_INTERVAL_MS = 10000L // 10 sec private const val UPDATE_LIVE_TRACKS_INTERVAL_MS = 30000L // 30 sec -class TelegramService : Service(), LocationListener, TelegramIncomingMessagesListener, +class TelegramService : Service(), TelegramIncomingMessagesListener, TelegramOutgoingMessagesListener { - - private val log = PlatformUtil.getLog(TelegramService::class.java) - + private fun app() = application as TelegramApplication private val binder = LocationServiceBinder() private var shouldCleanupResources: Boolean = false @@ -41,10 +38,18 @@ class TelegramService : Service(), LocationListener, TelegramIncomingMessagesLis private var updateWidgetHandler: Handler? = null private var updateWidgetThread = HandlerThread("WidgetUpdateServiceThread") + // FusedLocationProviderClient - Main class for receiving location updates. + private lateinit var fusedLocationProviderClient: FusedLocationProviderClient + + // LocationRequest - Requirements for the location updates, i.e., how often you should receive + // updates, the priority, etc. + private lateinit var locationRequest: LocationRequest + + // LocationCallback - Called when FusedLocationProviderClient has a new Location. + private lateinit var locationCallback: LocationCallback + var usedBy = 0 private set - var serviceOffProvider: String = LocationManager.GPS_PROVIDER - private set var sendLocationInterval = 0L private set @@ -60,6 +65,42 @@ class TelegramService : Service(), LocationListener, TelegramIncomingMessagesLis updateShareInfoHandler = Handler(mHandlerThread.looper) updateTracksHandler = Handler(tracksHandlerThread.looper) updateWidgetHandler = Handler(updateWidgetThread.looper) + + fusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(this) + + locationRequest = LocationRequest().apply { + // Sets the desired interval for active location updates. This interval is inexact. You + // may not receive updates at all if no location sources are available, or you may + // receive them less frequently than requested. You may also receive updates more + // frequently than requested if other applications are requesting location at a more + // frequent interval. + // + // IMPORTANT NOTE: Apps running on Android 8.0 and higher devices (regardless of + // targetSdkVersion) may receive updates less frequently than this interval when the app + // is no longer in the foreground. + interval = 1000 + + // Sets the fastest rate for active location updates. This interval is exact, and your + // application will never receive updates more frequently than this value. + fastestInterval = 500 + + // Sets the maximum time when batched location updates are delivered. Updates may be + // delivered sooner than this interval. + maxWaitTime = 2000 + + priority = LocationRequest.PRIORITY_HIGH_ACCURACY + } + + locationCallback = object : LocationCallback() { + override fun onLocationResult(locationResult: LocationResult?) { + super.onLocationResult(locationResult) + val location = convertLocation(locationResult?.lastLocation) + if (System.currentTimeMillis() - lastLocationSentTime > sendLocationInterval * 1000) { + lastLocationSentTime = System.currentTimeMillis() + app().shareLocationHelper.updateLocation(location) + } + } + } } override fun onBind(intent: Intent): IBinder { @@ -144,27 +185,27 @@ class TelegramService : Service(), LocationListener, TelegramIncomingMessagesLis } fun forceLocationUpdate() { - val location = getFirstTimeRunDefaultLocation() - app().shareLocationHelper.updateLocation(location) + getFirstTimeRunDefaultLocation { location -> + app().shareLocationHelper.updateLocation(location) + } } private fun initLocationUpdates() { - val firstLocation = getFirstTimeRunDefaultLocation() - app().shareLocationHelper.updateLocation(firstLocation) + getFirstTimeRunDefaultLocation { location -> + app().shareLocationHelper.updateLocation(location) + } // request location updates - /* - val locationManager = getSystemService(Context.LOCATION_SERVICE) as LocationManager try { - locationManager.requestLocationUpdates(serviceOffProvider, 0, 0f, this@TelegramService) - } catch (e: SecurityException) { + fusedLocationProviderClient.requestLocationUpdates( + locationRequest, locationCallback, Looper.myLooper()) + } catch (unlikely: SecurityException) { Toast.makeText(this, R.string.no_location_permission, Toast.LENGTH_LONG).show() - log.debug("Location service permission not granted") + Log.d(PlatformUtil.TAG, "Lost location permissions. Couldn't request updates. $unlikely") } catch (e: IllegalArgumentException) { Toast.makeText(this, R.string.gps_not_available, Toast.LENGTH_LONG).show() - log.debug("GPS location provider not available") + Log.d(PlatformUtil.TAG, "GPS location provider not available") } - */ } private fun startShareInfoUpdates() { @@ -219,62 +260,27 @@ class TelegramService : Service(), LocationListener, TelegramIncomingMessagesLis } @SuppressLint("MissingPermission") - private fun getFirstTimeRunDefaultLocation(): net.osmand.Location? { + private fun getFirstTimeRunDefaultLocation(locationListener: (net.osmand.Location?) -> Unit) { val app = app() if (!AndroidUtils.isLocationPermissionAvailable(app)) { - return null + locationListener(null) + return } - var location: net.osmand.Location? = null - /* - val service = app.getSystemService(Context.LOCATION_SERVICE) as LocationManager - val ps = service.getProviders(true) ?: return null - val providers = ArrayList(ps) - // note, passive provider is from API_LEVEL 8 but it is a constant, we can check for it. - // constant should not be changed in future - val passiveFirst = providers.indexOf("passive") // LocationManager.PASSIVE_PROVIDER - // put passive provider to first place - if (passiveFirst > -1) { - providers.add(0, providers.removeAt(passiveFirst)) - } - // find location - for (provider in providers) { - val loc = convertLocation(service.getLastKnownLocation(provider)) - if (loc != null && (location == null || loc.hasAccuracy() && loc.accuracy < location.accuracy)) { - location = loc - } - } - */ - return location + fusedLocationProviderClient.lastLocation + .addOnSuccessListener { location : Location? -> + locationListener(convertLocation(location)) + } } private fun removeLocationUpdates() { // remove updates - /* - val locationManager = getSystemService(Context.LOCATION_SERVICE) as LocationManager try { - locationManager.removeUpdates(this) - } catch (e: SecurityException) { - log.debug("Location service permission not granted") - } - */ - } - - override fun onLocationChanged(l: Location?) { - val location = convertLocation(l) - if (System.currentTimeMillis() - lastLocationSentTime > sendLocationInterval * 1000) { - lastLocationSentTime = System.currentTimeMillis() - app().shareLocationHelper.updateLocation(location) + fusedLocationProviderClient.removeLocationUpdates(locationCallback) + } catch (unlikely: SecurityException) { + Log.d(PlatformUtil.TAG, "Lost location permissions. Couldn't remove updates. $unlikely") } } - override fun onProviderDisabled(provider: String) { - Toast.makeText(this, getString(R.string.location_service_no_gps_available), Toast.LENGTH_LONG).show() - } - - override fun onProviderEnabled(provider: String) {} - - override fun onStatusChanged(provider: String, status: Int, extras: Bundle) {} - override fun onTaskRemoved(rootIntent: Intent) { val app = app() if (app.telegramService != null) { @@ -316,7 +322,7 @@ class TelegramService : Service(), LocationListener, TelegramIncomingMessagesLis } override fun onSendLiveLocationError(code: Int, message: String, shareInfo: ShareChatInfo, messageType: Int) { - log.debug("Send live location error: $code - $message") + Log.d(PlatformUtil.TAG, "Send live location error: $code - $message") when (messageType) { TelegramHelper.MESSAGE_TYPE_TEXT -> shareInfo.pendingTdLibText-- TelegramHelper.MESSAGE_TYPE_MAP -> { diff --git a/OsmAnd-telegram/src/net/osmand/telegram/TelegramSettings.kt b/OsmAnd-telegram/src/net/osmand/telegram/TelegramSettings.kt index ae6805fae9..8dec6de092 100644 --- a/OsmAnd-telegram/src/net/osmand/telegram/TelegramSettings.kt +++ b/OsmAnd-telegram/src/net/osmand/telegram/TelegramSettings.kt @@ -1,7 +1,6 @@ package net.osmand.telegram import android.content.Context -import android.location.LocationManager import android.text.SpannableStringBuilder import android.text.style.ForegroundColorSpan import androidx.annotation.ColorRes From 56d869389fa99c563ec199982ecd2caa10efabe3 Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Sun, 17 Jan 2021 01:25:22 +0200 Subject: [PATCH 051/173] Minor fixes --- .../layout/bottom_sheet_announcement_time.xml | 235 +++++++------- OsmAnd/res/values/attrs.xml | 1 + OsmAnd/res/values/strings.xml | 4 +- OsmAnd/res/values/styles.xml | 2 + .../routing/data/AnnounceTimeDistances.java | 65 ++-- .../AnnouncementTimeBottomSheet.java | 293 ++++++++---------- .../fragments/VoiceAnnouncesFragment.java | 31 +- 7 files changed, 299 insertions(+), 332 deletions(-) diff --git a/OsmAnd/res/layout/bottom_sheet_announcement_time.xml b/OsmAnd/res/layout/bottom_sheet_announcement_time.xml index 630decba92..682cde0a66 100644 --- a/OsmAnd/res/layout/bottom_sheet_announcement_time.xml +++ b/OsmAnd/res/layout/bottom_sheet_announcement_time.xml @@ -1,130 +1,132 @@ + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:osmand="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical" + android:paddingBottom="@dimen/bottom_sheet_exit_button_margin"> - + - + - + - + - + - + - + - + - - + - + \n • Passing: 20 - 25 m, 7 sec. " + tools:visibility="visible" /> \ No newline at end of file diff --git a/OsmAnd/res/values/attrs.xml b/OsmAnd/res/values/attrs.xml index fbcfe713fb..caf08aef6a 100644 --- a/OsmAnd/res/values/attrs.xml +++ b/OsmAnd/res/values/attrs.xml @@ -140,6 +140,7 @@ + diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index ddce561af7..bbb71f001a 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -15,11 +15,11 @@ Announcement time Announcement time of different voice prompts depends on prompt type, current navigation speed and default navigation speed. Time and distance intervals - Turn + Turn Arrive at destination Off route Prepare - Long Prepare + Long prepare Approach Passing sec diff --git a/OsmAnd/res/values/styles.xml b/OsmAnd/res/values/styles.xml index 330dda3311..5945485c19 100644 --- a/OsmAnd/res/values/styles.xml +++ b/OsmAnd/res/values/styles.xml @@ -247,6 +247,7 @@ @style/CheckboxStyle @style/RadioButtonStyle @color/text_input_background_light + @drawable/img_help_announcement_time_day - diff --git a/OsmAnd/src/net/osmand/plus/OsmandPlugin.java b/OsmAnd/src/net/osmand/plus/OsmandPlugin.java index af1570ecaa..e04f055b35 100644 --- a/OsmAnd/src/net/osmand/plus/OsmandPlugin.java +++ b/OsmAnd/src/net/osmand/plus/OsmandPlugin.java @@ -388,7 +388,7 @@ public abstract class OsmandPlugin { } private static boolean updateMarketPlugin(@NonNull OsmandApplication app, @NonNull Set enabledPlugins, @NonNull OsmandPlugin plugin) { - boolean marketEnabled = Version.isMarketEnabled(app); + boolean marketEnabled = Version.isMarketEnabled(); boolean pckg = plugin.pluginAvailable(app); boolean paid = plugin.isPaid(); if ((Version.isDeveloperVersion(app) || !Version.isProductionVersion(app)) && !paid) { diff --git a/OsmAnd/src/net/osmand/plus/Version.java b/OsmAnd/src/net/osmand/plus/Version.java index 48dd9b1feb..b1962564e3 100644 --- a/OsmAnd/src/net/osmand/plus/Version.java +++ b/OsmAnd/src/net/osmand/plus/Version.java @@ -1,9 +1,10 @@ package net.osmand.plus; - import android.content.pm.PackageInfo; import android.content.pm.PackageManager; +import androidx.annotation.NonNull; + import net.osmand.plus.inapp.InAppPurchaseHelper; import java.io.File; @@ -16,26 +17,29 @@ public class Version { private final String appName; private final static String FREE_VERSION_NAME = "net.osmand"; private final static String FREE_DEV_VERSION_NAME = "net.osmand.dev"; - private final static String FREE_CUSTOM_VERSION_NAME = "net.osmand.freecustom"; private final static String UTM_REF = "&referrer=utm_source%3Dosmand"; - - public static boolean isGpsStatusEnabled(OsmandApplication ctx) { - return isGooglePlayEnabled(ctx) && !isBlackberry(ctx); - } - - public static boolean isBlackberry(OsmandApplication ctx) { - return ctx.getString(R.string.versionFeatures).contains("+blackberry"); - } - - public static boolean isHuawei(OsmandApplication ctx) { - return ctx.getPackageName().endsWith(".huawei"); - } - - public static boolean isMarketEnabled(OsmandApplication ctx) { - return isGooglePlayEnabled(ctx) || isAmazonEnabled(ctx); + + public static boolean isHuawei() { + return "huawei".contains(getBuildFlavor()); } - public static boolean isGooglePlayInstalled(OsmandApplication ctx) { + private static boolean isAmazon() { + return "amazon".contains(getBuildFlavor()); + } + + private static String getBuildFlavor() { + return net.osmand.plus.BuildConfig.FLAVOR; + } + + public static boolean isGooglePlayEnabled() { + return !isHuawei() && !isAmazon(); + } + + public static boolean isMarketEnabled() { + return isGooglePlayEnabled() || isAmazon(); + } + + public static boolean isGooglePlayInstalled(@NonNull OsmandApplication ctx) { try { ctx.getPackageManager().getPackageInfo("com.android.vending", 0); } catch (PackageManager.NameNotFoundException e) { @@ -44,10 +48,10 @@ public class Version { return true; } - public static String marketPrefix(OsmandApplication ctx) { - if (isAmazonEnabled(ctx)) { + public static String marketPrefix(@NonNull OsmandApplication ctx) { + if (isAmazon()) { return "amzn://apps/android?p="; - } else if (isGooglePlayEnabled(ctx) && isGooglePlayInstalled(ctx)) { + } else if (isGooglePlayEnabled() && isGooglePlayInstalled(ctx)) { return "market://details?id="; } return "https://osmand.net/apps?id="; @@ -57,22 +61,11 @@ public class Version { return marketPrefix(ctx) + appName + UTM_REF; } - private static boolean isAmazonEnabled(OsmandApplication ctx) { - return ctx.getString(R.string.versionFeatures).contains("+amazon"); - } - - public static boolean isGooglePlayEnabled(OsmandApplication ctx) { - return ctx.getString(R.string.versionFeatures).contains("+play_market"); - } - - private Version(OsmandApplication ctx) { String appVersion = ""; - int versionCode = -1; try { PackageInfo packageInfo = ctx.getPackageManager().getPackageInfo(ctx.getPackageName(), 0); appVersion = packageInfo.versionName; //Version suffix ctx.getString(R.string.app_version_suffix) already appended in build.gradle - versionCode = packageInfo.versionCode; } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } @@ -123,8 +116,7 @@ public class Version { public static boolean isFreeVersion(OsmandApplication ctx){ return ctx.getPackageName().equals(FREE_VERSION_NAME) || ctx.getPackageName().equals(FREE_DEV_VERSION_NAME) || - ctx.getPackageName().equals(FREE_CUSTOM_VERSION_NAME) || - isHuawei(ctx); + isHuawei(); } public static boolean isPaidVersion(OsmandApplication ctx) { diff --git a/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java b/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java index c526ddec2a..b5dd0dc3ea 100644 --- a/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java +++ b/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java @@ -903,7 +903,7 @@ public class MapActivityActions implements DialogProvider { } }).createItem()); - if (Version.isGooglePlayEnabled(app) || Version.isHuawei(app) || Version.isDeveloperVersion(app)) { + if (Version.isGooglePlayEnabled() || Version.isHuawei() || Version.isDeveloperVersion(app)) { optionsMenuHelper.addItem(new ItemBuilder().setTitleId(R.string.osm_live, mapActivity) .setId(DRAWER_OSMAND_LIVE_ID) .setIcon(R.drawable.ic_action_osm_live) diff --git a/OsmAnd/src/net/osmand/plus/activities/OsmandInAppPurchaseActivity.java b/OsmAnd/src/net/osmand/plus/activities/OsmandInAppPurchaseActivity.java index 47f7a17444..6cc1b222bb 100644 --- a/OsmAnd/src/net/osmand/plus/activities/OsmandInAppPurchaseActivity.java +++ b/OsmAnd/src/net/osmand/plus/activities/OsmandInAppPurchaseActivity.java @@ -5,7 +5,6 @@ import android.app.Activity; import android.content.ActivityNotFoundException; import android.content.Intent; import android.net.Uri; -import android.widget.Toast; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -16,16 +15,12 @@ import androidx.fragment.app.FragmentManager; import net.osmand.AndroidUtils; import net.osmand.PlatformUtil; import net.osmand.plus.OsmandApplication; -import net.osmand.plus.OsmandPlugin; -import net.osmand.plus.R; import net.osmand.plus.Version; -import net.osmand.plus.download.DownloadActivity; import net.osmand.plus.inapp.InAppPurchaseHelper; import net.osmand.plus.inapp.InAppPurchaseHelper.InAppPurchaseInitCallback; import net.osmand.plus.inapp.InAppPurchaseHelper.InAppPurchaseListener; import net.osmand.plus.inapp.InAppPurchaseHelper.InAppPurchaseTaskType; import net.osmand.plus.liveupdates.OsmLiveRestartBottomSheetDialogFragment; -import net.osmand.plus.srtmplugin.SRTMPlugin; import org.apache.commons.logging.Log; @@ -59,7 +54,7 @@ public class OsmandInAppPurchaseActivity extends AppCompatActivity implements In InAppPurchaseHelper purchaseHelper = app.getInAppPurchaseHelper(); if (app.getSettings().isInternetConnectionAvailable() && isInAppPurchaseAllowed() - && isInAppPurchaseSupported(purchaseHelper)) { + && isInAppPurchaseSupported()) { this.purchaseHelper = purchaseHelper; } } @@ -160,9 +155,8 @@ public class OsmandInAppPurchaseActivity extends AppCompatActivity implements In return false; } - public boolean isInAppPurchaseSupported(InAppPurchaseHelper purchaseHelper) { - OsmandApplication app = getMyApplication(); - return Version.isGooglePlayEnabled(app) || Version.isHuawei(app); + public boolean isInAppPurchaseSupported() { + return Version.isGooglePlayEnabled() || Version.isHuawei(); } @Override diff --git a/OsmAnd/src/net/osmand/plus/activities/actions/ShareDialog.java b/OsmAnd/src/net/osmand/plus/activities/actions/ShareDialog.java index 4858e3ccfe..f033e59bef 100644 --- a/OsmAnd/src/net/osmand/plus/activities/actions/ShareDialog.java +++ b/OsmAnd/src/net/osmand/plus/activities/actions/ShareDialog.java @@ -193,7 +193,7 @@ public class ShareDialog { intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); activity.startActivity(intent); } else { - if (Version.isMarketEnabled((OsmandApplication) activity.getApplication())) { + if (Version.isMarketEnabled()) { AlertDialog.Builder builder = new AlertDialog.Builder(activity); builder.setMessage(activity.getString(R.string.zxing_barcode_scanner_not_found)); builder.setPositiveButton(activity.getString(R.string.shared_string_yes), new DialogInterface.OnClickListener() { diff --git a/OsmAnd/src/net/osmand/plus/activities/actions/StartGPSStatus.java b/OsmAnd/src/net/osmand/plus/activities/actions/StartGPSStatus.java index 79abd4190a..c8c9a70785 100644 --- a/OsmAnd/src/net/osmand/plus/activities/actions/StartGPSStatus.java +++ b/OsmAnd/src/net/osmand/plus/activities/actions/StartGPSStatus.java @@ -180,7 +180,7 @@ public class StartGPSStatus extends OsmAndAction { intent.addCategory(Intent.CATEGORY_LAUNCHER); mapActivity.startActivity(intent); } else { - if (Version.isMarketEnabled(getMyApplication())) { + if (Version.isMarketEnabled()) { AlertDialog.Builder builder = new AlertDialog.Builder(mapActivity); builder.setMessage(mapActivity. getString(R.string.gps_status_app_not_found)); builder.setPositiveButton(mapActivity.getString(R.string.shared_string_yes), new DialogInterface.OnClickListener() { diff --git a/OsmAnd/src/net/osmand/plus/chooseplan/ChoosePlanDialogFragment.java b/OsmAnd/src/net/osmand/plus/chooseplan/ChoosePlanDialogFragment.java index 9a7215867f..6547ae01db 100644 --- a/OsmAnd/src/net/osmand/plus/chooseplan/ChoosePlanDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/chooseplan/ChoosePlanDialogFragment.java @@ -5,8 +5,6 @@ import android.app.Activity; import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; -import android.content.Intent; -import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.text.TextUtils; @@ -216,7 +214,7 @@ public abstract class ChoosePlanDialogFragment extends BaseOsmAndDialogFragment infoDescription.setText(getInfoDescription()); } TextViewEx planInfoDescription = (TextViewEx) view.findViewById(R.id.plan_info_description); - planInfoDescription.setText(Version.isHuawei(app) + planInfoDescription.setText(Version.isHuawei() ? R.string.osm_live_payment_subscription_management_hw : R.string.osm_live_payment_subscription_management); ViewGroup osmLiveCard = buildOsmLiveCard(ctx, cardsContainer); if (osmLiveCard != null) { diff --git a/OsmAnd/src/net/osmand/plus/development/DevelopmentSettingsFragment.java b/OsmAnd/src/net/osmand/plus/development/DevelopmentSettingsFragment.java index 8cee128154..d34a306b79 100644 --- a/OsmAnd/src/net/osmand/plus/development/DevelopmentSettingsFragment.java +++ b/OsmAnd/src/net/osmand/plus/development/DevelopmentSettingsFragment.java @@ -71,16 +71,12 @@ public class DevelopmentSettingsFragment extends BaseSettingsFragment { private void setupSafeModePref() { SwitchPreferenceEx safeMode = findPreference(settings.SAFE_MODE.getId()); - if (!Version.isBlackberry(app)) { - safeMode.setDescription(getString(R.string.safe_mode_description)); - safeMode.setIconSpaceReserved(false); - // disable the switch if the library cannot be used - if ((NativeOsmandLibrary.isLoaded() && !NativeOsmandLibrary.isSupported()) || settings.NATIVE_RENDERING_FAILED.get()) { - safeMode.setEnabled(false); - safeMode.setChecked(true); - } - } else { - safeMode.setVisible(false); + safeMode.setDescription(getString(R.string.safe_mode_description)); + safeMode.setIconSpaceReserved(false); + // disable the switch if the library cannot be used + if ((NativeOsmandLibrary.isLoaded() && !NativeOsmandLibrary.isSupported()) || settings.NATIVE_RENDERING_FAILED.get()) { + safeMode.setEnabled(false); + safeMode.setChecked(true); } } diff --git a/OsmAnd/src/net/osmand/plus/dialogs/RateUsBottomSheetDialogFragment.java b/OsmAnd/src/net/osmand/plus/dialogs/RateUsBottomSheetDialogFragment.java index 2dcd62c6bd..188031ea1d 100644 --- a/OsmAnd/src/net/osmand/plus/dialogs/RateUsBottomSheetDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/dialogs/RateUsBottomSheetDialogFragment.java @@ -108,7 +108,7 @@ public class RateUsBottomSheetDialogFragment extends MenuBottomSheetDialogFragme public static boolean shouldShow(OsmandApplication app) { long firstInstalledDays = app.getAppInitializer().getFirstInstalledDays(); //Do not show dialog if not google play version or more than 350 days left from the first start - if (!Version.isGooglePlayEnabled(app) || firstInstalledDays > 350) { + if (!Version.isGooglePlayEnabled() || firstInstalledDays > 350) { return false; } OsmandSettings settings = app.getSettings(); diff --git a/OsmAnd/src/net/osmand/plus/download/DownloadValidationManager.java b/OsmAnd/src/net/osmand/plus/download/DownloadValidationManager.java index 92fa82079f..8e03b2c1e5 100644 --- a/OsmAnd/src/net/osmand/plus/download/DownloadValidationManager.java +++ b/OsmAnd/src/net/osmand/plus/download/DownloadValidationManager.java @@ -217,7 +217,7 @@ public class DownloadValidationManager { AlertDialog.Builder msg = new AlertDialog.Builder(getActivity()); msg.setTitle(R.string.free_version_title); msg.setMessage(msgTx); - if (Version.isMarketEnabled(getMyApplication())) { + if (Version.isMarketEnabled()) { msg.setPositiveButton(R.string.install_paid, new DialogInterface.OnClickListener() { @Override diff --git a/OsmAnd/src/net/osmand/plus/inapp/InAppPurchaseHelper.java b/OsmAnd/src/net/osmand/plus/inapp/InAppPurchaseHelper.java index c7464c6b1f..ec13eba2bd 100644 --- a/OsmAnd/src/net/osmand/plus/inapp/InAppPurchaseHelper.java +++ b/OsmAnd/src/net/osmand/plus/inapp/InAppPurchaseHelper.java @@ -212,7 +212,7 @@ public abstract class InAppPurchaseHelper { } protected void exec(final @NonNull InAppPurchaseTaskType taskType, final @NonNull InAppCommand command) { - if (isDeveloperVersion || (!Version.isGooglePlayEnabled(ctx) && !Version.isHuawei(ctx))) { + if (isDeveloperVersion || (!Version.isGooglePlayEnabled() && !Version.isHuawei())) { notifyDismissProgress(taskType); stop(true); return; diff --git a/OsmAnd/src/net/osmand/plus/settings/fragments/GeneralProfileSettingsFragment.java b/OsmAnd/src/net/osmand/plus/settings/fragments/GeneralProfileSettingsFragment.java index 430432981e..8bb3cfb333 100644 --- a/OsmAnd/src/net/osmand/plus/settings/fragments/GeneralProfileSettingsFragment.java +++ b/OsmAnd/src/net/osmand/plus/settings/fragments/GeneralProfileSettingsFragment.java @@ -298,12 +298,9 @@ public class GeneralProfileSettingsFragment extends BaseSettingsFragment impleme mapEmptyStateAllowedPref.setTitle(getString(R.string.use_trackball)); mapEmptyStateAllowedPref.setDescription(getString(R.string.use_trackball_descr)); - boolean visible = false; - if (!Version.isBlackberry(app)) { - int nav = getResources().getConfiguration().navigation; - visible = nav == Configuration.NAVIGATION_DPAD || nav == Configuration.NAVIGATION_TRACKBALL || - nav == Configuration.NAVIGATION_WHEEL || nav == Configuration.NAVIGATION_UNDEFINED; - } + int nav = getResources().getConfiguration().navigation; + boolean visible = nav == Configuration.NAVIGATION_DPAD || nav == Configuration.NAVIGATION_TRACKBALL || + nav == Configuration.NAVIGATION_WHEEL || nav == Configuration.NAVIGATION_UNDEFINED; mapEmptyStateAllowedPref.setVisible(visible); } diff --git a/OsmAnd/src/net/osmand/plus/settings/fragments/RouteParametersFragment.java b/OsmAnd/src/net/osmand/plus/settings/fragments/RouteParametersFragment.java index d3d9ef2d93..123c49b316 100644 --- a/OsmAnd/src/net/osmand/plus/settings/fragments/RouteParametersFragment.java +++ b/OsmAnd/src/net/osmand/plus/settings/fragments/RouteParametersFragment.java @@ -171,15 +171,13 @@ public class RouteParametersFragment extends BaseSettingsFragment implements OnP } private void setupNativePublicTransport() { - if (!Version.isBlackberry(app)) { - SwitchPreferenceEx setupNativePublicTransport = createSwitchPreferenceEx(settings.PT_SAFE_MODE.getId(), - R.string.use_native_pt, R.layout.preference_with_descr_dialog_and_switch); - setupNativePublicTransport.setDescription(getString(R.string.use_native_pt_desc)); - setupNativePublicTransport.setSummaryOn(R.string.shared_string_enabled); - setupNativePublicTransport.setSummaryOff(R.string.shared_string_disabled); - setupNativePublicTransport.setIconSpaceReserved(true); - getPreferenceScreen().addPreference(setupNativePublicTransport); - } + SwitchPreferenceEx setupNativePublicTransport = createSwitchPreferenceEx(settings.PT_SAFE_MODE.getId(), + R.string.use_native_pt, R.layout.preference_with_descr_dialog_and_switch); + setupNativePublicTransport.setDescription(getString(R.string.use_native_pt_desc)); + setupNativePublicTransport.setSummaryOn(R.string.shared_string_enabled); + setupNativePublicTransport.setSummaryOff(R.string.shared_string_disabled); + setupNativePublicTransport.setIconSpaceReserved(true); + getPreferenceScreen().addPreference(setupNativePublicTransport); } private void setupOsmLiveForRoutingPref() { diff --git a/OsmAnd/src/net/osmand/plus/settings/fragments/VoiceAnnouncesFragment.java b/OsmAnd/src/net/osmand/plus/settings/fragments/VoiceAnnouncesFragment.java index 9697acd599..fb617ab01f 100644 --- a/OsmAnd/src/net/osmand/plus/settings/fragments/VoiceAnnouncesFragment.java +++ b/OsmAnd/src/net/osmand/plus/settings/fragments/VoiceAnnouncesFragment.java @@ -97,10 +97,9 @@ public class VoiceAnnouncesFragment extends BaseSettingsFragment implements OnPr setupArrivalAnnouncementPref(); setupVoiceProviderPref(); - if (!Version.isBlackberry(app)) { - setupAudioStreamGuidancePref(); - setupInterruptMusicPref(); - } + setupAudioStreamGuidancePref(); + setupInterruptMusicPref(); + enableDisablePreferences(!settings.VOICE_MUTE.getModeValue(getSelectedAppMode())); setupSpeakCamerasPref(); setupSpeedCamerasAlert(); From 3c492c18151fcb20cd2ac7403cc4d38b71a2ac26 Mon Sep 17 00:00:00 2001 From: max-klaus Date: Tue, 19 Jan 2021 15:30:41 +0300 Subject: [PATCH 099/173] Drop version features --- OsmAnd/build-library.gradle | 3 --- OsmAnd/build.gradle | 3 --- 2 files changed, 6 deletions(-) diff --git a/OsmAnd/build-library.gradle b/OsmAnd/build-library.gradle index 0855b031f0..b8cf0a21a5 100644 --- a/OsmAnd/build-library.gradle +++ b/OsmAnd/build-library.gradle @@ -29,9 +29,6 @@ android { } def replaceNoTranslate(line) { - if (line.contains("\"versionFeatures\"")) { - return line.replaceAll(">[^<]*<", ">" + "" + "<") - } return line; } diff --git a/OsmAnd/build.gradle b/OsmAnd/build.gradle index 00191fd6f3..436aa652dc 100644 --- a/OsmAnd/build.gradle +++ b/OsmAnd/build.gradle @@ -163,9 +163,6 @@ def replaceNoTranslate(line) { if (line.contains("\"app_edition\"") && System.getenv("APP_EDITION")) { return line.replaceAll(">[^<]*<", ">" + System.getenv("APP_EDITION") + "<") } - if (line.contains("\"versionFeatures\"") && System.getenv("APP_FEATURES")) { - return line.replaceAll(">[^<]*<", ">" + System.getenv("APP_FEATURES") + "<") - } return line; } From 2bc2eb3792288f6a4baa132dae00278451eb3521 Mon Sep 17 00:00:00 2001 From: max-klaus Date: Tue, 19 Jan 2021 16:39:42 +0300 Subject: [PATCH 100/173] Fix first time location request --- .../plus/LocationServiceHelperImpl.java | 13 ++++++------ .../plus/LocationServiceHelperImpl.java | 2 +- .../osmand/plus/OsmAndLocationProvider.java | 10 +++++++-- .../osmand/plus/activities/MapActivity.java | 21 ++++++++++++++++--- .../osmand/plus/helpers/DayNightHelper.java | 2 +- .../plus/helpers/LocationServiceHelper.java | 3 ++- 6 files changed, 37 insertions(+), 14 deletions(-) diff --git a/OsmAnd/src-gms/net/osmand/plus/LocationServiceHelperImpl.java b/OsmAnd/src-gms/net/osmand/plus/LocationServiceHelperImpl.java index e8182955ec..41c74012a3 100644 --- a/OsmAnd/src-gms/net/osmand/plus/LocationServiceHelperImpl.java +++ b/OsmAnd/src-gms/net/osmand/plus/LocationServiceHelperImpl.java @@ -131,15 +131,17 @@ public class LocationServiceHelperImpl extends LocationServiceHelper { } @Nullable - public net.osmand.Location getFirstTimeRunDefaultLocation() { - final net.osmand.Location[] location = {null}; - /* + public net.osmand.Location getFirstTimeRunDefaultLocation(@Nullable final LocationCallback locationCallback) { + if (locationCallback == null) { + return null; + } try { Task lastLocation = fusedLocationProviderClient.getLastLocation(); lastLocation.addOnSuccessListener(new OnSuccessListener() { @Override public void onSuccess(Location loc) { - location[0] = convertLocation(loc); + locationCallback.onLocationResult(loc != null + ? Collections.singletonList(convertLocation(loc)) : Collections.emptyList() ); } }); } catch (SecurityException e) { @@ -147,8 +149,7 @@ public class LocationServiceHelperImpl extends LocationServiceHelper { } catch (IllegalArgumentException e) { LOG.debug("GPS location provider not available"); } - */ - return location[0]; + return null; } @Nullable diff --git a/OsmAnd/src-nogms/net/osmand/plus/LocationServiceHelperImpl.java b/OsmAnd/src-nogms/net/osmand/plus/LocationServiceHelperImpl.java index 5f49607954..9a2caa6a5f 100644 --- a/OsmAnd/src-nogms/net/osmand/plus/LocationServiceHelperImpl.java +++ b/OsmAnd/src-nogms/net/osmand/plus/LocationServiceHelperImpl.java @@ -125,7 +125,7 @@ public class LocationServiceHelperImpl extends LocationServiceHelper implements } @Nullable - public net.osmand.Location getFirstTimeRunDefaultLocation() { + public net.osmand.Location getFirstTimeRunDefaultLocation(@Nullable LocationCallback locationCallback) { LocationManager locationManager = (LocationManager) app.getSystemService(Context.LOCATION_SERVICE); List providers = new ArrayList<>(locationManager.getProviders(true)); // note, passive provider is from API_LEVEL 8 but it is a constant, we can check for it. diff --git a/OsmAnd/src/net/osmand/plus/OsmAndLocationProvider.java b/OsmAnd/src/net/osmand/plus/OsmAndLocationProvider.java index ee875fbb17..15936ded34 100644 --- a/OsmAnd/src/net/osmand/plus/OsmAndLocationProvider.java +++ b/OsmAnd/src/net/osmand/plus/OsmAndLocationProvider.java @@ -389,8 +389,14 @@ public class OsmAndLocationProvider implements SensorEventListener { } @Nullable - public net.osmand.Location getFirstTimeRunDefaultLocation() { - return isLocationPermissionAvailable(app) ? locationServiceHelper.getFirstTimeRunDefaultLocation() : null; + public net.osmand.Location getFirstTimeRunDefaultLocation(@Nullable final OsmAndLocationListener locationListener) { + return isLocationPermissionAvailable(app) + ? locationServiceHelper.getFirstTimeRunDefaultLocation(locationListener != null ? new LocationServiceHelper.LocationCallback() { + @Override + public void onLocationResult(@NonNull List locations) { + locationListener.updateLocation(locations.isEmpty() ? null : locations.get(0)); + } + } : null) : null; } public synchronized void registerOrUnregisterCompassListener(boolean register) { diff --git a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java index 007280144e..a94997caaa 100644 --- a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java +++ b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java @@ -70,6 +70,8 @@ import net.osmand.plus.GpxSelectionHelper.GpxDisplayItem; import net.osmand.plus.GpxSelectionHelper.SelectedGpxFile; import net.osmand.plus.OnDismissDialogFragmentListener; import net.osmand.plus.OsmAndConstants; +import net.osmand.plus.OsmAndLocationProvider; +import net.osmand.plus.OsmAndLocationProvider.OsmAndLocationListener; import net.osmand.plus.OsmAndLocationSimulation; import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandPlugin; @@ -347,11 +349,17 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven if (!settings.isLastKnownMapLocation()) { // show first time when application ran - net.osmand.Location location = app.getLocationProvider().getFirstTimeRunDefaultLocation(); + net.osmand.Location location = app.getLocationProvider().getFirstTimeRunDefaultLocation(new OsmAndLocationListener() { + @Override + public void updateLocation(Location location) { + if (app.getLocationProvider().getLastKnownLocation() == null) { + setMapInitialLatLon(location); + } + } + }); mapViewTrackingUtilities.setMapLinkedToLocation(true); if (location != null) { - mapView.setLatLon(location.getLatitude(), location.getLongitude()); - mapView.setIntZoom(14); + setMapInitialLatLon(location); } } addDialogProvider(mapActions); @@ -376,6 +384,13 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven mIsDestroyed = false; } + private void setMapInitialLatLon(@Nullable Location location) { + if (location != null) { + mapView.setLatLon(location.getLatitude(), location.getLongitude()); + mapView.setIntZoom(14); + } + } + public void exitFromFullScreen(View view) { AndroidUtils.exitFromFullScreen(this, view); } diff --git a/OsmAnd/src/net/osmand/plus/helpers/DayNightHelper.java b/OsmAnd/src/net/osmand/plus/helpers/DayNightHelper.java index 20820d379e..0721350197 100644 --- a/OsmAnd/src/net/osmand/plus/helpers/DayNightHelper.java +++ b/OsmAnd/src/net/osmand/plus/helpers/DayNightHelper.java @@ -110,7 +110,7 @@ public class DayNightHelper implements SensorEventListener { public SunriseSunset getSunriseSunset() { Location lastKnownLocation = app.getLocationProvider().getLastKnownLocation(); if (lastKnownLocation == null) { - lastKnownLocation = app.getLocationProvider().getFirstTimeRunDefaultLocation(); + lastKnownLocation = app.getLocationProvider().getFirstTimeRunDefaultLocation(null); } if (lastKnownLocation == null) { return null; diff --git a/OsmAnd/src/net/osmand/plus/helpers/LocationServiceHelper.java b/OsmAnd/src/net/osmand/plus/helpers/LocationServiceHelper.java index 94602e98fc..472dcf3b7f 100644 --- a/OsmAnd/src/net/osmand/plus/helpers/LocationServiceHelper.java +++ b/OsmAnd/src/net/osmand/plus/helpers/LocationServiceHelper.java @@ -1,6 +1,7 @@ package net.osmand.plus.helpers; import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import net.osmand.Location; @@ -25,5 +26,5 @@ public abstract class LocationServiceHelper { public abstract void removeLocationUpdates(); - public abstract Location getFirstTimeRunDefaultLocation(); + public abstract Location getFirstTimeRunDefaultLocation(@Nullable LocationCallback locationCallback); } From d416ef0a6a24d25ac35f80f508d4c877c267a1f9 Mon Sep 17 00:00:00 2001 From: Victor Shcherb Date: Tue, 19 Jan 2021 16:44:57 +0100 Subject: [PATCH 101/173] Fix crash with search navigation --- .../src/main/java/net/osmand/data/Building.java | 8 ++++---- .../main/java/net/osmand/search/SearchUICore.java | 15 +++++---------- 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/data/Building.java b/OsmAnd-java/src/main/java/net/osmand/data/Building.java index 0adacd411a..5e16f755fc 100644 --- a/OsmAnd-java/src/main/java/net/osmand/data/Building.java +++ b/OsmAnd-java/src/main/java/net/osmand/data/Building.java @@ -182,10 +182,10 @@ public class Building extends MapObject { @Override public String toString() { - if(interpolationInterval !=0){ - return name+"-"+name2 +" (+"+interpolationInterval+") "; - } else if(interpolationType != null) { - return name+"-"+name2 +" ("+interpolationType+") "; + if (interpolationInterval != 0) { + return name + "-" + name2 + " (+" + interpolationInterval + ") "; + } else if (interpolationType != null) { + return name + "-" + name2 + " (" + interpolationType + ") "; } return name; } diff --git a/OsmAnd-java/src/main/java/net/osmand/search/SearchUICore.java b/OsmAnd-java/src/main/java/net/osmand/search/SearchUICore.java index df8c2bd5be..37c16393fa 100644 --- a/OsmAnd-java/src/main/java/net/osmand/search/SearchUICore.java +++ b/OsmAnd-java/src/main/java/net/osmand/search/SearchUICore.java @@ -1004,17 +1004,12 @@ public class SearchUICore { String subType2 = a2.getSubType() == null ? "" : a2.getSubType(); int cmp = 0; - - if (FILTER_DUPLICATE_POI_SUBTYPE.contains(subType1)) { - cmp = 1; - } else if (FILTER_DUPLICATE_POI_SUBTYPE.contains(subType2)) { - cmp = -1; - } - - if (cmp != 0) { - return cmp; + boolean subtypeFilter1 = FILTER_DUPLICATE_POI_SUBTYPE.contains(subType1); + boolean subtypeFilter2 = FILTER_DUPLICATE_POI_SUBTYPE.contains(subType2); + if (subtypeFilter1 != subtypeFilter2) { + // to filter second + return subtypeFilter1 ? 1 : -1; } - cmp = c.collator.compare(type1, type2); if (cmp != 0) { return cmp; From a980e4016b5670e2cf24a96989fe1edbb11084db Mon Sep 17 00:00:00 2001 From: cepprice Date: Tue, 19 Jan 2021 20:57:34 +0500 Subject: [PATCH 102/173] Possible sulution --- .../osmand/aidlapi/IOsmAndAidlInterface.aidl | 3 + .../osmand/aidlapi/map/SetLocationParams.aidl | 3 + .../osmand/aidlapi/map/SetLocationParams.java | 61 +++++++++++++++++ OsmAnd/src/net/osmand/aidl/OsmandAidlApi.java | 65 +++++++++++++++++++ .../net/osmand/aidl/OsmandAidlServiceV2.java | 15 +++++ .../osmand/plus/OsmAndLocationProvider.java | 26 +++++++- 6 files changed, 171 insertions(+), 2 deletions(-) create mode 100644 OsmAnd-api/src/net/osmand/aidlapi/map/SetLocationParams.aidl create mode 100644 OsmAnd-api/src/net/osmand/aidlapi/map/SetLocationParams.java diff --git a/OsmAnd-api/src/net/osmand/aidlapi/IOsmAndAidlInterface.aidl b/OsmAnd-api/src/net/osmand/aidlapi/IOsmAndAidlInterface.aidl index 92115f873b..0b0466ff21 100644 --- a/OsmAnd-api/src/net/osmand/aidlapi/IOsmAndAidlInterface.aidl +++ b/OsmAnd-api/src/net/osmand/aidlapi/IOsmAndAidlInterface.aidl @@ -2,6 +2,7 @@ package net.osmand.aidlapi; import net.osmand.aidlapi.map.ALatLon; import net.osmand.aidlapi.map.SetMapLocationParams; +import net.osmand.aidlapi.map.SetLocationParams; import net.osmand.aidlapi.favorite.group.AFavoriteGroup; import net.osmand.aidlapi.favorite.group.AddFavoriteGroupParams; @@ -901,4 +902,6 @@ interface IOsmAndAidlInterface { boolean addRoadBlock(in AddBlockedRoadParams params); boolean removeRoadBlock(in RemoveBlockedRoadParams params); + + boolean setLocation(in SetLocationParams params); } \ No newline at end of file diff --git a/OsmAnd-api/src/net/osmand/aidlapi/map/SetLocationParams.aidl b/OsmAnd-api/src/net/osmand/aidlapi/map/SetLocationParams.aidl new file mode 100644 index 0000000000..e39726efd0 --- /dev/null +++ b/OsmAnd-api/src/net/osmand/aidlapi/map/SetLocationParams.aidl @@ -0,0 +1,3 @@ +package net.osmand.aidlapi.map; + +parcelable SetLocationParams; \ No newline at end of file diff --git a/OsmAnd-api/src/net/osmand/aidlapi/map/SetLocationParams.java b/OsmAnd-api/src/net/osmand/aidlapi/map/SetLocationParams.java new file mode 100644 index 0000000000..167ae1d3a4 --- /dev/null +++ b/OsmAnd-api/src/net/osmand/aidlapi/map/SetLocationParams.java @@ -0,0 +1,61 @@ +package net.osmand.aidlapi.map; + +import android.os.Bundle; +import android.os.Parcel; + +import net.osmand.aidlapi.AidlParams; + +public class SetLocationParams extends AidlParams { + + private double latitude; + private double longitude; + private long timeToNotUseOtherGPS; + + public SetLocationParams(double latitude, double longitude, long timeToNotUseOtherGPS) { + this.latitude = latitude; + this.longitude = longitude; + this.timeToNotUseOtherGPS = timeToNotUseOtherGPS; + } + + public SetLocationParams(Parcel in) { + readFromParcel(in); + } + + public static final Creator CREATOR = new Creator() { + @Override + public SetLocationParams createFromParcel(Parcel in) { + return new SetLocationParams(in); + } + + @Override + public SetLocationParams[] newArray(int size) { + return new SetLocationParams[size]; + } + }; + + public double getLatitude() { + return latitude; + } + + public double getLongitude() { + return longitude; + } + + public long getTimeToNotUseOtherGPS() { + return timeToNotUseOtherGPS; + } + + @Override + public void writeToBundle(Bundle bundle) { + bundle.putDouble("latitude", latitude); + bundle.putDouble("longitude", longitude); + bundle.putLong("aidl_time_to_not_use_other_gps", timeToNotUseOtherGPS); + } + + @Override + protected void readFromBundle(Bundle bundle) { + latitude = bundle.getDouble("latitude"); + longitude = bundle.getDouble("longitude"); + timeToNotUseOtherGPS = bundle.getLong("aidl_time_to_not_use_other_gps"); + } +} \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/aidl/OsmandAidlApi.java b/OsmAnd/src/net/osmand/aidl/OsmandAidlApi.java index 88307a259e..3a480856fe 100644 --- a/OsmAnd/src/net/osmand/aidl/OsmandAidlApi.java +++ b/OsmAnd/src/net/osmand/aidl/OsmandAidlApi.java @@ -57,6 +57,7 @@ import net.osmand.plus.FavouritesDbHelper; import net.osmand.plus.GPXDatabase.GpxDataItem; import net.osmand.plus.GpxSelectionHelper; import net.osmand.plus.GpxSelectionHelper.SelectedGpxFile; +import net.osmand.plus.OsmAndLocationProvider; import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandPlugin; import net.osmand.plus.SQLiteTileSource; @@ -122,6 +123,8 @@ import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.Timer; +import java.util.TimerTask; import java.util.TreeMap; import java.util.concurrent.ConcurrentHashMap; @@ -167,11 +170,13 @@ public class OsmandAidlApi { private static final String AIDL_REFRESH_MAP = "aidl_refresh_map"; private static final String AIDL_SET_MAP_LOCATION = "aidl_set_map_location"; + private static final String AIDL_SET_LOCATION = "aidl_set_location"; private static final String AIDL_LATITUDE = "aidl_latitude"; private static final String AIDL_LONGITUDE = "aidl_longitude"; private static final String AIDL_ZOOM = "aidl_zoom"; private static final String AIDL_ROTATION = "aidl_rotation"; private static final String AIDL_ANIMATED = "aidl_animated"; + private static final String AIDL_TIME_TO_NOT_USE_OTHER_GPS = "aidl_time_to_not_use_other_gps"; private static final String AIDL_START_NAME = "aidl_start_name"; private static final String AIDL_START_LAT = "aidl_start_lat"; @@ -232,6 +237,7 @@ public class OsmandAidlApi { private MapActivity mapActivity; private boolean mapActivityActive = false; + private boolean hasCustomLocation = false; public OsmandAidlApi(OsmandApplication app) { this.app = app; @@ -263,6 +269,7 @@ public class OsmandAidlApi { registerHideSqliteDbFileReceiver(mapActivity); registerExecuteQuickActionReceiver(mapActivity); registerLockStateReceiver(mapActivity); + registerSetLocationReceiver(mapActivity); initOsmandTelegram(); app.getAppCustomization().addListener(mapActivity); this.mapActivity = mapActivity; @@ -903,6 +910,50 @@ public class OsmandAidlApi { registerReceiver(lockStateReceiver, mapActivity, AIDL_LOCK_STATE); } + private void registerSetLocationReceiver(MapActivity mapActivity) { + final WeakReference mapActivityRef = new WeakReference<>(mapActivity); + BroadcastReceiver setLocationReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + final MapActivity mapActivity = mapActivityRef.get(); + if (mapActivity == null) { + return; + } + + double lat = intent.getDoubleExtra(AIDL_LATITUDE, Double.NaN); + double lon = intent.getDoubleExtra(AIDL_LONGITUDE, Double.NaN); + long timeToNotUseOtherGPS = intent.getLongExtra(AIDL_TIME_TO_NOT_USE_OTHER_GPS, 0); + + if (!Double.isNaN(lat) && !Double.isNaN(lon)) { + mapActivity.setMapLocation(lat, lon); + mapActivity.refreshMap(); + hasCustomLocation = true; + net.osmand.Location location = new net.osmand.Location("OsmAnd", lat, lon); + app.getLocationProvider().setCustomLocation(location); + } + + final OsmAndLocationProvider.OsmAndLocationListener listener = new OsmAndLocationProvider.OsmAndLocationListener() { + @Override + public void updateLocation(Location location) { + mapActivity.setMapLocation(location.getLatitude(), location.getLongitude()); + mapActivity.refreshMap(); + } + }; + + new Timer().schedule(new TimerTask() { + @Override + public void run() { + if (app.getLocationProvider() != null) { + hasCustomLocation = false; + app.getLocationProvider().addLocationListener(listener); + } + } + }, timeToNotUseOtherGPS); + } + }; + registerReceiver(setLocationReceiver, mapActivity, AIDL_SET_LOCATION); + } + public void registerMapLayers(@NonNull MapActivity mapActivity) { for (ConnectedApp connectedApp : connectedApps.values()) { connectedApp.registerMapLayers(mapActivity); @@ -2405,6 +2456,20 @@ public class OsmandAidlApi { return true; } + public boolean setLocation(double latitude, double longitude, long timeToNotUseOtherGPS) { + Intent intent = new Intent(); + intent.setAction(AIDL_SET_LOCATION); + intent.putExtra(AIDL_LATITUDE, latitude); + intent.putExtra(AIDL_LONGITUDE, longitude); + intent.putExtra(AIDL_TIME_TO_NOT_USE_OTHER_GPS, timeToNotUseOtherGPS); + app.sendBroadcast(intent); + return true; + } + + public boolean hasCustomLocation() { + return hasCustomLocation; + } + private static class FileCopyInfo { long startTime; long lastAccessTime; diff --git a/OsmAnd/src/net/osmand/aidl/OsmandAidlServiceV2.java b/OsmAnd/src/net/osmand/aidl/OsmandAidlServiceV2.java index 5fa2f75421..4384a8ac85 100644 --- a/OsmAnd/src/net/osmand/aidl/OsmandAidlServiceV2.java +++ b/OsmAnd/src/net/osmand/aidl/OsmandAidlServiceV2.java @@ -53,6 +53,7 @@ import net.osmand.aidlapi.gpx.StopGpxRecordingParams; import net.osmand.aidlapi.info.AppInfoParams; import net.osmand.aidlapi.lock.SetLockStateParams; import net.osmand.aidlapi.map.ALatLon; +import net.osmand.aidlapi.map.SetLocationParams; import net.osmand.aidlapi.map.SetMapLocationParams; import net.osmand.aidlapi.maplayer.AddMapLayerParams; import net.osmand.aidlapi.maplayer.RemoveMapLayerParams; @@ -1443,6 +1444,20 @@ public class OsmandAidlServiceV2 extends Service implements AidlCallbackListener } return false; } + + @Override + public boolean setLocation(SetLocationParams params) { + try { + if (params != null) { + OsmandAidlApi api = getApi("setLocation"); + return api != null && api.setLocation(params.getLatitude(), + params.getLongitude(), params.getTimeToNotUseOtherGPS()); + } + } catch (Exception e) { + handleException(e); + } + return false; + } }; private void setCustomization(OsmandAidlApi api, CustomizationInfoParams params) { diff --git a/OsmAnd/src/net/osmand/plus/OsmAndLocationProvider.java b/OsmAnd/src/net/osmand/plus/OsmAndLocationProvider.java index a19ebd3023..32f2b4ee8b 100644 --- a/OsmAnd/src/net/osmand/plus/OsmAndLocationProvider.java +++ b/OsmAnd/src/net/osmand/plus/OsmAndLocationProvider.java @@ -796,6 +796,9 @@ public class OsmAndLocationProvider implements SensorEventListener { if (locationSimulation.isRouteAnimating()) { return; } + if (app.getAidlApi().hasCustomLocation() && isNotSimulatedLocation(location)) { + return; + } if (location != null) { notifyGpsLocationRecovered(); } @@ -812,10 +815,13 @@ public class OsmAndLocationProvider implements SensorEventListener { setLocation(location); } - private void setLocation(net.osmand.Location location) { if (location == null) { + private void setLocation(net.osmand.Location location) { + if (location == null) { updateGPSInfo(null); } - + if (app.getAidlApi().hasCustomLocation() && isNotSimulatedLocation(location)) { + return; + } if (location != null) { // // use because there is a bug on some devices with location.getTime() lastTimeLocationFixed = System.currentTimeMillis(); @@ -850,6 +856,22 @@ public class OsmAndLocationProvider implements SensorEventListener { updateLocation(this.location); } + public void setCustomLocation(net.osmand.Location location) { + if (locationSimulation.isRouteAnimating()) { + return; + } + if (location != null) { + notifyGpsLocationRecovered(); + } + // notify about lost location + scheduleCheckIfGpsLost(location); + + app.getSavingTrackHelper().updateLocation(location, heading); + OsmandPlugin.updateLocationPlugins(location); + app.getRoutingHelper().updateLocation(location); + app.getWaypointHelper().locationChanged(location); + } + private void notifyGpsLocationRecovered() { if (gpsSignalLost) { gpsSignalLost = false; From bb10787d1ce0f48971601fff841d15ca151816fd Mon Sep 17 00:00:00 2001 From: Dima-1 Date: Tue, 19 Jan 2021 21:53:12 +0200 Subject: [PATCH 103/173] Fix travel guides navigation --- .../main/java/net/osmand/data/Amenity.java | 1 + .../WikivoyageArticleNavigationFragment.java | 18 +-- .../plus/wikivoyage/data/TravelArticle.java | 1 + .../plus/wikivoyage/data/TravelObfHelper.java | 111 +++++++++--------- 4 files changed, 67 insertions(+), 64 deletions(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/data/Amenity.java b/OsmAnd-java/src/main/java/net/osmand/data/Amenity.java index 3ef6a54652..14d0abab79 100644 --- a/OsmAnd-java/src/main/java/net/osmand/data/Amenity.java +++ b/OsmAnd-java/src/main/java/net/osmand/data/Amenity.java @@ -41,6 +41,7 @@ public class Amenity extends MapObject { public static final String OSM_DELETE_TAG = "osmand_change"; public static final String IMAGE_TITLE = "image_title"; public static final String IS_PART = "is_part"; + public static final String IS_PARENT_OF = "is_parent_of"; public static final String IS_AGGR_PART = "is_aggr_part"; public static final String CONTENT_JSON = "content_json"; public static final String ROUTE_ID = "route_id"; diff --git a/OsmAnd/src/net/osmand/plus/wikivoyage/article/WikivoyageArticleNavigationFragment.java b/OsmAnd/src/net/osmand/plus/wikivoyage/article/WikivoyageArticleNavigationFragment.java index 960608a784..1018874d26 100644 --- a/OsmAnd/src/net/osmand/plus/wikivoyage/article/WikivoyageArticleNavigationFragment.java +++ b/OsmAnd/src/net/osmand/plus/wikivoyage/article/WikivoyageArticleNavigationFragment.java @@ -104,7 +104,7 @@ public class WikivoyageArticleNavigationFragment extends MenuBottomSheetDialogFr public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { WikivoyageSearchResult articleItem = listAdapter.getArticleItem(groupPosition, childPosition); - sendResults(articleItem.getArticleId()); + sendResults(articleItem.getArticleTitle()); dismiss(); return true; } @@ -113,10 +113,10 @@ public class WikivoyageArticleNavigationFragment extends MenuBottomSheetDialogFr @Override public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) { WikivoyageSearchResult articleItem = (WikivoyageSearchResult) listAdapter.getGroup(groupPosition); - if (Algorithms.isEmpty(articleItem.getArticleRouteId())) { + if (Algorithms.isEmpty(articleItem.getArticleTitle())) { Toast.makeText(getContext(), R.string.wiki_article_not_found, Toast.LENGTH_LONG).show(); } else { - sendResults(articleItem.getArticleId()); + sendResults(articleItem.getArticleTitle()); dismiss(); } return true; @@ -150,14 +150,14 @@ public class WikivoyageArticleNavigationFragment extends MenuBottomSheetDialogFr return nightMode ? R.color.wikivoyage_bottom_bar_bg_dark : R.color.list_background_color_light; } - private void sendResults(TravelArticleIdentifier articleId) { - WikivoyageArticleDialogFragment.showInstance(getMyApplication(), getFragmentManager(), articleId, selectedLang); + private void sendResults(String title) { + WikivoyageArticleDialogFragment.showInstanceByTitle(getMyApplication(), getFragmentManager(), title, selectedLang); } public static boolean showInstance(@NonNull FragmentManager fm, - @Nullable Fragment targetFragment, - @NonNull TravelArticleIdentifier articleId, - @NonNull String selectedLang) { + @Nullable Fragment targetFragment, + @NonNull TravelArticleIdentifier articleId, + @NonNull String selectedLang) { try { Bundle args = new Bundle(); args.putParcelable(ARTICLE_ID_KEY, articleId); @@ -239,7 +239,7 @@ public class WikivoyageArticleNavigationFragment extends MenuBottomSheetDialogFr boolean isLastChild, View convertView, ViewGroup parent) { WikivoyageSearchResult articleItem = getArticleItem(groupPosition, childPosition); String childTitle = articleItem.getArticleTitle(); - boolean selected = articleItem.getArticleId().equals(articleId) || parentsList.contains(childTitle); + boolean selected = childTitle.equals(article.getTitle()) || parentsList.contains(childTitle); if (convertView == null) { convertView = LayoutInflater.from(context) diff --git a/OsmAnd/src/net/osmand/plus/wikivoyage/data/TravelArticle.java b/OsmAnd/src/net/osmand/plus/wikivoyage/data/TravelArticle.java index 0989a7c2e1..cf38b7265f 100644 --- a/OsmAnd/src/net/osmand/plus/wikivoyage/data/TravelArticle.java +++ b/OsmAnd/src/net/osmand/plus/wikivoyage/data/TravelArticle.java @@ -31,6 +31,7 @@ public class TravelArticle { String title; String content; String isPartOf; + String isParentOf = ""; double lat = Double.NaN; double lon = Double.NaN; String imageTitle; diff --git a/OsmAnd/src/net/osmand/plus/wikivoyage/data/TravelObfHelper.java b/OsmAnd/src/net/osmand/plus/wikivoyage/data/TravelObfHelper.java index 983663f3d1..6a3e156e5f 100644 --- a/OsmAnd/src/net/osmand/plus/wikivoyage/data/TravelObfHelper.java +++ b/OsmAnd/src/net/osmand/plus/wikivoyage/data/TravelObfHelper.java @@ -172,6 +172,7 @@ public class TravelObfHelper implements TravelHelper { res.title = Algorithms.isEmpty(title) ? amenity.getName() : title; res.content = amenity.getDescription(lang); res.isPartOf = Algorithms.emptyIfNull(amenity.getTagContent(Amenity.IS_PART, lang)); + res.isParentOf = Algorithms.emptyIfNull(amenity.getTagContent(Amenity.IS_PARENT_OF, lang)); res.lat = amenity.getLocation().getLatitude(); res.lon = amenity.getLocation().getLongitude(); res.imageTitle = Algorithms.emptyIfNull(amenity.getTagContent(Amenity.IMAGE_TITLE, null)); @@ -400,64 +401,29 @@ public class TravelObfHelper implements TravelHelper { Map> navMap = new HashMap<>(); Set headers = new LinkedHashSet<>(); Map headerObjs = new HashMap<>(); - Map> amenityMap = new HashMap<>(); - for (BinaryMapIndexReader reader : getReaders()) { - try { - SearchRequest req = BinaryMapIndexReader.buildSearchPoiRequest(0, - Integer.MAX_VALUE, 0, Integer.MAX_VALUE, -1, getSearchFilter(false), new ResultMatcher() { - - @Override - public boolean publish(Amenity amenity) { - String isPartOf = amenity.getTagContent(Amenity.IS_PART, lang); - if (Algorithms.stringsEqual(title, isPartOf)) { - return true; - } else if (parts != null && parts.length > 0) { - String title = amenity.getName(lang); - title = Algorithms.isEmpty(title) ? amenity.getName() : title; - for (int i = 0; i < parts.length; i++) { - String part = parts[i]; - if (i == 0 && Algorithms.stringsEqual(part, title) || Algorithms.stringsEqual(part, isPartOf)) { - return true; - } - } - } - return false; - } - - @Override - public boolean isCancelled() { - return false; - } - }); - List amenities = reader.searchPoi(req); - if (!Algorithms.isEmpty(amenities)) { - amenityMap.put(reader.getFile(), amenities); - } - } catch (Exception e) { - LOG.error(e.getMessage(), e); - } - } if (parts != null && parts.length > 0) { headers.addAll(Arrays.asList(parts)); - headers.add(title); } - if (!Algorithms.isEmpty(amenityMap)) { - for (Entry> entry : amenityMap.entrySet()) { - File file = entry.getKey(); - for (Amenity amenity : entry.getValue()) { - Set nameLangs = getLanguages(amenity); - if (nameLangs.contains(lang)) { - TravelArticle a = readArticle(file, amenity, lang, false); - WikivoyageSearchResult rs = new WikivoyageSearchResult(a, new ArrayList<>(nameLangs)); - List l = navMap.get(rs.isPartOf); - if (l == null) { - l = new ArrayList<>(); - navMap.put(rs.isPartOf, l); - } - l.add(rs); - if (headers.contains(a.getTitle())) { - headerObjs.put(a.getTitle(), rs); - } + + for (String header : headers) { + TravelArticle parentArticle = getParentArticleByTitle(header, lang); + if (parentArticle == null) { + continue; + } + navMap.put(header, new ArrayList()); + String[] isParentOf = parentArticle.isParentOf.split(";"); + for (String childTitle : isParentOf) { + if (!childTitle.isEmpty()) { + WikivoyageSearchResult searchResult = new WikivoyageSearchResult("", childTitle, null, + null, Collections.singletonList(lang)); + List resultList = navMap.get(header); + if (resultList == null) { + resultList = new ArrayList<>(); + navMap.put(header, resultList); + } + resultList.add(searchResult); + if (headers.contains(childTitle)) { + headerObjs.put(childTitle, searchResult); } } } @@ -482,6 +448,41 @@ public class TravelObfHelper implements TravelHelper { return res; } + private TravelArticle getParentArticleByTitle(final String title, final String lang) { + TravelArticle article = null; + final List amenities = new ArrayList<>(); + for (BinaryMapIndexReader reader : getReaders()) { + try { + SearchRequest req = BinaryMapIndexReader.buildSearchPoiRequest( + 0, 0, title, 0, Integer.MAX_VALUE, 0, Integer.MAX_VALUE, getSearchFilter(false), + new ResultMatcher() { + boolean done = false; + + @Override + public boolean publish(Amenity amenity) { + if (Algorithms.stringsEqual(title, Algorithms.emptyIfNull(amenity.getName(lang)))) { + amenities.add(amenity); + done = true; + } + return false; + } + + @Override + public boolean isCancelled() { + return done; + } + }, null); + reader.searchPoiByName(req); + } catch (IOException e) { + LOG.error(e.getMessage()); + } + if (!Algorithms.isEmpty(amenities)) { + article = readArticle(reader.getFile(), amenities.get(0), lang, false); + } + } + return article; + } + @Override public TravelArticle getArticleById(@NonNull TravelArticleIdentifier articleId, @NonNull String lang) { TravelArticle article = getCachedArticle(articleId, lang, true); From 6417e995d30a624358479501bde40f0aab771cca Mon Sep 17 00:00:00 2001 From: max-klaus Date: Wed, 20 Jan 2021 10:38:57 +0300 Subject: [PATCH 104/173] Fix first time location get --- OsmAnd/src/net/osmand/plus/activities/MapActivity.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java index a94997caaa..eb6dcbfbb7 100644 --- a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java +++ b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java @@ -349,17 +349,19 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven if (!settings.isLastKnownMapLocation()) { // show first time when application ran + final WeakReference activityRef = new WeakReference<>(this); net.osmand.Location location = app.getLocationProvider().getFirstTimeRunDefaultLocation(new OsmAndLocationListener() { @Override public void updateLocation(Location location) { - if (app.getLocationProvider().getLastKnownLocation() == null) { - setMapInitialLatLon(location); + MapActivity a = activityRef.get(); + if (AndroidUtils.isActivityNotDestroyed(a) && app.getLocationProvider().getLastKnownLocation() == null) { + setMapInitialLatLon(a.mapView, location); } } }); mapViewTrackingUtilities.setMapLinkedToLocation(true); if (location != null) { - setMapInitialLatLon(location); + setMapInitialLatLon(mapView, location); } } addDialogProvider(mapActions); @@ -384,7 +386,7 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven mIsDestroyed = false; } - private void setMapInitialLatLon(@Nullable Location location) { + private void setMapInitialLatLon(@NonNull OsmandMapTileView mapView, @Nullable Location location) { if (location != null) { mapView.setLatLon(location.getLatitude(), location.getLongitude()); mapView.setIntZoom(14); From 09827cd895cf8fab54b428d93ea390daee0f3c90 Mon Sep 17 00:00:00 2001 From: max-klaus Date: Wed, 20 Jan 2021 13:45:28 +0300 Subject: [PATCH 105/173] Fix flavor detect --- OsmAnd/src/net/osmand/plus/Version.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/Version.java b/OsmAnd/src/net/osmand/plus/Version.java index b1962564e3..1ad99c96e8 100644 --- a/OsmAnd/src/net/osmand/plus/Version.java +++ b/OsmAnd/src/net/osmand/plus/Version.java @@ -20,11 +20,11 @@ public class Version { private final static String UTM_REF = "&referrer=utm_source%3Dosmand"; public static boolean isHuawei() { - return "huawei".contains(getBuildFlavor()); + return getBuildFlavor().contains("huawei"); } private static boolean isAmazon() { - return "amazon".contains(getBuildFlavor()); + return getBuildFlavor().contains("amazon"); } private static String getBuildFlavor() { From 5d6101f23aae4c9d2324bb0a33ca688fbde06747 Mon Sep 17 00:00:00 2001 From: Skalii Date: Wed, 20 Jan 2021 17:22:44 +0200 Subject: [PATCH 106/173] set overview as default tab; add layout for overview fragment; add layouts for action items; add OverviewCard. --- OsmAnd/res/layout/gpx_overview_fragment.xml | 104 ++++++ OsmAnd/res/layout/item_gpx_action.xml | 22 ++ OsmAnd/res/layout/item_gpx_action_segment.xml | 46 +++ .../res/menu/track_menu_bottom_navigation.xml | 8 +- .../net/osmand/plus/track/OverviewCard.java | 334 ++++++++++++++++++ .../osmand/plus/track/TrackMenuFragment.java | 22 +- 6 files changed, 528 insertions(+), 8 deletions(-) create mode 100644 OsmAnd/res/layout/gpx_overview_fragment.xml create mode 100644 OsmAnd/res/layout/item_gpx_action.xml create mode 100644 OsmAnd/res/layout/item_gpx_action_segment.xml create mode 100644 OsmAnd/src/net/osmand/plus/track/OverviewCard.java diff --git a/OsmAnd/res/layout/gpx_overview_fragment.xml b/OsmAnd/res/layout/gpx_overview_fragment.xml new file mode 100644 index 0000000000..e02826fcbf --- /dev/null +++ b/OsmAnd/res/layout/gpx_overview_fragment.xml @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OsmAnd/res/layout/item_gpx_action.xml b/OsmAnd/res/layout/item_gpx_action.xml new file mode 100644 index 0000000000..940f85d8bf --- /dev/null +++ b/OsmAnd/res/layout/item_gpx_action.xml @@ -0,0 +1,22 @@ + + + + + + + + \ No newline at end of file diff --git a/OsmAnd/res/layout/item_gpx_action_segment.xml b/OsmAnd/res/layout/item_gpx_action_segment.xml new file mode 100644 index 0000000000..962941b95c --- /dev/null +++ b/OsmAnd/res/layout/item_gpx_action_segment.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OsmAnd/res/menu/track_menu_bottom_navigation.xml b/OsmAnd/res/menu/track_menu_bottom_navigation.xml index fa07fb12a4..1b0de6b246 100644 --- a/OsmAnd/res/menu/track_menu_bottom_navigation.xml +++ b/OsmAnd/res/menu/track_menu_bottom_navigation.xml @@ -1,10 +1,10 @@ - - - - + items = new ArrayList<>(); + items.add(item1); + items.add(item2); + items.add(item3); + items.add(item4); + items.add(item5); + items.add(item6); + + rvOverview = view.findViewById(R.id.recycler_overview); + LinearLayoutManager llManager = new LinearLayoutManager(app); + llManager.setOrientation(LinearLayoutManager.HORIZONTAL); + rvOverview.setLayoutManager(llManager); + rvOverview.setItemAnimator(new DefaultItemAnimator()); + final SegmentItemAdapter oiAdapter = new SegmentItemAdapter(items); + rvOverview.setAdapter(oiAdapter); + rvOverview.addItemDecoration(new HorizontalDividerDecoration(app)); + + } + + private void initShowButton(final int iconColorDef, final int iconColorPres) { + final AppCompatImageView image = showButton.findViewById(R.id.image); + final AppCompatImageView filled = showButton.findViewById(R.id.filled); + final int iconShowResId = R.drawable.ic_action_view; + final int iconHideResId = R.drawable.ic_action_hide; + final boolean[] gpxFileSelected = {isGpxFileSelected(app, gpxFile)}; + filled.setImageResource(R.drawable.bg_topbar_shield_exit_ref); + filled.setAlpha(gpxFileSelected[0] ? 1f : 0.1f); + setImageDrawable(image, gpxFileSelected[0] ? iconShowResId : iconHideResId, + gpxFileSelected[0] ? iconColorPres : iconColorDef); + showButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + gpxFileSelected[0] = !gpxFileSelected[0]; + + setImageDrawable(image, gpxFileSelected[0] ? iconShowResId : iconHideResId, + gpxFileSelected[0] ? iconColorPres : iconColorDef); + + filled.setAlpha(gpxFileSelected[0] ? 1f : 0.1f); + + CardListener listener = getListener(); + if (listener != null) { + listener.onCardButtonPressed(OverviewCard.this, SHOW_ON_MAP_BUTTON_INDEX); + } + } + }); + } + + private void initAppearanceButton(int iconColorDef, int iconColorPres) { + initButton(appearanceButton, APPEARANCE_BUTTON_INDEX, R.drawable.ic_action_appearance, iconColorDef, iconColorPres); + } + + private void initEditButton(int iconColorDef, int iconColorPres) { + initButton(editButton, EDIT_BUTTON_INDEX, R.drawable.ic_action_edit_dark, iconColorDef, iconColorPres); + } + + private void initDirectionsButton(int iconColorDef, int iconColorPres) { + initButton(directionsButton, DIRECTIONS_BUTTON_INDEX, R.drawable.ic_action_gdirections_dark, iconColorDef, iconColorPres); + } + + private void initButton(View item, final int buttonIndex, int iconResId, int iconColorDef, int iconColorPres) { + final AppCompatImageView image = item.findViewById(R.id.image); + final AppCompatImageView filled = item.findViewById(R.id.filled); + filled.setImageResource(R.drawable.bg_topbar_shield_exit_ref); + filled.setAlpha(0.1f); + setImageDrawable(image, iconResId, iconColorDef); + setOnTouchItem(item, image, filled, iconResId, iconColorDef, iconColorPres); + item.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + CardListener listener = getListener(); + if (listener != null) { + listener.onCardButtonPressed(OverviewCard.this, buttonIndex); + } + } + }); + } + + private void setImageDrawable(ImageView iv, @DrawableRes int resId, @ColorRes int color) { + Drawable icon = app.getUIUtilities().getIcon(resId, color); + iv.setImageDrawable(icon); + } + + private void setOnTouchItem(View item, final ImageView image, final ImageView filled, @DrawableRes final int resId, @ColorRes final int colorDef, @ColorRes final int colorPres) { + item.setOnTouchListener(new View.OnTouchListener() { + @SuppressLint("ClickableViewAccessibility") + @Override + public boolean onTouch(View v, MotionEvent event) { + switch (event.getAction()) { + case MotionEvent.ACTION_DOWN: { + filled.setAlpha(1f); + setImageDrawable(image, resId, colorPres); + break; + } + case MotionEvent.ACTION_UP: + case MotionEvent.ACTION_CANCEL: { + filled.setAlpha(0.1f); + setImageDrawable(image, resId, colorDef); + break; + } + } + return false; + } + }); + } + + private class SegmentItemAdapter extends RecyclerView.Adapter { + private final List segmentItems; + + public SegmentItemAdapter(List segmentItems) { + this.segmentItems = segmentItems; + } + + @Override + public int getItemCount() { + return segmentItems.size(); + } + + @NonNull + @Override + public SegmentItemViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View itemView = LayoutInflater.from(parent.getContext()) + .inflate(R.layout.item_gpx_action_segment, parent, false); + return new SegmentItemViewHolder(itemView); + } + + @Override + public void onBindViewHolder(SegmentItemViewHolder holder, int position) { + SegmentItem item = segmentItems.get(position); + holder.bind(item); + } + + + class SegmentItemViewHolder extends RecyclerView.ViewHolder { + private final TextViewEx valueText; + private final TextView titleText; + private final AppCompatImageView imageView; + + SegmentItemViewHolder(View view) { + super(view); + valueText = view.findViewById(R.id.value); + titleText = view.findViewById(R.id.title); + imageView = view.findViewById(R.id.image); + } + + public void bind(SegmentItem overviewItem) { + valueText.setText(overviewItem.value); + titleText.setText(overviewItem.title); + setImageDrawable(imageView, overviewItem.imageResId, R.color.text_color_primary_light); //todo change color + } + } + } + + private class HorizontalDividerDecoration extends RecyclerView.ItemDecoration { + private final Drawable divider; + + public HorizontalDividerDecoration(Context context) { + int[] ATTRS = new int[]{android.R.attr.listDivider}; + final TypedArray a = context.obtainStyledAttributes(ATTRS); + divider = a.getDrawable(0); + a.recycle(); +// mDivider = getMyApplication().getUIUtilities().getIcon(R.drawable.divider_solid, R.color.divider_color_light); //todo change drawable + } + + @Override + public void onDraw(@NonNull Canvas c, @NonNull RecyclerView parent, @NonNull RecyclerView.State state) { + drawHorizontal(c, parent); + } + + public void drawHorizontal(Canvas c, RecyclerView parent) { + final int marginV = parent.getContext().getResources().getDimensionPixelSize(R.dimen.map_small_button_margin); + final int marginH = parent.getContext().getResources().getDimensionPixelSize(R.dimen.content_padding); + final int childCount = parent.getChildCount(); + for (int i = 0; i < childCount; i++) { + final View child = parent.getChildAt(i); + final int left = child.getRight() - divider.getIntrinsicWidth() + marginH; + final int right = left + divider.getIntrinsicHeight(); + final int top = child.getTop() + marginV; + final int bottom = child.getBottom() - marginV; + divider.setBounds(left, top, right, bottom); + divider.draw(c); + } + } + + @Override + public void getItemOffsets(Rect outRect, @NonNull View view, @NonNull RecyclerView parent, @NonNull RecyclerView.State state) { + int marginV = parent.getContext().getResources().getDimensionPixelSize(R.dimen.map_small_button_margin); + int marginH = parent.getContext().getResources().getDimensionPixelSize(R.dimen.content_padding); + outRect.set(marginH - divider.getIntrinsicWidth(), marginV, marginH + divider.getIntrinsicWidth(), marginV); + } + } + + private class SegmentItem { + private String title; + private String value; + private int imageResId; + + public SegmentItem(String title, String value, int imageResId) { + this.title = title; + this.value = value; + this.imageResId = imageResId; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public int getImageResId() { + return imageResId; + } + + public void setImageResId(int imageResId) { + this.imageResId = imageResId; + } + } +} \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/plus/track/TrackMenuFragment.java b/OsmAnd/src/net/osmand/plus/track/TrackMenuFragment.java index 03f8ab374a..f102331bfc 100644 --- a/OsmAnd/src/net/osmand/plus/track/TrackMenuFragment.java +++ b/OsmAnd/src/net/osmand/plus/track/TrackMenuFragment.java @@ -109,15 +109,17 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card private TextView headerTitle; private ImageView headerIcon; private BottomNavigationView bottomNav; - private TrackMenuType menuType = TrackMenuType.TRACK; + private TrackMenuType menuType = TrackMenuType.OVERVIEW; private SegmentsCard segmentsCard; private OptionsCard optionsCard; + private OverviewCard overviewCard; private TrackChartPoints trackChartPoints; private int menuTitleHeight; public enum TrackMenuType { + OVERVIEW(R.id.action_overview, R.string.shared_string_overview), TRACK(R.id.action_track, R.string.shared_string_gpx_tracks), POINTS(R.id.action_points, R.string.shared_string_gpx_points), OPTIONS(R.id.action_options, R.string.shared_string_options); @@ -234,7 +236,19 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card if (mapActivity != null) { ViewGroup cardsContainer = getCardsContainer(); cardsContainer.removeAllViews(); - if (menuType == TrackMenuType.TRACK) { + if (menuType == TrackMenuType.OVERVIEW) { + if (overviewCard != null && overviewCard.getView() != null) { + ViewGroup parent = (ViewGroup) overviewCard.getView().getParent(); + if (parent != null) { + parent.removeAllViews(); + } + cardsContainer.addView(overviewCard.getView()); + } else { + overviewCard = new OverviewCard(mapActivity, displayHelper, this); + overviewCard.setListener(this); + cardsContainer.addView(overviewCard.build(mapActivity)); + } + } else if (menuType == TrackMenuType.TRACK) { if (segmentsCard != null && segmentsCard.getView() != null) { ViewGroup parent = (ViewGroup) segmentsCard.getView().getParent(); if (parent != null) { @@ -415,7 +429,7 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card if (mapActivity == null) { return; } - if (card instanceof OptionsCard) { + if (card instanceof OptionsCard || card instanceof OverviewCard) { final GPXFile gpxFile = getGpx(); if (buttonIndex == SHOW_ON_MAP_BUTTON_INDEX) { boolean gpxFileSelected = !isGpxFileSelected(app, gpxFile); @@ -567,7 +581,7 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card BottomNavigationView bottomNav = view.findViewById(R.id.bottom_navigation); bottomNav.setItemIconTintList(navColorStateList); bottomNav.setItemTextColor(navColorStateList); - bottomNav.setSelectedItemId(R.id.action_track); + bottomNav.setSelectedItemId(R.id.action_overview); bottomNav.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { From 319ed417007d773d5b5e6413a9e4829b27e6ef93 Mon Sep 17 00:00:00 2001 From: cepprice Date: Wed, 20 Jan 2021 22:55:51 +0500 Subject: [PATCH 107/173] Adjust logic and add addition params to location (in addition to latitute & longitude) --- .../src/net/osmand/aidlapi/map/ALocation.aidl | 3 + .../src/net/osmand/aidlapi/map/ALocation.java | 209 ++++++++++++++++++ .../osmand/aidlapi/map/SetLocationParams.java | 23 +- OsmAnd/src/net/osmand/aidl/OsmandAidlApi.java | 69 +++--- .../net/osmand/aidl/OsmandAidlServiceV2.java | 3 +- .../osmand/plus/OsmAndLocationProvider.java | 30 +-- 6 files changed, 264 insertions(+), 73 deletions(-) create mode 100644 OsmAnd-api/src/net/osmand/aidlapi/map/ALocation.aidl create mode 100644 OsmAnd-api/src/net/osmand/aidlapi/map/ALocation.java diff --git a/OsmAnd-api/src/net/osmand/aidlapi/map/ALocation.aidl b/OsmAnd-api/src/net/osmand/aidlapi/map/ALocation.aidl new file mode 100644 index 0000000000..88c65b5e0c --- /dev/null +++ b/OsmAnd-api/src/net/osmand/aidlapi/map/ALocation.aidl @@ -0,0 +1,3 @@ +package net.osmand.aidlapi.map; + +parcelable ALocation; \ No newline at end of file diff --git a/OsmAnd-api/src/net/osmand/aidlapi/map/ALocation.java b/OsmAnd-api/src/net/osmand/aidlapi/map/ALocation.java new file mode 100644 index 0000000000..243e8e89fa --- /dev/null +++ b/OsmAnd-api/src/net/osmand/aidlapi/map/ALocation.java @@ -0,0 +1,209 @@ +package net.osmand.aidlapi.map; + +import android.location.Location; +import android.os.Bundle; +import android.os.Parcel; +import android.os.Parcelable; + +import net.osmand.aidlapi.AidlParams; + +public class ALocation extends AidlParams { + + private double latitude = 0.0; + private double longitude = 0.0; + private long time = 0; + private boolean hasAltitude = false; + private double altitude = 0.0f; + private boolean hasSpeed = false; + private float speed = 0.0f; + private boolean hasBearing = false; + private float bearing = 0.0f; + private boolean hasAccuracy = false; + private float accuracy = 0.0f; + private boolean hasVerticalAccuracy = false; + private float verticalAccuracy = 0.0f; + + private ALocation() { + } + + public ALocation(Parcel in) { + readFromParcel(in); + } + + public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { + @Override + public ALocation createFromParcel(Parcel in) { + return new ALocation(in); + } + + @Override + public ALocation[] newArray(int size) { + return new ALocation[size]; + } + }; + + public double getLatitude() { + return latitude; + } + + public double getLongitude() { + return longitude; + } + + public long getTime() { + return time; + } + + public boolean hasAltitude() { + return hasAltitude; + } + + public double getAltitude() { + return altitude; + } + + public boolean hasSpeed() { + return hasSpeed; + } + + public float getSpeed() { + return speed; + } + + public boolean hasBearing() { + return hasBearing; + } + + public float getBearing() { + return bearing; + } + + public boolean hasAccuracy() { + return hasAccuracy; + } + + public float getAccuracy() { + return accuracy; + } + + public boolean hasVerticalAccuracy() { + return hasVerticalAccuracy; + } + + public float getVerticalAccuracy() { + return verticalAccuracy; + } + + @Override + protected void writeToBundle(Bundle bundle) { + bundle.putDouble("latitude", latitude); + bundle.putDouble("longitude", longitude); + bundle.putLong("time", time); + bundle.putBoolean("hasAltitude", hasAltitude); + bundle.putDouble("altitude", altitude); + bundle.putBoolean("hasSpeed", hasSpeed); + bundle.putFloat("speed", speed); + bundle.putBoolean("hasBearing", hasBearing); + bundle.putFloat("bearing", bearing); + bundle.putBoolean("hasAccuracy", hasAccuracy); + bundle.putFloat("accuracy", accuracy); + bundle.putBoolean("hasVerticalAccuracy", hasVerticalAccuracy); + bundle.putFloat("verticalAccuracy", verticalAccuracy); + } + + @Override + protected void readFromBundle(Bundle bundle) { + latitude = bundle.getDouble("latitude"); + longitude = bundle.getDouble("longitude"); + time = bundle.getLong("time"); + hasAltitude = bundle.getBoolean("hasAltitude"); + altitude = bundle.getDouble("altitude"); + hasSpeed = bundle.getBoolean("hasSpeed"); + speed = bundle.getFloat("speed"); + hasBearing = bundle.getBoolean("hasBearing"); + bearing = bundle.getFloat("bearing"); + hasAccuracy = bundle.getBoolean("hasAccuracy"); + accuracy = bundle.getFloat("accuracy"); + hasVerticalAccuracy = bundle.getBoolean("hasVerticalAccuracy"); + verticalAccuracy = bundle.getFloat("verticalAccuracy"); + } + + public static Builder builder() { + return new ALocation().new Builder(); + } + + public class Builder { + + private Builder() { + } + + public Builder setLatitude(double latitude) { + ALocation.this.latitude = latitude; + return this; + } + + public Builder setLongitude(double longitude) { + ALocation.this.longitude = longitude; + return this; + } + + public Builder setTime(long time) { + ALocation.this.time = time; + return this; + } + + public Builder hasAltitude(boolean hasAltitude) { + ALocation.this.hasAltitude = hasAltitude; + return this; + } + + public Builder setAltitude(float altitude) { + ALocation.this.altitude = altitude; + return this; + } + + public Builder hasSpeed(boolean hasSpeed) { + ALocation.this.hasSpeed = hasSpeed; + return this; + } + + public Builder setSpeed(float speed) { + ALocation.this.speed = speed; + return this; + } + + public Builder hasBearing(boolean hasBearing) { + ALocation.this.hasBearing = hasBearing; + return this; + } + + public Builder setBearing(float bearing) { + ALocation.this.bearing = bearing; + return this; + } + + public Builder hasAccuracy(boolean hasAccuracy) { + ALocation.this.hasAccuracy = hasAccuracy; + return this; + } + + public Builder setAccuracy(float accuracy) { + ALocation.this.accuracy = accuracy; + return this; + } + + public Builder hasVerticalAccuracy(boolean hasVerticalAccuracy) { + ALocation.this.hasVerticalAccuracy = hasVerticalAccuracy; + return this; + } + + public Builder setVerticalAccuracy(float verticalAccuracy) { + ALocation.this.verticalAccuracy = verticalAccuracy; + return this; + } + + public ALocation build() { + return ALocation.this; + } + } +} diff --git a/OsmAnd-api/src/net/osmand/aidlapi/map/SetLocationParams.java b/OsmAnd-api/src/net/osmand/aidlapi/map/SetLocationParams.java index 167ae1d3a4..61531125fe 100644 --- a/OsmAnd-api/src/net/osmand/aidlapi/map/SetLocationParams.java +++ b/OsmAnd-api/src/net/osmand/aidlapi/map/SetLocationParams.java @@ -7,13 +7,11 @@ import net.osmand.aidlapi.AidlParams; public class SetLocationParams extends AidlParams { - private double latitude; - private double longitude; + private ALocation location; private long timeToNotUseOtherGPS; - public SetLocationParams(double latitude, double longitude, long timeToNotUseOtherGPS) { - this.latitude = latitude; - this.longitude = longitude; + public SetLocationParams(ALocation location, long timeToNotUseOtherGPS) { + this.location = location; this.timeToNotUseOtherGPS = timeToNotUseOtherGPS; } @@ -33,12 +31,8 @@ public class SetLocationParams extends AidlParams { } }; - public double getLatitude() { - return latitude; - } - - public double getLongitude() { - return longitude; + public ALocation getLocation() { + return location; } public long getTimeToNotUseOtherGPS() { @@ -47,15 +41,14 @@ public class SetLocationParams extends AidlParams { @Override public void writeToBundle(Bundle bundle) { - bundle.putDouble("latitude", latitude); - bundle.putDouble("longitude", longitude); + bundle.putParcelable("location", location); bundle.putLong("aidl_time_to_not_use_other_gps", timeToNotUseOtherGPS); } @Override protected void readFromBundle(Bundle bundle) { - latitude = bundle.getDouble("latitude"); - longitude = bundle.getDouble("longitude"); + bundle.setClassLoader(ALocation.class.getClassLoader()); + location = bundle.getParcelable("location"); timeToNotUseOtherGPS = bundle.getLong("aidl_time_to_not_use_other_gps"); } } \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/aidl/OsmandAidlApi.java b/OsmAnd/src/net/osmand/aidl/OsmandAidlApi.java index 3a480856fe..108e52c558 100644 --- a/OsmAnd/src/net/osmand/aidl/OsmandAidlApi.java +++ b/OsmAnd/src/net/osmand/aidl/OsmandAidlApi.java @@ -43,6 +43,7 @@ import net.osmand.aidl.tiles.ASqliteDbFile; import net.osmand.aidlapi.customization.AProfile; import net.osmand.aidlapi.info.AppInfoParams; import net.osmand.aidlapi.map.ALatLon; +import net.osmand.aidlapi.map.ALocation; import net.osmand.aidlapi.navigation.ABlockedRoad; import net.osmand.data.FavouritePoint; import net.osmand.data.LatLon; @@ -176,6 +177,7 @@ public class OsmandAidlApi { private static final String AIDL_ZOOM = "aidl_zoom"; private static final String AIDL_ROTATION = "aidl_rotation"; private static final String AIDL_ANIMATED = "aidl_animated"; + private static final String AIDL_LOCATION = "aidl_location"; private static final String AIDL_TIME_TO_NOT_USE_OTHER_GPS = "aidl_time_to_not_use_other_gps"; private static final String AIDL_START_NAME = "aidl_start_name"; @@ -237,7 +239,6 @@ public class OsmandAidlApi { private MapActivity mapActivity; private boolean mapActivityActive = false; - private boolean hasCustomLocation = false; public OsmandAidlApi(OsmandApplication app) { this.app = app; @@ -911,44 +912,41 @@ public class OsmandAidlApi { } private void registerSetLocationReceiver(MapActivity mapActivity) { - final WeakReference mapActivityRef = new WeakReference<>(mapActivity); BroadcastReceiver setLocationReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { - final MapActivity mapActivity = mapActivityRef.get(); - if (mapActivity == null) { - return; - } - - double lat = intent.getDoubleExtra(AIDL_LATITUDE, Double.NaN); - double lon = intent.getDoubleExtra(AIDL_LONGITUDE, Double.NaN); + ALocation aLocation = intent.getParcelableExtra(AIDL_LOCATION); long timeToNotUseOtherGPS = intent.getLongExtra(AIDL_TIME_TO_NOT_USE_OTHER_GPS, 0); - if (!Double.isNaN(lat) && !Double.isNaN(lon)) { - mapActivity.setMapLocation(lat, lon); - mapActivity.refreshMap(); - hasCustomLocation = true; - net.osmand.Location location = new net.osmand.Location("OsmAnd", lat, lon); + if (aLocation != null && !Double.isNaN(aLocation.getLatitude()) && !Double.isNaN(aLocation.getLongitude())) { + Location location = new Location(app.getPackageName()); + location.setLatitude(aLocation.getLatitude()); + location.setLongitude(aLocation.getLongitude()); + location.setTime(aLocation.getTime()); + if (aLocation.hasAltitude()) { + location.setAltitude(aLocation.getAltitude()); + } + if (aLocation.hasSpeed()) { + location.setSpeed(aLocation.getSpeed()); + } + if (aLocation.hasBearing()) { + location.setBearing(aLocation.getBearing()); + } + if (aLocation.hasAccuracy()) { + location.setAccuracy(aLocation.getAccuracy()); + } + if (aLocation.hasVerticalAccuracy()) { + location.setVerticalAccuracy(aLocation.getVerticalAccuracy()); + } app.getLocationProvider().setCustomLocation(location); - } - final OsmAndLocationProvider.OsmAndLocationListener listener = new OsmAndLocationProvider.OsmAndLocationListener() { - @Override - public void updateLocation(Location location) { - mapActivity.setMapLocation(location.getLatitude(), location.getLongitude()); - mapActivity.refreshMap(); - } - }; - - new Timer().schedule(new TimerTask() { - @Override - public void run() { - if (app.getLocationProvider() != null) { - hasCustomLocation = false; - app.getLocationProvider().addLocationListener(listener); + app.runInUIThread(new Runnable() { + @Override + public void run() { + app.getLocationProvider().setCustomLocation(null); } - } - }, timeToNotUseOtherGPS); + }, timeToNotUseOtherGPS); + } } }; registerReceiver(setLocationReceiver, mapActivity, AIDL_SET_LOCATION); @@ -2456,20 +2454,15 @@ public class OsmandAidlApi { return true; } - public boolean setLocation(double latitude, double longitude, long timeToNotUseOtherGPS) { + public boolean setLocation(ALocation location, long timeToNotUseOtherGPS) { Intent intent = new Intent(); intent.setAction(AIDL_SET_LOCATION); - intent.putExtra(AIDL_LATITUDE, latitude); - intent.putExtra(AIDL_LONGITUDE, longitude); + intent.putExtra(AIDL_LOCATION, location); intent.putExtra(AIDL_TIME_TO_NOT_USE_OTHER_GPS, timeToNotUseOtherGPS); app.sendBroadcast(intent); return true; } - public boolean hasCustomLocation() { - return hasCustomLocation; - } - private static class FileCopyInfo { long startTime; long lastAccessTime; diff --git a/OsmAnd/src/net/osmand/aidl/OsmandAidlServiceV2.java b/OsmAnd/src/net/osmand/aidl/OsmandAidlServiceV2.java index 4384a8ac85..60a8d8acd6 100644 --- a/OsmAnd/src/net/osmand/aidl/OsmandAidlServiceV2.java +++ b/OsmAnd/src/net/osmand/aidl/OsmandAidlServiceV2.java @@ -1450,8 +1450,7 @@ public class OsmandAidlServiceV2 extends Service implements AidlCallbackListener try { if (params != null) { OsmandAidlApi api = getApi("setLocation"); - return api != null && api.setLocation(params.getLatitude(), - params.getLongitude(), params.getTimeToNotUseOtherGPS()); + return api != null && api.setLocation(params.getLocation(), params.getTimeToNotUseOtherGPS()); } } catch (Exception e) { handleException(e); diff --git a/OsmAnd/src/net/osmand/plus/OsmAndLocationProvider.java b/OsmAnd/src/net/osmand/plus/OsmAndLocationProvider.java index 32f2b4ee8b..9f043a78c3 100644 --- a/OsmAnd/src/net/osmand/plus/OsmAndLocationProvider.java +++ b/OsmAnd/src/net/osmand/plus/OsmAndLocationProvider.java @@ -97,6 +97,7 @@ public class OsmAndLocationProvider implements SensorEventListener { private long cachedLocationTimeFix = 0; private net.osmand.Location cachedLocation; + private net.osmand.Location customLocation; private boolean sensorRegistered = false; private float[] mGravs = new float[3]; @@ -796,7 +797,7 @@ public class OsmAndLocationProvider implements SensorEventListener { if (locationSimulation.isRouteAnimating()) { return; } - if (app.getAidlApi().hasCustomLocation() && isNotSimulatedLocation(location)) { + if (hasCustomLocation() && isNotSimulatedLocation(location)) { return; } if (location != null) { @@ -810,6 +811,15 @@ public class OsmAndLocationProvider implements SensorEventListener { app.getRoutingHelper().updateLocation(location); app.getWaypointHelper().locationChanged(location); } + + public void setCustomLocation(net.osmand.Location location) { + customLocation = location; + setLocation(location); + } + + private boolean hasCustomLocation() { + return customLocation != null; + } public void setLocationFromSimulation(net.osmand.Location location) { setLocation(location); @@ -819,7 +829,7 @@ public class OsmAndLocationProvider implements SensorEventListener { if (location == null) { updateGPSInfo(null); } - if (app.getAidlApi().hasCustomLocation() && isNotSimulatedLocation(location)) { + if (hasCustomLocation() && isNotSimulatedLocation(location)) { return; } if (location != null) { @@ -856,22 +866,6 @@ public class OsmAndLocationProvider implements SensorEventListener { updateLocation(this.location); } - public void setCustomLocation(net.osmand.Location location) { - if (locationSimulation.isRouteAnimating()) { - return; - } - if (location != null) { - notifyGpsLocationRecovered(); - } - // notify about lost location - scheduleCheckIfGpsLost(location); - - app.getSavingTrackHelper().updateLocation(location, heading); - OsmandPlugin.updateLocationPlugins(location); - app.getRoutingHelper().updateLocation(location); - app.getWaypointHelper().locationChanged(location); - } - private void notifyGpsLocationRecovered() { if (gpsSignalLost) { gpsSignalLost = false; From ed0716de48ba61107eda235e8327c172187b7073 Mon Sep 17 00:00:00 2001 From: Dima-1 Date: Wed, 20 Jan 2021 19:57:25 +0200 Subject: [PATCH 108/173] Fix link and description --- .../src/net/osmand/plus/wikivoyage/data/TravelObfHelper.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/OsmAnd/src/net/osmand/plus/wikivoyage/data/TravelObfHelper.java b/OsmAnd/src/net/osmand/plus/wikivoyage/data/TravelObfHelper.java index 983663f3d1..21b9e9dc37 100644 --- a/OsmAnd/src/net/osmand/plus/wikivoyage/data/TravelObfHelper.java +++ b/OsmAnd/src/net/osmand/plus/wikivoyage/data/TravelObfHelper.java @@ -192,7 +192,8 @@ public class TravelObfHelper implements TravelHelper { GPXFile gpxFile = null; List pointList = getPointList(article); if (!Algorithms.isEmpty(pointList)) { - gpxFile = new GPXFile(article.getTitle(), article.getLang(), ""); + gpxFile = new GPXFile(article.getTitle(), article.getLang(), article.getContent()); + gpxFile.metadata.link = TravelArticle.getImageUrl(article.getImageTitle(), false); for (Amenity amenity : pointList) { WptPt wptPt = createWptPt(amenity, article.getLang()); gpxFile.addPoint(wptPt); From a1aeb9953b4de1e84f32405f1d984a2d0ce33df8 Mon Sep 17 00:00:00 2001 From: androiddevkotlin <64539346+androiddevkotlin@users.noreply.github.com> Date: Wed, 20 Jan 2021 21:40:54 +0200 Subject: [PATCH 109/173] Fix rtl, icon, color tick, visible container --- ...eet_with_switch_divider_and_additional_button.xml | 12 +++++++----- OsmAnd/res/layout/trip_recording_fragment.xml | 2 +- .../plus/monitoring/TripRecordingBottomSheet.java | 10 ++++------ 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/OsmAnd/res/layout/bottom_sheet_with_switch_divider_and_additional_button.xml b/OsmAnd/res/layout/bottom_sheet_with_switch_divider_and_additional_button.xml index 7e522baa0d..681c03e560 100644 --- a/OsmAnd/res/layout/bottom_sheet_with_switch_divider_and_additional_button.xml +++ b/OsmAnd/res/layout/bottom_sheet_with_switch_divider_and_additional_button.xml @@ -8,6 +8,8 @@ android:gravity="center_vertical" android:minHeight="@dimen/bottom_sheet_selected_item_title_height" android:paddingStart="@dimen/content_padding" + android:paddingEnd="@dimen/content_padding" + android:paddingRight="@dimen/content_padding" android:paddingLeft="@dimen/content_padding"> @@ -66,11 +68,11 @@ diff --git a/OsmAnd/res/layout/trip_recording_fragment.xml b/OsmAnd/res/layout/trip_recording_fragment.xml index 62bde11259..f34545e7f2 100644 --- a/OsmAnd/res/layout/trip_recording_fragment.xml +++ b/OsmAnd/res/layout/trip_recording_fragment.xml @@ -83,6 +83,7 @@ app:thumbRadius="@dimen/content_padding_small_half" app:trackColorActive="@color/profile_icon_color_blue_light" app:trackColorInactive="#4D007EB3" + app:tickColorInactive="#007EB3" app:trackHeight="@dimen/slider_track_height" tools:visibility="visible" /> @@ -97,7 +98,6 @@ android:text="@string/confirm_every_run" android:textColor="?android:textColorPrimary" android:textSize="@dimen/default_list_text_size" - android:visibility="gone" osmand:typeface="@string/font_roboto_regular" tools:visibility="visible" /> diff --git a/OsmAnd/src/net/osmand/plus/monitoring/TripRecordingBottomSheet.java b/OsmAnd/src/net/osmand/plus/monitoring/TripRecordingBottomSheet.java index acad56bfb0..54b444ff30 100644 --- a/OsmAnd/src/net/osmand/plus/monitoring/TripRecordingBottomSheet.java +++ b/OsmAnd/src/net/osmand/plus/monitoring/TripRecordingBottomSheet.java @@ -31,8 +31,6 @@ import net.osmand.plus.UiUtilities.DialogButtonType; import net.osmand.plus.activities.MapActivity; import net.osmand.plus.base.MenuBottomSheetDialogFragment; import net.osmand.plus.base.bottomsheetmenu.BottomSheetItemWithDescription; -import net.osmand.plus.base.bottomsheetmenu.simpleitems.DividerItem; -import net.osmand.plus.base.bottomsheetmenu.simpleitems.DividerSpaceItem; import net.osmand.plus.helpers.AndroidUiHelper; import net.osmand.plus.helpers.FontCache; import net.osmand.plus.settings.backend.OsmandSettings; @@ -53,7 +51,7 @@ public class TripRecordingBottomSheet extends MenuBottomSheetDialogFragment { private SwitchCompat confirmEveryRun; private RangeSlider intervalSlider; private TextView intervalValueView; - + private LinearLayout container; private boolean infoExpanded; @Override @@ -109,9 +107,10 @@ public class TripRecordingBottomSheet extends MenuBottomSheetDialogFragment { intervalValueView = itemView.findViewById(R.id.interval_value); updateIntervalLegend(); + container = itemView.findViewById(R.id.always_ask_and_range_slider_container); intervalSlider = itemView.findViewById(R.id.interval_slider); intervalSlider.setValueTo(secondsLength + minutesLength - 1); - intervalSlider.setVisibility(View.GONE); + container.setVisibility(View.GONE); intervalSlider.addOnChangeListener(new RangeSlider.OnChangeListener() { @Override @@ -218,8 +217,7 @@ public class TripRecordingBottomSheet extends MenuBottomSheetDialogFragment { private void toggleInfoView() { infoExpanded = !infoExpanded; - AndroidUiHelper.updateVisibility(intervalSlider, infoExpanded); - AndroidUiHelper.updateVisibility(confirmEveryRun, infoExpanded); + AndroidUiHelper.updateVisibility(container, infoExpanded); updateUpDownBtn(); } From a4cc3f83c87bd5d56c4ecb4a9c092077249a397c Mon Sep 17 00:00:00 2001 From: androiddevkotlin <64539346+androiddevkotlin@users.noreply.github.com> Date: Wed, 20 Jan 2021 22:19:27 +0200 Subject: [PATCH 110/173] Track tab - GPX Context menu Change UI for statistic block (Distance, Timespan etc). The text should be on the left and icon on the right, the icon is 16dp (currently is used big 24dp icons) Options edit, delete, split interval --- OsmAnd/res/layout/gpx_item_altitude.xml | 446 ++++++++---------- OsmAnd/res/layout/gpx_item_general.xml | 397 +++++++--------- OsmAnd/res/layout/gpx_item_speed.xml | 355 ++++++-------- OsmAnd/res/menu/track_segment_menu.xml | 5 + .../plus/myplaces/GPXItemPagerAdapter.java | 41 +- .../plus/myplaces/SegmentActionsListener.java | 2 +- .../plus/myplaces/TrackSegmentFragment.java | 16 +- .../osmand/plus/track/TrackMenuFragment.java | 16 +- 8 files changed, 563 insertions(+), 715 deletions(-) diff --git a/OsmAnd/res/layout/gpx_item_altitude.xml b/OsmAnd/res/layout/gpx_item_altitude.xml index af46a440a4..6563cb8c31 100644 --- a/OsmAnd/res/layout/gpx_item_altitude.xml +++ b/OsmAnd/res/layout/gpx_item_altitude.xml @@ -1,11 +1,11 @@ + xmlns:osmand="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="?attr/bg_color" + android:orientation="vertical"> + android:layout_height="@dimen/list_item_description_width" + android:layout_gravity="center_vertical" /> + osmand:typeface="@string/font_roboto_regular" /> + android:paddingEnd="@dimen/content_padding" + android:paddingRight="@dimen/content_padding" /> @@ -61,242 +61,98 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" - android:paddingTop="13dp" - android:paddingBottom="11dp"> + android:paddingTop="@dimen/context_menu_first_line_top_margin" + android:paddingBottom="@dimen/content_padding_small"> - - + android:layout_marginStart="@dimen/content_padding" + android:layout_marginLeft="@dimen/content_padding" + android:layout_marginEnd="@dimen/content_padding_small" + android:layout_marginRight="@dimen/content_padding_small" + android:layout_weight="1" + android:orientation="horizontal"> - - + android:layout_weight="1" + android:orientation="vertical"> + android:textSize="@dimen/default_desc_text_size" /> + + + + - - + android:orientation="horizontal"> - - + android:layout_weight="1" + android:orientation="vertical"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + android:textSize="@dimen/default_desc_text_size" /> - - + tools:text="30m - 53m" /> - - - - - - - - - - - - + android:layout_height="@dimen/poi_icon_size" + android:layout_marginTop="@dimen/subHeaderPadding" + osmand:srcCompat="@drawable/ic_action_altitude_average" /> @@ -305,61 +161,157 @@ + android:layout_marginStart="@dimen/content_padding_small" + android:layout_marginLeft="@dimen/content_padding_small" + android:layout_marginEnd="@dimen/content_padding_small" + android:layout_marginRight="@dimen/content_padding_small" + android:background="?attr/dashboard_divider" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + android:gravity="center" + android:orientation="horizontal"> - - + android:textColor="?attr/color_dialog_buttons" + android:textSize="@dimen/default_list_text_size" + osmand:typeface="@string/font_roboto_regular" /> + + diff --git a/OsmAnd/res/layout/gpx_item_general.xml b/OsmAnd/res/layout/gpx_item_general.xml index d0f23f6a38..b24f63be69 100644 --- a/OsmAnd/res/layout/gpx_item_general.xml +++ b/OsmAnd/res/layout/gpx_item_general.xml @@ -1,11 +1,11 @@ + xmlns:osmand="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="?attr/bg_color" + android:orientation="vertical"> + android:layout_height="@dimen/list_item_description_width" + android:layout_gravity="center_vertical" /> + osmand:typeface="@string/font_roboto_regular" /> + android:paddingEnd="@dimen/content_padding" + android:paddingRight="@dimen/content_padding" /> @@ -61,144 +61,112 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" - android:paddingTop="13dp" - android:paddingBottom="11dp"> + android:paddingTop="@dimen/context_menu_first_line_top_margin" + android:paddingBottom="@dimen/content_padding"> - - + android:layout_marginStart="@dimen/content_padding" + android:layout_marginLeft="@dimen/content_padding" + android:layout_marginEnd="@dimen/content_padding_small" + android:layout_marginRight="@dimen/content_padding_small" + android:layout_weight="1" + android:orientation="horizontal"> - - + android:layout_weight="1" + android:orientation="vertical"> + android:textSize="@dimen/default_desc_text_size" /> + + + + - - + android:orientation="horizontal"> - - + android:layout_weight="1" + android:orientation="vertical"> + android:textSize="@dimen/default_desc_text_size" /> + + + + + - - - - - - - - - - - - - - - + android:layout_height="1dp" + android:layout_marginStart="@dimen/content_padding_small" + android:layout_marginLeft="@dimen/content_padding_small" + android:layout_marginEnd="@dimen/content_padding_small" + android:layout_marginRight="@dimen/content_padding_small" + android:background="?attr/dashboard_divider" /> - - + android:layout_marginStart="@dimen/content_padding" + android:layout_marginLeft="@dimen/content_padding" + android:layout_marginEnd="@dimen/content_padding_small" + android:layout_marginRight="@dimen/content_padding_small" + android:layout_weight="1" + android:orientation="horizontal"> - - - - + android:layout_weight="1" + android:orientation="vertical"> + android:textSize="@dimen/default_desc_text_size" /> + + + + + + - - + android:orientation="horizontal"> - - - - + android:layout_weight="1" + android:orientation="vertical"> + android:textSize="@dimen/default_desc_text_size" /> + + + + + + @@ -323,61 +291,46 @@ + android:background="?attr/dashboard_divider" /> - - + android:gravity="center" + android:orientation="horizontal"> - - + android:textColor="?attr/color_dialog_buttons" + android:textSize="@dimen/default_list_text_size" + osmand:typeface="@string/font_roboto_regular" /> + + diff --git a/OsmAnd/res/layout/gpx_item_speed.xml b/OsmAnd/res/layout/gpx_item_speed.xml index 0c98402703..d2cbbff4f2 100644 --- a/OsmAnd/res/layout/gpx_item_speed.xml +++ b/OsmAnd/res/layout/gpx_item_speed.xml @@ -1,11 +1,11 @@ + xmlns:osmand="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="?attr/bg_color" + android:orientation="vertical"> + android:layout_gravity="center_vertical" /> + osmand:typeface="@string/font_roboto_regular" /> + android:paddingEnd="@dimen/content_padding" + android:paddingRight="@dimen/content_padding" /> @@ -66,139 +66,106 @@ - - + android:layout_marginStart="@dimen/content_padding" + android:layout_marginLeft="@dimen/content_padding" + android:layout_marginEnd="@dimen/content_padding_small" + android:layout_marginRight="@dimen/content_padding_small" + android:layout_weight="1" + android:orientation="horizontal"> - - + android:layout_weight="1" + android:orientation="vertical"> + android:textSize="@dimen/default_desc_text_size" /> + + + + - - + android:orientation="horizontal"> - - + android:layout_weight="1" + android:orientation="vertical"> + android:textSize="@dimen/default_desc_text_size" /> + + + + - - - - - - - - - - - - - - - + android:layout_height="1dp" + android:layout_marginStart="@dimen/content_padding_small" + android:layout_marginLeft="@dimen/content_padding_small" + android:layout_marginEnd="@dimen/content_padding_small" + android:layout_marginRight="@dimen/content_padding_small" + android:background="?attr/dashboard_divider" /> - - + android:layout_marginStart="@dimen/content_padding" + android:layout_marginLeft="@dimen/content_padding" + android:layout_marginEnd="@dimen/content_padding_small" + android:layout_marginRight="@dimen/content_padding_small" + android:layout_weight="1" + android:orientation="horizontal"> - - + android:layout_weight="1" + android:orientation="vertical"> + android:textSize="@dimen/default_desc_text_size" /> + + + + - - + android:orientation="horizontal"> + android:layout_weight="1" + android:orientation="vertical"> + + - - + tools:text="42 km" /> + + @@ -305,61 +273,46 @@ + android:background="?attr/dashboard_divider" /> - - + android:gravity="center" + android:orientation="horizontal"> - - + android:textColor="?attr/color_dialog_buttons" + android:textSize="@dimen/default_list_text_size" + osmand:typeface="@string/font_roboto_regular" /> + + diff --git a/OsmAnd/res/menu/track_segment_menu.xml b/OsmAnd/res/menu/track_segment_menu.xml index 196bb49b2f..2b5b3ba46d 100644 --- a/OsmAnd/res/menu/track_segment_menu.xml +++ b/OsmAnd/res/menu/track_segment_menu.xml @@ -9,4 +9,9 @@ android:id="@+id/action_delete" android:icon="@drawable/ic_action_remove_dark" android:title="@string/shared_string_delete"/> + + \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/plus/myplaces/GPXItemPagerAdapter.java b/OsmAnd/src/net/osmand/plus/myplaces/GPXItemPagerAdapter.java index 81d9ee9d72..185c915cbc 100644 --- a/OsmAnd/src/net/osmand/plus/myplaces/GPXItemPagerAdapter.java +++ b/OsmAnd/src/net/osmand/plus/myplaces/GPXItemPagerAdapter.java @@ -275,17 +275,7 @@ public class GPXItemPagerAdapter extends PagerAdapter implements CustomTabProvid openAnalyzeOnMap(GPXTabItemType.GPX_TAB_ITEM_SPEED); } }); - if (gpxFile.showCurrentTrack) { - view.findViewById(R.id.split_interval).setVisibility(View.GONE); - } else { - view.findViewById(R.id.split_interval).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - openSplitIntervalScreen(); - } - }); - } - ImageView overflowMenu = view.findViewById(R.id.overflow_menu); + TextView overflowMenu = view.findViewById(R.id.overflow_menu); if (!gpxItem.group.getTrack().generalTrack) { setupOptionsPopupMenu(overflowMenu, false); } else { @@ -293,13 +283,12 @@ public class GPXItemPagerAdapter extends PagerAdapter implements CustomTabProvid } } - private void setupOptionsPopupMenu(ImageView overflowMenu, final boolean confirmDeletion) { - overflowMenu.setImageDrawable(iconsCache.getThemedIcon(R.drawable.ic_overflow_menu_white)); + private void setupOptionsPopupMenu(TextView overflowMenu, final boolean confirmDeletion) { overflowMenu.setVisibility(View.VISIBLE); overflowMenu.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - actionsListener.showOptionsPopupMenu(view, getTrkSegment(), confirmDeletion); + actionsListener.showOptionsPopupMenu(view, getTrkSegment(), confirmDeletion, gpxItem); } }); } @@ -359,17 +348,7 @@ public class GPXItemPagerAdapter extends PagerAdapter implements CustomTabProvid openAnalyzeOnMap(GPXTabItemType.GPX_TAB_ITEM_ALTITUDE); } }); - if (gpxFile.showCurrentTrack) { - view.findViewById(R.id.split_interval).setVisibility(View.GONE); - } else { - view.findViewById(R.id.split_interval).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - openSplitIntervalScreen(); - } - }); - } - ImageView overflowMenu = view.findViewById(R.id.overflow_menu); + TextView overflowMenu = view.findViewById(R.id.overflow_menu); if (!gpxItem.group.getTrack().generalTrack) { setupOptionsPopupMenu(overflowMenu, false); } else { @@ -436,17 +415,7 @@ public class GPXItemPagerAdapter extends PagerAdapter implements CustomTabProvid openAnalyzeOnMap(GPXTabItemType.GPX_TAB_ITEM_GENERAL); } }); - if (gpxFile.showCurrentTrack) { - view.findViewById(R.id.split_interval).setVisibility(View.GONE); - } else { - view.findViewById(R.id.split_interval).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - openSplitIntervalScreen(); - } - }); - } - ImageView overflowMenu = view.findViewById(R.id.overflow_menu); + TextView overflowMenu = view.findViewById(R.id.overflow_menu); if (!gpxItem.group.getTrack().generalTrack) { setupOptionsPopupMenu(overflowMenu, true); } else { diff --git a/OsmAnd/src/net/osmand/plus/myplaces/SegmentActionsListener.java b/OsmAnd/src/net/osmand/plus/myplaces/SegmentActionsListener.java index 4033dedd7a..e6bea1b9f6 100644 --- a/OsmAnd/src/net/osmand/plus/myplaces/SegmentActionsListener.java +++ b/OsmAnd/src/net/osmand/plus/myplaces/SegmentActionsListener.java @@ -21,7 +21,7 @@ public interface SegmentActionsListener { void openSplitInterval(GpxDisplayItem gpxItem, TrkSegment trkSegment); - void showOptionsPopupMenu(View view, TrkSegment trkSegment, boolean confirmDeletion); + void showOptionsPopupMenu(View view, TrkSegment trkSegment, boolean confirmDeletion, GpxDisplayItem gpxItem); void openAnalyzeOnMap(GpxDisplayItem gpxItem, List dataSets, GPXTabItemType tabType); } diff --git a/OsmAnd/src/net/osmand/plus/myplaces/TrackSegmentFragment.java b/OsmAnd/src/net/osmand/plus/myplaces/TrackSegmentFragment.java index c10fa883ad..c60092ea1f 100644 --- a/OsmAnd/src/net/osmand/plus/myplaces/TrackSegmentFragment.java +++ b/OsmAnd/src/net/osmand/plus/myplaces/TrackSegmentFragment.java @@ -66,7 +66,7 @@ public class TrackSegmentFragment extends OsmAndListFragment implements TrackBit private TrackDisplayHelper displayHelper; private TrackActivityFragmentAdapter fragmentAdapter; private SegmentGPXAdapter adapter; - private final GpxDisplayItemType[] filterTypes = new GpxDisplayItemType[] {GpxDisplayItemType.TRACK_SEGMENT}; + private final GpxDisplayItemType[] filterTypes = new GpxDisplayItemType[]{GpxDisplayItemType.TRACK_SEGMENT}; private IconPopupMenu optionsPopupMenu; private boolean updateEnable; @@ -357,14 +357,20 @@ public class TrackSegmentFragment extends OsmAndListFragment implements TrackBit } @Override - public void showOptionsPopupMenu(View view, final TrkSegment segment, final boolean confirmDeletion) { + public void showOptionsPopupMenu(final View view, final TrkSegment segment, final boolean confirmDeletion, final GpxDisplayItem gpxItem) { FragmentActivity activity = getActivity(); if (activity != null) { - optionsPopupMenu = new IconPopupMenu(activity, view.findViewById(R.id.overflow_menu)); - Menu menu = optionsPopupMenu.getMenu(); + IconPopupMenu optionsPopupMenu = new IconPopupMenu(activity, view.findViewById(R.id.overflow_menu)); + final Menu menu = optionsPopupMenu.getMenu(); optionsPopupMenu.getMenuInflater().inflate(R.menu.track_segment_menu, menu); menu.findItem(R.id.action_edit).setIcon(app.getUIUtilities().getThemedIcon(R.drawable.ic_action_edit_dark)); menu.findItem(R.id.action_delete).setIcon(app.getUIUtilities().getThemedIcon(R.drawable.ic_action_remove_dark)); + boolean isSelectedTrackRecordingNow = displayHelper.getGpx().showCurrentTrack; + if (isSelectedTrackRecordingNow) { + menu.findItem(R.id.split_interval).setVisible(false); + } else { + menu.findItem(R.id.split_interval).setIcon(app.getUIUtilities().getThemedIcon(R.drawable.ic_action_split_interval)); + } optionsPopupMenu.setOnMenuItemClickListener(new IconPopupMenu.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { @@ -389,6 +395,8 @@ public class TrackSegmentFragment extends OsmAndListFragment implements TrackBit builder.show(); } return true; + } else if (i == R.id.split_interval) { + openSplitInterval(gpxItem, segment); } return false; } diff --git a/OsmAnd/src/net/osmand/plus/track/TrackMenuFragment.java b/OsmAnd/src/net/osmand/plus/track/TrackMenuFragment.java index 03f8ab374a..c066e0136f 100644 --- a/OsmAnd/src/net/osmand/plus/track/TrackMenuFragment.java +++ b/OsmAnd/src/net/osmand/plus/track/TrackMenuFragment.java @@ -462,7 +462,7 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card segment = segments.get(0); } } - GpxDisplayItemType[] filterTypes = new GpxDisplayItemType[] {GpxDisplayItemType.TRACK_SEGMENT}; + GpxDisplayItemType[] filterTypes = new GpxDisplayItemType[]{GpxDisplayItemType.TRACK_SEGMENT}; List items = TrackDisplayHelper.flatten(displayHelper.getOriginalGroups(filterTypes)); if (segment != null && !Algorithms.isEmpty(items)) { SplitSegmentDialogFragment.showInstance(fragmentManager, displayHelper, items.get(0), segment); @@ -677,14 +677,20 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card } @Override - public void showOptionsPopupMenu(View view, final TrkSegment segment, final boolean confirmDeletion) { + public void showOptionsPopupMenu(final View view, final TrkSegment segment, final boolean confirmDeletion, final GpxDisplayItem gpxItem) { FragmentActivity activity = getActivity(); if (activity != null) { IconPopupMenu optionsPopupMenu = new IconPopupMenu(activity, view.findViewById(R.id.overflow_menu)); - Menu menu = optionsPopupMenu.getMenu(); + final Menu menu = optionsPopupMenu.getMenu(); optionsPopupMenu.getMenuInflater().inflate(R.menu.track_segment_menu, menu); menu.findItem(R.id.action_edit).setIcon(app.getUIUtilities().getThemedIcon(R.drawable.ic_action_edit_dark)); menu.findItem(R.id.action_delete).setIcon(app.getUIUtilities().getThemedIcon(R.drawable.ic_action_remove_dark)); + boolean isSelectedTrackRecordingNow = displayHelper.getGpx().showCurrentTrack; + if (isSelectedTrackRecordingNow) { + menu.findItem(R.id.split_interval).setVisible(false); + } else { + menu.findItem(R.id.split_interval).setIcon(app.getUIUtilities().getThemedIcon(R.drawable.ic_action_split_interval)); + } optionsPopupMenu.setOnMenuItemClickListener(new IconPopupMenu.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { @@ -709,6 +715,8 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card builder.show(); } return true; + } else if (i == R.id.split_interval) { + openSplitInterval(gpxItem, segment); } return false; } @@ -762,7 +770,7 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card @Override public void gpxSavingFinished(Exception errorMessage) { if (selectedGpxFile != null) { - List groups = displayHelper.getDisplayGroups(new GpxDisplayItemType[] {GpxDisplayItemType.TRACK_SEGMENT}); + List groups = displayHelper.getDisplayGroups(new GpxDisplayItemType[]{GpxDisplayItemType.TRACK_SEGMENT}); selectedGpxFile.setDisplayGroups(groups, app); selectedGpxFile.processPoints(app); } From 84deb83900649a8026a5f7a3d90e0137758f9b96 Mon Sep 17 00:00:00 2001 From: androiddevkotlin <64539346+androiddevkotlin@users.noreply.github.com> Date: Wed, 20 Jan 2021 22:36:53 +0200 Subject: [PATCH 111/173] Always ask color text --- OsmAnd/res/layout/trip_recording_fragment.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/layout/trip_recording_fragment.xml b/OsmAnd/res/layout/trip_recording_fragment.xml index f34545e7f2..8c43e98d5f 100644 --- a/OsmAnd/res/layout/trip_recording_fragment.xml +++ b/OsmAnd/res/layout/trip_recording_fragment.xml @@ -96,7 +96,7 @@ android:paddingLeft="@dimen/content_padding_small" android:paddingRight="@dimen/content_padding_small" android:text="@string/confirm_every_run" - android:textColor="?android:textColorPrimary" + android:textColor="?attr/color_dialog_buttons" android:textSize="@dimen/default_list_text_size" osmand:typeface="@string/font_roboto_regular" tools:visibility="visible" /> From 3a2b54bbcc4866b02143a38899e9de76523670a5 Mon Sep 17 00:00:00 2001 From: androiddevkotlin <64539346+androiddevkotlin@users.noreply.github.com> Date: Wed, 20 Jan 2021 22:58:21 +0200 Subject: [PATCH 112/173] Hide/show divider fix --- OsmAnd/res/layout/gpx_item_altitude.xml | 8 ++++++++ OsmAnd/res/layout/gpx_item_general.xml | 13 ++++++++++--- OsmAnd/res/layout/gpx_item_speed.xml | 9 +++++++++ 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/OsmAnd/res/layout/gpx_item_altitude.xml b/OsmAnd/res/layout/gpx_item_altitude.xml index 6563cb8c31..2deccbca65 100644 --- a/OsmAnd/res/layout/gpx_item_altitude.xml +++ b/OsmAnd/res/layout/gpx_item_altitude.xml @@ -158,6 +158,12 @@ + + + + - + + + + + android:paddingTop="@dimen/context_menu_first_line_top_margin" + android:paddingBottom="@dimen/content_padding_small"> + + + + + Date: Tue, 19 Jan 2021 13:32:00 +0000 Subject: [PATCH 113/173] Translated using Weblate (Hungarian) Currently translated at 99.9% (3642 of 3645 strings) --- OsmAnd/res/values-hu/strings.xml | 109 +++++++++++++++++++------------ 1 file changed, 67 insertions(+), 42 deletions(-) diff --git a/OsmAnd/res/values-hu/strings.xml b/OsmAnd/res/values-hu/strings.xml index 64d40e287c..47f1522f96 100644 --- a/OsmAnd/res/values-hu/strings.xml +++ b/OsmAnd/res/values-hu/strings.xml @@ -266,7 +266,7 @@ Hely pozíció elküldése Hely megosztása \'\'{0}\'\' GPX-útpont hozzáadva - Útpont hozzáadása a rögzített GPX-útvonalhoz + Útpont hozzáadása felvett GPX nyomvonalhoz Közigazgatás Akadály Oktatás @@ -545,7 +545,7 @@ Beállítások Jelenlegi nyomvonal mentése GPX fájlba most. Jelenlegi nyomvonal mentése - A navigáció alatti útvonalrögzítéshez adja meg a naplózási intervallumot + A navigáció alatti nyomvonalfelvételhez adja meg a naplózási intervallumot Naplózási intervallum navigáció közben Navigáció közben a GPX útvonal automatikusan mentésre kerül az OsmAnd „tracks” könyvtárába. Térképcsempe újratöltése @@ -852,7 +852,7 @@ %1$s köztes célpont Kérlek engedélyezd a GPS-t a beállításokban Célpont irányának megjelenítése - A pozíciónaplózási szolgáltatások (GPX naplózás, online útvonalrögzítés) használatához engedélyed az „Útvonalrögzítés” bővítményt + A pozíciónaplózási szolgáltatások (GPX naplózás, online útvonalrögzítés) használatához engedélyed az „Utazás felvétele” bővítményt Esetleg nem optimális útvonal kiszámítása nagyobb távolságokra Útszínséma kiválasztása: Útszín sémája @@ -954,8 +954,8 @@ OsmAnd+ térkép és navigáció Utcanév Házszám - Útvonalrögzítés - Az útvonalaid felvételének beállításai. + Utazás felvétele + Az utazások felvételének beállításai. Az alkalmazás megjelenésének testreszabása. Téma Akadálymentesítési lehetőségek @@ -1296,7 +1296,7 @@ Ez a bővítmény aktiválja a nyomvonalak rögzítésének és mentésének lehetőségét, ha megnyomja a GPX naplózó gombot a térképképernyőn, valamint képes minden navigációs útvonalat automatikusan egy GPX-fájlba naplózni. \n \nA rögzített nyomvonalak megoszthatók az ismerősökkel, vagy használhatók az OSM hozzájárulásoknál. A sportolók a rögzített nyomvonalakat az edzéseik megfigyeléséhez használhatják. Néhány alapvető nyomvonalelemzés közvetlenül az OsmAnd programon belül is végrehajtható, mint például köridők, átlagsebesség stb., és természetesen a nyomvonalak később harmadik féltől származó elemzőeszközökkel is elemezhetők. - Útvonalrögzítés + Utazás felvétele ó Időtartam Távolság @@ -1435,7 +1435,7 @@ Nyomvonal pontok Kijelölve Az átnevezés nem sikerült. - Jelenleg rögzülő nyomvonal + Jelenleg felvett nyomvonal Vissza a térképhez Helyzet:\n Szélesség %1$s\n Hosszúság %2$s Útvonal pontok @@ -1660,11 +1660,11 @@ perc/mérföld perc/km m/s - Útvonalrögzítés + Utazás felvétele Navigáció Háttérben fut Pozíciószimuláció leállítása. - Szimuláció megtervezett útvonallal vagy felvett GPX-szel. + Szimuláció megtervezett útvonallal vagy felvett GPX nyomvonallal. GPX-fájl helyszínekkel. Helyszín Autószállító vonat nélkül @@ -1889,8 +1889,8 @@ elem eltávolítva Típus Kiindulópont - Felvétel vágás - Felvétel automatikus darabolása + Felvétel vágása + Felvétel automatikus elvágása Klipp hossz Tárolási méret Közreműködők száma @@ -1908,8 +1908,8 @@ Érvénytelen karakter a fájlnévben Az alkalmazás már tud írni a külső tárolóra, de ehhez egy kézi újraindítás szükséges. Klipek elvágása, ha a felhasznált hely túllépi a tárolási méretet. - A felvett klipek maximális hossza. - Az összes klip által elfoglalható hely. + A felvett klipek legnagyobb hossza. + Az összes felvett klip által elfoglalható hely. Kérjük, vegyen fel jelölőket a térképen Nem találhatók útpontok Relatív irány @@ -2036,12 +2036,12 @@ A mappához ön is adhat nyomvonalfájlokat Továbbiak hozzáadása… Megjelenés - Gyors rögzítés bekapcsolása - Egy útvonalrögzítés megkezdését lehetővé tevő rendszerértesítés megjelenítése. + Gyors felvétel bekapcsolása + Az utazásfelvétel megkezdését lehetővé tevő rendszerértesítés megjelenítése. Értesítések Szünet Túra - Felvett + Felvéve Felvétel Legkisebb naplózási sebesség Szűrő: Ez alatti sebességnél nem rögzít pontot. @@ -2307,8 +2307,8 @@ Korrigált távolság Engedélyek Nem sikerült a fájl importálása. Győződjék meg arról, hogy az OsmAndnak van engedélye a fájl olvasására. - Rögzített nyomvonalak tárolása havi könyvtárakban - Rögzített nyomvonalak tárolása havi bontású alkönyvtárakban (pl. 2018-01). + Felvett nyomvonalak tárolása havi mappákban + Felvett nyomvonalak tárolása havi bontású almappákban (pl. 2018-01). Visszaállítás Újratöltés Csempék újratöltése naprakész adatok megjelenítéséhez. @@ -2435,7 +2435,7 @@ Hibás formátum Út OSM-objektum létrehozása vagy módosítása - Hozzon létre vagy módosítson OSM POI-kat, nyisson vagy kommenteljen OSM-jegyzeteket, és működjék közre rögzített GPX-nyomvonalakkal. + Hozzon létre vagy módosítson OSM POI-kat, nyisson vagy kommenteljen OSM-jegyzeteket, és működjék közre felvett GPX-nyomvonalakkal. Törölve Szerkesztve Hozzáadva @@ -2720,7 +2720,7 @@ guarani GPS navigáció \n • Válassz az offline (nincs roamingdíj külföldön) vagy online (gyorsabb) mód között -\n • Kanyaronkénti hangutasítások vezetnek végig az úton (rögzített és előállított hangok) +\n • Kanyaronkénti hangutasítások vezetnek végig az úton (felvett és előállított hangok) \n • Az útvonalterv újratervezésre kerül, ha eltérsz attól \n • Sávvezérlés, utcanevek, és becsült érkezési idő segít az úton \n • Az út biztonságosabbá tételéhez a nappali/éjszakai mód automatikusan vált @@ -3105,9 +3105,9 @@ Domborzatárnyékolás megjelenítése/elrejtése Nyomvonal tárolási könyvtára A nyomvonalak a \'rec\' könyvtárban tárolhatók, havi vagy napi bontás szerinti könyvtárakban. - Nyomvonalak rögzítése a \'rec\' könyvtárba - Nyomvonalak rögzítése napi bontású könyvtárakba - Nyomvonalak rögzítése alkönyvtárakba a rögzítés napja szerint (pl. 2018-01-01). + Nyomvonalak felvétele a \'rec\' mappába + Nyomvonalak felvétele napi bontású mappákba + Nyomvonalak rögzítése a rögzítés napja szerinti almappákba (pl. 2018-01-01). Profil exportálása OsmAnd profil: %1$s \'%1$s\' már létezik. Felülírja\? @@ -3211,7 +3211,7 @@ Kezdő Könnyű Kapcsolat - Pozíció szimulálása egy rögzített GPX-nyomvonal felhasználásával. + Pozíció szimulálása egy felvett GPX nyomvonal felhasználásával. Kerékpárút-hálózatok csomópontjainak megjelenítése Törölje ezt: %1$s\? Ponthálózatok @@ -3222,7 +3222,7 @@ Új bővítmény hozzáadva Szegmensek összekapcsolása Irány belefoglalása - Rögzítéskor menti az egyes útpontok irányát is. + Felvételkor az egyes útpontok irányát is menti. Pozíció ikon haladás közben Pozíció ikon álló helyzetben Az Alkalmaz-ra koppintva a törölt profilok végérvényesen elvesznek. @@ -3332,10 +3332,10 @@ Képméret, hang- és videominőség Bejelentkezés, jelszó, offline szerkesztés Ikonalak, -szín és -méret kiválasztása - Lehetővé teszi az útvonal rögzítésével az aktuális pozíció megosztását. + Az utazás felvételével lehetővé teszi az aktuális pozíció megosztását. Online nyomvonalrögzítés Naplózás pontossága - Az összes rögzített nyomvonal megtalálható a %1$s helyen vagy a fájlkezelővel az OsmAnd mappában. + Az összes felvett nyomvonal megtalálható a %1$s helyen vagy a fájlkezelővel az OsmAnd mappában. Az összes OSM-jegyzetét megtalálja a %1$s helyen. Videojegyzetek Fényképes jegyzetek @@ -3376,7 +3376,7 @@ Visszaállítja a profil összes beállítását\? Új profil mentése Profil biztonsági mentése sikertelen. - Biztosan törölni szeretné a rögzített adatokat\? + Biztosan törölni szeretné a felvett adatokat\? Adatok importálása innen: %1$s Importálás A lejtőkről többet olvashat itt: %1$s. @@ -3428,7 +3428,7 @@ Nyolcszög Négyzet Min - Rögzített adatok törlése + Felvett adatok törlése Engedélyezésével domborzatárnyékolás vagy lejtőtérkép jeleníthető meg. Ezekről a térképfajtákról többet olvashat a honlapunkon. Túrasízés Motoros szán @@ -3704,10 +3704,10 @@ \n \n Válassza ki, hogy a nyomvonalon milyen távolság- vagy időintervallumok jelzései jelenjenek meg. - Ez a szűrő kiküszöböli az ismétlődő pontok rögzítését ott, ahol túl kevés tényleges mozgás történhetett, így szebb lesz a később utólag fel nem dolgozott nyomvonalak térbeli megjelenése. + Ez a szűrő kiküszöböli az ismétlődő pontok felvételét ott, ahol túl kevés tényleges mozgás történhetett, így szebb lesz a később utólag fel nem dolgozott nyomvonalak térbeli megjelenése. Felvétel vágása A nyomvonal naplózása szünetelni fog, amikor az alkalmazást (újabb alkalmazásokkal) kilövik. (Ilyenkor az OsmAnd háttérjelzése is eltűnik az Android értesítési sávjáról.) - Javaslat: Először próbálja meg a mozgásérzékelést használni a legkisebb elmozdulást naplózó szűrővel (B). Ez jobb eredményeket hozhat, és kevesebb adatot veszít. Ha a nyomvonalak alacsony sebességnél továbbra is zajosak, próbálkozzon itt nullától eltérő értékekkel. Felhívjuk figyelmét, hogy egyes (hálózatalapú módszereket használó) mérőeszközök egyáltalán nem adnak sebességértéket, így ebben az esetben semmi sem fog rögzülni. + Javaslat: Először próbálja meg a mozgásérzékelést használni a legkisebb elmozdulást naplózó szűrővel (B). Ez jobb eredményeket hozhat, és kevesebb adatot veszít. Ha a nyomvonalak alacsony sebességnél továbbra is zajosak, próbálkozzon itt nullától eltérő értékekkel. Felhívjuk figyelmét, hogy egyes (hálózatalapú módszereket használó) mérőeszközök egyáltalán nem adnak sebességértéket, így ebben az esetben semmi sem lesz felvéve. Utcaszintű képek Csak az út vonala lesz elmentve, az útpontok törlődnek. Kiindulás és érkezés ikonjainak megjelenítése @@ -3718,7 +3718,7 @@ Minden korábbi szakasz újra lesz számítva a kiválasztott profilnak megfelelően. Térkép frissítése Előző szakasz - Ez csak a minimális pontosságúnak megjelölt mért pontokat rögzíti (méterben/lábban, ahogy azt az Android a lapkakészletnek közvetíti). Ez pontosság (accuracy) a mérések valódi helyzethez való közelsége, és nem kapcsolódik közvetlenül az ismételt mérések szórásának pontosságához (precision). + Ez csak a minimális pontosságúnak megjelölt mért pontokat veszi fel (méterben/lábban, ahogy azt az Android a lapkakészletnek közvetíti). Ez pontosság (accuracy) a mérések valódi helyzethez való közelsége, és nem kapcsolódik közvetlenül az ismételt mérések szórásának pontosságához (precision). Nyomvonal követése REC Rendszer alapértelmezett értékei @@ -3728,8 +3728,8 @@ Útpont hozzáadása a nyomvonalhoz Nyomvonal rögzítése GPX-fájlba Nyomvonalak - Nyomvonalfájlok importálása vagy rögzítése - Ez egy alacsonysebesség-leválasztó szűrő, amely egy bizonyos sebesség alatt nem rögzít pontokat. Ezáltal a rögzített nyomvonalak simábbnak néznek ki a térképen. + Nyomvonalfájlok importálása vagy felvétele + Ez egy alacsonysebesség-leválasztó szűrő, amely egy bizonyos sebesség alatt nem vesz fel pontokat. Ezáltal a felvett nyomvonalak simábbnak néznek ki a térképen. Az OsmAnd ellenőrizze %1$s-t, hogy vannak-e másolatok az alkalmazás meglévő elemeivel. \n \nEz eltarthat egy ideig. @@ -3740,7 +3740,7 @@ Mellékhatás: A pontosság szerinti szűrés eredményeként egyes pontok teljesen hiányozhatnak pl. hidak vagy fák alatt, magas épületek között, vagy bizonyos időjárási körülmények között. Küszöbtávolság Nyomvonal kezdete - Nyomvonal automatikus rögzítése navigáció közben + Nyomvonal automatikus felvétele navigáció közben Mellékhatás: A nyomvonalból hiányozni fog minden olyan szakasz, ahol a legkisebb sebesség feltétele nem teljesült (pl. egy meredek dombra tolja fel a kerékpárt). Nem lesz információ az állásokról sem, például a pihenőkről. Ez hatással van minden elemzésre és utófeldolgozásra, például amikor megpróbálja meghatározni az utazás teljes hosszát, a mozgásban töltött időt vagy az átlagsebességét. Adjon hozzá legalább két pontot. Csatolás az utakhoz @@ -3762,8 +3762,8 @@ Útpont hozzáadása a nyomvonalhoz Útvonaltípus módosítása ez után: Útvonal követése - Ajánlás: Nehéz megjósolni, hogy mi fog rögzülni és mi nem, így talán a legjobb ezt a szűrőt kikapcsolni. - Utazás rögzítése + Ajánlás: Nehéz megjósolni, hogy mi lesz a felvételen és mi nem, így talán a legjobb ezt a szűrőt kikapcsolni. + Utazás felvétele Nem sikerült elemezni a következő térképmegjelenítési szándékot: „%s”. Meglévő nyomvonal megnyitása Tömör @@ -3771,14 +3771,14 @@ Csak a következő szakasz lesz újraszámítva a kiválasztott profilnak megfelelően. Ezután a beállítás használatához igazítsa a nyomvonalat a legközelebbi úthoz az egyik navigációs profil segítségével. Egyedi - Utazás rögzítésének szüneteltetése + Utazás felvételének szüneteltetése Mentés új nyomvonalfájlként Utoljára szerkesztve - Adja meg az általános nyomvonalrögzítés naplózási intervallumát (bekapcsolva a térképen található „Utazás rögzítése” widgettel). + Adja meg az általános nyomvonalfelvétel naplózási intervallumát (bekapcsolva a térképen található „Utazás felvétele” widgettel). Válassza ki a kívánt felosztási lehetőséget: idő vagy távolság szerint. - Utazás rögzítésének folytatása + Utazás felvételének folytatása Navigációs profil - Megjegyzés a „sebesség > 0” ellenőrzéséhez: A legtöbb GPS lapkakészlet (chipset) csak akkor mutat sebességértéket, ha az algoritmus megállapítja, hogy mozgásban van. Ha nincs mozgás, akkor nem mutatnak sebességet. Ezért ebben a szűrőben a „> 0” beállítás bizonyos értelemben a GPS lapkakészlet mozgásérzékelését használja. De – még ha a rögzítés ideje alatt itt nem is szűrjük – a GPX elemzése során mégis használjuk ezt a funkciót a korrigált távolság meghatározásához, vagyis az abban a mezőben megjelenített érték a mozgás közben rögzített távolság. + Megjegyzés a „sebesség > 0” ellenőrzéséhez: A legtöbb GPS lapkakészlet (chipset) csak akkor mutat sebességértéket, ha az algoritmus megállapítja, hogy mozgásban van. Ha nincs mozgás, akkor nem mutatnak sebességet. Ezért ebben a szűrőben a „> 0” beállítás bizonyos értelemben a GPS lapkakészlet mozgásérzékelését használja. De – még ha a felvétel ideje alatt itt nem is szűrjük – a GPX elemzése során mégis használjuk ezt a funkciót a korrigált távolság meghatározásához, vagyis az abban a mezőben megjelenített érték a mozgás közben rögzített távolság. Csak a kijelölt szakasz lesz újraszámítva a kiválasztott profilnak megfelelően. Biztosan elveti az összes módosítást a tervezett útvonalon\? Válassza ki a követendő nyomvonalfájlt @@ -3793,7 +3793,7 @@ Legközelebbi pont Nyomvonalfájlok hozzáadása Fordított irány esetén - Mellékhatások: A nyugalmi periódusok egyáltalán nem vagy csak egy ponttal rögzülnek. Kiszűrhetők a kis (valós) mozgások (pl. az út során egy átvezető út jelzése céljából megtett kitérők). A fájl kevesebb információt tartalmaz az utófeldolgozáshoz és rosszabb a statisztikája, mivel a felvételkor kiszűri a nyilvánvalóan felesleges pontokat, miközben megtarthatja a rossz vétel vagy a GPS lapkakészlet által okozott hibás mintázatok. + Mellékhatások: A nyugalmi periódusok egyáltalán nem vagy csak egy ponttal lesznek felvéve. Kiszűrhetők a kis (valós) mozgások (pl. az út során egy átvezető út jelzése céljából megtett kitérők). A fájl kevesebb információt tartalmaz az utófeldolgozáshoz és rosszabb a statisztikája, mivel a felvételkor kiszűri a nyilvánvalóan felesleges pontokat, miközben megtarthatja a rossz vétel vagy a GPS lapkakészlet által okozott hibás mintázatok. Minden későbbi szakasz %s nyomvonalfájl kijelölve Jelölje ki azt a nyomvonalfájlt, amelyhez az új szakasz hozzáadódjék. @@ -3966,4 +3966,29 @@ Nyomvonal szerkesztése Nyomvonal átnevezése Mappa módosítása + Felvétel indítása + mp. + Túlhaladás + Megközelítés + Hosszú felkészülés + Felkészülés + Letérés az útvonalról + Érkezés a célponthoz + Bekanyarodás + Idő- és távolságintervallumok + Hegyi kerékpár + Versenykerékpár + Nyomvonal megjelenítése a térképen + Kerekesszék + Túrázás + Gyaloglás + E-kerékpározás + Hegyi kerékpározás + Verenykerékpározás + Rendes kerékpározás + Tgk. + Nehéz tgk. + Kisteherautó + Szerverhiba: %1$s + Ez a név már létezik \ No newline at end of file From 3c2a94109857157e716a28dec6c8230b700be143 Mon Sep 17 00:00:00 2001 From: Ldm Public Date: Tue, 19 Jan 2021 11:39:27 +0000 Subject: [PATCH 114/173] Translated using Weblate (French) Currently translated at 99.6% (3634 of 3645 strings) --- OsmAnd/res/values-fr/strings.xml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/OsmAnd/res/values-fr/strings.xml b/OsmAnd/res/values-fr/strings.xml index e5f41539c2..11268680f0 100644 --- a/OsmAnd/res/values-fr/strings.xml +++ b/OsmAnd/res/values-fr/strings.xml @@ -3957,4 +3957,26 @@ Sélectionnez le dossier Sélectionnez un dossier ou créez-en un nouveau Vide + Approche + Préparation + Longue préparation + Arrivé à destination + Tourner + Afficher la trace sur la carte + Trottinette + Camionnette + Envoyer vers OpenStreetMap + Modifier la trace + Renommer la trace + Modifier le dossier + sec + Démarrer l\'enregistrement + Fauteuil roulant + Randonnée + Marche + Camion + Vélo de course + VTT + Erreur serveur : %1$s + Ce nom existe déjà \ No newline at end of file From 74b41fce882736630b011b0bf7128ebfc9837a7f Mon Sep 17 00:00:00 2001 From: Oliver Date: Tue, 19 Jan 2021 09:30:28 +0000 Subject: [PATCH 115/173] Translated using Weblate (German) Currently translated at 99.8% (3638 of 3645 strings) --- OsmAnd/res/values-de/strings.xml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/OsmAnd/res/values-de/strings.xml b/OsmAnd/res/values-de/strings.xml index 494ad991ff..6d53fd5262 100644 --- a/OsmAnd/res/values-de/strings.xml +++ b/OsmAnd/res/values-de/strings.xml @@ -3977,4 +3977,25 @@ Track editieren Track umbenennen Ordner ändern + Abbiegung + Zeit- und Distanzintervalle + Der Ansagezeitpunkt der verschiedenen Sprachansagen hängt vom Ansagetyp, der aktuellen Navigationsgeschwindigkeit und der Standard-Navigationsgeschwindigkeit ab. + Ansagezeitpunkt + Aufzeichnung starten + Track auf der Karte anzeigen + Rollstuhl + Wandern + Fußgänger + E-Bike fahren + Straßenradsport + Bergradsport + Normales Radfahren + Lkw + Kleintransporter + Lkw + Motorroller + Rennrad + Mountainbike + Server-Fehler: %1$s + Der Name ist bereits vorhanden \ No newline at end of file From 8feeb2081d027d3aa36fb9ed74d2944fa0ee3749 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?O=C4=9Fuz=20Ersen?= Date: Tue, 19 Jan 2021 06:29:57 +0000 Subject: [PATCH 116/173] Translated using Weblate (Turkish) Currently translated at 100.0% (3645 of 3645 strings) --- OsmAnd/res/values-tr/strings.xml | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/OsmAnd/res/values-tr/strings.xml b/OsmAnd/res/values-tr/strings.xml index 344183c102..2785932852 100644 --- a/OsmAnd/res/values-tr/strings.xml +++ b/OsmAnd/res/values-tr/strings.xml @@ -3973,4 +3973,32 @@ Yolu düzenle Yolu yeniden adlandır Klasörü değiştir + sn + Geçme + Yaklaşma + Hazırlık + Uzun hazırlık + Güzergah dışı + Hedefe varış + Dönüş + Zaman ve mesafe aralıkları + Farklı sesli komutların duyuru zamanı komut türüne, geçerli navigasyon hızına ve öntanımlı navigasyon hızına bağlıdır. + Duyuru zamanı + Kaydı başlat + Yolu haritada göster + Tekerlekli sandalye + Yürüyüş + Yürüme + Elektrikli bisiklet + Dağ bisikleti + Yol bisikleti + Genel bisiklet + Ağır yük aracı + Dağ bisikleti + Küçük kamyon + Kamyon + Mobilet + Yarış bisikleti + Sunucu hatası: %1$s + Ad zaten var \ No newline at end of file From 033935943c56f2b1fa75da0faac3f6c25481721d Mon Sep 17 00:00:00 2001 From: Ihor Hordiichuk Date: Tue, 19 Jan 2021 07:20:24 +0000 Subject: [PATCH 117/173] Translated using Weblate (Ukrainian) Currently translated at 100.0% (3645 of 3645 strings) --- OsmAnd/res/values-uk/strings.xml | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/OsmAnd/res/values-uk/strings.xml b/OsmAnd/res/values-uk/strings.xml index 6910c9a902..ecb41bb50d 100644 --- a/OsmAnd/res/values-uk/strings.xml +++ b/OsmAnd/res/values-uk/strings.xml @@ -3971,4 +3971,32 @@ Редагувати трек Перейменувати трек Змінити теку + с + Проходження + Наближення + Завчасне приготування + Приготуватися + По за маршрутом + Прибуття до місця призначення + Поворот + Інтервали часу та відстаней + Час оголошення різних голосових підказок залежить від типу запиту, поточної швидкості навігації та типової швидкості переходів. + Час оголошення + Почати запис + Показати трек на мапі + Інвалідний візок + Піша прогулянка + Ходьба + Електричний велосипед + Гірський велосипед + Дорожній велосипед + Звичайний велосипед + Вантажівка + Невелика вантажівка + Вантажівка + Скутер + Гоночний велосипед + Гірський велосипед + Помилка сервера: %1$s + Назва вже існує \ No newline at end of file From 9745c23b42fbb3b4677d4ce16f4d6f933bd958b3 Mon Sep 17 00:00:00 2001 From: ace shadow Date: Wed, 20 Jan 2021 00:32:42 +0000 Subject: [PATCH 118/173] Translated using Weblate (Slovak) Currently translated at 100.0% (3645 of 3645 strings) --- OsmAnd/res/values-sk/strings.xml | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/OsmAnd/res/values-sk/strings.xml b/OsmAnd/res/values-sk/strings.xml index 6d3fbf6d12..e1da748102 100644 --- a/OsmAnd/res/values-sk/strings.xml +++ b/OsmAnd/res/values-sk/strings.xml @@ -3967,4 +3967,32 @@ Upraviť stopu Premenovať stopu Zmeniť priečinok + sek. + Pri bode trasy + Priblíženie sa + Pripraviť sa neskôr + Pripraviť sa + Mimo trasy + Dosiahnutie cieľa + Intervaly času a vzdialenosti + Čas oznamu rôznych hlasových pokynov závisí od typu pokynu, aktuálnej rýchlosti navigácie a predvolenej rýchlosti navigácie. + Čas oznamu + Začať záznam + Zobraziť stopu na mape + Invalidný vozík + Turistika + Chôdza + Elektrické bicyklovanie + Horské bicyklovanie + Cestné bicyklovanie + Bežné bicyklovanie + Nákladné auto + Malé nákladné auto + Kamión + Skúter + Závodný bicykel + Horský bicykel + Chyba servera: %1$s + Názov už existuje + Odbočiť \ No newline at end of file From 964b89701e6ae23160e5b442fdce770c6f8c2aa3 Mon Sep 17 00:00:00 2001 From: Yaron Shahrabani Date: Tue, 19 Jan 2021 11:54:39 +0000 Subject: [PATCH 119/173] Translated using Weblate (Hebrew) Currently translated at 99.5% (3627 of 3645 strings) --- OsmAnd/res/values-iw/strings.xml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/OsmAnd/res/values-iw/strings.xml b/OsmAnd/res/values-iw/strings.xml index 7ca3bcdb8d..f4360809bc 100644 --- a/OsmAnd/res/values-iw/strings.xml +++ b/OsmAnd/res/values-iw/strings.xml @@ -3975,4 +3975,15 @@ עריכת מסלול שינוי שם מסלול החלפת תיקייה + זמן ההכרזה + התחלת הקלטה + כסא גלגלים + הליכה + משאית קטנה + משאית + קטנוע + אופנוע מרוצים + אופני הרים + שגיאת שרת: %1$s + השם כבר קיים \ No newline at end of file From cc93512dfc02c12a3952339a1f2d6c94b4c4d59f Mon Sep 17 00:00:00 2001 From: Ahmad Alfrhood Date: Tue, 19 Jan 2021 09:09:50 +0000 Subject: [PATCH 120/173] Translated using Weblate (Arabic) Currently translated at 100.0% (3645 of 3645 strings) --- OsmAnd/res/values-ar/strings.xml | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/OsmAnd/res/values-ar/strings.xml b/OsmAnd/res/values-ar/strings.xml index 9bd65acc41..ef68e3055c 100644 --- a/OsmAnd/res/values-ar/strings.xml +++ b/OsmAnd/res/values-ar/strings.xml @@ -4035,4 +4035,32 @@ تحرير المسار تسمية المسار تغيير المجلد + ثانية + تمرير + طريقة + تحضير طويل + إعداد + إيقاف المسار + الوصول إلى الوجهة + منعطف + الوقت والمسافة + وقت الإعلان عن مختلف المطالبات الصوتية يعتمد على نوع موجه، وسرعة التنقل الحالية وسرعة التنقل الافتراضية. + وقت الإعلان + بدء التسجيل + عرض المسار على الخريطة + منحدرات + مشي + مشي + ركوب الدراجات الكهربائية + ركوب الدراجات الجبلية + ركوب الدراجات على الطرق + ركوب الدراجات + مركبات الحمولة الثقيلة + شاحنة صغيرة + شاحنة + سكوتر + سباق الدراجات + MTB + خطأ في الخادم: %1$s + الاسم موجود بالفعل \ No newline at end of file From 29d060c64b25c18ba2d2fbaf227cef680db1671e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavel=20Kotr=C4=8D?= Date: Wed, 20 Jan 2021 20:05:39 +0000 Subject: [PATCH 121/173] Translated using Weblate (Czech) Currently translated at 100.0% (3645 of 3645 strings) --- OsmAnd/res/values-cs/strings.xml | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/OsmAnd/res/values-cs/strings.xml b/OsmAnd/res/values-cs/strings.xml index 6f001d5965..8ad497f92c 100644 --- a/OsmAnd/res/values-cs/strings.xml +++ b/OsmAnd/res/values-cs/strings.xml @@ -3972,4 +3972,32 @@ Editovat stopu Přejmenovat stopu Změnit složku + sek. + Míjení + Přiblížení + Dlouhá příprava + Příprava + Odchýlení od trasy + Dosažení cíle + Odbočit + Intervaly času a vzdálenosti + Čas oznámení různých hlasových pokynů závisí na typu pokynu, aktuální rychlosti navigace a výchozí rychlosti navigace. + Čas oznámení + Spustit záznam + Zobrazit stopu na mapě + Invalidní vozík + Turistika + Chůze + Jízda na elektrokole + Horská cyklistika + Silniční cyklistika + Běžná cyklistika + Nákladní auto + Malé nákladní auto + Kamion + Skútr + Závodní kolo + Horské kolo + Chyba serveru: %1$s + Název již existuje \ No newline at end of file From fbe684924ead9721397857d9903226f823862c9e Mon Sep 17 00:00:00 2001 From: ace shadow Date: Wed, 20 Jan 2021 00:33:36 +0000 Subject: [PATCH 122/173] Translated using Weblate (Slovak) Currently translated at 95.4% (3704 of 3881 strings) --- OsmAnd/res/values-sk/phrases.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/values-sk/phrases.xml b/OsmAnd/res/values-sk/phrases.xml index 7848da6dee..bb55a5a250 100644 --- a/OsmAnd/res/values-sk/phrases.xml +++ b/OsmAnd/res/values-sk/phrases.xml @@ -133,7 +133,7 @@ Kontrola vozidla (technická/emisná) Autoumyváreň Benzínová pumpa;Čerpacia stanica - Nabíjacia stanica + Nabíjacia stanica pre vozidlá Servisná rampa na auto Stlačený vzduch Parkovisko From 2ca9e6df882cbcbe70a6d95d1de8bd3887ebaf67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Priit=20J=C3=B5er=C3=BC=C3=BCt?= Date: Tue, 19 Jan 2021 09:41:17 +0000 Subject: [PATCH 123/173] Translated using Weblate (Estonian) Currently translated at 100.0% (3881 of 3881 strings) --- OsmAnd/res/values-et/phrases.xml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-et/phrases.xml b/OsmAnd/res/values-et/phrases.xml index 684815e89c..94a665876a 100644 --- a/OsmAnd/res/values-et/phrases.xml +++ b/OsmAnd/res/values-et/phrases.xml @@ -643,7 +643,7 @@ Jet A-1 kütus Mäekuru Paatide bensiinijaam - Laadimisjaam + Laadimisjaam;Elektriautode laadimisjaam;Elektriauto laadimine;Laadimispunkt;Elektriautode laadimispunkt Parvlaev Üheksa kurikaga keegel Kümne kurikaga keegel @@ -3877,4 +3877,8 @@ Ei Jäätmejaam Avalik pesumaja + Ujumiskoht + Tunnel nahkhiirtele + Sild nahkhiirtele + Metsloomade teeületuskoht \ No newline at end of file From 7e4eba8afff5bc7a10a8ad357c502671d19066e3 Mon Sep 17 00:00:00 2001 From: Franco Date: Tue, 19 Jan 2021 18:49:24 +0000 Subject: [PATCH 124/173] Translated using Weblate (Spanish (Argentina)) Currently translated at 99.8% (3641 of 3645 strings) --- OsmAnd/res/values-es-rAR/strings.xml | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/OsmAnd/res/values-es-rAR/strings.xml b/OsmAnd/res/values-es-rAR/strings.xml index 799a1f7e8a..15fb02f566 100644 --- a/OsmAnd/res/values-es-rAR/strings.xml +++ b/OsmAnd/res/values-es-rAR/strings.xml @@ -3975,4 +3975,32 @@ Editar traza Renombrar traza Cambiar carpeta + seg + Pasando + Acercarse + Preparación larga + Preparar + Fuera de la ruta + Has llegado al destino + Giro + Intervalos de tiempo y distancia + El tiempo de anuncio de las diferentes indicaciones por voz depende del tipo de mensaje, la velocidad de navegación actual y la velocidad de navegación predefinida. + Tiempo de anuncio + Iniciar grabación + Mostrar traza en el mapa + Silla de ruedas + Senderismo + Peatón + Ciclismo eléctrico + Ciclismo de montaña + Ciclismo de ruta + Ciclismo regular + Vehículos pesados + Camión pequeño + Camión + Motoneta + Bicicleta de carreras + Bicicleta de montaña + Error de servidor: %1$s + El nombre ya existe \ No newline at end of file From baa66b8d4b7da0c7042d7e6b0e2296a1a2eddea7 Mon Sep 17 00:00:00 2001 From: Eduardo Addad de Oliveira Date: Wed, 20 Jan 2021 00:49:44 +0000 Subject: [PATCH 125/173] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (3645 of 3645 strings) --- OsmAnd/res/values-pt-rBR/strings.xml | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/OsmAnd/res/values-pt-rBR/strings.xml b/OsmAnd/res/values-pt-rBR/strings.xml index 0b5a8b33f2..27b74056cb 100644 --- a/OsmAnd/res/values-pt-rBR/strings.xml +++ b/OsmAnd/res/values-pt-rBR/strings.xml @@ -3967,4 +3967,32 @@ Editar trilha Renomear trilha Mudar pasta + seg + Passando + Aproximação + Longa preparação + Preparar + Fora da rota + Chegue ao destino + Virar + Intervalos de tempo e distância + O tempo de anúncio de diferentes comandos de voz depende do tipo de prompt, velocidade de navegação atual e velocidade de navegação padrão. + Hora do anúncio + Comece a gravar + Mostrar trilha no mapa + Cadeira de rodas + Caminhada + Caminhando + Ciclismo elétrico + Mountain bike + Ciclismo regular + Ciclismo regular + Veículos de carga pesada + Caminhão pequeno + Caminhão + Lambreta + Bicicleta de corrida + MTB + Erro de servidor: %1$s + O nome já existe \ No newline at end of file From 12027a4429561d6072987884a35fc0684201865e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Priit=20J=C3=B5er=C3=BC=C3=BCt?= Date: Tue, 19 Jan 2021 09:35:30 +0000 Subject: [PATCH 126/173] Translated using Weblate (Estonian) Currently translated at 98.3% (3586 of 3645 strings) --- OsmAnd/res/values-et/strings.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/OsmAnd/res/values-et/strings.xml b/OsmAnd/res/values-et/strings.xml index 2ccf7cc2fe..5068575a75 100644 --- a/OsmAnd/res/values-et/strings.xml +++ b/OsmAnd/res/values-et/strings.xml @@ -3946,4 +3946,6 @@ Pööra kõik punktid ümber Vali rakenduse käivitamisel kasutatav profiil. Viimati kasutatud + Serveri viga: %1$s + Selline nimi on juba olemas \ No newline at end of file From d29a379c73a4f6dfce2c2878e9cdf0c7f5554dd4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?O=C4=9Fuz=20Ersen?= Date: Tue, 19 Jan 2021 06:33:19 +0000 Subject: [PATCH 127/173] Translated using Weblate (Turkish) Currently translated at 80.8% (3138 of 3881 strings) --- OsmAnd/res/values-tr/phrases.xml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/OsmAnd/res/values-tr/phrases.xml b/OsmAnd/res/values-tr/phrases.xml index 558e72a682..2fe8bccf32 100644 --- a/OsmAnd/res/values-tr/phrases.xml +++ b/OsmAnd/res/values-tr/phrases.xml @@ -194,7 +194,7 @@ Gaz istasyonu;Benzin istasyonu;Dolum istasyonu;Petrol istasyonu Dizel GTL dizel - TIR dizel + Ağır yük aracı dizeli Bio dizel LPG 80 Oktan @@ -215,7 +215,7 @@ Biyogaz Sıvı hidrojen Elektrik - Şarj istasyonu + Şarj istasyonu; Elektrikli araç şarj istasyonu; EA şarj istasyonu; Elektrikli şarj noktası; Şarj noktası; Elektronik şarj istasyonu; Elektrikli araç besleme ekipmanı Araç rampa Basınçlı hava Otopark @@ -1187,7 +1187,7 @@ Sürüş paylaşım noktası Park ve sürüş Mofa erişimi - Ağır vasıta erişimi + Ağır yük aracı erişimi Hafif ticari araç erişimi Demirleme yeri Yükleme şamandırası @@ -1436,7 +1436,7 @@ Evet Ses: hayır Sadece yürümeye izin verildiğinde - Ağır vasıta geçiş ücreti + Ağır yük aracı geçiş ücreti Kurtarma istasyonu Çapalar Servis alanı @@ -3133,4 +3133,9 @@ Dolap türü: kablo tv Dolap türü: telefon Dolap türü: elektrik + Ağır yük aracı erişimi: uygun değil + Ağır yük aracı erişimi: önerilmiyor + Ağır yük aracı erişimi: tarım + Ağır yük aracı erişimi: hayır + Ağır yük aracı erişimi: özel \ No newline at end of file From 7903aa9819962eba30726aa40cf41af67bf66935 Mon Sep 17 00:00:00 2001 From: Verdulo Date: Wed, 20 Jan 2021 21:05:31 +0000 Subject: [PATCH 128/173] Translated using Weblate (Esperanto) Currently translated at 99.4% (3624 of 3645 strings) --- OsmAnd/res/values-eo/strings.xml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/OsmAnd/res/values-eo/strings.xml b/OsmAnd/res/values-eo/strings.xml index db0a01c2ab..86f48ed9a0 100644 --- a/OsmAnd/res/values-eo/strings.xml +++ b/OsmAnd/res/values-eo/strings.xml @@ -3972,4 +3972,11 @@ Redakti spuron Renomi spuron Ŝanĝi dosierujon + Kamioneto + Kamiono + Skotero + Biciklo vetkura + Montbiciklo + Servila eraro: %1$s + Tiu ĉi nomo jam estas uzata \ No newline at end of file From b2cb061673200d1a593b7706a0b71bfe009ff0e6 Mon Sep 17 00:00:00 2001 From: Jeff Huang Date: Tue, 19 Jan 2021 02:39:50 +0000 Subject: [PATCH 129/173] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (3645 of 3645 strings) --- OsmAnd/res/values-zh-rTW/strings.xml | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/OsmAnd/res/values-zh-rTW/strings.xml b/OsmAnd/res/values-zh-rTW/strings.xml index dbb7f64fa0..b0a914696c 100644 --- a/OsmAnd/res/values-zh-rTW/strings.xml +++ b/OsmAnd/res/values-zh-rTW/strings.xml @@ -3965,4 +3965,32 @@ 編輯軌跡 重新命名軌跡 變更資料夾 + + 通過 + 接近 + 長準備 + 準備 + 偏離路線 + 抵達目的地 + 轉彎 + 時間與距離間隔 + 不同語音提示的公告時間取決於提示類型、目前的導航速度與預設的導航速度。 + 公告時間 + 開始錄製 + 在地圖上顯示軌跡 + 輪椅 + 健行 + 步行 + 電動自行車 + 山地自行車 + 公路自行車 + 一般自行車 + 大貨車 + 小貨車 + 卡車 + 速克達 + 競賽摩托車 + 登山車 + 伺服器錯誤:%1$s + 名稱已存在 \ No newline at end of file From 01387ef52ec711ff374c59890a90dcddc49f7d06 Mon Sep 17 00:00:00 2001 From: letypequividelespoubelles Date: Wed, 20 Jan 2021 21:31:44 +0000 Subject: [PATCH 130/173] Translated using Weblate (French) Currently translated at 99.7% (3635 of 3645 strings) --- OsmAnd/res/values-fr/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/OsmAnd/res/values-fr/strings.xml b/OsmAnd/res/values-fr/strings.xml index 11268680f0..e861227156 100644 --- a/OsmAnd/res/values-fr/strings.xml +++ b/OsmAnd/res/values-fr/strings.xml @@ -3979,4 +3979,5 @@ VTT Erreur serveur : %1$s Ce nom existe déjà + Poids lourds \ No newline at end of file From 04bd5b45e269209ee3eb5ee872955eb28933b623 Mon Sep 17 00:00:00 2001 From: Verdulo Date: Wed, 20 Jan 2021 21:34:08 +0000 Subject: [PATCH 131/173] Translated using Weblate (Esperanto) Currently translated at 99.6% (3634 of 3645 strings) --- OsmAnd/res/values-eo/strings.xml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/OsmAnd/res/values-eo/strings.xml b/OsmAnd/res/values-eo/strings.xml index 86f48ed9a0..ab5f495fee 100644 --- a/OsmAnd/res/values-eo/strings.xml +++ b/OsmAnd/res/values-eo/strings.xml @@ -3979,4 +3979,14 @@ Montbiciklo Servila eraro: %1$s Tiu ĉi nomo jam estas uzata + Ekigi registri + Montri kurson sur mapo + Rulseĝo + Marŝado + Irado + Elektra biciklado + Montara biciklado + Ŝosea biciklado + Kutima biciklado + Peza kamiono \ No newline at end of file From fdbf7a0f4b2d056836b1edd0a5e230be92b6c0e1 Mon Sep 17 00:00:00 2001 From: Skalii Date: Thu, 21 Jan 2021 05:10:08 +0200 Subject: [PATCH 132/173] amend track menu layout; add init for action segments; Taping on any stat block should open "Analyze on map"; --- OsmAnd/res/layout/gpx_overview_fragment.xml | 5 +- OsmAnd/res/layout/item_gpx_action.xml | 4 +- OsmAnd/res/layout/track_menu.xml | 11 +- OsmAnd/res/values/colors.xml | 1 + .../net/osmand/plus/track/OverviewCard.java | 124 +++++++++++++----- 5 files changed, 102 insertions(+), 43 deletions(-) diff --git a/OsmAnd/res/layout/gpx_overview_fragment.xml b/OsmAnd/res/layout/gpx_overview_fragment.xml index e02826fcbf..d088caa167 100644 --- a/OsmAnd/res/layout/gpx_overview_fragment.xml +++ b/OsmAnd/res/layout/gpx_overview_fragment.xml @@ -1,16 +1,15 @@ - diff --git a/OsmAnd/res/layout/track_menu.xml b/OsmAnd/res/layout/track_menu.xml index 9d33f73e88..9f70c126b8 100644 --- a/OsmAnd/res/layout/track_menu.xml +++ b/OsmAnd/res/layout/track_menu.xml @@ -43,12 +43,13 @@ android:paddingStart="@dimen/context_menu_padding_margin_default" android:paddingLeft="@dimen/context_menu_padding_margin_default" android:paddingEnd="@dimen/context_menu_padding_margin_default" - android:paddingRight="@dimen/context_menu_padding_margin_default"> + android:paddingRight="@dimen/context_menu_padding_margin_default" + android:paddingBottom="@dimen/context_menu_direction_margin"> + android:visibility="gone" + tools:text="@string/amenity_type_finance" /> @@ -79,7 +81,7 @@ android:id="@+id/icon_view" android:layout_width="@dimen/map_widget_icon" android:layout_height="@dimen/map_widget_icon" - android:layout_marginTop="@dimen/context_menu_padding_margin_default" + android:layout_marginTop="@dimen/context_menu_second_line_top_margin" android:tint="?attr/default_icon_color" osmand:srcCompat="@drawable/ic_action_polygom_dark" /> @@ -94,7 +96,6 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:background="?attr/activity_background_basic" - android:foreground="@drawable/bg_contextmenu_shadow" android:foregroundGravity="top|fill_horizontal"> #197d2a #b3b3b3 + #87CC70 #fafafa #101821 diff --git a/OsmAnd/src/net/osmand/plus/track/OverviewCard.java b/OsmAnd/src/net/osmand/plus/track/OverviewCard.java index 51be5dd49b..bb1f9c4a08 100644 --- a/OsmAnd/src/net/osmand/plus/track/OverviewCard.java +++ b/OsmAnd/src/net/osmand/plus/track/OverviewCard.java @@ -21,18 +21,28 @@ import androidx.recyclerview.widget.DefaultItemAnimator; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; +import com.github.mikephil.charting.charts.LineChart; +import com.github.mikephil.charting.interfaces.datasets.ILineDataSet; + import net.osmand.GPXUtilities.GPXFile; +import net.osmand.GPXUtilities.GPXTrackAnalysis; +import net.osmand.plus.GPXDatabase.GpxDataItem; +import net.osmand.plus.GpxSelectionHelper.GpxDisplayItem; import net.osmand.plus.GpxSelectionHelper.GpxDisplayItemType; +import net.osmand.plus.OsmAndFormatter; import net.osmand.plus.R; import net.osmand.plus.UiUtilities.UpdateLocationViewCache; import net.osmand.plus.activities.MapActivity; +import net.osmand.plus.helpers.GpxUiHelper; +import net.osmand.plus.helpers.GpxUiHelper.LineGraphType; import net.osmand.plus.mapcontextmenu.MapContextMenu; import net.osmand.plus.myplaces.SegmentActionsListener; import net.osmand.plus.myplaces.SegmentGPXAdapter; import net.osmand.plus.routepreparationmenu.cards.BaseCard; import net.osmand.plus.widgets.TextViewEx; +import net.osmand.util.Algorithms; -import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import static net.osmand.plus.myplaces.TrackActivityFragmentAdapter.isGpxFileSelected; @@ -54,7 +64,7 @@ public class OverviewCard extends BaseCard { private TrackDisplayHelper displayHelper; private GPXFile gpxFile; - private GpxDisplayItemType[] filterTypes = new GpxDisplayItemType[] {GpxDisplayItemType.TRACK_SEGMENT}; + private GpxDisplayItemType[] filterTypes = new GpxDisplayItemType[]{GpxDisplayItemType.TRACK_SEGMENT}; private SegmentGPXAdapter adapter; private SegmentActionsListener listener; @@ -78,13 +88,19 @@ public class OverviewCard extends BaseCard { int iconColorDef = R.color.icon_color_active_light; int iconColorPres = R.color.active_buttons_and_links_text_dark; + boolean fileAvailable = gpxFile.path != null && !gpxFile.showCurrentTrack; showButton = view.findViewById(R.id.show_button); appearanceButton = view.findViewById(R.id.appearance_button); editButton = view.findViewById(R.id.edit_button); directionsButton = view.findViewById(R.id.directions_button); + rvOverview = view.findViewById(R.id.recycler_overview); - boolean fileAvailable = gpxFile.path != null && !gpxFile.showCurrentTrack; + menu = mapActivity.getContextMenu(); + distanceText = (TextView) view.findViewById(R.id.distance); + direction = (ImageView) view.findViewById(R.id.direction); + UpdateLocationViewCache updateLocationViewCache = app.getUIUtilities().getUpdateLocationViewCache(); + app.getUIUtilities().updateLocationView(updateLocationViewCache, direction, distanceText, menu.getLatLon()); initShowButton(iconColorDef, iconColorPres); initAppearanceButton(iconColorDef, iconColorPres); @@ -93,35 +109,37 @@ public class OverviewCard extends BaseCard { initDirectionsButton(iconColorDef, iconColorPres); } - menu = mapActivity.getContextMenu(); - distanceText = (TextView) view.findViewById(R.id.distance); - direction = (ImageView) view.findViewById(R.id.direction); - UpdateLocationViewCache updateLocationViewCache = app.getUIUtilities().getUpdateLocationViewCache(); - app.getUIUtilities().updateLocationView(updateLocationViewCache, direction, distanceText, menu.getLatLon()); + initSegments(); + } - SegmentItem item1 = new SegmentItem("Distance", "700 km", R.drawable.ic_action_track_16); - SegmentItem item2 = new SegmentItem("Ascent", "156 km", R.drawable.ic_action_arrow_up_16); - SegmentItem item3 = new SegmentItem("Descent", "338 km", R.drawable.ic_action_arrow_down_16); - SegmentItem item4 = new SegmentItem("Average speed", "9.9 km/h", R.drawable.ic_action_speed_16); - SegmentItem item5 = new SegmentItem("Max. speed", "12.7 km/h", R.drawable.ic_action_max_speed_16); - SegmentItem item6 = new SegmentItem("Time span", "4:00:18", R.drawable.ic_action_time_span_16); - List items = new ArrayList<>(); - items.add(item1); - items.add(item2); - items.add(item3); - items.add(item4); - items.add(item5); - items.add(item6); + void initSegments() { + GpxDisplayItem gpxItem = TrackDisplayHelper.flatten(displayHelper.getOriginalGroups(filterTypes)).get(0); + GPXTrackAnalysis analysis = gpxItem.analysis; + boolean joinSegments = displayHelper.isJoinSegments(); + float totalDistance = !joinSegments && gpxItem.isGeneralTrack() ? analysis.totalDistanceWithoutGaps : analysis.totalDistance; + float timeSpan = !joinSegments && gpxItem.isGeneralTrack() ? analysis.timeSpanWithoutGaps : analysis.timeSpan; + String asc = OsmAndFormatter.getFormattedAlt(analysis.diffElevationUp, app); + String desc = OsmAndFormatter.getFormattedAlt(analysis.diffElevationDown, app); + String avg = OsmAndFormatter.getFormattedSpeed(analysis.avgSpeed, app); + String max = OsmAndFormatter.getFormattedSpeed(analysis.maxSpeed, app); + + SegmentItem sDistance = new SegmentItem(app.getResources().getString(R.string.distance), OsmAndFormatter.getFormattedDistance(totalDistance, app), + R.drawable.ic_action_track_16, R.color.icon_color_default_light, LineGraphType.ALTITUDE, LineGraphType.SPEED); + SegmentItem sAscent = new SegmentItem(app.getResources().getString(R.string.altitude_ascent), asc, R.drawable.ic_action_arrow_up_16, R.color.gpx_chart_red, LineGraphType.SLOPE, null); + SegmentItem sDescent = new SegmentItem(app.getResources().getString(R.string.altitude_descent), desc, R.drawable.ic_action_arrow_down_16, R.color.gpx_pale_green, LineGraphType.ALTITUDE, LineGraphType.SLOPE); + SegmentItem sAvSpeed = new SegmentItem(app.getResources().getString(R.string.average_speed), avg, R.drawable.ic_action_speed_16, R.color.icon_color_default_light, LineGraphType.SPEED, null); + SegmentItem sMaxSpeed = new SegmentItem(app.getResources().getString(R.string.max_speed), max, R.drawable.ic_action_max_speed_16, R.color.icon_color_default_light, LineGraphType.SPEED, null); + SegmentItem sTimeSpan = new SegmentItem(app.getResources().getString(R.string.shared_string_time_span), Algorithms.formatDuration((int) (timeSpan / 1000), app.accessibilityEnabled()), + R.drawable.ic_action_time_span_16, R.color.icon_color_default_light, LineGraphType.SPEED, null); - rvOverview = view.findViewById(R.id.recycler_overview); LinearLayoutManager llManager = new LinearLayoutManager(app); llManager.setOrientation(LinearLayoutManager.HORIZONTAL); rvOverview.setLayoutManager(llManager); rvOverview.setItemAnimator(new DefaultItemAnimator()); - final SegmentItemAdapter oiAdapter = new SegmentItemAdapter(items); - rvOverview.setAdapter(oiAdapter); + List items = Arrays.asList(sDistance, sAscent, sDescent, sAvSpeed, sMaxSpeed, sTimeSpan); + final SegmentItemAdapter siAdapter = new SegmentItemAdapter(items); + rvOverview.setAdapter(siAdapter); rvOverview.addItemDecoration(new HorizontalDividerDecoration(app)); - } private void initShowButton(final int iconColorDef, final int iconColorPres) { @@ -138,12 +156,9 @@ public class OverviewCard extends BaseCard { @Override public void onClick(View v) { gpxFileSelected[0] = !gpxFileSelected[0]; - + filled.setAlpha(gpxFileSelected[0] ? 1f : 0.1f); setImageDrawable(image, gpxFileSelected[0] ? iconShowResId : iconHideResId, gpxFileSelected[0] ? iconColorPres : iconColorDef); - - filled.setAlpha(gpxFileSelected[0] ? 1f : 0.1f); - CardListener listener = getListener(); if (listener != null) { listener.onCardButtonPressed(OverviewCard.this, SHOW_ON_MAP_BUTTON_INDEX); @@ -236,7 +251,6 @@ public class OverviewCard extends BaseCard { holder.bind(item); } - class SegmentItemViewHolder extends RecyclerView.ViewHolder { private final TextViewEx valueText; private final TextView titleText; @@ -249,10 +263,23 @@ public class OverviewCard extends BaseCard { imageView = view.findViewById(R.id.image); } - public void bind(SegmentItem overviewItem) { + public void bind(final SegmentItem overviewItem) { valueText.setText(overviewItem.value); + valueText.setTextColor(app.getResources().getColor(R.color.active_color_primary_light)); titleText.setText(overviewItem.title); - setImageDrawable(imageView, overviewItem.imageResId, R.color.text_color_primary_light); //todo change color + titleText.setTextColor(app.getResources().getColor(R.color.text_color_secondary_light)); + setImageDrawable(imageView, overviewItem.imageResId, overviewItem.imageColorId); + itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + GpxDisplayItem gpxItem = TrackDisplayHelper.flatten(displayHelper.getOriginalGroups(filterTypes)).get(0); + GPXTrackAnalysis analysis = gpxItem.analysis; + GpxDataItem gpxDataItem = displayHelper.getGpxDataItem(); + boolean calcWithoutGaps = gpxItem.isGeneralTrack() && gpxDataItem != null && !gpxDataItem.isJoinSegments(); + List dataSets = GpxUiHelper.getDataSets(new LineChart(app), app, analysis, overviewItem.firstType, overviewItem.secondType, calcWithoutGaps); + listener.openAnalyzeOnMap(gpxItem, dataSets, null); + } + }); } } } @@ -300,11 +327,17 @@ public class OverviewCard extends BaseCard { private String title; private String value; private int imageResId; + private int imageColorId; + private LineGraphType firstType; + private LineGraphType secondType; - public SegmentItem(String title, String value, int imageResId) { + public SegmentItem(String title, String value, @DrawableRes int imageResId, @ColorRes int imageColorId, LineGraphType firstType, LineGraphType secondType) { this.title = title; this.value = value; this.imageResId = imageResId; + this.imageColorId = imageColorId; + this.firstType = firstType; + this.secondType = secondType; } public String getTitle() { @@ -330,5 +363,30 @@ public class OverviewCard extends BaseCard { public void setImageResId(int imageResId) { this.imageResId = imageResId; } + + public int getImageColorId() { + return imageColorId; + } + + public void setImageColorId(int imageColorId) { + this.imageColorId = imageColorId; + } + + public LineGraphType getFirstType() { + return firstType; + } + + public void setFirstType(LineGraphType firstType) { + this.firstType = firstType; + } + + public LineGraphType getSecondType() { + return secondType; + } + + public void getSecondType(LineGraphType secondType) { + this.secondType = secondType; + } + } } \ No newline at end of file From 1b2e5991002995cce4120a61a4fda885975132da Mon Sep 17 00:00:00 2001 From: Ihor Hordiichuk Date: Thu, 21 Jan 2021 07:01:16 +0000 Subject: [PATCH 133/173] Translated using Weblate (Ukrainian) Currently translated at 100.0% (3645 of 3645 strings) --- OsmAnd/res/values-uk/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/values-uk/strings.xml b/OsmAnd/res/values-uk/strings.xml index ecb41bb50d..03e0e54d9d 100644 --- a/OsmAnd/res/values-uk/strings.xml +++ b/OsmAnd/res/values-uk/strings.xml @@ -3111,7 +3111,7 @@ Дім на колесах Показати на мапі зони низьких викидів. Не впливає на маршрутизацію. Показати зони низьких викидів - Враховувати часові обмеження + Враховувати тимчасові обмеження Усталений Маршрут: відстань %1$s, час навігації %2$s \nРозрахунок: %3$.1f с, %4$d доріг, %5$d тайлів) Окситанська From c69676372fdf2aef3f556b2e6941a41ee667caf1 Mon Sep 17 00:00:00 2001 From: Ahmad Alfrhood Date: Thu, 21 Jan 2021 06:26:02 +0000 Subject: [PATCH 134/173] Translated using Weblate (Arabic) Currently translated at 92.8% (3602 of 3881 strings) --- OsmAnd/res/values-ar/phrases.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/OsmAnd/res/values-ar/phrases.xml b/OsmAnd/res/values-ar/phrases.xml index 398583adbf..86450cf7d9 100644 --- a/OsmAnd/res/values-ar/phrases.xml +++ b/OsmAnd/res/values-ar/phrases.xml @@ -3669,4 +3669,10 @@ محطة نقل نفايات ميزان المركبات مكتب الحارس + خدمات المواطن + تأشيرات الهجرة + تأشيرات لغير المهاجرين + اتصال + قنصلية + سفارة \ No newline at end of file From 1fd47a6f148c3f021190ea3667ccb46b129113c9 Mon Sep 17 00:00:00 2001 From: max-klaus Date: Thu, 21 Jan 2021 13:17:41 +0300 Subject: [PATCH 135/173] Fix srtm/depth features --- .../OsmandInAppPurchaseActivity.java | 2 +- .../chooseplan/ChoosePlanDialogFragment.java | 2 +- .../ChoosePlanFreeBannerDialogFragment.java | 3 +- ...ChoosePlanHillshadeSrtmDialogFragment.java | 60 ++---------------- .../ChoosePlanSeaDepthMapsDialogFragment.java | 63 +++---------------- .../ChoosePlanWikipediaDialogFragment.java | 1 - .../osmand/plus/dialogs/ConfigureMapMenu.java | 2 +- .../plus/download/DownloadActivity.java | 7 ++- .../plus/download/DownloadResources.java | 4 +- .../plus/download/ui/ItemViewHolder.java | 3 +- .../plus/inapp/InAppPurchaseHelper.java | 8 ++- .../controllers/MapDataMenuController.java | 2 +- .../plus/resources/ResourceManager.java | 2 +- .../plus/srtmplugin/ContourLinesMenu.java | 2 +- .../osmand/plus/srtmplugin/SRTMPlugin.java | 10 +-- .../views/corenative/NativeCoreContext.java | 2 +- build.gradle | 2 +- 17 files changed, 39 insertions(+), 136 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/activities/OsmandInAppPurchaseActivity.java b/OsmAnd/src/net/osmand/plus/activities/OsmandInAppPurchaseActivity.java index 6cc1b222bb..ee7b882c54 100644 --- a/OsmAnd/src/net/osmand/plus/activities/OsmandInAppPurchaseActivity.java +++ b/OsmAnd/src/net/osmand/plus/activities/OsmandInAppPurchaseActivity.java @@ -204,7 +204,7 @@ public class OsmandInAppPurchaseActivity extends AppCompatActivity implements In } onInAppPurchaseItemPurchased(sku); fireInAppPurchaseItemPurchasedOnFragments(fragmentManager, sku, active); - if (purchaseHelper != null && purchaseHelper.getContourLines().getSku().equals(sku)) { + if (purchaseHelper != null && purchaseHelper.getFullVersion().getSku().equals(sku)) { if (!(this instanceof MapActivity)) { finish(); } diff --git a/OsmAnd/src/net/osmand/plus/chooseplan/ChoosePlanDialogFragment.java b/OsmAnd/src/net/osmand/plus/chooseplan/ChoosePlanDialogFragment.java index 6547ae01db..256a845dc7 100644 --- a/OsmAnd/src/net/osmand/plus/chooseplan/ChoosePlanDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/chooseplan/ChoosePlanDialogFragment.java @@ -118,7 +118,7 @@ public abstract class ChoosePlanDialogFragment extends BaseOsmAndDialogFragment case SEA_DEPTH_MAPS: return InAppPurchaseHelper.isDepthContoursPurchased(ctx); case CONTOUR_LINES_HILLSHADE_MAPS: - return OsmandPlugin.getEnabledPlugin(SRTMPlugin.class) != null; + return OsmandPlugin.getEnabledPlugin(SRTMPlugin.class) != null || InAppPurchaseHelper.isContourLinesPurchased(ctx); } return false; } diff --git a/OsmAnd/src/net/osmand/plus/chooseplan/ChoosePlanFreeBannerDialogFragment.java b/OsmAnd/src/net/osmand/plus/chooseplan/ChoosePlanFreeBannerDialogFragment.java index bfdeb1b632..aa5a41a1a8 100644 --- a/OsmAnd/src/net/osmand/plus/chooseplan/ChoosePlanFreeBannerDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/chooseplan/ChoosePlanFreeBannerDialogFragment.java @@ -30,7 +30,8 @@ public class ChoosePlanFreeBannerDialogFragment extends ChoosePlanDialogFragment private final OsmAndFeature[] planTypeFeatures = { OsmAndFeature.WIKIPEDIA_OFFLINE, - OsmAndFeature.WIKIVOYAGE_OFFLINE, + OsmAndFeature.CONTOUR_LINES_HILLSHADE_MAPS, + OsmAndFeature.SEA_DEPTH_MAPS, OsmAndFeature.UNLIMITED_DOWNLOADS, OsmAndFeature.MONTHLY_MAP_UPDATES, }; diff --git a/OsmAnd/src/net/osmand/plus/chooseplan/ChoosePlanHillshadeSrtmDialogFragment.java b/OsmAnd/src/net/osmand/plus/chooseplan/ChoosePlanHillshadeSrtmDialogFragment.java index d3a48a5a15..b204557717 100644 --- a/OsmAnd/src/net/osmand/plus/chooseplan/ChoosePlanHillshadeSrtmDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/chooseplan/ChoosePlanHillshadeSrtmDialogFragment.java @@ -1,16 +1,6 @@ package net.osmand.plus.chooseplan; -import android.app.Activity; -import android.view.View; - -import androidx.annotation.Nullable; - -import net.osmand.plus.R; -import net.osmand.plus.activities.OsmandInAppPurchaseActivity; -import net.osmand.plus.inapp.InAppPurchaseHelper; -import net.osmand.plus.inapp.InAppPurchases.InAppPurchase; - -public class ChoosePlanHillshadeSrtmDialogFragment extends ChoosePlanDialogFragment { +public class ChoosePlanHillshadeSrtmDialogFragment extends ChoosePlanFreeBannerDialogFragment { public static final String TAG = ChoosePlanHillshadeSrtmDialogFragment.class.getSimpleName(); private final OsmAndFeature[] osmLiveFeatures = { @@ -29,6 +19,10 @@ public class ChoosePlanHillshadeSrtmDialogFragment extends ChoosePlanDialogFragm private final OsmAndFeature[] planTypeFeatures = { OsmAndFeature.CONTOUR_LINES_HILLSHADE_MAPS, + OsmAndFeature.SEA_DEPTH_MAPS, + OsmAndFeature.WIKIPEDIA_OFFLINE, + OsmAndFeature.UNLIMITED_DOWNLOADS, + OsmAndFeature.MONTHLY_MAP_UPDATES, }; private final OsmAndFeature[] selectedPlanTypeFeatures = {}; @@ -51,48 +45,4 @@ public class ChoosePlanHillshadeSrtmDialogFragment extends ChoosePlanDialogFragm public OsmAndFeature[] getSelectedPlanTypeFeatures() { return selectedPlanTypeFeatures; } - - @Override - public int getPlanTypeHeaderImageId() { - return R.drawable.img_logo_38dp_contour_lines; - } - - @Override - public String getPlanTypeHeaderTitle() { - return getString(R.string.srtm_plugin_name); - } - - @Override - public String getPlanTypeHeaderDescription() { - return getString(R.string.paid_plugin); - } - - @Override - public String getPlanTypeButtonDescription() { - return getString(R.string.in_app_purchase_desc); - } - - @Override - public void setPlanTypeButtonClickListener(View button) { - button.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - Activity activity = getActivity(); - if (activity != null) { - OsmandInAppPurchaseActivity.purchaseContourLines(activity); - dismiss(); - } - } - }); - } - - @Nullable - @Override - public InAppPurchase getPlanTypePurchase() { - InAppPurchaseHelper purchaseHelper = getOsmandApplication().getInAppPurchaseHelper(); - if (purchaseHelper != null) { - return purchaseHelper.getContourLines(); - } - return null; - } } diff --git a/OsmAnd/src/net/osmand/plus/chooseplan/ChoosePlanSeaDepthMapsDialogFragment.java b/OsmAnd/src/net/osmand/plus/chooseplan/ChoosePlanSeaDepthMapsDialogFragment.java index 211c788c38..8a07c25bef 100644 --- a/OsmAnd/src/net/osmand/plus/chooseplan/ChoosePlanSeaDepthMapsDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/chooseplan/ChoosePlanSeaDepthMapsDialogFragment.java @@ -1,21 +1,11 @@ package net.osmand.plus.chooseplan; -import android.app.Activity; -import android.view.View; - -import androidx.annotation.Nullable; - -import net.osmand.plus.R; -import net.osmand.plus.activities.OsmandInAppPurchaseActivity; -import net.osmand.plus.inapp.InAppPurchaseHelper; -import net.osmand.plus.inapp.InAppPurchases.InAppPurchase; - -public class ChoosePlanSeaDepthMapsDialogFragment extends ChoosePlanDialogFragment { +public class ChoosePlanSeaDepthMapsDialogFragment extends ChoosePlanFreeBannerDialogFragment { public static final String TAG = ChoosePlanSeaDepthMapsDialogFragment.class.getSimpleName(); private final OsmAndFeature[] osmLiveFeatures = { - OsmAndFeature.CONTOUR_LINES_HILLSHADE_MAPS, OsmAndFeature.SEA_DEPTH_MAPS, + OsmAndFeature.CONTOUR_LINES_HILLSHADE_MAPS, OsmAndFeature.WIKIPEDIA_OFFLINE, OsmAndFeature.WIKIVOYAGE_OFFLINE, OsmAndFeature.DAILY_MAP_UPDATES, @@ -23,12 +13,16 @@ public class ChoosePlanSeaDepthMapsDialogFragment extends ChoosePlanDialogFragme OsmAndFeature.UNLOCK_ALL_FEATURES, }; private final OsmAndFeature[] selectedOsmLiveFeatures = { - OsmAndFeature.CONTOUR_LINES_HILLSHADE_MAPS, OsmAndFeature.SEA_DEPTH_MAPS, + OsmAndFeature.CONTOUR_LINES_HILLSHADE_MAPS, }; private final OsmAndFeature[] planTypeFeatures = { OsmAndFeature.SEA_DEPTH_MAPS, + OsmAndFeature.CONTOUR_LINES_HILLSHADE_MAPS, + OsmAndFeature.WIKIPEDIA_OFFLINE, + OsmAndFeature.UNLIMITED_DOWNLOADS, + OsmAndFeature.MONTHLY_MAP_UPDATES, }; private final OsmAndFeature[] selectedPlanTypeFeatures = {}; @@ -51,47 +45,4 @@ public class ChoosePlanSeaDepthMapsDialogFragment extends ChoosePlanDialogFragme public OsmAndFeature[] getSelectedPlanTypeFeatures() { return selectedPlanTypeFeatures; } - - @Override - public int getPlanTypeHeaderImageId() { - return R.drawable.img_logo_38dp_sea_depth; - } - - @Override - public String getPlanTypeHeaderTitle() { - return getString(R.string.index_item_depth_contours_osmand_ext); - } - - @Override - public String getPlanTypeHeaderDescription() { - return getString(R.string.in_app_purchase); - } - - @Override - public String getPlanTypeButtonDescription() { - return getString(R.string.in_app_purchase_desc); - } - - @Override - public void setPlanTypeButtonClickListener(View button) { - button.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - Activity activity = getActivity(); - if (activity != null) { - OsmandInAppPurchaseActivity.purchaseDepthContours(activity); - } - } - }); - } - - @Nullable - @Override - public InAppPurchase getPlanTypePurchase() { - InAppPurchaseHelper purchaseHelper = getOsmandApplication().getInAppPurchaseHelper(); - if (purchaseHelper != null) { - return purchaseHelper.getDepthContours(); - } - return null; - } } diff --git a/OsmAnd/src/net/osmand/plus/chooseplan/ChoosePlanWikipediaDialogFragment.java b/OsmAnd/src/net/osmand/plus/chooseplan/ChoosePlanWikipediaDialogFragment.java index 8729bdbbeb..a6b222734e 100644 --- a/OsmAnd/src/net/osmand/plus/chooseplan/ChoosePlanWikipediaDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/chooseplan/ChoosePlanWikipediaDialogFragment.java @@ -19,7 +19,6 @@ public class ChoosePlanWikipediaDialogFragment extends ChoosePlanFreeBannerDialo private final OsmAndFeature[] planTypeFeatures = { OsmAndFeature.WIKIPEDIA_OFFLINE, - OsmAndFeature.WIKIVOYAGE_OFFLINE, OsmAndFeature.UNLIMITED_DOWNLOADS, OsmAndFeature.MONTHLY_MAP_UPDATES, }; diff --git a/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java b/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java index ca7382dd6e..7a0bcb0e79 100644 --- a/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java +++ b/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java @@ -251,7 +251,7 @@ public class ConfigureMapMenu { OsmandPlugin.registerLayerContextMenu(activity.getMapView(), adapter, activity); boolean srtmDisabled = OsmandPlugin.getEnabledPlugin(SRTMPlugin.class) == null - && !InAppPurchaseHelper.isSubscribedToLiveUpdates(app); + && !InAppPurchaseHelper.isContourLinesPurchased(app); if (srtmDisabled) { SRTMPlugin srtmPlugin = OsmandPlugin.getPlugin(SRTMPlugin.class); if (srtmPlugin != null) { diff --git a/OsmAnd/src/net/osmand/plus/download/DownloadActivity.java b/OsmAnd/src/net/osmand/plus/download/DownloadActivity.java index 52bb44bf5f..d076f329f0 100644 --- a/OsmAnd/src/net/osmand/plus/download/DownloadActivity.java +++ b/OsmAnd/src/net/osmand/plus/download/DownloadActivity.java @@ -684,11 +684,12 @@ public class DownloadActivity extends AbstractDownloadActivity implements Downlo } public void initAppStatusVariables() { + OsmandApplication app = getMyApplication(); srtmDisabled = OsmandPlugin.getEnabledPlugin(SRTMPlugin.class) == null - && !InAppPurchaseHelper.isSubscribedToLiveUpdates(getMyApplication()); + && !InAppPurchaseHelper.isContourLinesPurchased(app); nauticalPluginDisabled = OsmandPlugin.getEnabledPlugin(NauticalMapsPlugin.class) == null; - freeVersion = Version.isFreeVersion(getMyApplication()); - OsmandPlugin srtmPlugin = OsmandPlugin.getPlugin(SRTMPlugin.class); + freeVersion = Version.isFreeVersion(app); + SRTMPlugin srtmPlugin = OsmandPlugin.getPlugin(SRTMPlugin.class); srtmNeedsInstallation = srtmPlugin == null || srtmPlugin.needsInstallation(); } diff --git a/OsmAnd/src/net/osmand/plus/download/DownloadResources.java b/OsmAnd/src/net/osmand/plus/download/DownloadResources.java index f28310645e..4f820bac2a 100644 --- a/OsmAnd/src/net/osmand/plus/download/DownloadResources.java +++ b/OsmAnd/src/net/osmand/plus/download/DownloadResources.java @@ -352,9 +352,7 @@ public class DownloadResources extends DownloadResourceGroup { continue; } if (ii.getType() == DownloadActivityType.DEPTH_CONTOUR_FILE) { - if (InAppPurchaseHelper.isDepthContoursPurchased(app) - || InAppPurchaseHelper.isSubscribedToLiveUpdates(app) - || nauticalMaps.size() == 0) { + if (InAppPurchaseHelper.isDepthContoursPurchased(app) || nauticalMaps.size() == 0) { nauticalMaps.addItem(ii); } continue; diff --git a/OsmAnd/src/net/osmand/plus/download/ui/ItemViewHolder.java b/OsmAnd/src/net/osmand/plus/download/ui/ItemViewHolder.java index 9ad1a0f89e..70041a525e 100644 --- a/OsmAnd/src/net/osmand/plus/download/ui/ItemViewHolder.java +++ b/OsmAnd/src/net/osmand/plus/download/ui/ItemViewHolder.java @@ -134,8 +134,7 @@ public class ItemViewHolder { srtmDisabled = context.isSrtmDisabled(); nauticalPluginDisabled = context.isNauticalPluginDisabled(); srtmNeedsInstallation = context.isSrtmNeedsInstallation(); - depthContoursPurchased = InAppPurchaseHelper.isDepthContoursPurchased(context.getMyApplication()) - || InAppPurchaseHelper.isSubscribedToLiveUpdates(context.getMyApplication()); + depthContoursPurchased = InAppPurchaseHelper.isDepthContoursPurchased(context.getMyApplication()); } public void bindIndexItem(final IndexItem indexItem) { diff --git a/OsmAnd/src/net/osmand/plus/inapp/InAppPurchaseHelper.java b/OsmAnd/src/net/osmand/plus/inapp/InAppPurchaseHelper.java index ec13eba2bd..48fd643099 100644 --- a/OsmAnd/src/net/osmand/plus/inapp/InAppPurchaseHelper.java +++ b/OsmAnd/src/net/osmand/plus/inapp/InAppPurchaseHelper.java @@ -153,11 +153,15 @@ public abstract class InAppPurchaseHelper { } public static boolean isDepthContoursPurchased(@NonNull OsmandApplication ctx) { - return Version.isDeveloperBuild(ctx) || ctx.getSettings().DEPTH_CONTOURS_PURCHASED.get(); + return Version.isDeveloperBuild(ctx) + || Version.isPaidVersion(ctx) + || ctx.getSettings().DEPTH_CONTOURS_PURCHASED.get(); } public static boolean isContourLinesPurchased(@NonNull OsmandApplication ctx) { - return Version.isDeveloperBuild(ctx) || ctx.getSettings().CONTOUR_LINES_PURCHASED.get(); + return Version.isDeveloperBuild(ctx) + || Version.isPaidVersion(ctx) + || ctx.getSettings().CONTOUR_LINES_PURCHASED.get(); } public InAppPurchases getInAppPurchases() { diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/MapDataMenuController.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/MapDataMenuController.java index ac6b8287b4..22d6d97830 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/MapDataMenuController.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/MapDataMenuController.java @@ -85,7 +85,7 @@ public class MapDataMenuController extends MenuController { } srtmDisabled = OsmandPlugin.getEnabledPlugin(SRTMPlugin.class) == null - && !InAppPurchaseHelper.isSubscribedToLiveUpdates(app); + && !InAppPurchaseHelper.isContourLinesPurchased(app); OsmandPlugin srtmPlugin = OsmandPlugin.getPlugin(SRTMPlugin.class); srtmNeedsInstallation = srtmPlugin == null || srtmPlugin.needsInstallation(); diff --git a/OsmAnd/src/net/osmand/plus/resources/ResourceManager.java b/OsmAnd/src/net/osmand/plus/resources/ResourceManager.java index db1c3c96d6..47b4b037df 100644 --- a/OsmAnd/src/net/osmand/plus/resources/ResourceManager.java +++ b/OsmAnd/src/net/osmand/plus/resources/ResourceManager.java @@ -639,7 +639,7 @@ public class ResourceManager { collectFiles(context.getAppPath(IndexConstants.WIKI_INDEX_DIR), IndexConstants.BINARY_MAP_INDEX_EXT, files); collectFiles(context.getAppPath(IndexConstants.WIKIVOYAGE_INDEX_DIR), IndexConstants.BINARY_TRAVEL_GUIDE_MAP_INDEX_EXT, files); } - if (OsmandPlugin.getEnabledPlugin(SRTMPlugin.class) != null || InAppPurchaseHelper.isSubscribedToLiveUpdates(context)) { + if (OsmandPlugin.getEnabledPlugin(SRTMPlugin.class) != null || InAppPurchaseHelper.isContourLinesPurchased(context)) { collectFiles(context.getAppPath(IndexConstants.SRTM_INDEX_DIR), IndexConstants.BINARY_MAP_INDEX_EXT, files); } diff --git a/OsmAnd/src/net/osmand/plus/srtmplugin/ContourLinesMenu.java b/OsmAnd/src/net/osmand/plus/srtmplugin/ContourLinesMenu.java index 0f12c0a85d..03c6fde1f2 100644 --- a/OsmAnd/src/net/osmand/plus/srtmplugin/ContourLinesMenu.java +++ b/OsmAnd/src/net/osmand/plus/srtmplugin/ContourLinesMenu.java @@ -52,7 +52,7 @@ public class ContourLinesMenu { final OsmandApplication app = mapActivity.getMyApplication(); final OsmandSettings settings = app.getSettings(); final SRTMPlugin plugin = OsmandPlugin.getPlugin(SRTMPlugin.class); - final boolean srtmEnabled = OsmandPlugin.getEnabledPlugin(SRTMPlugin.class) != null || InAppPurchaseHelper.isSubscribedToLiveUpdates(app); + final boolean srtmEnabled = OsmandPlugin.getEnabledPlugin(SRTMPlugin.class) != null || InAppPurchaseHelper.isContourLinesPurchased(app); final RenderingRuleProperty contourLinesProp = app.getRendererRegistry().getCustomRenderingRuleProperty(CONTOUR_LINES_ATTR); final RenderingRuleProperty colorSchemeProp = app.getRendererRegistry().getCustomRenderingRuleProperty(CONTOUR_LINES_SCHEME_ATTR); diff --git a/OsmAnd/src/net/osmand/plus/srtmplugin/SRTMPlugin.java b/OsmAnd/src/net/osmand/plus/srtmplugin/SRTMPlugin.java index b6f22610e0..dcf9101695 100644 --- a/OsmAnd/src/net/osmand/plus/srtmplugin/SRTMPlugin.java +++ b/OsmAnd/src/net/osmand/plus/srtmplugin/SRTMPlugin.java @@ -14,14 +14,11 @@ import androidx.core.content.ContextCompat; import net.osmand.AndroidUtils; import net.osmand.data.LatLon; -import net.osmand.plus.settings.backend.ApplicationMode; import net.osmand.plus.ContextMenuAdapter; import net.osmand.plus.ContextMenuItem; import net.osmand.plus.DialogListItemAdapter; import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandPlugin; -import net.osmand.plus.settings.backend.OsmandSettings; -import net.osmand.plus.settings.backend.CommonPreference; import net.osmand.plus.R; import net.osmand.plus.activities.MapActivity; import net.osmand.plus.dashboard.DashboardOnMap; @@ -31,6 +28,9 @@ import net.osmand.plus.download.DownloadResources; import net.osmand.plus.download.IndexItem; import net.osmand.plus.inapp.InAppPurchaseHelper; import net.osmand.plus.quickaction.QuickActionType; +import net.osmand.plus.settings.backend.ApplicationMode; +import net.osmand.plus.settings.backend.CommonPreference; +import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.plus.views.OsmandMapTileView; import net.osmand.render.RenderingRuleProperty; import net.osmand.util.Algorithms; @@ -88,13 +88,13 @@ public class SRTMPlugin extends OsmandPlugin { @Override public boolean needsInstallation() { - return super.needsInstallation() && !InAppPurchaseHelper.isSubscribedToLiveUpdates(app); + return super.needsInstallation() + && !InAppPurchaseHelper.isContourLinesPurchased(app); } @Override protected boolean pluginAvailable(OsmandApplication app) { return super.pluginAvailable(app) - || InAppPurchaseHelper.isSubscribedToLiveUpdates(app) || InAppPurchaseHelper.isContourLinesPurchased(app); } diff --git a/OsmAnd/src/net/osmand/plus/views/corenative/NativeCoreContext.java b/OsmAnd/src/net/osmand/plus/views/corenative/NativeCoreContext.java index d3685fc048..02a8e07a2a 100644 --- a/OsmAnd/src/net/osmand/plus/views/corenative/NativeCoreContext.java +++ b/OsmAnd/src/net/osmand/plus/views/corenative/NativeCoreContext.java @@ -61,7 +61,7 @@ public class NativeCoreContext { ObfsCollection obfsCollection = new ObfsCollection(); obfsCollection.addDirectory(directory.getAbsolutePath(), false); - if(OsmandPlugin.getEnabledPlugin(SRTMPlugin.class) != null || InAppPurchaseHelper.isSubscribedToLiveUpdates(app)) { + if (OsmandPlugin.getEnabledPlugin(SRTMPlugin.class) != null || InAppPurchaseHelper.isContourLinesPurchased(app)) { obfsCollection.addDirectory(app.getAppPath(IndexConstants.SRTM_INDEX_DIR).getAbsolutePath(), false); } diff --git a/build.gradle b/build.gradle index 2f7736470a..e59a694b17 100644 --- a/build.gradle +++ b/build.gradle @@ -10,7 +10,7 @@ buildscript { } dependencies { //classpath 'com.android.tools.build:gradle:2.+' - classpath 'com.android.tools.build:gradle:4.1.1' + classpath 'com.android.tools.build:gradle:4.1.2' classpath 'com.google.gms:google-services:3.0.0' classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" From 6755a76aad8a80867b968d132824a54bc07fd1a9 Mon Sep 17 00:00:00 2001 From: Skalii Date: Thu, 21 Jan 2021 14:28:17 +0200 Subject: [PATCH 136/173] return bg_contextmenu_shadow in header; move OverviewCard build in header; minor fixes; --- OsmAnd/res/layout/gpx_overview_fragment.xml | 3 +- ...on_segment.xml => item_gpx_stat_block.xml} | 2 - OsmAnd/res/layout/track_menu.xml | 1 + .../net/osmand/plus/track/OverviewCard.java | 133 ++++++------------ .../osmand/plus/track/TrackMenuFragment.java | 38 +++-- 5 files changed, 69 insertions(+), 108 deletions(-) rename OsmAnd/res/layout/{item_gpx_action_segment.xml => item_gpx_stat_block.xml} (94%) diff --git a/OsmAnd/res/layout/gpx_overview_fragment.xml b/OsmAnd/res/layout/gpx_overview_fragment.xml index d088caa167..cdea20a2be 100644 --- a/OsmAnd/res/layout/gpx_overview_fragment.xml +++ b/OsmAnd/res/layout/gpx_overview_fragment.xml @@ -15,7 +15,7 @@ android:orientation="horizontal" tools:itemCount="4" tools:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" - tools:listitem="@layout/item_gpx_action_segment" /> + tools:listitem="@layout/item_gpx_stat_block" /> diff --git a/OsmAnd/res/layout/item_gpx_action_segment.xml b/OsmAnd/res/layout/item_gpx_stat_block.xml similarity index 94% rename from OsmAnd/res/layout/item_gpx_action_segment.xml rename to OsmAnd/res/layout/item_gpx_stat_block.xml index 962941b95c..b7eedc1a9a 100644 --- a/OsmAnd/res/layout/item_gpx_action_segment.xml +++ b/OsmAnd/res/layout/item_gpx_stat_block.xml @@ -5,8 +5,6 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal"> - items = Arrays.asList(sDistance, sAscent, sDescent, sAvSpeed, sMaxSpeed, sTimeSpan); - final SegmentItemAdapter siAdapter = new SegmentItemAdapter(items); + List items = Arrays.asList(sDistance, sAscent, sDescent, sAvSpeed, sMaxSpeed, sTimeSpan); + final StatBlockAdapter siAdapter = new StatBlockAdapter(items); rvOverview.setAdapter(siAdapter); rvOverview.addItemDecoration(new HorizontalDividerDecoration(app)); } @@ -225,45 +222,45 @@ public class OverviewCard extends BaseCard { }); } - private class SegmentItemAdapter extends RecyclerView.Adapter { - private final List segmentItems; + private class StatBlockAdapter extends RecyclerView.Adapter { + private final List StatBlocks; - public SegmentItemAdapter(List segmentItems) { - this.segmentItems = segmentItems; + public StatBlockAdapter(List StatBlocks) { + this.StatBlocks = StatBlocks; } @Override public int getItemCount() { - return segmentItems.size(); + return StatBlocks.size(); } @NonNull @Override - public SegmentItemViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + public StatBlockViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View itemView = LayoutInflater.from(parent.getContext()) - .inflate(R.layout.item_gpx_action_segment, parent, false); - return new SegmentItemViewHolder(itemView); + .inflate(R.layout.item_gpx_stat_block, parent, false); + return new StatBlockViewHolder(itemView); } @Override - public void onBindViewHolder(SegmentItemViewHolder holder, int position) { - SegmentItem item = segmentItems.get(position); + public void onBindViewHolder(StatBlockViewHolder holder, int position) { + StatBlock item = StatBlocks.get(position); holder.bind(item); } - class SegmentItemViewHolder extends RecyclerView.ViewHolder { + class StatBlockViewHolder extends RecyclerView.ViewHolder { private final TextViewEx valueText; private final TextView titleText; private final AppCompatImageView imageView; - SegmentItemViewHolder(View view) { + StatBlockViewHolder(View view) { super(view); valueText = view.findViewById(R.id.value); titleText = view.findViewById(R.id.title); imageView = view.findViewById(R.id.image); } - public void bind(final SegmentItem overviewItem) { + public void bind(final StatBlock overviewItem) { valueText.setText(overviewItem.value); valueText.setTextColor(app.getResources().getColor(R.color.active_color_primary_light)); titleText.setText(overviewItem.title); @@ -289,10 +286,10 @@ public class OverviewCard extends BaseCard { public HorizontalDividerDecoration(Context context) { int[] ATTRS = new int[]{android.R.attr.listDivider}; - final TypedArray a = context.obtainStyledAttributes(ATTRS); - divider = a.getDrawable(0); - a.recycle(); -// mDivider = getMyApplication().getUIUtilities().getIcon(R.drawable.divider_solid, R.color.divider_color_light); //todo change drawable + final TypedArray ta = context.obtainStyledAttributes(ATTRS); + divider = ta.getDrawable(0); +// DrawableCompat.setTint(divider, context.getResources().getColor(R.color.divider_color_light)); //todo change drawable color + ta.recycle(); } @Override @@ -323,7 +320,7 @@ public class OverviewCard extends BaseCard { } } - private class SegmentItem { + private static class StatBlock { private String title; private String value; private int imageResId; @@ -331,7 +328,7 @@ public class OverviewCard extends BaseCard { private LineGraphType firstType; private LineGraphType secondType; - public SegmentItem(String title, String value, @DrawableRes int imageResId, @ColorRes int imageColorId, LineGraphType firstType, LineGraphType secondType) { + public StatBlock(String title, String value, @DrawableRes int imageResId, @ColorRes int imageColorId, LineGraphType firstType, LineGraphType secondType) { this.title = title; this.value = value; this.imageResId = imageResId; @@ -340,53 +337,5 @@ public class OverviewCard extends BaseCard { this.secondType = secondType; } - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = title; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - - public int getImageResId() { - return imageResId; - } - - public void setImageResId(int imageResId) { - this.imageResId = imageResId; - } - - public int getImageColorId() { - return imageColorId; - } - - public void setImageColorId(int imageColorId) { - this.imageColorId = imageColorId; - } - - public LineGraphType getFirstType() { - return firstType; - } - - public void setFirstType(LineGraphType firstType) { - this.firstType = firstType; - } - - public LineGraphType getSecondType() { - return secondType; - } - - public void getSecondType(LineGraphType secondType) { - this.secondType = secondType; - } - } } \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/plus/track/TrackMenuFragment.java b/OsmAnd/src/net/osmand/plus/track/TrackMenuFragment.java index f102331bfc..6b93a6d166 100644 --- a/OsmAnd/src/net/osmand/plus/track/TrackMenuFragment.java +++ b/OsmAnd/src/net/osmand/plus/track/TrackMenuFragment.java @@ -221,6 +221,10 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card } private void updateHeader() { + ViewGroup headerContainer = (ViewGroup) routeMenuTopShadowAll; + if (overviewCard != null && overviewCard.getView() != null) { + headerContainer.removeView(overviewCard.getView()); + } if (menuType == TrackMenuType.OPTIONS) { headerTitle.setText(menuType.titleId); AndroidUiHelper.updateVisibility(headerIcon, false); @@ -228,7 +232,27 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card String fileName = Algorithms.getFileWithoutDirs(getGpx().path); headerTitle.setText(GpxUiHelper.getGpxTitle(fileName)); AndroidUiHelper.updateVisibility(headerIcon, true); + if (menuType == TrackMenuType.OVERVIEW) { + if (overviewCard != null && overviewCard.getView() != null) { + ViewGroup parent = ((ViewGroup) overviewCard.getView().getParent()); + if (parent != null) { + parent.removeView(overviewCard.getView()); + } + headerContainer.addView(overviewCard.getView()); + } else { + overviewCard = new OverviewCard(getMapActivity(), displayHelper, this); + overviewCard.setListener(this); + headerContainer.addView(overviewCard.build(getMapActivity())); + } + } } + runLayoutListener(); + headerContainer.post(new Runnable() { + @Override + public void run() { + openMenuScreen(menuType == TrackMenuType.OVERVIEW ? MenuState.HEADER_ONLY : MenuState.HALF_SCREEN, false); + } + }); } private void setupCards() { @@ -236,19 +260,7 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card if (mapActivity != null) { ViewGroup cardsContainer = getCardsContainer(); cardsContainer.removeAllViews(); - if (menuType == TrackMenuType.OVERVIEW) { - if (overviewCard != null && overviewCard.getView() != null) { - ViewGroup parent = (ViewGroup) overviewCard.getView().getParent(); - if (parent != null) { - parent.removeAllViews(); - } - cardsContainer.addView(overviewCard.getView()); - } else { - overviewCard = new OverviewCard(mapActivity, displayHelper, this); - overviewCard.setListener(this); - cardsContainer.addView(overviewCard.build(mapActivity)); - } - } else if (menuType == TrackMenuType.TRACK) { + if (menuType == TrackMenuType.TRACK) { if (segmentsCard != null && segmentsCard.getView() != null) { ViewGroup parent = (ViewGroup) segmentsCard.getView().getParent(); if (parent != null) { From 431c7b30e7382554138193c02223a915e2f1d48c Mon Sep 17 00:00:00 2001 From: Skalii Date: Thu, 21 Jan 2021 15:17:06 +0200 Subject: [PATCH 137/173] fix margins in item_gpx_stat_block.xml --- OsmAnd/res/layout/item_gpx_stat_block.xml | 36 +++++++++++------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/OsmAnd/res/layout/item_gpx_stat_block.xml b/OsmAnd/res/layout/item_gpx_stat_block.xml index b7eedc1a9a..5bd38821ca 100644 --- a/OsmAnd/res/layout/item_gpx_stat_block.xml +++ b/OsmAnd/res/layout/item_gpx_stat_block.xml @@ -4,12 +4,12 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:orientation="horizontal"> + android:orientation="vertical"> + android:orientation="horizontal"> - + - + \ No newline at end of file From b523294d6d2d6a67528ae9488aa442831ec6e36c Mon Sep 17 00:00:00 2001 From: Kseniia Date: Thu, 21 Jan 2021 15:49:04 +0200 Subject: [PATCH 138/173] fix turn angle for roundabout --- .../main/java/net/osmand/router/RouteResultPreparation.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/router/RouteResultPreparation.java b/OsmAnd-java/src/main/java/net/osmand/router/RouteResultPreparation.java index 4df69c3adc..36c3f55586 100644 --- a/OsmAnd-java/src/main/java/net/osmand/router/RouteResultPreparation.java +++ b/OsmAnd-java/src/main/java/net/osmand/router/RouteResultPreparation.java @@ -1189,6 +1189,7 @@ public class RouteResultPreparation { RouteSegmentResult last = rr; RouteSegmentResult firstRoundabout = rr; RouteSegmentResult lastRoundabout = rr; + for (int j = i; j < result.size(); j++) { RouteSegmentResult rnext = result.get(j); last = rnext; @@ -1218,9 +1219,9 @@ public class RouteResultPreparation { // usually covers less than expected float turnAngleBasedOnCircle = (float) -MapUtils.degreesDiff(firstRoundabout.getBearingBegin(), lastRoundabout.getBearingEnd() + 180); if(Math.abs(turnAngleBasedOnOutRoads - turnAngleBasedOnCircle) > 180) { - t.setTurnAngle(turnAngleBasedOnCircle ) ; + t.setTurnAngle(turnAngleBasedOnCircle) ; } else { - t.setTurnAngle((turnAngleBasedOnCircle + turnAngleBasedOnOutRoads) / 2) ; + t.setTurnAngle(turnAngleBasedOnOutRoads) ; } return t; } From 97e6395def13159ce3c81ea61dd63c2923a8013b Mon Sep 17 00:00:00 2001 From: Victor Shcherb Date: Thu, 21 Jan 2021 17:49:04 +0100 Subject: [PATCH 139/173] fix bug cause roundabout based on circle is completely incorrect --- .../net/osmand/router/RouteResultPreparation.java | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/router/RouteResultPreparation.java b/OsmAnd-java/src/main/java/net/osmand/router/RouteResultPreparation.java index 36c3f55586..d98aa37825 100644 --- a/OsmAnd-java/src/main/java/net/osmand/router/RouteResultPreparation.java +++ b/OsmAnd-java/src/main/java/net/osmand/router/RouteResultPreparation.java @@ -1187,14 +1187,11 @@ public class RouteResultPreparation { RouteSegmentResult rr) { int exit = 1; RouteSegmentResult last = rr; - RouteSegmentResult firstRoundabout = rr; - RouteSegmentResult lastRoundabout = rr; for (int j = i; j < result.size(); j++) { RouteSegmentResult rnext = result.get(j); last = rnext; if (rnext.getObject().roundabout()) { - lastRoundabout = rnext; boolean plus = rnext.getStartPointIndex() < rnext.getEndPointIndex(); int k = rnext.getStartPointIndex(); if (j == i) { @@ -1216,13 +1213,7 @@ public class RouteResultPreparation { TurnType t = TurnType.getExitTurn(exit, 0, leftSide); // usually covers more than expected float turnAngleBasedOnOutRoads = (float) MapUtils.degreesDiff(last.getBearingBegin(), prev.getBearingEnd()); - // usually covers less than expected - float turnAngleBasedOnCircle = (float) -MapUtils.degreesDiff(firstRoundabout.getBearingBegin(), lastRoundabout.getBearingEnd() + 180); - if(Math.abs(turnAngleBasedOnOutRoads - turnAngleBasedOnCircle) > 180) { - t.setTurnAngle(turnAngleBasedOnCircle) ; - } else { - t.setTurnAngle(turnAngleBasedOnOutRoads) ; - } + t.setTurnAngle(turnAngleBasedOnOutRoads) ; return t; } From d7828b4bf0504f3581a53f388b52c53c2542c708 Mon Sep 17 00:00:00 2001 From: Victor Shcherb Date: Thu, 21 Jan 2021 17:55:43 +0100 Subject: [PATCH 140/173] fix bug cause roundabout based on circle is completely incorrect --- .../net/osmand/router/RouteResultPreparation.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/router/RouteResultPreparation.java b/OsmAnd-java/src/main/java/net/osmand/router/RouteResultPreparation.java index d98aa37825..44c48f69ec 100644 --- a/OsmAnd-java/src/main/java/net/osmand/router/RouteResultPreparation.java +++ b/OsmAnd-java/src/main/java/net/osmand/router/RouteResultPreparation.java @@ -1187,11 +1187,14 @@ public class RouteResultPreparation { RouteSegmentResult rr) { int exit = 1; RouteSegmentResult last = rr; + RouteSegmentResult firstRoundabout = rr; + RouteSegmentResult lastRoundabout = rr; for (int j = i; j < result.size(); j++) { RouteSegmentResult rnext = result.get(j); last = rnext; if (rnext.getObject().roundabout()) { + lastRoundabout = rnext; boolean plus = rnext.getStartPointIndex() < rnext.getEndPointIndex(); int k = rnext.getStartPointIndex(); if (j == i) { @@ -1213,7 +1216,13 @@ public class RouteResultPreparation { TurnType t = TurnType.getExitTurn(exit, 0, leftSide); // usually covers more than expected float turnAngleBasedOnOutRoads = (float) MapUtils.degreesDiff(last.getBearingBegin(), prev.getBearingEnd()); - t.setTurnAngle(turnAngleBasedOnOutRoads) ; + float turnAngleBasedOnCircle = (float) -MapUtils.degreesDiff(firstRoundabout.getBearingBegin(), lastRoundabout.getBearingEnd() + 180); + if (Math.abs(turnAngleBasedOnOutRoads) > 120) { + // correctly identify if angle is +- 180, so we approach from left or right side + t.setTurnAngle(turnAngleBasedOnCircle) ; + } else { + t.setTurnAngle(turnAngleBasedOnOutRoads) ; + } return t; } From 6906b04a537f781f2dacd73e9e7c339510871081 Mon Sep 17 00:00:00 2001 From: Victor Shcherb Date: Thu, 21 Jan 2021 18:42:40 +0100 Subject: [PATCH 141/173] Fix non-transitive comparision https://github.com/osmandapp/OsmAnd/issues/10626 --- .../java/net/osmand/search/SearchUICore.java | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/search/SearchUICore.java b/OsmAnd-java/src/main/java/net/osmand/search/SearchUICore.java index 37c16393fa..0e542891d8 100644 --- a/OsmAnd-java/src/main/java/net/osmand/search/SearchUICore.java +++ b/OsmAnd-java/src/main/java/net/osmand/search/SearchUICore.java @@ -954,17 +954,15 @@ public class SearchUICore { break; } case COMPARE_AMENITY_TYPE_ADDITIONAL: { - if(o1.object instanceof AbstractPoiType && o2.object instanceof AbstractPoiType ) { - boolean additional1 = ((AbstractPoiType) o1.object).isAdditional(); - boolean additional2 = ((AbstractPoiType) o2.object).isAdditional(); - if (additional1 != additional2) { - // -1 - means 1st is less than 2nd - return additional1 ? 1 : -1; - } + boolean additional1 = o1.object instanceof AbstractPoiType && ((AbstractPoiType) o1.object).isAdditional(); + boolean additional2 = o2.object instanceof AbstractPoiType && ((AbstractPoiType) o2.object).isAdditional(); + if (additional1 != additional2) { + // -1 - means 1st is less than 2nd + return additional1 ? 1 : -1; } break; } - case COMPARE_DISTANCE_TO_PARENT_SEARCH_RESULT: + case COMPARE_DISTANCE_TO_PARENT_SEARCH_RESULT: double ps1 = o1.parentSearchResult == null ? 0 : o1.parentSearchResult.getSearchDistance(c.loc); double ps2 = o2.parentSearchResult == null ? 0 : o2.parentSearchResult.getSearchDistance(c.loc); if (ps1 != ps2) { @@ -1042,12 +1040,17 @@ public class SearchUICore { @Override public int compare(SearchResult o1, SearchResult o2) { - for(ResultCompareStep step : ResultCompareStep.values()) { + List steps = new ArrayList<>(); + for (ResultCompareStep step : ResultCompareStep.values()) { int r = step.compare(o1, o2, this); - if(r != 0) { + steps.add(step); + if (r != 0) { + // debug crashes and identify non-transitive comparision + // LOG.debug(String.format("%d: %s o1='%s' o2='%s'", r, steps, o1, o2)); return r; } } + // LOG.debug(String.format("EQUAL: o1='%s' o2='%s'", o1, o2)); return 0; } From bc6afe286e09b45aec255fd2c1acfaf9879bf40b Mon Sep 17 00:00:00 2001 From: WaldiS Date: Thu, 21 Jan 2021 16:30:03 +0000 Subject: [PATCH 142/173] Translated using Weblate (Polish) Currently translated at 99.2% (3618 of 3645 strings) --- OsmAnd/res/values-pl/strings.xml | 33 ++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/OsmAnd/res/values-pl/strings.xml b/OsmAnd/res/values-pl/strings.xml index 840fa52189..4be69e1a63 100644 --- a/OsmAnd/res/values-pl/strings.xml +++ b/OsmAnd/res/values-pl/strings.xml @@ -3963,4 +3963,37 @@ Wybierz folder Wybierz folder lub dodaj nowy Opróżnij + Analiza według przedziałów (przedział podziału) + Prześlij do OpenStreetMap + Edytuj trasę + Zmień nazwę trasy + Zmień folder + sek + Omijanie + Podejście + Długie przygotowanie + Przygotuj + Poza trasą + Przyjedź do miejsca docelowego + Zakręt + Odstępy czasowe i odległościowe + Czas ogłaszania różnych komunikatów głosowych zależy od rodzaju komunikatu, aktualnej prędkości nawigacji i domyślnej prędkości nawigacji. + Czas ogłoszenia + Rozpocznij nagrywanie + Pokaż trasę na mapie + Wózek inwalidzki + Wędrówki + Pieszo + Jazda na rowerze elektrycznym + Kolarstwo górskie + Kolarstwo szosowe + Regularna jazda na rowerze + HGV + Mała ciężarówka + Ciężarówka + Skuter + Rower wyścigowy + MTB + Błąd serwera: %1$s + Taka nazwa już istnieje \ No newline at end of file From e748bbd03ea1afd52f2fb2556f8c6c24b0ad785e Mon Sep 17 00:00:00 2001 From: Skalii Date: Fri, 22 Jan 2021 00:27:32 +0200 Subject: [PATCH 143/173] fix top padding of TextFieldBoxes --- .../plus/onlinerouting/ui/OnlineRoutingCard.java | 10 +++++++--- .../onlinerouting/ui/OnlineRoutingEngineFragment.java | 1 + .../net/osmand/plus/widgets/OsmandTextFieldBoxes.java | 11 +++++++++++ 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/onlinerouting/ui/OnlineRoutingCard.java b/OsmAnd/src/net/osmand/plus/onlinerouting/ui/OnlineRoutingCard.java index 4403d512f4..66efbaa8ed 100644 --- a/OsmAnd/src/net/osmand/plus/onlinerouting/ui/OnlineRoutingCard.java +++ b/OsmAnd/src/net/osmand/plus/onlinerouting/ui/OnlineRoutingCard.java @@ -123,8 +123,8 @@ public class OnlineRoutingCard extends BaseCard { } public void setSelectionMenu(@NonNull List items, - @NonNull String selectedItemTitle, - @NonNull final CallbackWithObject callback) { + @NonNull String selectedItemTitle, + @NonNull final CallbackWithObject callback) { showElements(rvSelectionMenu); rvSelectionMenu.setLayoutManager( new LinearLayoutManager(app, RecyclerView.HORIZONTAL, false)); @@ -166,6 +166,10 @@ public class OnlineRoutingCard extends BaseCard { textFieldBoxes.setLabelText(labelText); } + public void hideFieldBoxLabel() { + textFieldBoxes.makeCompactPadding(); + } + public void setFieldBoxHelperText(@NonNull String helperText) { showElements(fieldBoxContainer, tvHelperText); fieldBoxHelperTextShowed = true; @@ -202,7 +206,7 @@ public class OnlineRoutingCard extends BaseCard { } public void setButton(@NonNull String title, - @NonNull OnClickListener listener) { + @NonNull OnClickListener listener) { showElements(button); button.setOnClickListener(listener); UiUtilities.setupDialogButton(nightMode, button, DialogButtonType.PRIMARY, title); diff --git a/OsmAnd/src/net/osmand/plus/onlinerouting/ui/OnlineRoutingEngineFragment.java b/OsmAnd/src/net/osmand/plus/onlinerouting/ui/OnlineRoutingEngineFragment.java index adfbfb1bc0..231ee50dc4 100644 --- a/OsmAnd/src/net/osmand/plus/onlinerouting/ui/OnlineRoutingEngineFragment.java +++ b/OsmAnd/src/net/osmand/plus/onlinerouting/ui/OnlineRoutingEngineFragment.java @@ -359,6 +359,7 @@ public class OnlineRoutingEngineFragment extends BaseOsmAndFragment { exampleCard = new OnlineRoutingCard(mapActivity, isNightMode(), appMode); exampleCard.build(mapActivity); exampleCard.setHeaderTitle(getString(R.string.shared_string_example)); + exampleCard.hideFieldBoxLabel(); List locationItems = new ArrayList<>(); for (ExampleLocation location : ExampleLocation.values()) { locationItems.add(new HorizontalSelectionItem(location.getName(), location)); diff --git a/OsmAnd/src/net/osmand/plus/widgets/OsmandTextFieldBoxes.java b/OsmAnd/src/net/osmand/plus/widgets/OsmandTextFieldBoxes.java index 9f6aed3c9e..06bc7e385d 100644 --- a/OsmAnd/src/net/osmand/plus/widgets/OsmandTextFieldBoxes.java +++ b/OsmAnd/src/net/osmand/plus/widgets/OsmandTextFieldBoxes.java @@ -2,6 +2,9 @@ package net.osmand.plus.widgets; import android.content.Context; import android.util.AttributeSet; +import android.view.View; + +import net.osmand.plus.R; import studio.carbonylgroup.textfieldboxes.TextFieldBoxes; @@ -19,4 +22,12 @@ public class OsmandTextFieldBoxes extends TextFieldBoxes { super(context, attrs, defStyleAttr); } + public void makeCompactPadding() { + floatingLabel.setVisibility(View.GONE); + labelSpace.setVisibility(View.GONE); + labelSpaceBelow.setVisibility(View.GONE); + int paddingH = getResources().getDimensionPixelSize(R.dimen.route_info_card_details_margin); + inputLayout.setPadding(0, paddingH, 0, paddingH); + } + } From f3bee7262ece2e4acdd5ab6274bd17e198b33bce Mon Sep 17 00:00:00 2001 From: Skalii Date: Fri, 22 Jan 2021 04:16:32 +0200 Subject: [PATCH 144/173] fix exit confirmation dialog if name has index --- .../ui/OnlineRoutingEngineFragment.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/onlinerouting/ui/OnlineRoutingEngineFragment.java b/OsmAnd/src/net/osmand/plus/onlinerouting/ui/OnlineRoutingEngineFragment.java index 231ee50dc4..0041c93853 100644 --- a/OsmAnd/src/net/osmand/plus/onlinerouting/ui/OnlineRoutingEngineFragment.java +++ b/OsmAnd/src/net/osmand/plus/onlinerouting/ui/OnlineRoutingEngineFragment.java @@ -512,8 +512,8 @@ public class OnlineRoutingEngineFragment extends BaseOsmAndFragment { } private void showTestResults(final boolean resultOk, - final @NonNull String message, - final @NonNull ExampleLocation location) { + final @NonNull String message, + final @NonNull ExampleLocation location) { app.runInUIThread(new Runnable() { @Override public void run() { @@ -568,6 +568,10 @@ public class OnlineRoutingEngineFragment extends BaseOsmAndFragment { public void showExitDialog() { View focus = view.findFocus(); AndroidUtils.hideSoftKeyboard(mapActivity, focus); + if (hasNameDuplicate(initEngine)) { + List cachedEngines = helper.getEnginesExceptMentionedKeys(editedEngineKey); + OnlineRoutingUtils.generateUniqueName(app, initEngine, cachedEngines); + } if (!engine.equals(initEngine)) { AlertDialog.Builder dismissDialog = createWarningDialog(mapActivity, R.string.shared_string_dismiss, R.string.exit_without_saving, R.string.shared_string_cancel); @@ -700,8 +704,8 @@ public class OnlineRoutingEngineFragment extends BaseOsmAndFragment { } public static void showInstance(@NonNull FragmentActivity activity, - @NonNull ApplicationMode appMode, - @Nullable String editedEngineKey) { + @NonNull ApplicationMode appMode, + @Nullable String editedEngineKey) { FragmentManager fm = activity.getSupportFragmentManager(); if (!fm.isStateSaved() && fm.findFragmentByTag(OnlineRoutingEngineFragment.TAG) == null) { OnlineRoutingEngineFragment fragment = new OnlineRoutingEngineFragment(); From dd5056737ef48e643a14b79a5b29ec84ad56e068 Mon Sep 17 00:00:00 2001 From: max-klaus Date: Fri, 22 Jan 2021 14:08:51 +0300 Subject: [PATCH 145/173] Hide travel purchase button temporarily --- OsmAnd/res/values-ar/strings.xml | 2 +- OsmAnd/res/values-b+ast/strings.xml | 2 +- OsmAnd/res/values-b+be+Latn/strings.xml | 2 +- OsmAnd/res/values-be/strings.xml | 2 +- OsmAnd/res/values-ca/strings.xml | 2 +- OsmAnd/res/values-cs/strings.xml | 2 +- OsmAnd/res/values-da/strings.xml | 2 +- OsmAnd/res/values-de/strings.xml | 2 +- OsmAnd/res/values-el/strings.xml | 2 +- OsmAnd/res/values-eo/strings.xml | 2 +- OsmAnd/res/values-es-rAR/strings.xml | 2 +- OsmAnd/res/values-es-rUS/strings.xml | 2 +- OsmAnd/res/values-es/strings.xml | 2 +- OsmAnd/res/values-et/strings.xml | 2 +- OsmAnd/res/values-eu/strings.xml | 2 +- OsmAnd/res/values-fa/strings.xml | 2 +- OsmAnd/res/values-fr/strings.xml | 2 +- OsmAnd/res/values-gl/strings.xml | 2 +- OsmAnd/res/values-hu/strings.xml | 2 +- OsmAnd/res/values-hy/strings.xml | 2 +- OsmAnd/res/values-id/strings.xml | 2 +- OsmAnd/res/values-is/strings.xml | 2 +- OsmAnd/res/values-it/strings.xml | 2 +- OsmAnd/res/values-iw/strings.xml | 2 +- OsmAnd/res/values-ja/strings.xml | 2 +- OsmAnd/res/values-lv/strings.xml | 2 +- OsmAnd/res/values-ml/strings.xml | 2 +- OsmAnd/res/values-nb/strings.xml | 2 +- OsmAnd/res/values-nl/strings.xml | 2 +- OsmAnd/res/values-pl/strings.xml | 2 +- OsmAnd/res/values-pt-rBR/strings.xml | 2 +- OsmAnd/res/values-pt/strings.xml | 2 +- OsmAnd/res/values-ru/strings.xml | 2 +- OsmAnd/res/values-sc/strings.xml | 2 +- OsmAnd/res/values-sk/strings.xml | 2 +- OsmAnd/res/values-sl/strings.xml | 2 +- OsmAnd/res/values-sr/strings.xml | 2 +- OsmAnd/res/values-sv/strings.xml | 2 +- OsmAnd/res/values-tr/strings.xml | 2 +- OsmAnd/res/values-uk/strings.xml | 2 +- OsmAnd/res/values-zh-rTW/strings.xml | 2 +- OsmAnd/res/values/strings.xml | 2 +- .../ChoosePlanWikivoyageDialogFragment.java | 26 +++- .../explore/ExploreTabFragment.java | 119 ++++++++---------- .../explore/travelcards/BaseTravelCard.java | 2 +- .../travelcards/OpenBetaTravelCard.java | 25 ++-- .../travelcards/StartEditingTravelCard.java | 13 +- 47 files changed, 144 insertions(+), 125 deletions(-) diff --git a/OsmAnd/res/values-ar/strings.xml b/OsmAnd/res/values-ar/strings.xml index ef68e3055c..8929bd6f4d 100644 --- a/OsmAnd/res/values-ar/strings.xml +++ b/OsmAnd/res/values-ar/strings.xml @@ -2826,7 +2826,7 @@ أسلوب الملاحة مع التباين العالي والحد الأعلى من التفاصيل. يتضمن كل خيارات النمط الافتراضي أوسماند، مع عرض أكبر قدر ممكن من التفاصيل ، ولا سيما الطرق والمسارات وطرق السفر الأخرى. التمييز الواضح بين \"جولة الأطلس\" بين أنواع الطرق. مناسبة للاستخدام النهاري والليلي وفي الهواء الطلق. أسلوب الغرض العام. تقديم نظافة مبسطة في المدن المكتظة بالسكان. الملامح الرئيسية: خطوط الكنتور ، والطرق ، وجودة السطح ، والقيود المفروضة على الوصول ، ودروع الطريق ، والمسارات التي تظهر وفقاً لمقياس SAC ، وميزات رياضة الماء الأبيض. قم بتنزيل أدلة السفر هذه من ويكي الرحلات لعرض مقالات حول الأماكن في العالم بدون إنترنت. - دليل السفر حاليا على أساس Wikivoyage. اختبار كافة الميزات أثناء اختبار بيتا المفتوحة مجانا.بعد ذلك، وأدلة السفر ستكون متاحة للمشتركين في أوسماند غير المحدود و اصحاب +أوسماند. + دليل السفر حاليا على أساس Wikivoyage. اختبار كافة الميزات أثناء اختبار بيتا المفتوحة مجانا. ملف GPX مع الإحداثيات والبيانات من الملاحظات المحددة. ملف GPX مع الإحداثيات والبيانات من كافة الملاحظات. + Delete this online routing engine? The name is already exists Server error: %1$s MTB From cec3535e7a5b2f7429c86da2f9d140c658600827 Mon Sep 17 00:00:00 2001 From: Ldm Public Date: Thu, 21 Jan 2021 20:55:52 +0000 Subject: [PATCH 149/173] Translated using Weblate (French) Currently translated at 100.0% (3645 of 3645 strings) --- OsmAnd/res/values-fr/strings.xml | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/OsmAnd/res/values-fr/strings.xml b/OsmAnd/res/values-fr/strings.xml index e861227156..ccd8f764e5 100644 --- a/OsmAnd/res/values-fr/strings.xml +++ b/OsmAnd/res/values-fr/strings.xml @@ -3961,7 +3961,7 @@ Préparation Longue préparation Arrivé à destination - Tourner + Bifurcation Afficher la trace sur la carte Trottinette Camionnette @@ -3979,5 +3979,15 @@ VTT Erreur serveur : %1$s Ce nom existe déjà - Poids lourds + Poids lourd + Durée + Analyser par intervalles (fractionner) + Intervalles de temps et de distance + Le délai d\'annonce des alertes vocales dépend du type d\'annonce, de la vitesse actuelle et du type de navigation. + Délai de l\'annonce + Hors de l\'itinéraire prévu + Vélo de route + Vélo tout terrain + Vélo électrique + Vélo \ No newline at end of file From 084601ecdfe028dad790cd91645cd8e600492d34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Fri, 22 Jan 2021 12:45:15 +0000 Subject: [PATCH 150/173] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegi?= =?UTF-8?q?an=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 59.1% (2156 of 3645 strings) --- OsmAnd/res/values-nb/strings.xml | 38 ++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/OsmAnd/res/values-nb/strings.xml b/OsmAnd/res/values-nb/strings.xml index 97e76db9b5..ddc25e3724 100644 --- a/OsmAnd/res/values-nb/strings.xml +++ b/OsmAnd/res/values-nb/strings.xml @@ -3881,4 +3881,42 @@ Last opp til OpenStreetMap Gi spor nytt navn Endre mappe + Velg data å eksportere til filen. + Din enhet har kun %1$s ledig. Frigjør litt plass eller velg bort noen elementer fra eksporten. + ffffffffff| + Reverser alle punkter + Liten lastebil + Lastebil + Kan ikke laste opp bilde. Prøv igjen senere. + Omtrentlig filstørrelse + Det er ikke nok plass + Velg elementer å importere. + Legg til nettbasert rutingsmotor + Rediger nettbasert rutingsmotor + Undertype + Skriv inn parameter + La den stå tom hvis ikke + Nettadresse med alle parametre vil se slik ut: + Nettbasert rutingsmotor + Nettbaserte rutingsmotorer + Lang forberedelse + Forberedelse + Ankom målet + Sving + Tid og avstansintervaller + kunngjøringstid for forskjellige stemmeforespørsler avhenger av forespørselstype, nåværende navigasjonshastighet og forvalgt navigasjonshastighet. + Turgåing + Fotgjengeri + sek + Kunngjøringstid + Start opptak + Vis spor på kart + Rullestol + El-sykkel + Terrengsykkel + Temposykkel + Landeveissykling + Vanlig sykling + Tjenerfeil: %1$s + Navnet finnes allerede \ No newline at end of file From 115dc33aaa77096d7d139ec4f3589daff9d8d11f Mon Sep 17 00:00:00 2001 From: Verdulo Date: Thu, 21 Jan 2021 23:35:27 +0000 Subject: [PATCH 151/173] Translated using Weblate (Esperanto) Currently translated at 100.0% (3645 of 3645 strings) --- OsmAnd/res/values-eo/strings.xml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/OsmAnd/res/values-eo/strings.xml b/OsmAnd/res/values-eo/strings.xml index ab5f495fee..e143ad501a 100644 --- a/OsmAnd/res/values-eo/strings.xml +++ b/OsmAnd/res/values-eo/strings.xml @@ -3989,4 +3989,15 @@ Ŝosea biciklado Kutima biciklado Peza kamiono + s + Pasado + Alproksimiĝado + Longa preparado + Preparado + Devojiĝo de kurso + Atingo al celo + Turno + Interspacoj distancaj kaj tempaj + Tempo de anonco de diversaj voĉaj sciigoj dependas de ilia specoj, nuna naviga kaj implicita naviga rapido. + Tempo de anonco \ No newline at end of file From 585b9b7a91dee09226eb61bd3e5a531add8accae Mon Sep 17 00:00:00 2001 From: abdullah abdulrhman Date: Fri, 22 Jan 2021 03:19:23 +0000 Subject: [PATCH 152/173] Translated using Weblate (Arabic) Currently translated at 92.8% (3605 of 3881 strings) --- OsmAnd/res/values-ar/phrases.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/OsmAnd/res/values-ar/phrases.xml b/OsmAnd/res/values-ar/phrases.xml index 86450cf7d9..2b880e83d6 100644 --- a/OsmAnd/res/values-ar/phrases.xml +++ b/OsmAnd/res/values-ar/phrases.xml @@ -3675,4 +3675,7 @@ اتصال قنصلية سفارة + نفق خفافيش + جسر خفافيش + معبر الحيوانات البرية \ No newline at end of file From 9072c9730033f5633d70efdff383f5192cbfc1d1 Mon Sep 17 00:00:00 2001 From: Victor Shcherb Date: Sat, 23 Jan 2021 14:27:01 +0100 Subject: [PATCH 153/173] Add comments --- .../main/java/net/osmand/router/RouteResultPreparation.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/OsmAnd-java/src/main/java/net/osmand/router/RouteResultPreparation.java b/OsmAnd-java/src/main/java/net/osmand/router/RouteResultPreparation.java index 44c48f69ec..26d984b2da 100644 --- a/OsmAnd-java/src/main/java/net/osmand/router/RouteResultPreparation.java +++ b/OsmAnd-java/src/main/java/net/osmand/router/RouteResultPreparation.java @@ -1216,6 +1216,12 @@ public class RouteResultPreparation { TurnType t = TurnType.getExitTurn(exit, 0, leftSide); // usually covers more than expected float turnAngleBasedOnOutRoads = (float) MapUtils.degreesDiff(last.getBearingBegin(), prev.getBearingEnd()); + // Angle based on circle method tries + // 1. to calculate antinormal to roundabout circle on roundabout entrance and + // 2. normal to roundabout circle on roundabout exit + // 3. calculate angle difference + // This method doesn't work if you go from S to N touching only 1 point of roundabout, + // but it is very important to identify very sharp or very large angle to understand did you pass whole roundabout or small entrance float turnAngleBasedOnCircle = (float) -MapUtils.degreesDiff(firstRoundabout.getBearingBegin(), lastRoundabout.getBearingEnd() + 180); if (Math.abs(turnAngleBasedOnOutRoads) > 120) { // correctly identify if angle is +- 180, so we approach from left or right side From fd7af59cdd3adb28f5a81f8724d78a0860ed504b Mon Sep 17 00:00:00 2001 From: Victor Shcherb Date: Sat, 23 Jan 2021 14:37:20 +0100 Subject: [PATCH 154/173] Change - to +: according to comment --- .../src/main/java/net/osmand/router/RouteResultPreparation.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/router/RouteResultPreparation.java b/OsmAnd-java/src/main/java/net/osmand/router/RouteResultPreparation.java index 26d984b2da..6bb4da1ce5 100644 --- a/OsmAnd-java/src/main/java/net/osmand/router/RouteResultPreparation.java +++ b/OsmAnd-java/src/main/java/net/osmand/router/RouteResultPreparation.java @@ -1222,7 +1222,7 @@ public class RouteResultPreparation { // 3. calculate angle difference // This method doesn't work if you go from S to N touching only 1 point of roundabout, // but it is very important to identify very sharp or very large angle to understand did you pass whole roundabout or small entrance - float turnAngleBasedOnCircle = (float) -MapUtils.degreesDiff(firstRoundabout.getBearingBegin(), lastRoundabout.getBearingEnd() + 180); + float turnAngleBasedOnCircle = (float) MapUtils.degreesDiff(firstRoundabout.getBearingBegin(), lastRoundabout.getBearingEnd() + 180); if (Math.abs(turnAngleBasedOnOutRoads) > 120) { // correctly identify if angle is +- 180, so we approach from left or right side t.setTurnAngle(turnAngleBasedOnCircle) ; From bbbfe6600474165868a88b360097829b7a9170a0 Mon Sep 17 00:00:00 2001 From: Skalii Date: Sat, 23 Jan 2021 17:45:42 +0200 Subject: [PATCH 155/173] fix first menu opening in header-only state; minor fixes --- .../osmand/plus/track/TrackMenuFragment.java | 70 ++++++++++--------- 1 file changed, 38 insertions(+), 32 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/track/TrackMenuFragment.java b/OsmAnd/src/net/osmand/plus/track/TrackMenuFragment.java index 6b93a6d166..46c1829e61 100644 --- a/OsmAnd/src/net/osmand/plus/track/TrackMenuFragment.java +++ b/OsmAnd/src/net/osmand/plus/track/TrackMenuFragment.java @@ -117,6 +117,7 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card private TrackChartPoints trackChartPoints; private int menuTitleHeight; + private String gpxTitle; public enum TrackMenuType { OVERVIEW(R.id.action_overview, R.string.shared_string_overview), @@ -162,6 +163,11 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card return MenuState.HEADER_ONLY | MenuState.HALF_SCREEN | MenuState.FULL_SCREEN; } + @Override + public int getInitialMenuState() { + return MenuState.HEADER_ONLY; + } + public TrackDisplayHelper getDisplayHelper() { return displayHelper; } @@ -186,6 +192,8 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card selectedGpxFile = app.getSelectedGpxHelper().getSelectedFileByPath(gpxFilePath); } displayHelper.setGpx(selectedGpxFile.getGpxFile()); + String fileName = Algorithms.getFileWithoutDirs(getGpx().path); + gpxTitle = GpxUiHelper.getGpxTitle(fileName); } } @@ -203,7 +211,11 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card headerIcon = view.findViewById(R.id.icon_view); if (isPortrait()) { - updateCardsLayout(); + View mainView = getMainView(); + View topShadow = getTopShadow(); + FrameLayout bottomContainer = getBottomContainer(); + topShadow.setVisibility(View.VISIBLE); + AndroidUtils.setBackground(mainView.getContext(), bottomContainer, isNightMode(), R.color.list_background_color_light, R.color.list_background_color_dark); } else { int widthNoShadow = getLandscapeNoShadowWidth(); FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(widthNoShadow, ViewGroup.LayoutParams.WRAP_CONTENT); @@ -220,39 +232,33 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card return view; } + private void setHeaderTitle(String text, boolean iconVisibility) { + headerTitle.setText(text); + AndroidUiHelper.updateVisibility(headerIcon, iconVisibility); + } + private void updateHeader() { ViewGroup headerContainer = (ViewGroup) routeMenuTopShadowAll; - if (overviewCard != null && overviewCard.getView() != null) { - headerContainer.removeView(overviewCard.getView()); - } - if (menuType == TrackMenuType.OPTIONS) { - headerTitle.setText(menuType.titleId); - AndroidUiHelper.updateVisibility(headerIcon, false); - } else { - String fileName = Algorithms.getFileWithoutDirs(getGpx().path); - headerTitle.setText(GpxUiHelper.getGpxTitle(fileName)); - AndroidUiHelper.updateVisibility(headerIcon, true); - if (menuType == TrackMenuType.OVERVIEW) { - if (overviewCard != null && overviewCard.getView() != null) { - ViewGroup parent = ((ViewGroup) overviewCard.getView().getParent()); - if (parent != null) { - parent.removeView(overviewCard.getView()); - } - headerContainer.addView(overviewCard.getView()); - } else { - overviewCard = new OverviewCard(getMapActivity(), displayHelper, this); - overviewCard.setListener(this); - headerContainer.addView(overviewCard.build(getMapActivity())); + if (menuType == TrackMenuType.OVERVIEW) { + setHeaderTitle(gpxTitle, true); + if (overviewCard != null && overviewCard.getView() != null) { + ViewGroup parent = ((ViewGroup) overviewCard.getView().getParent()); + if (parent != null) { + parent.removeView(overviewCard.getView()); } + headerContainer.addView(overviewCard.getView()); + } else { + overviewCard = new OverviewCard(getMapActivity(), displayHelper, this); + overviewCard.setListener(this); + headerContainer.addView(overviewCard.build(getMapActivity())); } + } else { + if (overviewCard != null && overviewCard.getView() != null) { + headerContainer.removeView(overviewCard.getView()); + } + boolean isOptions = menuType == TrackMenuType.OPTIONS; + setHeaderTitle(isOptions ? app.getString(menuType.titleId) : gpxTitle, !isOptions); } - runLayoutListener(); - headerContainer.post(new Runnable() { - @Override - public void run() { - openMenuScreen(menuType == TrackMenuType.OVERVIEW ? MenuState.HEADER_ONLY : MenuState.HALF_SCREEN, false); - } - }); } private void setupCards() { @@ -573,7 +579,7 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card } } - private void updateCardsLayout() { + /*private void updateCardsLayout() { View mainView = getMainView(); if (mainView != null) { View topShadow = getTopShadow(); @@ -586,7 +592,7 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card AndroidUtils.setBackground(mainView.getContext(), bottomContainer, isNightMode(), R.color.list_background_color_light, R.color.list_background_color_dark); } } - } + }*/ private void setupButtons(View view) { ColorStateList navColorStateList = AndroidUtils.createBottomNavColorStateList(getContext(), isNightMode()); @@ -814,7 +820,7 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card Bundle args = new Bundle(); args.putString(TRACK_FILE_NAME, path); args.putBoolean(CURRENT_RECORDING, showCurrentTrack); - args.putInt(ContextMenuFragment.MENU_STATE_KEY, MenuState.HALF_SCREEN); + args.putInt(ContextMenuFragment.MENU_STATE_KEY, MenuState.HEADER_ONLY); TrackMenuFragment fragment = new TrackMenuFragment(); fragment.setArguments(args); From 101402a3c412cb437c3b0bdcae8a927d6b5a254e Mon Sep 17 00:00:00 2001 From: cepprice Date: Sat, 23 Jan 2021 21:06:59 +0500 Subject: [PATCH 156/173] Add description card --- .../main/java/net/osmand/GPXUtilities.java | 4 + .../layout/gpx_description_preview_card.xml | 128 ++++++++++++++++++ .../res/menu/track_menu_bottom_navigation.xml | 9 +- OsmAnd/res/values/strings.xml | 2 + OsmAnd/src/net/osmand/FileUtils.java | 4 + .../osmand/plus/track/DescriptionCard.java | 110 +++++++++++++++ .../osmand/plus/track/TrackMenuFragment.java | 60 ++++++-- 7 files changed, 302 insertions(+), 15 deletions(-) create mode 100644 OsmAnd/res/layout/gpx_description_preview_card.xml create mode 100644 OsmAnd/src/net/osmand/plus/track/DescriptionCard.java diff --git a/OsmAnd-java/src/main/java/net/osmand/GPXUtilities.java b/OsmAnd-java/src/main/java/net/osmand/GPXUtilities.java index ede3b6f8cf..ed80b55b05 100644 --- a/OsmAnd-java/src/main/java/net/osmand/GPXUtilities.java +++ b/OsmAnd-java/src/main/java/net/osmand/GPXUtilities.java @@ -449,6 +449,10 @@ public class GPXUtilities { public String getArticleLang() { return getExtensionsToRead().get("article_lang"); } + + public String getDescription() { + return getExtensionsToRead().get("desc"); + } } public static class Author extends GPXExtensions { diff --git a/OsmAnd/res/layout/gpx_description_preview_card.xml b/OsmAnd/res/layout/gpx_description_preview_card.xml new file mode 100644 index 0000000000..b9c4518b2d --- /dev/null +++ b/OsmAnd/res/layout/gpx_description_preview_card.xml @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/OsmAnd/res/menu/track_menu_bottom_navigation.xml b/OsmAnd/res/menu/track_menu_bottom_navigation.xml index fa07fb12a4..54f7d7e05e 100644 --- a/OsmAnd/res/menu/track_menu_bottom_navigation.xml +++ b/OsmAnd/res/menu/track_menu_bottom_navigation.xml @@ -1,9 +1,10 @@ - - - - + + + Edit description + Read full The name is already exists Server error: %1$s MTB diff --git a/OsmAnd/src/net/osmand/FileUtils.java b/OsmAnd/src/net/osmand/FileUtils.java index 580450df60..7fe28bf418 100644 --- a/OsmAnd/src/net/osmand/FileUtils.java +++ b/OsmAnd/src/net/osmand/FileUtils.java @@ -196,4 +196,8 @@ public class FileUtils { public interface RenameCallback { void renamedTo(File file); } + + public interface GpxEditedCallback { + void onGpxChanged(); + } } diff --git a/OsmAnd/src/net/osmand/plus/track/DescriptionCard.java b/OsmAnd/src/net/osmand/plus/track/DescriptionCard.java new file mode 100644 index 0000000000..2a6d460588 --- /dev/null +++ b/OsmAnd/src/net/osmand/plus/track/DescriptionCard.java @@ -0,0 +1,110 @@ +package net.osmand.plus.track; + +import android.text.TextUtils; +import android.view.View; + +import com.squareup.picasso.Callback; +import com.squareup.picasso.Picasso; +import com.squareup.picasso.RequestCreator; + +import net.osmand.GPXUtilities; +import net.osmand.GPXUtilities.GPXFile; +import net.osmand.PicassoUtils; +import net.osmand.plus.R; +import net.osmand.plus.activities.MapActivity; +import net.osmand.plus.helpers.AndroidUiHelper; +import net.osmand.plus.routepreparationmenu.cards.BaseCard; +import net.osmand.plus.widgets.TextViewEx; +import net.osmand.plus.wikipedia.WikiArticleHelper; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.appcompat.widget.AppCompatImageView; + +public class DescriptionCard extends BaseCard { + + private final GPXFile gpxFile; + + public DescriptionCard(MapActivity mapActivity, GPXFile gpxFile) { + super(mapActivity); + this.gpxFile = gpxFile; + } + + @Override + public int getCardLayoutId() { + return R.layout.gpx_description_preview_card; + } + + @Override + protected void updateContent() { + final String title = gpxFile.metadata.getArticleTitle(); + final String imageUrl = getMetadataImageLink(gpxFile.metadata); + final String descriptionHtml = gpxFile.metadata.getDescription(); + + setupImage(imageUrl); + + TextViewEx tvDescription = view.findViewById(R.id.description); + tvDescription.setText(getFirstParagraph(descriptionHtml)); + + TextViewEx readBtn = view.findViewById(R.id.btn_read_full); + readBtn.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + } + }); + TextViewEx editBtn = view.findViewById(R.id.btn_edit); + editBtn.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + } + }); + } + + @Nullable + private String getMetadataImageLink(@NonNull GPXUtilities.Metadata metadata) { + String link = metadata.link; + if (!TextUtils.isEmpty(link)) { + String lowerCaseLink = link.toLowerCase(); + if (lowerCaseLink.contains(".jpg") + || lowerCaseLink.contains(".jpeg") + || lowerCaseLink.contains(".png") + || lowerCaseLink.contains(".bmp") + || lowerCaseLink.contains(".webp")) { + return link; + } + } + return null; + } + + private String getFirstParagraph(String descriptionHtml) { + if (descriptionHtml != null) { + String firstParagraph = WikiArticleHelper.getPartialContent(descriptionHtml); + if (!TextUtils.isEmpty(firstParagraph)) { + return firstParagraph; + } + } + return descriptionHtml; + } + + private void setupImage(final String imageUrl) { + if (imageUrl == null) { + return; + } + final PicassoUtils picasso = PicassoUtils.getPicasso(app); + RequestCreator rc = Picasso.get().load(imageUrl); + final AppCompatImageView image = view.findViewById(R.id.main_image); + rc.into(image, new Callback() { + @Override + public void onSuccess() { + picasso.setResultLoaded(imageUrl, true); + AndroidUiHelper.updateVisibility(image, true); + } + + @Override + public void onError(Exception e) { + picasso.setResultLoaded(imageUrl, false); + } + }); + } + +} diff --git a/OsmAnd/src/net/osmand/plus/track/TrackMenuFragment.java b/OsmAnd/src/net/osmand/plus/track/TrackMenuFragment.java index 03f8ab374a..d284d820ce 100644 --- a/OsmAnd/src/net/osmand/plus/track/TrackMenuFragment.java +++ b/OsmAnd/src/net/osmand/plus/track/TrackMenuFragment.java @@ -15,19 +15,12 @@ import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.TextView; -import androidx.annotation.DrawableRes; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.annotation.StringRes; -import androidx.appcompat.app.AlertDialog; -import androidx.fragment.app.FragmentActivity; -import androidx.fragment.app.FragmentManager; - import com.github.mikephil.charting.interfaces.datasets.ILineDataSet; import com.google.android.material.bottomnavigation.BottomNavigationView; import net.osmand.AndroidUtils; import net.osmand.FileUtils; +import net.osmand.FileUtils.GpxEditedCallback; import net.osmand.FileUtils.RenameCallback; import net.osmand.GPXUtilities.GPXFile; import net.osmand.GPXUtilities.Track; @@ -79,6 +72,14 @@ import org.apache.commons.logging.Log; import java.io.File; import java.util.List; +import androidx.annotation.DrawableRes; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.StringRes; +import androidx.appcompat.app.AlertDialog; +import androidx.fragment.app.FragmentActivity; +import androidx.fragment.app.FragmentManager; + import static net.osmand.plus.activities.TrackActivity.CURRENT_RECORDING; import static net.osmand.plus.activities.TrackActivity.TRACK_FILE_NAME; import static net.osmand.plus.myplaces.TrackActivityFragmentAdapter.isGpxFileSelected; @@ -96,7 +97,7 @@ import static net.osmand.plus.track.OptionsCard.SHOW_ON_MAP_BUTTON_INDEX; import static net.osmand.plus.track.OptionsCard.UPLOAD_OSM_BUTTON_INDEX; public class TrackMenuFragment extends ContextMenuScrollFragment implements CardListener, - SegmentActionsListener, RenameCallback, OnTrackFileMoveListener { + SegmentActionsListener, RenameCallback, OnTrackFileMoveListener, GpxEditedCallback { public static final String TAG = TrackMenuFragment.class.getName(); private static final Log log = PlatformUtil.getLog(TrackMenuFragment.class); @@ -109,15 +110,17 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card private TextView headerTitle; private ImageView headerIcon; private BottomNavigationView bottomNav; - private TrackMenuType menuType = TrackMenuType.TRACK; + private TrackMenuType menuType = TrackMenuType.OVERVIEW; private SegmentsCard segmentsCard; private OptionsCard optionsCard; + private DescriptionCard descriptionCard; private TrackChartPoints trackChartPoints; private int menuTitleHeight; public enum TrackMenuType { + OVERVIEW(R.id.action_overview, R.string.shared_string_overview), TRACK(R.id.action_track, R.string.shared_string_gpx_tracks), POINTS(R.id.action_points, R.string.shared_string_gpx_points), OPTIONS(R.id.action_options, R.string.shared_string_options); @@ -219,6 +222,10 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card } private void updateHeader() { + ViewGroup headerContainer = (ViewGroup) routeMenuTopShadowAll; + if (descriptionCard != null && descriptionCard.getView() != null) { + headerContainer.removeView(descriptionCard.getView()); + } if (menuType == TrackMenuType.OPTIONS) { headerTitle.setText(menuType.titleId); AndroidUiHelper.updateVisibility(headerIcon, false); @@ -226,7 +233,17 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card String fileName = Algorithms.getFileWithoutDirs(getGpx().path); headerTitle.setText(GpxUiHelper.getGpxTitle(fileName)); AndroidUiHelper.updateVisibility(headerIcon, true); + if (menuType == TrackMenuType.OVERVIEW) { + fillOverviewTab(headerContainer); + } } + runLayoutListener(); + headerContainer.post(new Runnable() { + @Override + public void run() { + openMenuScreen(menuType == TrackMenuType.OVERVIEW ? MenuState.HEADER_ONLY : MenuState.HALF_SCREEN, false); + } + }); } private void setupCards() { @@ -262,6 +279,19 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card } } + private void fillOverviewTab(ViewGroup headerContainer) { + if (descriptionCard != null && descriptionCard.getView() != null) { + ViewGroup parent = ((ViewGroup) descriptionCard.getView().getParent()); + if (parent != null) { + parent.removeView(descriptionCard.getView()); + } + headerContainer.addView(descriptionCard.getView()); + } else { + descriptionCard = new DescriptionCard(getMapActivity(), displayHelper.getGpx()); + headerContainer.addView(descriptionCard.build(getMapActivity())); + } + } + @Override protected void calculateLayout(View view, boolean initLayout) { menuTitleHeight = routeMenuTopShadowAll.getHeight() @@ -306,6 +336,7 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card if (mapActivity != null && trackChartPoints != null) { mapActivity.getMapLayers().getGpxLayer().setTrackChartPoints(trackChartPoints); } + updateHeader(); } @Override @@ -567,7 +598,7 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card BottomNavigationView bottomNav = view.findViewById(R.id.bottom_navigation); bottomNav.setItemIconTintList(navColorStateList); bottomNav.setItemTextColor(navColorStateList); - bottomNav.setSelectedItemId(R.id.action_track); + bottomNav.setSelectedItemId(R.id.action_overview); bottomNav.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { @@ -783,6 +814,13 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card } } + @Override + public void onGpxChanged() { + if (descriptionCard != null) { + descriptionCard.update(); + } + } + public static boolean showInstance(@NonNull MapActivity mapActivity, String path, boolean showCurrentTrack) { try { Bundle args = new Bundle(); From b98b6014721405849073f8f8318cc77f7ff6abf9 Mon Sep 17 00:00:00 2001 From: cepprice Date: Sat, 23 Jan 2021 21:17:08 +0500 Subject: [PATCH 157/173] Add dialog fragments to edit and read gpx description --- OsmAnd/res/drawable/btn_border_active.xml | 8 + .../layout/dialog_edit_gpx_description.xml | 85 ++++++++ .../layout/dialog_read_gpx_description.xml | 95 ++++++++ OsmAnd/res/menu/edit_description_menu.xml | 8 + OsmAnd/res/values/attrs.xml | 1 + OsmAnd/res/values/styles.xml | 2 + .../osmand/plus/track/DescriptionCard.java | 2 + .../GpxEditDescriptionDialogFragment.java | 120 +++++++++++ .../GpxReadDescriptionDialogFragment.java | 202 ++++++++++++++++++ 9 files changed, 523 insertions(+) create mode 100644 OsmAnd/res/drawable/btn_border_active.xml create mode 100644 OsmAnd/res/layout/dialog_edit_gpx_description.xml create mode 100644 OsmAnd/res/layout/dialog_read_gpx_description.xml create mode 100644 OsmAnd/res/menu/edit_description_menu.xml create mode 100644 OsmAnd/src/net/osmand/plus/track/GpxEditDescriptionDialogFragment.java create mode 100644 OsmAnd/src/net/osmand/plus/track/GpxReadDescriptionDialogFragment.java diff --git a/OsmAnd/res/drawable/btn_border_active.xml b/OsmAnd/res/drawable/btn_border_active.xml new file mode 100644 index 0000000000..f670a7dfc9 --- /dev/null +++ b/OsmAnd/res/drawable/btn_border_active.xml @@ -0,0 +1,8 @@ + + + + + + \ No newline at end of file diff --git a/OsmAnd/res/layout/dialog_edit_gpx_description.xml b/OsmAnd/res/layout/dialog_edit_gpx_description.xml new file mode 100644 index 0000000000..e8e8443c98 --- /dev/null +++ b/OsmAnd/res/layout/dialog_edit_gpx_description.xml @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OsmAnd/res/layout/dialog_read_gpx_description.xml b/OsmAnd/res/layout/dialog_read_gpx_description.xml new file mode 100644 index 0000000000..d21ae172c9 --- /dev/null +++ b/OsmAnd/res/layout/dialog_read_gpx_description.xml @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/OsmAnd/res/menu/edit_description_menu.xml b/OsmAnd/res/menu/edit_description_menu.xml new file mode 100644 index 0000000000..8b3c09dc51 --- /dev/null +++ b/OsmAnd/res/menu/edit_description_menu.xml @@ -0,0 +1,8 @@ + + + + diff --git a/OsmAnd/res/values/attrs.xml b/OsmAnd/res/values/attrs.xml index caf08aef6a..c1463657dc 100644 --- a/OsmAnd/res/values/attrs.xml +++ b/OsmAnd/res/values/attrs.xml @@ -141,6 +141,7 @@ + diff --git a/OsmAnd/res/values/styles.xml b/OsmAnd/res/values/styles.xml index a7cbb98fda..5c074185ef 100644 --- a/OsmAnd/res/values/styles.xml +++ b/OsmAnd/res/values/styles.xml @@ -248,6 +248,7 @@ @style/RadioButtonStyle @color/text_input_background_light @drawable/img_help_announcement_time_day + @color/switch_button_active_light