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

Commit 1f1cb3a7 authored by Jernej Virag's avatar Jernej Virag Committed by Android (Google) Code Review
Browse files

Merge "Fix power+volume chord fallback when LPP option is disabled" into sc-dev

parents 157a83a6 fd540cbb
Loading
Loading
Loading
Loading
+18 −3
Original line number Diff line number Diff line
@@ -76,6 +76,8 @@ public class LongPressPowerButtonPreferenceController extends TogglePreferenceCo
     * frameworks/base/core/res/res/values/config.xml
     */
    @VisibleForTesting
    static final int KEY_CHORD_POWER_VOLUME_UP_NO_ACTION = 0;
    @VisibleForTesting
    static final int KEY_CHORD_POWER_VOLUME_UP_MUTE_TOGGLE = 1;
    @VisibleForTesting
    static final int KEY_CHORD_POWER_VOLUME_UP_GLOBAL_ACTIONS = 2;
@@ -89,6 +91,9 @@ public class LongPressPowerButtonPreferenceController extends TogglePreferenceCo
    private static final int POWER_BUTTON_LONG_PRESS_DEFAULT_VALUE_RESOURCE =
            R.integer.config_longPressOnPowerBehavior;

    private static final int KEY_CHORD_POWER_VOLUME_UP_DEFAULT_VALUE_RESOURCE =
            R.integer.config_keyChordPowerVolumeUp;

    @Nullable
    private SettingObserver mSettingsObserver;

@@ -177,10 +182,20 @@ public class LongPressPowerButtonPreferenceController extends TogglePreferenceCo
     * should show the power menu.
     */
    private boolean setPowerVolumeChordValue(boolean isPowerButtonLongPressChecked) {
        if (isPowerButtonLongPressChecked) {
            return Settings.Global.putInt(mContext.getContentResolver(),
                    KEY_CHORD_POWER_VOLUME_UP_SETTING, KEY_CHORD_POWER_VOLUME_UP_GLOBAL_ACTIONS);
        }

        // If the key chord defaults to mute toggle, we restore that setting if LPP option is
        // disabled. Otherwise we default to no action.
        boolean isMuteToggleKeyChordDefault = mContext.getResources().getInteger(
                KEY_CHORD_POWER_VOLUME_UP_DEFAULT_VALUE_RESOURCE)
                == KEY_CHORD_POWER_VOLUME_UP_MUTE_TOGGLE;
        return Settings.Global.putInt(mContext.getContentResolver(),
                KEY_CHORD_POWER_VOLUME_UP_SETTING, isPowerButtonLongPressChecked
                        ? KEY_CHORD_POWER_VOLUME_UP_GLOBAL_ACTIONS
                        : KEY_CHORD_POWER_VOLUME_UP_MUTE_TOGGLE);
                KEY_CHORD_POWER_VOLUME_UP_SETTING, isMuteToggleKeyChordDefault
                        ? KEY_CHORD_POWER_VOLUME_UP_MUTE_TOGGLE
                        : KEY_CHORD_POWER_VOLUME_UP_NO_ACTION);
    }

    /**
+22 −2
Original line number Diff line number Diff line
@@ -93,6 +93,25 @@ public class LongPressPowerButtonPreferenceControllerTest {
                com.android.internal.R.integer.config_longPressOnPowerBehavior))
                .thenReturn(8);

        mController.onPreferenceChange(null, false);
        assertThat(Settings.Global.getInt(mContext.getContentResolver(),
                Settings.Global.POWER_BUTTON_LONG_PRESS, -1)).isEqualTo(8);
        assertThat(Settings.Global.getInt(mContext.getContentResolver(),
                Settings.Global.KEY_CHORD_POWER_VOLUME_UP, -1)).isEqualTo(
                LongPressPowerButtonPreferenceController.KEY_CHORD_POWER_VOLUME_UP_NO_ACTION);
    }

    @Test
    public void preferenceUnchecked_muteChordDefault_longPressPowerSettingSetToDefaultValue() {
        // Value out of range chosen deliberately.
        when(mResources.getInteger(
                com.android.internal.R.integer.config_longPressOnPowerBehavior))
                .thenReturn(8);
        when(mResources.getInteger(
                com.android.internal.R.integer.config_keyChordPowerVolumeUp))
                .thenReturn(
                LongPressPowerButtonPreferenceController.KEY_CHORD_POWER_VOLUME_UP_MUTE_TOGGLE);

        mController.onPreferenceChange(null, false);
        assertThat(Settings.Global.getInt(mContext.getContentResolver(),
                Settings.Global.POWER_BUTTON_LONG_PRESS, -1)).isEqualTo(8);
@@ -115,9 +134,10 @@ public class LongPressPowerButtonPreferenceControllerTest {
                LongPressPowerButtonPreferenceController.LONG_PRESS_POWER_SHUT_OFF);
        assertThat(Settings.Global.getInt(mContext.getContentResolver(),
                Settings.Global.KEY_CHORD_POWER_VOLUME_UP, -1)).isEqualTo(
                LongPressPowerButtonPreferenceController.KEY_CHORD_POWER_VOLUME_UP_MUTE_TOGGLE);
                LongPressPowerButtonPreferenceController.KEY_CHORD_POWER_VOLUME_UP_NO_ACTION);
    }


    @Test
    public void preferenceUnchecked_assistDefaultGlobalActionsEnabled_setGlobalActions() {
        // Value out of range chosen deliberately.
@@ -136,6 +156,6 @@ public class LongPressPowerButtonPreferenceControllerTest {
                LongPressPowerButtonPreferenceController.LONG_PRESS_POWER_GLOBAL_ACTIONS);
        assertThat(Settings.Global.getInt(mContext.getContentResolver(),
                Settings.Global.KEY_CHORD_POWER_VOLUME_UP, -1)).isEqualTo(
                LongPressPowerButtonPreferenceController.KEY_CHORD_POWER_VOLUME_UP_MUTE_TOGGLE);
                LongPressPowerButtonPreferenceController.KEY_CHORD_POWER_VOLUME_UP_NO_ACTION);
    }
}