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" /> + + + + +