Merge "Update window with FLAG_SECURE when bouncer is showing" into tm-dev

This commit is contained in:
Matt Pietal 2022-04-01 22:37:17 +00:00 committed by Android (Google) Code Review
commit 2c3858b90c
2 changed files with 34 additions and 1 deletions

View File

@ -30,6 +30,7 @@ import android.content.res.Configuration;
import android.graphics.PixelFormat;
import android.graphics.Region;
import android.os.Binder;
import android.os.Build;
import android.os.RemoteException;
import android.os.Trace;
import android.util.Log;
@ -327,6 +328,16 @@ public class NotificationShadeWindowControllerImpl implements NotificationShadeW
Trace.setCounter("display_max_refresh_rate",
(long) mLpChanged.preferredMaxDisplayRefreshRate);
}
if (state.mBouncerShowing && !isDebuggable()) {
mLpChanged.flags |= LayoutParams.FLAG_SECURE;
} else {
mLpChanged.flags &= ~LayoutParams.FLAG_SECURE;
}
}
protected boolean isDebuggable() {
return Build.IS_DEBUGGABLE;
}
private void adjustScreenOrientation(State state) {

View File

@ -18,6 +18,7 @@ package com.android.systemui.statusbar.phone;
import static android.view.WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM;
import static android.view.WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
import static android.view.WindowManager.LayoutParams.FLAG_SECURE;
import static android.view.WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER;
import static com.google.common.truth.Truth.assertThat;
@ -92,7 +93,12 @@ public class NotificationShadeWindowControllerImplTest extends SysuiTestCase {
mWindowManager, mActivityManager, mDozeParameters, mStatusBarStateController,
mConfigurationController, mKeyguardViewMediator, mKeyguardBypassController,
mColorExtractor, mDumpManager, mKeyguardStateController,
mScreenOffAnimationController, mAuthController);
mScreenOffAnimationController, mAuthController) {
@Override
protected boolean isDebuggable() {
return false;
}
};
mNotificationShadeWindowController.setScrimsVisibilityListener((visibility) -> {});
mNotificationShadeWindowController.setNotificationShadeView(mNotificationShadeWindowView);
@ -231,6 +237,22 @@ public class NotificationShadeWindowControllerImplTest extends SysuiTestCase {
assertThat((mLayoutParameters.getValue().flags & FLAG_ALT_FOCUSABLE_IM) == 0).isTrue();
}
@Test
public void setKeyguardShowing_enablesSecureFlag() {
mNotificationShadeWindowController.setBouncerShowing(true);
verify(mWindowManager).updateViewLayout(any(), mLayoutParameters.capture());
assertThat((mLayoutParameters.getValue().flags & FLAG_SECURE) != 0).isTrue();
}
@Test
public void setKeyguardNotShowing_disablesSecureFlag() {
mNotificationShadeWindowController.setBouncerShowing(false);
verify(mWindowManager).updateViewLayout(any(), mLayoutParameters.capture());
assertThat((mLayoutParameters.getValue().flags & FLAG_SECURE) == 0).isTrue();
}
@Test
public void rotationBecameAllowed_layoutParamsUpdated() {
mNotificationShadeWindowController.setKeyguardShowing(true);