diff --git a/app/src/main/java/mobi/maptrek/Configuration.java b/app/src/main/java/mobi/maptrek/Configuration.java index d68eab0b..cf843eaf 100644 --- a/app/src/main/java/mobi/maptrek/Configuration.java +++ b/app/src/main/java/mobi/maptrek/Configuration.java @@ -71,6 +71,7 @@ public class Configuration { private static final String PREF_BITMAP_MAP_TRANSPARENCY = "bitmap_map_transparency"; private static final String PREF_EXCEPTION_SIZE = "exception_size"; public static final String PREF_ZOOM_BUTTONS_VISIBLE = "zoom_buttons_visible"; + public static final String PREF_PLACE_TITLES = "place_titles"; public static final String PREF_ACCESSIBILITY_BADGES = "accessibility_badges"; public static final String PREF_CONFIRM_EXIT = "confirm_exit"; public static final String PREF_SPEED_UNIT = "speed_unit"; @@ -430,6 +431,10 @@ public static boolean getZoomButtonsVisible() { return loadBoolean(PREF_ZOOM_BUTTONS_VISIBLE, false); } + public static boolean getPlaceTitlesEnabled() { + return loadBoolean(PREF_PLACE_TITLES, true); + } + public static boolean getAccessibilityBadgesEnabled() { return loadBoolean(PREF_ACCESSIBILITY_BADGES, true); } diff --git a/app/src/main/java/mobi/maptrek/MainActivity.java b/app/src/main/java/mobi/maptrek/MainActivity.java index 12f8677f..08f5e8d8 100644 --- a/app/src/main/java/mobi/maptrek/MainActivity.java +++ b/app/src/main/java/mobi/maptrek/MainActivity.java @@ -659,6 +659,7 @@ public void onChildViewRemoved(View parent, View child) { Bitmap bitmap = new AndroidBitmap(MarkerFactory.getMarkerSymbol(this)); MarkerSymbol symbol = new MarkerSymbol(bitmap, MarkerItem.HotspotPlace.BOTTOM_CENTER); mMarkerLayer = new ItemizedLayer<>(mMap, new ArrayList<>(), symbol, MapTrek.density, this); + mMarkerLayer.setTitlesEnabled(Configuration.getPlaceTitlesEnabled()); layers.add(mMarkerLayer, MAP_3D_DATA); mapIndexViewModel = new ViewModelProvider(this).get(MapIndexViewModel.class); @@ -4532,6 +4533,12 @@ public void onConfigurationChanged(Configuration.ChangedEvent event) { mViews.coordinatorLayout.findViewById(R.id.mapZoomHolder).setVisibility(visible ? View.VISIBLE : View.GONE); break; } + case Configuration.PREF_PLACE_TITLES: { + mMarkerLayer.setTitlesEnabled(Configuration.getPlaceTitlesEnabled()); + mMarkerLayer.updateItems(); + mMap.updateMap(); + break; + } case Configuration.PREF_ACCESSIBILITY_BADGES: { Tags.accessibility = Configuration.getAccessibilityBadgesEnabled(); mMap.clearMap(); diff --git a/app/src/main/java/mobi/maptrek/layers/marker/MarkerLayer.java b/app/src/main/java/mobi/maptrek/layers/marker/MarkerLayer.java index 7678879c..a35d1d46 100644 --- a/app/src/main/java/mobi/maptrek/layers/marker/MarkerLayer.java +++ b/app/src/main/java/mobi/maptrek/layers/marker/MarkerLayer.java @@ -104,4 +104,7 @@ public Item getFocus() { return mFocusedItem; } + public void setTitlesEnabled(boolean titlesEnabled) { + mMarkerRenderer.setTitlesEnabled(titlesEnabled); + } } diff --git a/app/src/main/java/mobi/maptrek/layers/marker/MarkerRenderer.java b/app/src/main/java/mobi/maptrek/layers/marker/MarkerRenderer.java index 63d88b7c..92a47033 100644 --- a/app/src/main/java/mobi/maptrek/layers/marker/MarkerRenderer.java +++ b/app/src/main/java/mobi/maptrek/layers/marker/MarkerRenderer.java @@ -55,6 +55,7 @@ class MarkerRenderer extends BucketRenderer { private final MarkerLayer mMarkerLayer; private final Point mMapPoint = new Point(); private final float mScale; + private boolean mTitlesEnabled; private int mShaderProgram; private int hVertexPosition; @@ -99,6 +100,11 @@ public String toString() { mMarkerLayer = markerLayer; mDefaultMarker = defaultSymbol; mScale = scale; + mTitlesEnabled = true; + } + + public void setTitlesEnabled(boolean titlesEnabled) { + mTitlesEnabled = titlesEnabled; } @Override @@ -210,7 +216,7 @@ else if (it.x < -flip) s.billboard = marker.isBillboard(); mSymbolBucket.pushSymbol(s); - if (it.item.title != null) { + if (mTitlesEnabled && it.item.title != null) { float dy = -s.offset.y * bitmap.getHeight() - 10 * mScale * CanvasAdapter.textScale; long k = (((long) dy) << 32) | (it.item.color & 0xffffffffL); TextStyle textStyle = textStyles.get(k); diff --git a/app/src/main/res/values/bools.xml b/app/src/main/res/values/bools.xml index 0edfd2f1..7d0309ec 100644 --- a/app/src/main/res/values/bools.xml +++ b/app/src/main/res/values/bools.xml @@ -1,5 +1,6 @@ + true false true false diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d8d037f4..fdd728ab 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -315,6 +315,7 @@ Extra precision Advanced Hillshades transparency + Place titles Accessibility badges Exit confirmation diff --git a/app/src/main/res/xml/preferences_general.xml b/app/src/main/res/xml/preferences_general.xml index 55523e09..5c34e404 100644 --- a/app/src/main/res/xml/preferences_general.xml +++ b/app/src/main/res/xml/preferences_general.xml @@ -12,15 +12,20 @@ app:seekBarIncrement="10" app:showSeekBarValue="true" /> +