Loading core/res/res/values/config.xml +1 −0 Original line number Diff line number Diff line Loading @@ -2774,6 +2774,7 @@ <item>power</item> <item>restart</item> <item>logout</item> <item>screenshot</item> <item>bugreport</item> </string-array> Loading packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java +21 −1 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ import static android.view.WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM; import static android.view.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS; import static android.view.WindowManager.ScreenshotSource.SCREENSHOT_GLOBAL_ACTIONS; import static android.view.WindowManager.TAKE_SCREENSHOT_FULLSCREEN; import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_2BUTTON; import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.SOME_AUTH_REQUIRED_AFTER_USER_REQUEST; import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STRONG_AUTH_NOT_REQUIRED; Loading Loading @@ -547,7 +548,7 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener, if (!mDeviceProvisioned && !action.showBeforeProvisioning()) { return false; } return true; return action.shouldShow(); } /** Loading Loading @@ -962,6 +963,8 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener, @VisibleForTesting class ScreenshotAction extends SinglePressAction implements LongPressAction { final String KEY_SYSTEM_NAV_2BUTTONS = "system_nav_2buttons"; public ScreenshotAction() { super(R.drawable.ic_screenshot, R.string.global_action_screenshot); } Loading Loading @@ -993,6 +996,19 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener, return false; } @Override public boolean shouldShow() { // Include screenshot in power menu for legacy nav because it is not accessible // through Recents in that mode return is2ButtonNavigationEnabled(); } boolean is2ButtonNavigationEnabled() { return NAV_BAR_MODE_2BUTTON == mContext.getResources().getInteger( com.android.internal.R.integer.config_navBarInteractionMode); } @Override public boolean onLongPress() { if (FeatureFlagUtils.isEnabled(mContext, FeatureFlagUtils.SCREENRECORD_LONG_PRESS)) { Loading Loading @@ -1616,6 +1632,10 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener, * @return */ CharSequence getMessage(); default boolean shouldShow() { return true; } } /** Loading packages/SystemUI/tests/src/com/android/systemui/globalactions/GlobalActionsDialogTest.java +23 −0 Original line number Diff line number Diff line Loading @@ -49,6 +49,7 @@ import android.testing.TestableLooper; import android.util.FeatureFlagUtils; import android.view.IWindowManager; import android.view.View; import android.view.WindowManagerPolicyConstants; import android.widget.FrameLayout; import androidx.test.filters.SmallTest; Loading Loading @@ -241,6 +242,28 @@ public class GlobalActionsDialogTest extends SysuiTestCase { verifyLogPosted(GlobalActionsDialog.GlobalActionsEvent.GA_SCREENSHOT_LONG_PRESS); } @Test public void testShouldShowScreenshot() { mContext.getOrCreateTestableResources().addOverride( com.android.internal.R.integer.config_navBarInteractionMode, WindowManagerPolicyConstants.NAV_BAR_MODE_2BUTTON); GlobalActionsDialog.ScreenshotAction screenshotAction = mGlobalActionsDialog.makeScreenshotActionForTesting(); assertThat(screenshotAction.shouldShow()).isTrue(); } @Test public void testShouldNotShowScreenshot() { mContext.getOrCreateTestableResources().addOverride( com.android.internal.R.integer.config_navBarInteractionMode, WindowManagerPolicyConstants.NAV_BAR_MODE_3BUTTON); GlobalActionsDialog.ScreenshotAction screenshotAction = mGlobalActionsDialog.makeScreenshotActionForTesting(); assertThat(screenshotAction.shouldShow()).isFalse(); } private void verifyLogPosted(GlobalActionsDialog.GlobalActionsEvent event) { mTestableLooper.processAllMessages(); verify(mUiEventLogger, times(1)) Loading Loading
core/res/res/values/config.xml +1 −0 Original line number Diff line number Diff line Loading @@ -2774,6 +2774,7 @@ <item>power</item> <item>restart</item> <item>logout</item> <item>screenshot</item> <item>bugreport</item> </string-array> Loading
packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java +21 −1 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ import static android.view.WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM; import static android.view.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS; import static android.view.WindowManager.ScreenshotSource.SCREENSHOT_GLOBAL_ACTIONS; import static android.view.WindowManager.TAKE_SCREENSHOT_FULLSCREEN; import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_2BUTTON; import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.SOME_AUTH_REQUIRED_AFTER_USER_REQUEST; import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STRONG_AUTH_NOT_REQUIRED; Loading Loading @@ -547,7 +548,7 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener, if (!mDeviceProvisioned && !action.showBeforeProvisioning()) { return false; } return true; return action.shouldShow(); } /** Loading Loading @@ -962,6 +963,8 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener, @VisibleForTesting class ScreenshotAction extends SinglePressAction implements LongPressAction { final String KEY_SYSTEM_NAV_2BUTTONS = "system_nav_2buttons"; public ScreenshotAction() { super(R.drawable.ic_screenshot, R.string.global_action_screenshot); } Loading Loading @@ -993,6 +996,19 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener, return false; } @Override public boolean shouldShow() { // Include screenshot in power menu for legacy nav because it is not accessible // through Recents in that mode return is2ButtonNavigationEnabled(); } boolean is2ButtonNavigationEnabled() { return NAV_BAR_MODE_2BUTTON == mContext.getResources().getInteger( com.android.internal.R.integer.config_navBarInteractionMode); } @Override public boolean onLongPress() { if (FeatureFlagUtils.isEnabled(mContext, FeatureFlagUtils.SCREENRECORD_LONG_PRESS)) { Loading Loading @@ -1616,6 +1632,10 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener, * @return */ CharSequence getMessage(); default boolean shouldShow() { return true; } } /** Loading
packages/SystemUI/tests/src/com/android/systemui/globalactions/GlobalActionsDialogTest.java +23 −0 Original line number Diff line number Diff line Loading @@ -49,6 +49,7 @@ import android.testing.TestableLooper; import android.util.FeatureFlagUtils; import android.view.IWindowManager; import android.view.View; import android.view.WindowManagerPolicyConstants; import android.widget.FrameLayout; import androidx.test.filters.SmallTest; Loading Loading @@ -241,6 +242,28 @@ public class GlobalActionsDialogTest extends SysuiTestCase { verifyLogPosted(GlobalActionsDialog.GlobalActionsEvent.GA_SCREENSHOT_LONG_PRESS); } @Test public void testShouldShowScreenshot() { mContext.getOrCreateTestableResources().addOverride( com.android.internal.R.integer.config_navBarInteractionMode, WindowManagerPolicyConstants.NAV_BAR_MODE_2BUTTON); GlobalActionsDialog.ScreenshotAction screenshotAction = mGlobalActionsDialog.makeScreenshotActionForTesting(); assertThat(screenshotAction.shouldShow()).isTrue(); } @Test public void testShouldNotShowScreenshot() { mContext.getOrCreateTestableResources().addOverride( com.android.internal.R.integer.config_navBarInteractionMode, WindowManagerPolicyConstants.NAV_BAR_MODE_3BUTTON); GlobalActionsDialog.ScreenshotAction screenshotAction = mGlobalActionsDialog.makeScreenshotActionForTesting(); assertThat(screenshotAction.shouldShow()).isFalse(); } private void verifyLogPosted(GlobalActionsDialog.GlobalActionsEvent event) { mTestableLooper.processAllMessages(); verify(mUiEventLogger, times(1)) Loading