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; }