diff --git a/src/org/geometerplus/android/fbreader/preferences/PreferenceActivity.java b/src/org/geometerplus/android/fbreader/preferences/PreferenceActivity.java index 21272f9bd..fcd429fb0 100644 --- a/src/org/geometerplus/android/fbreader/preferences/PreferenceActivity.java +++ b/src/org/geometerplus/android/fbreader/preferences/PreferenceActivity.java @@ -328,8 +328,22 @@ public class PreferenceActivity extends ZLPreferenceActivity { final ScrollingPreferences scrollingPreferences = ScrollingPreferences.Instance(); scrollingScreen.addOption(scrollingPreferences.FingerScrollingOption, "fingerScrolling"); scrollingScreen.addOption(fbReader.EnableDoubleTapOption, "enableDoubleTapDetection"); - scrollingScreen.addOption(scrollingPreferences.VolumeKeysOption, "volumeKeys"); - scrollingScreen.addOption(scrollingPreferences.InvertVolumeKeysOption, "invertVolumeKeys"); + + final ZLPreferenceSet volumeKeysPreferences = new ZLPreferenceSet(); + scrollingScreen.addPreference(new ZLBooleanPreference( + this, scrollingPreferences.VolumeKeysOption, scrollingScreen.Resource, "volumeKeys" + ) { + @Override + protected void onClick() { + super.onClick(); + volumeKeysPreferences.setEnabled(isChecked()); + } + }); + volumeKeysPreferences.add(scrollingScreen.addOption( + scrollingPreferences.InvertVolumeKeysOption, "invertVolumeKeys" + )); + volumeKeysPreferences.setEnabled(scrollingPreferences.VolumeKeysOption.getValue()); + scrollingScreen.addOption(scrollingPreferences.AnimationOption, "animation"); scrollingScreen.addOption(scrollingPreferences.HorizontalOption, "horizontal"); diff --git a/src/org/geometerplus/android/fbreader/preferences/ZLBooleanPreference.java b/src/org/geometerplus/android/fbreader/preferences/ZLBooleanPreference.java index cf6a63069..a8914b4d9 100644 --- a/src/org/geometerplus/android/fbreader/preferences/ZLBooleanPreference.java +++ b/src/org/geometerplus/android/fbreader/preferences/ZLBooleanPreference.java @@ -39,7 +39,12 @@ class ZLBooleanPreference extends CheckBoxPreference implements ZLPreference { setChecked(option.getValue()); } - public void onAccept() { + @Override + protected void onClick() { + super.onClick(); myOption.setValue(isChecked()); } + + public void onAccept() { + } } diff --git a/src/org/geometerplus/android/fbreader/preferences/ZLIntegerRangePreference.java b/src/org/geometerplus/android/fbreader/preferences/ZLIntegerRangePreference.java index 287e6e9ac..33da6e917 100644 --- a/src/org/geometerplus/android/fbreader/preferences/ZLIntegerRangePreference.java +++ b/src/org/geometerplus/android/fbreader/preferences/ZLIntegerRangePreference.java @@ -46,11 +46,12 @@ class ZLIntegerRangePreference extends ListPreference implements ZLPreference { protected void onDialogClosed(boolean result) { super.onDialogClosed(result); if (result) { - setSummary(getValue()); + final String value = getValue(); + setSummary(value); + myOption.setValue(myOption.MinValue + findIndexOfValue(value)); } } public void onAccept() { - myOption.setValue(myOption.MinValue + findIndexOfValue(getValue())); } }