diff --git a/res/values/strings.xml b/res/values/strings.xml
index 694a1b052dc..4a8e7e3ea0a 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -4353,6 +4353,8 @@
Power button ends call
Large mouse pointer
+
+ Remove animations
Mono audio
diff --git a/res/xml/accessibility_settings.xml b/res/xml/accessibility_settings.xml
index d7d2e02e4e1..b5da848eb30 100644
--- a/res/xml/accessibility_settings.xml
+++ b/res/xml/accessibility_settings.xml
@@ -62,6 +62,10 @@
+
+
mLongPressTimeoutValueToTitleMap = new HashMap<>();
private final Handler mHandler = new Handler();
@@ -194,6 +203,7 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
private SwitchPreference mTogglePowerButtonEndsCallPreference;
private SwitchPreference mToggleLockScreenRotationPreference;
private SwitchPreference mToggleLargePointerIconPreference;
+ private SwitchPreference mToggleDisableAnimationsPreference;
private SwitchPreference mToggleMasterMonoPreference;
private ListPreference mSelectLongPressTimeoutPreference;
private Preference mNoServicesMessagePreference;
@@ -317,6 +327,9 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
} else if (mToggleLargePointerIconPreference == preference) {
handleToggleLargePointerIconPreferenceClick();
return true;
+ } else if (mToggleDisableAnimationsPreference == preference) {
+ handleToggleDisableAnimations();
+ return true;
} else if (mToggleMasterMonoPreference == preference) {
handleToggleMasterMonoPreferenceClick();
return true;
@@ -349,6 +362,14 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
mToggleLargePointerIconPreference.isChecked() ? 1 : 0);
}
+ private void handleToggleDisableAnimations() {
+ String newAnimationValue = mToggleDisableAnimationsPreference.isChecked()
+ ? ANIMATION_OFF_VALUE : ANIMATION_ON_VALUE;
+ for (String animationPreference : TOGGLE_ANIMATION_TARGETS) {
+ Settings.Global.putString(getContentResolver(), animationPreference, newAnimationValue);
+ }
+ }
+
private void handleToggleMasterMonoPreferenceClick() {
Settings.System.putIntForUser(getContentResolver(), Settings.System.MASTER_MONO,
mToggleMasterMonoPreference.isChecked() ? 1 : 0, UserHandle.USER_CURRENT);
@@ -389,6 +410,9 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
mToggleLargePointerIconPreference =
(SwitchPreference) findPreference(TOGGLE_LARGE_POINTER_ICON);
+ mToggleDisableAnimationsPreference =
+ (SwitchPreference) findPreference(TOGGLE_DISABLE_ANIMATIONS);
+
// Master Mono
mToggleMasterMonoPreference =
(SwitchPreference) findPreference(TOGGLE_MASTER_MONO);
@@ -620,6 +644,8 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
mToggleLargePointerIconPreference.setChecked(Settings.Secure.getInt(getContentResolver(),
Settings.Secure.ACCESSIBILITY_LARGE_POINTER_ICON, 0) != 0);
+ updateDisableAnimationsToggle();
+
// Master mono
updateMasterMono();
@@ -702,6 +728,19 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
}
}
+ private void updateDisableAnimationsToggle() {
+ boolean allAnimationsDisabled = true;
+ for (String animationSetting : TOGGLE_ANIMATION_TARGETS) {
+ if (!TextUtils.equals(
+ Settings.Global.getString(getContentResolver(), animationSetting),
+ ANIMATION_OFF_VALUE)) {
+ allAnimationsDisabled = false;
+ break;
+ }
+ }
+ mToggleDisableAnimationsPreference.setChecked(allAnimationsDisabled);
+ }
+
private void updateMasterMono() {
final boolean masterMono = Settings.System.getIntForUser(
getContentResolver(), Settings.System.MASTER_MONO,