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

Commit 699bbe76 authored by Lais Andrade's avatar Lais Andrade
Browse files

Fix feedback for main haptic settings toggle

The SettingsMainSwitchPreferenceController might trigger a state change
twice on the page main switch when the user toggles the setting value.

Make sure we only trigger haptic feedback when the state is changing
between untoggled to toggled to avoid a double-click feedback.

No flag for small bug fix, no UI changes.

Fix: 338334977
Test: enable the "Use vibration & haptics" settings and feel a single
      click feedback
Change-Id: I0c22b99bcb40f35ebe09c153133c354306ed1ff0
parent 1227eb31
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -83,11 +83,14 @@ public class VibrationMainSwitchPreferenceController extends SettingsMainSwitchP

    @Override
    public boolean setChecked(boolean isChecked) {
        // The main switch change can be triggered by both the user click and the
        // SettingsMainSwitchPreferenceController state change. Make sure we only do it once.
        boolean wasChecked = isChecked();
        boolean success = Settings.System.putInt(mContext.getContentResolver(),
                VibrationPreferenceConfig.MAIN_SWITCH_SETTING_KEY,
                isChecked ? ON : OFF);

        if (success && isChecked) {
        if (success && !wasChecked && isChecked) {
            // Play a haptic as preview for the main toggle only when touch feedback is enabled.
            VibrationPreferenceConfig.playVibrationPreview(
                    mVibrator, VibrationAttributes.USAGE_TOUCH);