Add a11y setting for Automatically click after pointer stops

Adds new preference screen for the feature, where the feature can be
enabled/disabled, and delay before click can be specified (implemented
as seek bar preference, enabled iff the feature is enabled).

Preference is added to Accessibility setting. The preference summary is
set to string describing the delay after pointer stops moving before
click is scheduled (the string also contains numerical value of the
delay).

BUG=20049245

Change-Id: Ib7b2f5c24efbd08e3200143c069bcdbc9b5a327a
This commit is contained in:
Toni Barzic
2015-08-18 10:30:08 -07:00
parent 38ee17a4ae
commit 76be5e352a
7 changed files with 315 additions and 0 deletions

View File

@@ -96,6 +96,8 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
"captioning_preference_screen";
private static final String DISPLAY_MAGNIFICATION_PREFERENCE_SCREEN =
"screen_magnification_preference_screen";
private static final String AUTOCLICK_PREFERENCE_SCREEN =
"autoclick_preference_screen";
private static final String DISPLAY_DALTONIZER_PREFERENCE_SCREEN =
"daltonizer_preference_screen";
@@ -190,6 +192,7 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
private Preference mNoServicesMessagePreference;
private PreferenceScreen mCaptioningPreferenceScreen;
private PreferenceScreen mDisplayMagnificationPreferenceScreen;
private PreferenceScreen mAutoclickPreferenceScreen;
private PreferenceScreen mGlobalGesturePreferenceScreen;
private PreferenceScreen mDisplayDaltonizerPreferenceScreen;
private SwitchPreference mToggleInversionPreference;
@@ -410,6 +413,10 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
mDisplayMagnificationPreferenceScreen = (PreferenceScreen) findPreference(
DISPLAY_MAGNIFICATION_PREFERENCE_SCREEN);
// Autoclick after pointer stops.
mAutoclickPreferenceScreen = (PreferenceScreen) findPreference(
AUTOCLICK_PREFERENCE_SCREEN);
// Display color adjustments.
mDisplayDaltonizerPreferenceScreen = (PreferenceScreen) findPreference(
DISPLAY_DALTONIZER_PREFERENCE_SCREEN);
@@ -582,6 +589,8 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
updateFeatureSummary(Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED,
mDisplayDaltonizerPreferenceScreen);
updateAutoclickSummary(mAutoclickPreferenceScreen);
// Global gesture
final boolean globalGestureEnabled = Settings.Global.getInt(getContentResolver(),
Settings.Global.ENABLE_ACCESSIBILITY_GLOBAL_GESTURE_ENABLED, 0) == 1;
@@ -600,6 +609,20 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
: R.string.accessibility_feature_state_off);
}
private void updateAutoclickSummary(Preference pref) {
final boolean enabled = Settings.Secure.getInt(
getContentResolver(), Settings.Secure.ACCESSIBILITY_AUTOCLICK_ENABLED, 0) == 1;
if (!enabled) {
pref.setSummary(R.string.accessibility_feature_state_off);
return;
}
int delay = Settings.Secure.getInt(
getContentResolver(), Settings.Secure.ACCESSIBILITY_AUTOCLICK_DELAY,
AccessibilityManager.AUTOCLICK_DELAY_DEFAULT);
pref.setSummary(ToggleAutoclickPreferenceFragment.getAutoclickPreferenceSummary(
getResources(), delay));
}
private void updateLockScreenRotationCheckbox() {
Context context = getActivity();
if (context != null) {