diff --git a/res/values/cherish_arrays.xml b/res/values/cherish_arrays.xml
index 56b72cc..6247bd5 100644
--- a/res/values/cherish_arrays.xml
+++ b/res/values/cherish_arrays.xml
@@ -31,4 +31,17 @@
- 5
- 6
+
+
+
+ - @string/volume_key_cursor_control_off
+ - @string/volume_key_cursor_control_on
+ - @string/volume_key_cursor_control_on_reverse
+
+
+
+ - 0
+ - 1
+ - 2
+
diff --git a/res/values/cherish_strings.xml b/res/values/cherish_strings.xml
index dc9e229..2feac6a 100644
--- a/res/values/cherish_strings.xml
+++ b/res/values/cherish_strings.xml
@@ -130,4 +130,11 @@
Volume rocker wake
Pressing the volume keys will wake your device
-
+
+
+ Cursor
+ Volume key cursor control
+ Disabled
+ Volume up/down moves cursor left/right
+ Volume up/down moves cursor right/left
+
\ No newline at end of file
diff --git a/res/xml/cherish_settings_volume.xml b/res/xml/cherish_settings_volume.xml
index da54b2f..04b2347 100644
--- a/res/xml/cherish_settings_volume.xml
+++ b/res/xml/cherish_settings_volume.xml
@@ -31,4 +31,10 @@
android:title="@string/volume_rocker_wake_title"
android:defaultValue="false" />
+
diff --git a/src/com/cherish/settings/fragments/VolumeRockerSettings.java b/src/com/cherish/settings/fragments/VolumeRockerSettings.java
index 6492539..a32311e 100644
--- a/src/com/cherish/settings/fragments/VolumeRockerSettings.java
+++ b/src/com/cherish/settings/fragments/VolumeRockerSettings.java
@@ -15,6 +15,9 @@ import com.android.settings.SettingsPreferenceFragment;
public class VolumeRockerSettings extends SettingsPreferenceFragment implements
Preference.OnPreferenceChangeListener {
+ private static final String VOLUME_KEY_CURSOR_CONTROL = "volume_key_cursor_control";
+
+ private ListPreference mVolumeKeyCursorControl;
@Override
public void onCreate(Bundle icicle) {
@@ -22,11 +25,30 @@ public class VolumeRockerSettings extends SettingsPreferenceFragment implements
addPreferencesFromResource(R.xml.cherish_settings_volume);
+ // volume key cursor control
+ mVolumeKeyCursorControl = (ListPreference) findPreference(VOLUME_KEY_CURSOR_CONTROL);
+ if (mVolumeKeyCursorControl != null) {
+ mVolumeKeyCursorControl.setOnPreferenceChangeListener(this);
+ int volumeRockerCursorControl = Settings.System.getInt(getContentResolver(),
+ Settings.System.VOLUME_KEY_CURSOR_CONTROL, 0);
+ mVolumeKeyCursorControl.setValue(Integer.toString(volumeRockerCursorControl));
+ mVolumeKeyCursorControl.setSummary(mVolumeKeyCursorControl.getEntry());
+ }
}
@Override
public boolean onPreferenceChange(Preference preference, Object value) {
-
+ if (preference == mVolumeKeyCursorControl) {
+ String volumeKeyCursorControl = (String) value;
+ int volumeKeyCursorControlValue = Integer.parseInt(volumeKeyCursorControl);
+ Settings.System.putInt(getActivity().getContentResolver(),
+ Settings.System.VOLUME_KEY_CURSOR_CONTROL, volumeKeyCursorControlValue);
+ int volumeKeyCursorControlIndex = mVolumeKeyCursorControl
+ .findIndexOfValue(volumeKeyCursorControl);
+ mVolumeKeyCursorControl
+ .setSummary(mVolumeKeyCursorControl.getEntries()[volumeKeyCursorControlIndex]);
+ return true;
+ }
return false;
}