Setting to enable the global gesture for turning on accessibility.

1. Adding a setting to enable the gesture to turn on accessibility.
   This is a new screen with a toggle switch similarly as screen
   magnification which will contain explanation of how to perform
   the gesture.

bug:6171929

Change-Id: I84dfa46a9b7b789d99923684e08e52cf7d236eb2
This commit is contained in:
Svetoslav Ganov
2012-09-27 16:04:54 -07:00
parent 88c9f2889f
commit a59f1aacc0
3 changed files with 68 additions and 7 deletions

View File

@@ -108,6 +108,8 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
"select_long_press_timeout_preference";
private static final String TOGGLE_SCRIPT_INJECTION_PREFERENCE =
"toggle_script_injection_preference";
private static final String ENABLE_ACCESSIBILITY_GESTURE_PREFERENCE_SCREEN =
"enable_global_gesture_preference_screen";
private static final String DISPLAY_MAGNIFICATION_PREFERENCE_SCREEN =
"screen_magnification_preference_screen";
@@ -168,6 +170,7 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
private AccessibilityEnableScriptInjectionPreference mToggleScriptInjectionPreference;
private Preference mNoServicesMessagePreference;
private PreferenceScreen mDisplayMagnificationPreferenceScreen;
private PreferenceScreen mGlobalGesturePreferenceScreen;
private int mLongPressTimeoutDefault;
@@ -210,12 +213,6 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
}
return false;
}
@Override
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
@@ -231,6 +228,9 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
} else if (mToggleSpeakPasswordPreference == preference) {
handleToggleSpeakPasswordPreferenceClick();
return true;
} else if (mGlobalGesturePreferenceScreen == preference) {
handleTogglEnableAccessibilityGesturePreferenceClick();
return true;
} else if (mDisplayMagnificationPreferenceScreen == preference) {
handleDisplayMagnificationPreferenceScreenClick();
return true;
@@ -266,6 +266,18 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
mToggleSpeakPasswordPreference.isChecked() ? 1 : 0);
}
private void handleTogglEnableAccessibilityGesturePreferenceClick() {
Bundle extras = mGlobalGesturePreferenceScreen.getExtras();
extras.putString(EXTRA_TITLE, getString(
R.string.accessibility_global_gesture_preference_title));
extras.putString(EXTRA_SUMMARY, getString(
R.string.accessibility_global_gesture_preference_summary));
extras.putBoolean(EXTRA_CHECKED, Settings.Global.getInt(getContentResolver(),
Settings.Global.ENABLE_ACCESSIBILITY_GLOBAL_GESTURE_ENABLED, 0) == 1);
super.onPreferenceTreeClick(mGlobalGesturePreferenceScreen,
mGlobalGesturePreferenceScreen);
}
private void handleDisplayMagnificationPreferenceScreenClick() {
Bundle extras = mDisplayMagnificationPreferenceScreen.getExtras();
extras.putString(EXTRA_TITLE, getString(
@@ -325,6 +337,10 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
// Display magnification.
mDisplayMagnificationPreferenceScreen = (PreferenceScreen) findPreference(
DISPLAY_MAGNIFICATION_PREFERENCE_SCREEN);
// Global gesture.
mGlobalGesturePreferenceScreen =
(PreferenceScreen) findPreference(ENABLE_ACCESSIBILITY_GESTURE_PREFERENCE_SCREEN);
}
private void updateAllPreferences() {
@@ -487,6 +503,17 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
mDisplayMagnificationPreferenceScreen.setSummary(
R.string.accessibility_feature_state_off);
}
// Global gesture
final boolean globalGestureEnabled = Settings.Global.getInt(getContentResolver(),
Settings.Global.ENABLE_ACCESSIBILITY_GLOBAL_GESTURE_ENABLED, 0) == 1;
if (globalGestureEnabled) {
mGlobalGesturePreferenceScreen.setSummary(
R.string.accessibility_feature_state_on);
} else {
mGlobalGesturePreferenceScreen.setSummary(
R.string.accessibility_feature_state_off);
}
}
private void updateLockScreenRotationCheckbox() {
@@ -844,6 +871,29 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
}
}
public static class ToggleGlobalGesturePreferenceFragment
extends ToggleFeaturePreferenceFragment {
@Override
protected void onPreferenceToggled(String preferenceKey, boolean enabled) {
Settings.Global.putInt(getContentResolver(),
Settings.Global.ENABLE_ACCESSIBILITY_GLOBAL_GESTURE_ENABLED, enabled ? 1 : 0);
}
@Override
protected void onInstallActionBarToggleSwitch() {
super.onInstallActionBarToggleSwitch();
mToggleSwitch.setOnBeforeCheckedChangeListener(new OnBeforeCheckedChangeListener() {
@Override
public boolean onBeforeCheckedChanged(ToggleSwitch toggleSwitch, boolean checked) {
toggleSwitch.setCheckedInternal(checked);
getArguments().putBoolean(EXTRA_CHECKED, checked);
onPreferenceToggled(mPreferenceKey, checked);
return false;
}
});
}
}
public static abstract class ToggleFeaturePreferenceFragment
extends SettingsPreferenceFragment {