diff --git a/android/app/src/main/java/app/organicmaps/maplayer/ToggleMapLayerFragment.java b/android/app/src/main/java/app/organicmaps/maplayer/ToggleMapLayerFragment.java
index d54fb634b..25550986b 100644
--- a/android/app/src/main/java/app/organicmaps/maplayer/ToggleMapLayerFragment.java
+++ b/android/app/src/main/java/app/organicmaps/maplayer/ToggleMapLayerFragment.java
@@ -1,24 +1,31 @@
package app.organicmaps.maplayer;
import android.content.Context;
+import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.widget.CompoundButton;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
+import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
+import androidx.preference.PreferenceManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import app.organicmaps.MwmApplication;
import app.organicmaps.R;
+import app.organicmaps.sdk.Framework;
import app.organicmaps.sdk.maplayer.Mode;
+import app.organicmaps.sdk.util.PowerManagment;
import app.organicmaps.sdk.util.SharedPropertiesUtils;
import app.organicmaps.util.ThemeSwitcher;
import app.organicmaps.util.Utils;
import app.organicmaps.util.bottomsheet.MenuBottomSheetFragment;
import app.organicmaps.widget.recycler.SpanningLinearLayoutManager;
import com.google.android.material.button.MaterialButton;
+import com.google.android.material.materialswitch.MaterialSwitch;
import java.util.ArrayList;
import java.util.List;
@@ -36,6 +43,20 @@ public class ToggleMapLayerFragment extends Fragment
{
View mRoot = inflater.inflate(R.layout.fragment_toggle_map_layer, container, false);
+ SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(requireContext());
+ final int powerManagementValue = sharedPreferences.getInt(ContextCompat.getString(requireContext(), R.string.power_management), PowerManagment.HIGH);
+ final boolean _3DEnabled = sharedPreferences.getBoolean(ContextCompat.getString(requireContext(), R.string.pref_3d_buildings),true);
+ MaterialSwitch m3DSwitch = mRoot.findViewById(R.id._3d_button);
+ m3DSwitch.setChecked(_3DEnabled);
+ if (powerManagementValue != PowerManagment.HIGH)
+ {
+ m3DSwitch.setEnabled(true);
+ m3DSwitch.setOnCheckedChangeListener((CompoundButton buttonView, boolean isChecked) -> Framework.nativeSet3dMode(true, isChecked));
+ }
+ else
+ {
+ m3DSwitch.setEnabled(false);
+ }
mMapButtonsController =
(MapButtonsController) requireActivity().getSupportFragmentManager().findFragmentById(R.id.map_buttons);
MaterialButton mCloseButton = mRoot.findViewById(R.id.close_button);
diff --git a/android/app/src/main/res/drawable/ic_3d_layer.xml b/android/app/src/main/res/drawable/ic_3d_layer.xml
new file mode 100644
index 000000000..cfbd11353
--- /dev/null
+++ b/android/app/src/main/res/drawable/ic_3d_layer.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/android/app/src/main/res/layout/fragment_toggle_map_layer.xml b/android/app/src/main/res/layout/fragment_toggle_map_layer.xml
index 13a83e1ac..3fd4e3eeb 100644
--- a/android/app/src/main/res/layout/fragment_toggle_map_layer.xml
+++ b/android/app/src/main/res/layout/fragment_toggle_map_layer.xml
@@ -37,7 +37,29 @@
app:layout_constraintTop_toTopOf="parent"
app:shapeAppearanceOverlay="@style/ShapeAppearanceOverlay.Button.Round" />
+
+
+
+
+