Toggle Power + Volume chord with long press power to assist setting
Power + Volume chord setting should be toggled together with LPP setting. The LPP setting still remains the source of truth with Power + Volume chord being dependant on it. Bug: 179673796 Bug: 185205501 Test: make RunSettingsRoboTests ROBOTEST_FILTER="com.android.settings.gestures.*" Flash image on actual device and manually test toggling. Change-Id: Ie19ae55db7c6c07533ea6347e0a4e1e4505423e2
This commit is contained in:
@@ -46,6 +46,8 @@ public class LongPressPowerButtonPreferenceController extends TogglePreferenceCo
|
|||||||
Settings.Global.POWER_BUTTON_LONG_PRESS;
|
Settings.Global.POWER_BUTTON_LONG_PRESS;
|
||||||
private static final Uri POWER_BUTTON_LONG_PRESS_SETTING_URI =
|
private static final Uri POWER_BUTTON_LONG_PRESS_SETTING_URI =
|
||||||
Settings.Global.getUriFor(POWER_BUTTON_LONG_PRESS_SETTING);
|
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.
|
// Used for fallback to global actions if necessary.
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
@@ -55,7 +57,7 @@ public class LongPressPowerButtonPreferenceController extends TogglePreferenceCo
|
|||||||
static final String CARDS_ENABLED_KEY = Settings.Secure.GLOBAL_ACTIONS_PANEL_ENABLED;
|
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
|
* {@link com.android.server.policy.PhoneWindowManager#LONG_PRESS_POWER_GLOBAL_ACTIONS} for
|
||||||
* source of the value.
|
* source of the value.
|
||||||
@@ -67,6 +69,17 @@ public class LongPressPowerButtonPreferenceController extends TogglePreferenceCo
|
|||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
static final int LONG_PRESS_POWER_ASSISTANT_VALUE = 5; // Settings.Secure.ASSISTANT
|
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.
|
* Value used for long press power button behaviour when the Assist setting is disabled.
|
||||||
*
|
*
|
||||||
@@ -126,6 +139,17 @@ public class LongPressPowerButtonPreferenceController extends TogglePreferenceCo
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean setChecked(boolean isChecked) {
|
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) {
|
if (isChecked) {
|
||||||
return Settings.Global.putInt(mContext.getContentResolver(),
|
return Settings.Global.putInt(mContext.getContentResolver(),
|
||||||
POWER_BUTTON_LONG_PRESS_SETTING, LONG_PRESS_POWER_ASSISTANT_VALUE);
|
POWER_BUTTON_LONG_PRESS_SETTING, LONG_PRESS_POWER_ASSISTANT_VALUE);
|
||||||
@@ -147,6 +171,18 @@ public class LongPressPowerButtonPreferenceController extends TogglePreferenceCo
|
|||||||
POWER_BUTTON_LONG_PRESS_SETTING, defaultPowerButtonValue);
|
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
|
* Returns true if the global actions menu on power button click is enabled via any of the
|
||||||
* content options.
|
* content options.
|
||||||
|
@@ -81,6 +81,9 @@ public class LongPressPowerButtonPreferenceControllerTest {
|
|||||||
assertThat(Settings.Global.getInt(mContext.getContentResolver(),
|
assertThat(Settings.Global.getInt(mContext.getContentResolver(),
|
||||||
Settings.Global.POWER_BUTTON_LONG_PRESS, -1)).isEqualTo(
|
Settings.Global.POWER_BUTTON_LONG_PRESS, -1)).isEqualTo(
|
||||||
LongPressPowerButtonPreferenceController.LONG_PRESS_POWER_ASSISTANT_VALUE);
|
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
|
@Test
|
||||||
@@ -93,6 +96,9 @@ public class LongPressPowerButtonPreferenceControllerTest {
|
|||||||
mController.onPreferenceChange(null, false);
|
mController.onPreferenceChange(null, false);
|
||||||
assertThat(Settings.Global.getInt(mContext.getContentResolver(),
|
assertThat(Settings.Global.getInt(mContext.getContentResolver(),
|
||||||
Settings.Global.POWER_BUTTON_LONG_PRESS, -1)).isEqualTo(8);
|
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
|
@Test
|
||||||
@@ -107,6 +113,9 @@ public class LongPressPowerButtonPreferenceControllerTest {
|
|||||||
assertThat(Settings.Global.getInt(mContext.getContentResolver(),
|
assertThat(Settings.Global.getInt(mContext.getContentResolver(),
|
||||||
Settings.Global.POWER_BUTTON_LONG_PRESS, -1)).isEqualTo(
|
Settings.Global.POWER_BUTTON_LONG_PRESS, -1)).isEqualTo(
|
||||||
LongPressPowerButtonPreferenceController.LONG_PRESS_POWER_SHUT_OFF);
|
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
|
@Test
|
||||||
@@ -125,5 +134,8 @@ public class LongPressPowerButtonPreferenceControllerTest {
|
|||||||
assertThat(Settings.Global.getInt(mContext.getContentResolver(),
|
assertThat(Settings.Global.getInt(mContext.getContentResolver(),
|
||||||
Settings.Global.POWER_BUTTON_LONG_PRESS, -1)).isEqualTo(
|
Settings.Global.POWER_BUTTON_LONG_PRESS, -1)).isEqualTo(
|
||||||
LongPressPowerButtonPreferenceController.LONG_PRESS_POWER_GLOBAL_ACTIONS);
|
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user