From 4063df5946a4ccefeefa1e12fe8d2457ca3fc257 Mon Sep 17 00:00:00 2001 From: Alexander Sytnyk Date: Mon, 5 Feb 2018 15:51:30 +0200 Subject: [PATCH 1/3] Revert changes --- .../osmand/plus/dialogs/ConfigureMapMenu.java | 5 +-- .../osmand/plus/render/RendererRegistry.java | 37 ++++++++----------- 2 files changed, 17 insertions(+), 25 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java b/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java index a859c71530..091b5bbcb9 100644 --- a/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java +++ b/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java @@ -42,15 +42,12 @@ import net.osmand.plus.activities.MapActivity; import net.osmand.plus.activities.MapActivityLayers; import net.osmand.plus.activities.PluginActivity; import net.osmand.plus.activities.SettingsActivity; -import net.osmand.plus.dashboard.DashboardOnMap; import net.osmand.plus.openseamapsplugin.NauticalMapsPlugin; import net.osmand.plus.poi.PoiFiltersHelper; import net.osmand.plus.rastermaps.OsmandRasterMapsPlugin; import net.osmand.plus.render.RendererRegistry; import net.osmand.plus.srtmplugin.SRTMPlugin; -import net.osmand.plus.views.GPXLayer; import net.osmand.plus.views.OsmandMapTileView; -import net.osmand.plus.views.RouteLayer; import net.osmand.plus.views.corenative.NativeCoreContext; import net.osmand.render.RenderingRule; import net.osmand.render.RenderingRuleProperty; @@ -517,7 +514,7 @@ public class ConfigureMapMenu { if (item.equals(selectedName)) { selected = i; } - visibleNamesList.add(item); + visibleNamesList.add(item.replace('_', ' ').replace('-', ' ')); i++; } diff --git a/OsmAnd/src/net/osmand/plus/render/RendererRegistry.java b/OsmAnd/src/net/osmand/plus/render/RendererRegistry.java index 617d39b3bd..0bb20fcdcb 100644 --- a/OsmAnd/src/net/osmand/plus/render/RendererRegistry.java +++ b/OsmAnd/src/net/osmand/plus/render/RendererRegistry.java @@ -1,5 +1,18 @@ package net.osmand.plus.render; +import net.osmand.IProgress; +import net.osmand.IndexConstants; +import net.osmand.PlatformUtil; +import net.osmand.plus.OsmandApplication; +import net.osmand.render.RenderingRuleProperty; +import net.osmand.render.RenderingRulesStorage; +import net.osmand.render.RenderingRulesStorage.RenderingRulesStorageResolver; +import net.osmand.util.Algorithms; + +import org.apache.commons.logging.Log; +import org.xmlpull.v1.XmlPullParser; +import org.xmlpull.v1.XmlPullParserException; + import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; @@ -11,20 +24,6 @@ import java.util.LinkedHashMap; import java.util.LinkedHashSet; import java.util.Map; -import net.osmand.IProgress; -import net.osmand.IndexConstants; -import net.osmand.PlatformUtil; -import net.osmand.plus.OsmandApplication; -import net.osmand.plus.R; -import net.osmand.render.RenderingRuleProperty; -import net.osmand.render.RenderingRulesStorage; -import net.osmand.render.RenderingRulesStorage.RenderingRulesStorageResolver; -import net.osmand.util.Algorithms; - -import org.apache.commons.logging.Log; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - public class RendererRegistry { @@ -32,12 +31,11 @@ public class RendererRegistry { public final static String DEFAULT_RENDER = "OsmAnd"; //$NON-NLS-1$ public final static String DEFAULT_RENDER_FILE_PATH = "default.render.xml"; + public final static String TOURING_VIEW = "Touring view (contrast and details)"; //$NON-NLS-1$ + public final static String WINTER_SKI_RENDER = "Winter and ski"; //$NON-NLS-1$ + public final static String NAUTICAL_RENDER = "Nautical"; //$NON-NLS-1$ public final static String TOPO_RENDER = "Topo"; //$NON-NLS-1$ public final static String MAPNIK_RENDER = "Mapnik"; //$NON-NLS-1$ - // Translatable renders - public static String TOURING_VIEW; - public static String WINTER_SKI_RENDER; - public static String NAUTICAL_RENDER; private RenderingRulesStorage defaultRender = null; private RenderingRulesStorage currentSelectedRender = null; @@ -57,9 +55,6 @@ public class RendererRegistry { public RendererRegistry(OsmandApplication app){ this.app = app; - WINTER_SKI_RENDER = app.getResources().getString(R.string.winter_and_ski_renderer); - TOURING_VIEW = app.getResources().getString(R.string.touring_view_renderer); - NAUTICAL_RENDER = app.getResources().getString(R.string.nautical_renderer); internalRenderers.put(DEFAULT_RENDER, DEFAULT_RENDER_FILE_PATH); internalRenderers.put(TOURING_VIEW, "Touring-view_(more-contrast-and-details)" +".render.xml"); internalRenderers.put(TOPO_RENDER, "topo" + ".render.xml"); From 4858bbb269fd385f4b8cc033488df1f056a9b823 Mon Sep 17 00:00:00 2001 From: Alexander Sytnyk Date: Mon, 5 Feb 2018 16:16:30 +0200 Subject: [PATCH 2/3] Fix #4977 --- .../osmand/plus/dialogs/ConfigureMapMenu.java | 25 +++++++++++-------- .../quickaction/actions/MapStyleAction.java | 20 ++++++++------- .../osmand/plus/render/RendererRegistry.java | 18 +++++++++++++ 3 files changed, 43 insertions(+), 20 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java b/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java index 091b5bbcb9..5c8dfad8b9 100644 --- a/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java +++ b/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java @@ -59,7 +59,6 @@ import org.apache.commons.logging.Log; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collection; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; @@ -500,29 +499,33 @@ public class ConfigureMapMenu { AlertDialog.Builder bld = new AlertDialog.Builder(activity); bld.setTitle(R.string.renderers); final OsmandApplication app = activity.getMyApplication(); - Collection rendererNames = app.getRendererRegistry().getRendererNames(); - final String[] items = rendererNames.toArray(new String[rendererNames.size()]); + final ArrayList items = new ArrayList<>(app.getRendererRegistry().getRendererNames()); boolean nauticalPluginDisabled = OsmandPlugin.getEnabledPlugin(NauticalMapsPlugin.class) == null; final List visibleNamesList = new ArrayList<>(); int selected = -1; final String selectedName = app.getRendererRegistry().getCurrentSelectedRenderer().getName(); int i = 0; - for (String item : items) { + Iterator iterator = items.iterator(); + while (iterator.hasNext()) { + String item = iterator.next(); if (nauticalPluginDisabled && item.equals(RendererRegistry.NAUTICAL_RENDER)) { - continue; + iterator.remove(); + } else { + if (item.equals(selectedName)) { + selected = i; + } + String translation = RendererRegistry.getTranslatedRendererName(activity, item); + visibleNamesList.add(translation != null ? translation + : item.replace('_', ' ').replace('-', ' ')); + i++; } - if (item.equals(selectedName)) { - selected = i; - } - visibleNamesList.add(item.replace('_', ' ').replace('-', ' ')); - i++; } bld.setSingleChoiceItems(visibleNamesList.toArray(new String[visibleNamesList.size()]), selected, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { - String renderer = visibleNamesList.get(which); + String renderer = items.get(which); RenderingRulesStorage loaded = app.getRendererRegistry().getRenderer(renderer); if (loaded != null) { OsmandMapTileView view = activity.getMapView(); diff --git a/OsmAnd/src/net/osmand/plus/quickaction/actions/MapStyleAction.java b/OsmAnd/src/net/osmand/plus/quickaction/actions/MapStyleAction.java index 398cffae21..b2e7de06c2 100644 --- a/OsmAnd/src/net/osmand/plus/quickaction/actions/MapStyleAction.java +++ b/OsmAnd/src/net/osmand/plus/quickaction/actions/MapStyleAction.java @@ -20,8 +20,8 @@ import net.osmand.plus.views.OsmandMapTileView; import net.osmand.render.RenderingRulesStorage; import java.util.ArrayList; -import java.util.Collection; import java.util.Collections; +import java.util.Iterator; import java.util.List; public class MapStyleAction extends SwitchableAction { @@ -120,17 +120,19 @@ public class MapStyleAction extends SwitchableAction { final OsmandApplication app = activity.getMyApplication(); final List visibleNamesList = new ArrayList<>(); - final Collection rendererNames = app.getRendererRegistry().getRendererNames(); - final String[] items = rendererNames.toArray(new String[rendererNames.size()]); + final ArrayList items = new ArrayList<>(app.getRendererRegistry().getRendererNames()); final boolean nauticalPluginDisabled = OsmandPlugin.getEnabledPlugin(NauticalMapsPlugin.class) == null; - for (String item : items) { - + Iterator iterator = items.iterator(); + while (iterator.hasNext()) { + String item = iterator.next(); if (nauticalPluginDisabled && item.equals(RendererRegistry.NAUTICAL_RENDER)) { - continue; + iterator.remove(); + } else { + String translation = RendererRegistry.getTranslatedRendererName(activity, item); + visibleNamesList.add(translation != null ? translation + : item.replace('_', ' ').replace('-', ' ')); } - - visibleNamesList.add(item.replace('_', ' ').replace('-', ' ')); } final ArrayAdapter arrayAdapter = new ArrayAdapter<>(activity, R.layout.dialog_text_item); @@ -140,7 +142,7 @@ public class MapStyleAction extends SwitchableAction { @Override public void onClick(DialogInterface dialogInterface, int i) { - String renderer = visibleNamesList.get(i); + String renderer = items.get(i); RenderingRulesStorage loaded = app.getRendererRegistry().getRenderer(renderer); if (loaded != null) { diff --git a/OsmAnd/src/net/osmand/plus/render/RendererRegistry.java b/OsmAnd/src/net/osmand/plus/render/RendererRegistry.java index 0bb20fcdcb..c4dd143493 100644 --- a/OsmAnd/src/net/osmand/plus/render/RendererRegistry.java +++ b/OsmAnd/src/net/osmand/plus/render/RendererRegistry.java @@ -1,9 +1,14 @@ package net.osmand.plus.render; +import android.content.Context; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; + import net.osmand.IProgress; import net.osmand.IndexConstants; import net.osmand.PlatformUtil; import net.osmand.plus.OsmandApplication; +import net.osmand.plus.R; import net.osmand.render.RenderingRuleProperty; import net.osmand.render.RenderingRulesStorage; import net.osmand.render.RenderingRulesStorage.RenderingRulesStorageResolver; @@ -242,6 +247,19 @@ public class RendererRegistry { return names; } + @Nullable + public static String getTranslatedRendererName(@NonNull Context ctx, @NonNull String key) { + switch (key) { + case TOURING_VIEW: + return ctx.getString(R.string.touring_view_renderer); + case WINTER_SKI_RENDER: + return ctx.getString(R.string.winter_and_ski_renderer); + case NAUTICAL_RENDER: + return ctx.getString(R.string.nautical_renderer); + } + return null; + } + public RenderingRulesStorage getCurrentSelectedRenderer() { if(currentSelectedRender == null){ return defaultRender(); From 48f66065e4152bf4c43f7ed10bf82d1a5c0d1a12 Mon Sep 17 00:00:00 2001 From: Alexander Sytnyk Date: Mon, 5 Feb 2018 16:44:38 +0200 Subject: [PATCH 3/3] Translate renderer name in menu item description --- OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java b/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java index 5c8dfad8b9..0cdb357666 100644 --- a/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java +++ b/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java @@ -1135,7 +1135,8 @@ public class ConfigureMapMenu { if (storage == null) { return ""; } - return storage.getName(); + String translation = RendererRegistry.getTranslatedRendererName(activity, storage.getName()); + return translation == null ? storage.getName() : translation; } protected String getDayNightDescr(final MapActivity activity) {