Loading src/com/android/settings/gestures/LongPressPowerButtonPreferenceController.java +37 −1 Original line number Diff line number Diff line Loading @@ -46,6 +46,8 @@ public class LongPressPowerButtonPreferenceController extends TogglePreferenceCo Settings.Global.POWER_BUTTON_LONG_PRESS; private static final Uri POWER_BUTTON_LONG_PRESS_SETTING_URI = Settings.Global.getUriFor(POWER_BUTTON_LONG_PRESS_SETTING); private static final String KEY_CHORD_POWER_VOLUME_UP_SETTING = Settings.Global.KEY_CHORD_POWER_VOLUME_UP; // Used for fallback to global actions if necessary. @VisibleForTesting Loading @@ -55,7 +57,7 @@ public class LongPressPowerButtonPreferenceController extends TogglePreferenceCo static final String CARDS_ENABLED_KEY = Settings.Secure.GLOBAL_ACTIONS_PANEL_ENABLED; /** * Value used for long press power button behaviour when Assist setting is enabled. * Values used for long press power button behaviour when Assist setting is enabled. * * {@link com.android.server.policy.PhoneWindowManager#LONG_PRESS_POWER_GLOBAL_ACTIONS} for * source of the value. Loading @@ -67,6 +69,17 @@ public class LongPressPowerButtonPreferenceController extends TogglePreferenceCo @VisibleForTesting static final int LONG_PRESS_POWER_ASSISTANT_VALUE = 5; // Settings.Secure.ASSISTANT /** * Values used for volume key chord behaviour when Assist setting is enabled. * * Values based on config_keyChordPowerVolumeUp in * frameworks/base/core/res/res/values/config.xml */ @VisibleForTesting static final int KEY_CHORD_POWER_VOLUME_UP_MUTE_TOGGLE = 1; @VisibleForTesting static final int KEY_CHORD_POWER_VOLUME_UP_GLOBAL_ACTIONS = 2; /** * Value used for long press power button behaviour when the Assist setting is disabled. * Loading Loading @@ -126,6 +139,17 @@ public class LongPressPowerButtonPreferenceController extends TogglePreferenceCo @Override public boolean setChecked(boolean isChecked) { if (setPowerLongPressValue(isChecked)) { // The key chord value is dependant on the long press setting and it always // toggled in tandem. POWER_BUTTON_LONG_PRESS_SETTING is always the source // of truth for both. return setPowerVolumeChordValue(isChecked); } return false; } private boolean setPowerLongPressValue(boolean isChecked) { if (isChecked) { return Settings.Global.putInt(mContext.getContentResolver(), POWER_BUTTON_LONG_PRESS_SETTING, LONG_PRESS_POWER_ASSISTANT_VALUE); Loading @@ -147,6 +171,18 @@ public class LongPressPowerButtonPreferenceController extends TogglePreferenceCo POWER_BUTTON_LONG_PRESS_SETTING, defaultPowerButtonValue); } /** * Updates {@link Settings.Global.KEY_CHORD_POWER_VOLUME_UP} based on the changed value of * {@link #POWER_BUTTON_LONG_PRESS_SETTING}. If power button is used for Assist, key chord * should show the power menu. */ private boolean setPowerVolumeChordValue(boolean isPowerButtonLongPressChecked) { 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); } /** * Returns true if the global actions menu on power button click is enabled via any of the * content options. Loading tests/robotests/src/com/android/settings/gestures/LongPressPowerButtonPreferenceControllerTest.java +12 −0 Original line number Diff line number Diff line Loading @@ -81,6 +81,9 @@ public class LongPressPowerButtonPreferenceControllerTest { assertThat(Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.POWER_BUTTON_LONG_PRESS, -1)).isEqualTo( LongPressPowerButtonPreferenceController.LONG_PRESS_POWER_ASSISTANT_VALUE); assertThat(Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.KEY_CHORD_POWER_VOLUME_UP, -1)).isEqualTo( LongPressPowerButtonPreferenceController.KEY_CHORD_POWER_VOLUME_UP_GLOBAL_ACTIONS); } @Test Loading @@ -93,6 +96,9 @@ public class LongPressPowerButtonPreferenceControllerTest { 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_MUTE_TOGGLE); } @Test Loading @@ -107,6 +113,9 @@ public class LongPressPowerButtonPreferenceControllerTest { assertThat(Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.POWER_BUTTON_LONG_PRESS, -1)).isEqualTo( 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); } @Test Loading @@ -125,5 +134,8 @@ public class LongPressPowerButtonPreferenceControllerTest { assertThat(Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.POWER_BUTTON_LONG_PRESS, -1)).isEqualTo( 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); } } Loading
src/com/android/settings/gestures/LongPressPowerButtonPreferenceController.java +37 −1 Original line number Diff line number Diff line Loading @@ -46,6 +46,8 @@ public class LongPressPowerButtonPreferenceController extends TogglePreferenceCo Settings.Global.POWER_BUTTON_LONG_PRESS; private static final Uri POWER_BUTTON_LONG_PRESS_SETTING_URI = Settings.Global.getUriFor(POWER_BUTTON_LONG_PRESS_SETTING); private static final String KEY_CHORD_POWER_VOLUME_UP_SETTING = Settings.Global.KEY_CHORD_POWER_VOLUME_UP; // Used for fallback to global actions if necessary. @VisibleForTesting Loading @@ -55,7 +57,7 @@ public class LongPressPowerButtonPreferenceController extends TogglePreferenceCo static final String CARDS_ENABLED_KEY = Settings.Secure.GLOBAL_ACTIONS_PANEL_ENABLED; /** * Value used for long press power button behaviour when Assist setting is enabled. * Values used for long press power button behaviour when Assist setting is enabled. * * {@link com.android.server.policy.PhoneWindowManager#LONG_PRESS_POWER_GLOBAL_ACTIONS} for * source of the value. Loading @@ -67,6 +69,17 @@ public class LongPressPowerButtonPreferenceController extends TogglePreferenceCo @VisibleForTesting static final int LONG_PRESS_POWER_ASSISTANT_VALUE = 5; // Settings.Secure.ASSISTANT /** * Values used for volume key chord behaviour when Assist setting is enabled. * * Values based on config_keyChordPowerVolumeUp in * frameworks/base/core/res/res/values/config.xml */ @VisibleForTesting static final int KEY_CHORD_POWER_VOLUME_UP_MUTE_TOGGLE = 1; @VisibleForTesting static final int KEY_CHORD_POWER_VOLUME_UP_GLOBAL_ACTIONS = 2; /** * Value used for long press power button behaviour when the Assist setting is disabled. * Loading Loading @@ -126,6 +139,17 @@ public class LongPressPowerButtonPreferenceController extends TogglePreferenceCo @Override public boolean setChecked(boolean isChecked) { if (setPowerLongPressValue(isChecked)) { // The key chord value is dependant on the long press setting and it always // toggled in tandem. POWER_BUTTON_LONG_PRESS_SETTING is always the source // of truth for both. return setPowerVolumeChordValue(isChecked); } return false; } private boolean setPowerLongPressValue(boolean isChecked) { if (isChecked) { return Settings.Global.putInt(mContext.getContentResolver(), POWER_BUTTON_LONG_PRESS_SETTING, LONG_PRESS_POWER_ASSISTANT_VALUE); Loading @@ -147,6 +171,18 @@ public class LongPressPowerButtonPreferenceController extends TogglePreferenceCo POWER_BUTTON_LONG_PRESS_SETTING, defaultPowerButtonValue); } /** * Updates {@link Settings.Global.KEY_CHORD_POWER_VOLUME_UP} based on the changed value of * {@link #POWER_BUTTON_LONG_PRESS_SETTING}. If power button is used for Assist, key chord * should show the power menu. */ private boolean setPowerVolumeChordValue(boolean isPowerButtonLongPressChecked) { 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); } /** * Returns true if the global actions menu on power button click is enabled via any of the * content options. Loading
tests/robotests/src/com/android/settings/gestures/LongPressPowerButtonPreferenceControllerTest.java +12 −0 Original line number Diff line number Diff line Loading @@ -81,6 +81,9 @@ public class LongPressPowerButtonPreferenceControllerTest { assertThat(Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.POWER_BUTTON_LONG_PRESS, -1)).isEqualTo( LongPressPowerButtonPreferenceController.LONG_PRESS_POWER_ASSISTANT_VALUE); assertThat(Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.KEY_CHORD_POWER_VOLUME_UP, -1)).isEqualTo( LongPressPowerButtonPreferenceController.KEY_CHORD_POWER_VOLUME_UP_GLOBAL_ACTIONS); } @Test Loading @@ -93,6 +96,9 @@ public class LongPressPowerButtonPreferenceControllerTest { 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_MUTE_TOGGLE); } @Test Loading @@ -107,6 +113,9 @@ public class LongPressPowerButtonPreferenceControllerTest { assertThat(Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.POWER_BUTTON_LONG_PRESS, -1)).isEqualTo( 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); } @Test Loading @@ -125,5 +134,8 @@ public class LongPressPowerButtonPreferenceControllerTest { assertThat(Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.POWER_BUTTON_LONG_PRESS, -1)).isEqualTo( 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); } }