Don't show KeyguardPresentation on the display which is always unlocked

It's already the case that always unlocked display are in their own
group, so with the existing logic we wont' show KeyguardPresentation on
them. It's displays that are NOT always unlocked but also in a
non-default group that we're changing to show KeyguardPresentation on.

Bug: 218587709
Test: atest KeyguardDisplayManagerTest
Change-Id: Idf1f71b59941daeb30f1bef3d87717e01e8d8f0f
This commit is contained in:
Iris Yang
2022-04-26 17:00:38 +08:00
parent 48d602a8a6
commit 07550e290b
2 changed files with 12 additions and 14 deletions

View File

@@ -16,7 +16,6 @@
package com.android.keyguard;
import static android.view.Display.DEFAULT_DISPLAY;
import static android.view.Display.DEFAULT_DISPLAY_GROUP;
import android.app.Presentation;
import android.content.Context;
@@ -119,10 +118,9 @@ public class KeyguardDisplayManager {
if (DEBUG) Log.i(TAG, "Do not show KeyguardPresentation on a private display");
return false;
}
if (mTmpDisplayInfo.displayGroupId != DEFAULT_DISPLAY_GROUP) {
if ((mTmpDisplayInfo.flags & Display.FLAG_ALWAYS_UNLOCKED) != 0) {
if (DEBUG) {
Log.i(TAG,
"Do not show KeyguardPresentation on a non-default group display");
Log.i(TAG, "Do not show KeyguardPresentation on an unlocked display");
}
return false;
}

View File

@@ -70,7 +70,7 @@ public class KeyguardDisplayManagerTest extends SysuiTestCase {
private Display mSecondaryDisplay;
// This display is in a different group from the default and secondary displays.
private Display mDifferentGroupDisplay;
private Display mAlwaysUnlockedDisplay;
@Before
public void setUp() {
@@ -86,12 +86,12 @@ public class KeyguardDisplayManagerTest extends SysuiTestCase {
Display.DEFAULT_DISPLAY + 1,
new DisplayInfo(), DEFAULT_DISPLAY_ADJUSTMENTS);
DisplayInfo differentGroupInfo = new DisplayInfo();
differentGroupInfo.displayId = Display.DEFAULT_DISPLAY + 2;
differentGroupInfo.displayGroupId = Display.DEFAULT_DISPLAY_GROUP + 1;
mDifferentGroupDisplay = new Display(DisplayManagerGlobal.getInstance(),
DisplayInfo alwaysUnlockedDisplayInfo = new DisplayInfo();
alwaysUnlockedDisplayInfo.displayId = Display.DEFAULT_DISPLAY + 2;
alwaysUnlockedDisplayInfo.flags = Display.FLAG_ALWAYS_UNLOCKED;
mAlwaysUnlockedDisplay = new Display(DisplayManagerGlobal.getInstance(),
Display.DEFAULT_DISPLAY,
differentGroupInfo, DEFAULT_DISPLAY_ADJUSTMENTS);
alwaysUnlockedDisplayInfo, DEFAULT_DISPLAY_ADJUSTMENTS);
}
@Test
@@ -110,18 +110,18 @@ public class KeyguardDisplayManagerTest extends SysuiTestCase {
}
@Test
public void testShow_includeNonDefaultGroupDisplay() {
public void testShow_includeAlwaysUnlockedDisplay() {
when(mDisplayManager.getDisplays()).thenReturn(
new Display[]{mDefaultDisplay, mDifferentGroupDisplay});
new Display[]{mDefaultDisplay, mAlwaysUnlockedDisplay});
mManager.show();
verify(mManager, never()).createPresentation(any());
}
@Test
public void testShow_includeSecondaryAndNonDefaultGroupDisplays() {
public void testShow_includeSecondaryAndAlwaysUnlockedDisplays() {
when(mDisplayManager.getDisplays()).thenReturn(
new Display[]{mDefaultDisplay, mSecondaryDisplay, mDifferentGroupDisplay});
new Display[]{mDefaultDisplay, mSecondaryDisplay, mAlwaysUnlockedDisplay});
mManager.show();
verify(mManager, times(1)).createPresentation(eq(mSecondaryDisplay));