diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml
index 096d691d91..6eacd5c202 100644
--- a/OsmAnd/res/values/strings.xml
+++ b/OsmAnd/res/values/strings.xml
@@ -11,6 +11,8 @@
Thx - Hardy
-->
+ Volume buttons as zoom
+ Enable to control the map zoom level with device volume buttons.
Inline skates
This device doesn\'t have speed cameras.
Uninstall and Restart
diff --git a/OsmAnd/res/xml/general_profile_settings.xml b/OsmAnd/res/xml/general_profile_settings.xml
index e0c7ec3fa7..6a4148647e 100644
--- a/OsmAnd/res/xml/general_profile_settings.xml
+++ b/OsmAnd/res/xml/general_profile_settings.xml
@@ -82,6 +82,14 @@
android:layout="@layout/preference_category_with_descr"
android:title="@string/shared_string_other" />
+
+
USE_MAGNETIC_FIELD_SENSOR_COMPASS = new BooleanPreference("use_magnetic_field_sensor_compass", false).makeProfile().cache();
public final OsmandPreference USE_KALMAN_FILTER_FOR_COMPASS = new BooleanPreference("use_kalman_filter_compass", true).makeProfile().cache();
+ public final OsmandPreference USE_VOLUME_BUTTONS_AS_ZOOM = new BooleanPreference("use_volume_buttons_as_zoom", false).makeProfile().cache();
public final OsmandPreference DO_NOT_SHOW_STARTUP_MESSAGES = new BooleanPreference("do_not_show_startup_messages", false).makeGlobal().cache();
public final OsmandPreference SHOW_DOWNLOAD_MAP_DIALOG = new BooleanPreference("show_download_map_dialog", true).makeGlobal().cache();
diff --git a/OsmAnd/src/net/osmand/plus/settings/fragments/GeneralProfileSettingsFragment.java b/OsmAnd/src/net/osmand/plus/settings/fragments/GeneralProfileSettingsFragment.java
index 4ac4d78d32..80488797ec 100644
--- a/OsmAnd/src/net/osmand/plus/settings/fragments/GeneralProfileSettingsFragment.java
+++ b/OsmAnd/src/net/osmand/plus/settings/fragments/GeneralProfileSettingsFragment.java
@@ -54,6 +54,7 @@ public class GeneralProfileSettingsFragment extends BaseSettingsFragment impleme
setupAngularUnitsPref();
setupSpeedSystemPref();
+ setupVolumeButtonsAsZoom();
setupKalmanFilterPref();
setupMagneticFieldSensorPref();
setupMapEmptyStateAllowedPref();
@@ -224,6 +225,14 @@ public class GeneralProfileSettingsFragment extends BaseSettingsFragment impleme
speedSystem.setIcon(getActiveIcon(R.drawable.ic_action_speed));
}
+ private void setupVolumeButtonsAsZoom() {
+ SwitchPreferenceEx volumeButtonsPref = (SwitchPreferenceEx) findPreference(settings.USE_VOLUME_BUTTONS_AS_ZOOM.getId());
+ volumeButtonsPref.setTitle(getString(R.string.use_volume_buttons_as_zoom));
+ volumeButtonsPref.setDescription(getString(R.string.use_volume_buttons_as_zoom_descr));
+ Drawable icon = getPersistentPrefIcon(R.drawable.ic_action_zoom_volume_buttons);
+ volumeButtonsPref.setIcon(icon);
+ }
+
private void setupKalmanFilterPref() {
SwitchPreferenceEx kalmanFilterPref = (SwitchPreferenceEx) findPreference(settings.USE_KALMAN_FILTER_FOR_COMPASS.getId());
kalmanFilterPref.setTitle(getString(R.string.use_kalman_filter_compass));