Add ability to show/hide accessibility_shortcut_preference.

This adds a new boolean flag,
config_show_accessibility_shortcut_preference, which when set to false
will hide the accessibility shortcut preference item.

Bug: 62387367
Test: make RunSettingsRoboTests
ROBOTEST_FILTER=AccessibilitySettingsTest
Change-Id: I3fd941695df1ad89f717f464d2383be909839a3b
This commit is contained in:
Ben Lin
2017-12-15 14:40:44 -08:00
parent e0f8db5d64
commit 4983dc1227
5 changed files with 127 additions and 7 deletions

View File

@@ -30,6 +30,7 @@ import android.os.Handler;
import android.os.UserHandle;
import android.provider.SearchIndexableResource;
import android.provider.Settings;
import android.support.annotation.VisibleForTesting;
import android.support.v14.preference.SwitchPreference;
import android.support.v4.content.ContextCompat;
import android.support.v7.preference.ListPreference;
@@ -102,8 +103,6 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
"toggle_master_mono";
private static final String SELECT_LONG_PRESS_TIMEOUT_PREFERENCE =
"select_long_press_timeout_preference";
private static final String ACCESSIBILITY_SHORTCUT_PREFERENCE =
"accessibility_shortcut_preference";
private static final String CAPTIONING_PREFERENCE_SCREEN =
"captioning_preference_screen";
private static final String DISPLAY_MAGNIFICATION_PREFERENCE_SCREEN =
@@ -117,6 +116,9 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
private static final String DISPLAY_DALTONIZER_PREFERENCE_SCREEN =
"daltonizer_preference_screen";
@VisibleForTesting static final String ACCESSIBILITY_SHORTCUT_PREFERENCE =
"accessibility_shortcut_preference";
// Extras passed to sub-fragments.
static final String EXTRA_PREFERENCE_KEY = "preference_key";
static final String EXTRA_CHECKED = "checked";
@@ -452,6 +454,7 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
// Accessibility shortcut
mAccessibilityShortcutPreferenceScreen = findPreference(ACCESSIBILITY_SHORTCUT_PREFERENCE);
}
private void updateAllPreferences() {
@@ -668,6 +671,7 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
updateAutoclickSummary(mAutoclickPreferenceScreen);
updateAccessibilityShortcut(mAccessibilityShortcutPreferenceScreen);
checkAccessibilityShortcutVisibility(mAccessibilityShortcutPreferenceScreen);
}
private void updateMagnificationSummary(Preference pref) {
@@ -765,6 +769,13 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
}
}
@VisibleForTesting void checkAccessibilityShortcutVisibility(Preference preference) {
if (!getContext().getResources().getBoolean(
R.bool.config_show_accessibility_shortcut_preference)) {
removePreference(ACCESSIBILITY_SHORTCUT_PREFERENCE);
}
}
private static void configureMagnificationPreferenceIfNeeded(Preference preference) {
// Some devices support only a single magnification mode. In these cases, we redirect to
// the magnification mode's UI directly, rather than showing a PreferenceScreen with a
@@ -800,6 +811,12 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
keys.add(FONT_SIZE_PREFERENCE_SCREEN);
keys.add(KEY_DISPLAY_SIZE);
// Remove Accessibility Shortcuts if it's not visible
if (!context.getResources().getBoolean(
R.bool.config_show_accessibility_shortcut_preference)) {
keys.add(ACCESSIBILITY_SHORTCUT_PREFERENCE);
}
// Duplicates in Language & Input
keys.add(TTS_SETTINGS_PREFERENCE);