diff --git a/res/drawable/ic_power_settings.xml b/res/drawable/ic_power_settings.xml deleted file mode 100644 index b56e3328474..00000000000 --- a/res/drawable/ic_power_settings.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - \ No newline at end of file diff --git a/res/values/strings.xml b/res/values/strings.xml index 2ddbae37c4b..aeaea6116b8 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -13203,23 +13203,29 @@ cards & passes - Power menu + Press and hold power button - - Power button menu - - - Don\u2019t show any content + + Press and hold for the Assistant + + Press and hold for the power menu + + Press and hold disabled To use, first set a screen lock - + Hold for Assistant - + Trigger the Assistant by holding the power button + + Power & Emergency Menu:\nPress Power and Volume up at the same time. + + Prevent ringing:\nShortcut available in the volume menu. + Show wallet diff --git a/res/xml/gestures.xml b/res/xml/gestures.xml index 6de9c1ac4a3..175a826f108 100644 --- a/res/xml/gestures.xml +++ b/res/xml/gestures.xml @@ -86,4 +86,10 @@ android:title="@string/gesture_prevent_ringing_screen_title" android:fragment="com.android.settings.gestures.PreventRingingGestureSettings" settings:controller="com.android.settings.gestures.PreventRingingParentPreferenceController" /> + + diff --git a/res/xml/power_menu_settings.xml b/res/xml/power_menu_settings.xml index f88531e3802..caaeb979387 100644 --- a/res/xml/power_menu_settings.xml +++ b/res/xml/power_menu_settings.xml @@ -1,19 +1,16 @@ - + + + diff --git a/res/xml/system_dashboard_fragment.xml b/res/xml/system_dashboard_fragment.xml index 67377753f33..9228ddd5f5a 100644 --- a/res/xml/system_dashboard_fragment.xml +++ b/res/xml/system_dashboard_fragment.xml @@ -43,14 +43,6 @@ android:fragment="com.android.settings.datetime.DateTimeSettings" settings:controller="com.android.settings.datetime.DateTimePreferenceController"/> - - ) invocation -> { + int id = invocation.getArgument(0); + return getString(id); + }); when(mResources.getBoolean( com.android.internal.R.bool.config_longPressOnPowerForAssistantSettingAvailable)) .thenReturn(true); mController = new LongPressPowerButtonPreferenceController(mContext, KEY_LONG_PRESS_POWER_BUTTON); + mController.mAssistSwitch = mock(Preference.class); + mController.mFooterHint = mock(Preference.class); } @Test @@ -74,6 +88,60 @@ public class LongPressPowerButtonPreferenceControllerTest { assertThat(mController.isAvailable()).isFalse(); } + @Test + public void preferenceChecked_powerMenuHintTextShown() { + mController.onPreferenceChange(null, true); + + verify(mController.mFooterHint).setSummary( + getString( + R.string.power_menu_power_volume_up_hint)); + verify(mController.mFooterHint).setVisible(true); + } + + + @Test + public void preferenceUnchecked_keyChordEnabled_powerMenuHintTextShown() { + when(mResources.getInteger( + com.android.internal.R.integer.config_keyChordPowerVolumeUp)) + .thenReturn( + LongPressPowerButtonPreferenceController.KEY_CHORD_POWER_VOLUME_UP_GLOBAL_ACTIONS); + + mController.onPreferenceChange(null, false); + + verify(mController.mFooterHint).setSummary( + getString( + R.string.power_menu_power_volume_up_hint)); + verify(mController.mFooterHint).setVisible(true); + } + + @Test + public void preferenceChecked_hushGestureEnabled_powerMenuHintTextIncludesHushHint() { + when(mResources.getBoolean( + com.android.internal.R.bool.config_volumeHushGestureEnabled)) + .thenReturn(true); + + mController.onPreferenceChange(null, true); + + verify(mController.mFooterHint).setSummary( + getString( + R.string.power_menu_power_volume_up_hint) + "\n\n" + + getString( + R.string.power_menu_power_prevent_ringing_hint)); + verify(mController.mFooterHint).setVisible(true); + } + + + @Test + public void preferenceUnchecked_keyChordDisabled_powerMenuHintTextHidden() { + mController.onPreferenceChange(null, false); + when(mResources.getInteger( + com.android.internal.R.integer.config_keyChordPowerVolumeUp)) + .thenReturn( + LongPressPowerButtonPreferenceController.KEY_CHORD_POWER_VOLUME_UP_NO_ACTION); + + verify(mController.mFooterHint).setVisible(false); + } + @Test public void preferenceChecked_longPressPowerSettingSetToAssistant() { mController.onPreferenceChange(null, true); @@ -84,21 +152,29 @@ public class LongPressPowerButtonPreferenceControllerTest { assertThat(Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.KEY_CHORD_POWER_VOLUME_UP, -1)).isEqualTo( LongPressPowerButtonPreferenceController.KEY_CHORD_POWER_VOLUME_UP_GLOBAL_ACTIONS); + verify(mController.mAssistSwitch).setSummary( + getString( + R.string.power_menu_summary_long_press_for_assist_enabled)); } @Test public void preferenceUnchecked_longPressPowerSettingSetToDefaultValue() { - // Value out of range chosen deliberately. when(mResources.getInteger( com.android.internal.R.integer.config_longPressOnPowerBehavior)) - .thenReturn(8); + .thenReturn( + LongPressPowerButtonPreferenceController.LONG_PRESS_POWER_GLOBAL_ACTIONS); mController.onPreferenceChange(null, false); + assertThat(Settings.Global.getInt(mContext.getContentResolver(), - Settings.Global.POWER_BUTTON_LONG_PRESS, -1)).isEqualTo(8); + 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_NO_ACTION); + verify(mController.mAssistSwitch).setSummary( + getString( + R.string.power_menu_summary_long_press_for_assist_disabled_with_power_menu)); } @Test @@ -110,9 +186,10 @@ public class LongPressPowerButtonPreferenceControllerTest { when(mResources.getInteger( com.android.internal.R.integer.config_keyChordPowerVolumeUp)) .thenReturn( - LongPressPowerButtonPreferenceController.KEY_CHORD_POWER_VOLUME_UP_MUTE_TOGGLE); + 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); assertThat(Settings.Global.getInt(mContext.getContentResolver(), @@ -121,7 +198,7 @@ public class LongPressPowerButtonPreferenceControllerTest { } @Test - public void preferenceUnchecked_assistDefault_setShutOff() { + public void preferenceUnchecked_assistDefault_setNoAction() { // Value out of range chosen deliberately. when(mResources.getInteger( com.android.internal.R.integer.config_longPressOnPowerBehavior)) @@ -129,33 +206,19 @@ public class LongPressPowerButtonPreferenceControllerTest { LongPressPowerButtonPreferenceController.LONG_PRESS_POWER_ASSISTANT_VALUE); mController.onPreferenceChange(null, false); + assertThat(Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.POWER_BUTTON_LONG_PRESS, -1)).isEqualTo( - LongPressPowerButtonPreferenceController.LONG_PRESS_POWER_SHUT_OFF); + LongPressPowerButtonPreferenceController.LONG_PRESS_POWER_NO_ACTION); assertThat(Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.KEY_CHORD_POWER_VOLUME_UP, -1)).isEqualTo( LongPressPowerButtonPreferenceController.KEY_CHORD_POWER_VOLUME_UP_NO_ACTION); + verify(mController.mAssistSwitch).setSummary( + getString( + R.string.power_menu_summary_long_press_for_assist_disabled_no_action)); } - - @Test - public void preferenceUnchecked_assistDefaultGlobalActionsEnabled_setGlobalActions() { - // Value out of range chosen deliberately. - when(mResources.getInteger( - com.android.internal.R.integer.config_longPressOnPowerBehavior)) - .thenReturn( - LongPressPowerButtonPreferenceController.LONG_PRESS_POWER_ASSISTANT_VALUE); - Settings.Secure.putInt(mContext.getContentResolver(), - LongPressPowerButtonPreferenceController.CARDS_AVAILABLE_KEY, 1); - Settings.Secure.putInt(mContext.getContentResolver(), - LongPressPowerButtonPreferenceController.CARDS_ENABLED_KEY, 1); - - mController.onPreferenceChange(null, false); - 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_NO_ACTION); + private String getString(@StringRes int id) { + return ApplicationProvider.getApplicationContext().getString(id); } } diff --git a/tests/robotests/src/com/android/settings/gestures/PowerMenuPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/PowerMenuPreferenceControllerTest.java index 811ed70f268..1a82a139922 100644 --- a/tests/robotests/src/com/android/settings/gestures/PowerMenuPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/gestures/PowerMenuPreferenceControllerTest.java @@ -70,6 +70,6 @@ public class PowerMenuPreferenceControllerTest { .thenReturn(false); assertThat(mController.getAvailabilityStatus()).isEqualTo( - BasePreferenceController.CONDITIONALLY_UNAVAILABLE); + BasePreferenceController.UNSUPPORTED_ON_DEVICE); } }