From 00e77cd745566bb7b5a06c69fbf814c441dd5d25 Mon Sep 17 00:00:00 2001 From: Harry Bond Date: Tue, 5 Aug 2025 17:44:16 +0100 Subject: [PATCH] [android] Add Map Layers button to custom left button options Signed-off-by: Harry Bond Signed-off-by: Harry Bond --- .../java/app/organicmaps/MwmActivity.java | 37 +++++++++++++++++++ .../leftbutton/LeftButtonsHolder.java | 1 + 2 files changed, 38 insertions(+) diff --git a/android/app/src/main/java/app/organicmaps/MwmActivity.java b/android/app/src/main/java/app/organicmaps/MwmActivity.java index 47a97b0a7..f20e1eb4f 100644 --- a/android/app/src/main/java/app/organicmaps/MwmActivity.java +++ b/android/app/src/main/java/app/organicmaps/MwmActivity.java @@ -6,6 +6,7 @@ import static android.Manifest.permission.POST_NOTIFICATIONS; import static android.content.pm.PackageManager.PERMISSION_GRANTED; import static app.organicmaps.leftbutton.LeftButtonsHolder.BUTTON_ADD_PLACE_CODE; import static app.organicmaps.leftbutton.LeftButtonsHolder.BUTTON_HELP_CODE; +import static app.organicmaps.leftbutton.LeftButtonsHolder.BUTTON_MAP_LAYER_CODE; import static app.organicmaps.leftbutton.LeftButtonsHolder.BUTTON_RECORD_TRACK_CODE; import static app.organicmaps.leftbutton.LeftButtonsHolder.BUTTON_SETTINGS_CODE; import static app.organicmaps.sdk.location.LocationState.FOLLOW; @@ -944,6 +945,42 @@ public class MwmActivity extends BaseMwmFragmentActivity drawIcon(left); } }); + + buttonsHolder.registerButton(new LeftToggleButton() { + //TODO: hide layers button + private boolean isLayerActive = false; //TODO: hook up + + @Override + public void setChecked(boolean checked) + { + isLayerActive = checked; + } + + @Override + public String getCode() + { + return BUTTON_MAP_LAYER_CODE; + } + + @Override + public String getPrefsName() + { + return getString(R.string.layers_title); + } + + @Override + public void drawIcon(FloatingActionButton imageView) + { + imageView.setImageResource(isLayerActive ? R.drawable.ic_layers : R.drawable.ic_layers_clear); + } + + @Override + public void onClick(FloatingActionButton left) + { + toggleMapLayerBottomSheet(); + drawIcon(left); + } + }); } private void initNavigationButtons(MapButtonsController.LayoutMode layoutMode) diff --git a/android/app/src/main/java/app/organicmaps/leftbutton/LeftButtonsHolder.java b/android/app/src/main/java/app/organicmaps/leftbutton/LeftButtonsHolder.java index d9cf53c38..3c1ab4f21 100644 --- a/android/app/src/main/java/app/organicmaps/leftbutton/LeftButtonsHolder.java +++ b/android/app/src/main/java/app/organicmaps/leftbutton/LeftButtonsHolder.java @@ -19,6 +19,7 @@ public class LeftButtonsHolder public static final String BUTTON_SETTINGS_CODE = "settings"; public static final String BUTTON_ADD_PLACE_CODE = "add-place"; public static final String BUTTON_RECORD_TRACK_CODE = "record-track"; + public static final String BUTTON_MAP_LAYER_CODE = "map-layer"; private static final String DEFAULT_BUTTON_CODE = BUTTON_HELP_CODE; private final String leftButtonPreferenceKey;