Add setting to disable animations
Fixes: 12910879 Test: make RunSettingsRoboTests Also went to Settings -> Accessibility, turned off animations, and observed that animations stopped. Turned it back on, and the came back. Also fiddled with the granular settings in developer options, which behaved as expected. Change-Id: I189fbc4152d3cdb5ee45562c33f94c739f569c32
This commit is contained in:
@@ -4353,6 +4353,8 @@
|
|||||||
<string name="accessibility_power_button_ends_call_prerefence_title">Power button ends call</string>
|
<string name="accessibility_power_button_ends_call_prerefence_title">Power button ends call</string>
|
||||||
<!-- Title for the accessibility preference for enabling/disabling large icons for mouse/trackpad pointers. [CHAR LIMIT=35] -->
|
<!-- Title for the accessibility preference for enabling/disabling large icons for mouse/trackpad pointers. [CHAR LIMIT=35] -->
|
||||||
<string name="accessibility_toggle_large_pointer_icon_title">Large mouse pointer</string>
|
<string name="accessibility_toggle_large_pointer_icon_title">Large mouse pointer</string>
|
||||||
|
<!-- Title for the accessibility preference for disabling animations. [CHAR LIMIT=35] -->
|
||||||
|
<string name="accessibility_disable_animations">Remove animations</string>
|
||||||
<!-- Title for the accessibility preference for master mono. [CHAR LIMIT=35] -->
|
<!-- Title for the accessibility preference for master mono. [CHAR LIMIT=35] -->
|
||||||
<string name="accessibility_toggle_master_mono_title">Mono audio</string>
|
<string name="accessibility_toggle_master_mono_title">Mono audio</string>
|
||||||
<!-- Summary for the accessibility preference for master mono. [CHAR LIMIT=50] -->
|
<!-- Summary for the accessibility preference for master mono. [CHAR LIMIT=50] -->
|
||||||
|
@@ -62,6 +62,10 @@
|
|||||||
<SwitchPreference
|
<SwitchPreference
|
||||||
android:key="toggle_large_pointer_icon"
|
android:key="toggle_large_pointer_icon"
|
||||||
android:title="@string/accessibility_toggle_large_pointer_icon_title" />
|
android:title="@string/accessibility_toggle_large_pointer_icon_title" />
|
||||||
|
|
||||||
|
<SwitchPreference
|
||||||
|
android:key="toggle_disable_animations"
|
||||||
|
android:title="@string/accessibility_disable_animations" />
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
|
|
||||||
<PreferenceCategory
|
<PreferenceCategory
|
||||||
|
@@ -97,6 +97,7 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
|
|||||||
"toggle_lock_screen_rotation_preference";
|
"toggle_lock_screen_rotation_preference";
|
||||||
private static final String TOGGLE_LARGE_POINTER_ICON =
|
private static final String TOGGLE_LARGE_POINTER_ICON =
|
||||||
"toggle_large_pointer_icon";
|
"toggle_large_pointer_icon";
|
||||||
|
private static final String TOGGLE_DISABLE_ANIMATIONS = "toggle_disable_animations";
|
||||||
private static final String TOGGLE_MASTER_MONO =
|
private static final String TOGGLE_MASTER_MONO =
|
||||||
"toggle_master_mono";
|
"toggle_master_mono";
|
||||||
private static final String SELECT_LONG_PRESS_TIMEOUT_PREFERENCE =
|
private static final String SELECT_LONG_PRESS_TIMEOUT_PREFERENCE =
|
||||||
@@ -135,6 +136,14 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
|
|||||||
// presentation.
|
// presentation.
|
||||||
private static final long DELAY_UPDATE_SERVICES_MILLIS = 1000;
|
private static final long DELAY_UPDATE_SERVICES_MILLIS = 1000;
|
||||||
|
|
||||||
|
// Settings that should be changed when toggling animations
|
||||||
|
private static final String[] TOGGLE_ANIMATION_TARGETS = {
|
||||||
|
Settings.Global.WINDOW_ANIMATION_SCALE, Settings.Global.TRANSITION_ANIMATION_SCALE,
|
||||||
|
Settings.Global.ANIMATOR_DURATION_SCALE
|
||||||
|
};
|
||||||
|
private static final String ANIMATION_ON_VALUE = "1";
|
||||||
|
private static final String ANIMATION_OFF_VALUE = "0";
|
||||||
|
|
||||||
private final Map<String, String> mLongPressTimeoutValueToTitleMap = new HashMap<>();
|
private final Map<String, String> mLongPressTimeoutValueToTitleMap = new HashMap<>();
|
||||||
|
|
||||||
private final Handler mHandler = new Handler();
|
private final Handler mHandler = new Handler();
|
||||||
@@ -194,6 +203,7 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
|
|||||||
private SwitchPreference mTogglePowerButtonEndsCallPreference;
|
private SwitchPreference mTogglePowerButtonEndsCallPreference;
|
||||||
private SwitchPreference mToggleLockScreenRotationPreference;
|
private SwitchPreference mToggleLockScreenRotationPreference;
|
||||||
private SwitchPreference mToggleLargePointerIconPreference;
|
private SwitchPreference mToggleLargePointerIconPreference;
|
||||||
|
private SwitchPreference mToggleDisableAnimationsPreference;
|
||||||
private SwitchPreference mToggleMasterMonoPreference;
|
private SwitchPreference mToggleMasterMonoPreference;
|
||||||
private ListPreference mSelectLongPressTimeoutPreference;
|
private ListPreference mSelectLongPressTimeoutPreference;
|
||||||
private Preference mNoServicesMessagePreference;
|
private Preference mNoServicesMessagePreference;
|
||||||
@@ -317,6 +327,9 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
|
|||||||
} else if (mToggleLargePointerIconPreference == preference) {
|
} else if (mToggleLargePointerIconPreference == preference) {
|
||||||
handleToggleLargePointerIconPreferenceClick();
|
handleToggleLargePointerIconPreferenceClick();
|
||||||
return true;
|
return true;
|
||||||
|
} else if (mToggleDisableAnimationsPreference == preference) {
|
||||||
|
handleToggleDisableAnimations();
|
||||||
|
return true;
|
||||||
} else if (mToggleMasterMonoPreference == preference) {
|
} else if (mToggleMasterMonoPreference == preference) {
|
||||||
handleToggleMasterMonoPreferenceClick();
|
handleToggleMasterMonoPreferenceClick();
|
||||||
return true;
|
return true;
|
||||||
@@ -349,6 +362,14 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
|
|||||||
mToggleLargePointerIconPreference.isChecked() ? 1 : 0);
|
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() {
|
private void handleToggleMasterMonoPreferenceClick() {
|
||||||
Settings.System.putIntForUser(getContentResolver(), Settings.System.MASTER_MONO,
|
Settings.System.putIntForUser(getContentResolver(), Settings.System.MASTER_MONO,
|
||||||
mToggleMasterMonoPreference.isChecked() ? 1 : 0, UserHandle.USER_CURRENT);
|
mToggleMasterMonoPreference.isChecked() ? 1 : 0, UserHandle.USER_CURRENT);
|
||||||
@@ -389,6 +410,9 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
|
|||||||
mToggleLargePointerIconPreference =
|
mToggleLargePointerIconPreference =
|
||||||
(SwitchPreference) findPreference(TOGGLE_LARGE_POINTER_ICON);
|
(SwitchPreference) findPreference(TOGGLE_LARGE_POINTER_ICON);
|
||||||
|
|
||||||
|
mToggleDisableAnimationsPreference =
|
||||||
|
(SwitchPreference) findPreference(TOGGLE_DISABLE_ANIMATIONS);
|
||||||
|
|
||||||
// Master Mono
|
// Master Mono
|
||||||
mToggleMasterMonoPreference =
|
mToggleMasterMonoPreference =
|
||||||
(SwitchPreference) findPreference(TOGGLE_MASTER_MONO);
|
(SwitchPreference) findPreference(TOGGLE_MASTER_MONO);
|
||||||
@@ -620,6 +644,8 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
|
|||||||
mToggleLargePointerIconPreference.setChecked(Settings.Secure.getInt(getContentResolver(),
|
mToggleLargePointerIconPreference.setChecked(Settings.Secure.getInt(getContentResolver(),
|
||||||
Settings.Secure.ACCESSIBILITY_LARGE_POINTER_ICON, 0) != 0);
|
Settings.Secure.ACCESSIBILITY_LARGE_POINTER_ICON, 0) != 0);
|
||||||
|
|
||||||
|
updateDisableAnimationsToggle();
|
||||||
|
|
||||||
// Master mono
|
// Master mono
|
||||||
updateMasterMono();
|
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() {
|
private void updateMasterMono() {
|
||||||
final boolean masterMono = Settings.System.getIntForUser(
|
final boolean masterMono = Settings.System.getIntForUser(
|
||||||
getContentResolver(), Settings.System.MASTER_MONO,
|
getContentResolver(), Settings.System.MASTER_MONO,
|
||||||
|
Reference in New Issue
Block a user