Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3a2573b8 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add setting to disable animations"

parents 7bc0236c e0693ced
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -4353,6 +4353,8 @@
    <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] -->
    <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] -->
    <string name="accessibility_toggle_master_mono_title">Mono audio</string>
    <!-- Summary for the accessibility preference for master mono. [CHAR LIMIT=50] -->
+4 −0
Original line number Diff line number Diff line
@@ -62,6 +62,10 @@
        <SwitchPreference
                android:key="toggle_large_pointer_icon"
                android:title="@string/accessibility_toggle_large_pointer_icon_title" />

        <SwitchPreference
            android:key="toggle_disable_animations"
            android:title="@string/accessibility_disable_animations" />
    </PreferenceCategory>

    <PreferenceCategory
+39 −0
Original line number Diff line number Diff line
@@ -97,6 +97,7 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
            "toggle_lock_screen_rotation_preference";
    private static final String 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 =
            "toggle_master_mono";
    private static final String SELECT_LONG_PRESS_TIMEOUT_PREFERENCE =
@@ -135,6 +136,14 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
    // presentation.
    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 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,