Only show lock icon on devices using faceauth
Don't show on devices with faceauth + udfps enrolled Test: manual, atest SystemUITests Bug: 172050991 Change-Id: I2b0acfd5d07286c57e6da0637747ceacdcd73cc6
This commit is contained in:
@@ -1900,6 +1900,15 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
|
||||
mIsUdfpsEnrolled = mAuthController.isUdfpsEnrolled(userId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether to show the lock icon on lock screen and bouncer. This depends on the enrolled
|
||||
* biometrics to the device.
|
||||
*/
|
||||
public boolean shouldShowLockIcon() {
|
||||
return isFaceAuthEnabledForUser(KeyguardUpdateMonitor.getCurrentUser())
|
||||
&& !isUdfpsEnrolled();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return true if there's at least one udfps enrolled
|
||||
*/
|
||||
|
||||
@@ -164,10 +164,10 @@ public class KeyguardClockPositionAlgorithm {
|
||||
public void setup(int statusBarMinHeight, int maxShadeBottom, int notificationStackHeight,
|
||||
float panelExpansion, int parentHeight, int keyguardStatusHeight, int clockPreferredY,
|
||||
boolean hasCustomClock, boolean hasVisibleNotifs, float dark, float emptyDragAmount,
|
||||
boolean bypassEnabled, int unlockedStackScrollerPadding, boolean udfpsEnrolled,
|
||||
boolean bypassEnabled, int unlockedStackScrollerPadding, boolean showLockIcon,
|
||||
float qsExpansion) {
|
||||
mMinTopMargin = statusBarMinHeight + (udfpsEnrolled ? mContainerTopPaddingWithoutLockIcon :
|
||||
mContainerTopPaddingWithLockIcon);
|
||||
mMinTopMargin = statusBarMinHeight + (showLockIcon
|
||||
? mContainerTopPaddingWithLockIcon : mContainerTopPaddingWithoutLockIcon);
|
||||
mMaxShadeBottom = maxShadeBottom;
|
||||
mNotificationStackHeight = notificationStackHeight;
|
||||
mPanelExpansion = panelExpansion;
|
||||
|
||||
@@ -501,7 +501,7 @@ public class LockscreenLockIconController {
|
||||
if (mBlockUpdates && canBlockUpdates()) {
|
||||
shouldUpdate = false;
|
||||
}
|
||||
if (shouldUpdate && mLockIcon != null) {
|
||||
if (shouldUpdate && mLockIcon != null && mLockIcon.getVisibility() != GONE) {
|
||||
mLockIcon.update(state,
|
||||
mStatusBarStateController.isDozing(), mKeyguardJustShown);
|
||||
}
|
||||
@@ -549,16 +549,14 @@ public class LockscreenLockIconController {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (mKeyguardUpdateMonitor.isUdfpsEnrolled()) {
|
||||
boolean changed = mLockIcon.getVisibility() == GONE;
|
||||
if (!mKeyguardUpdateMonitor.shouldShowLockIcon()) {
|
||||
boolean changed = mLockIcon.getVisibility() != GONE;
|
||||
mLockIcon.setVisibility(GONE);
|
||||
return changed;
|
||||
}
|
||||
|
||||
boolean onAodOrDocked = mStatusBarStateController.isDozing() || mDocked;
|
||||
boolean invisible = onAodOrDocked || mWakeAndUnlockRunning || mShowingLaunchAffordance
|
||||
|| (mKeyguardSecurityModel.getSecurityMode(KeyguardUpdateMonitor.getCurrentUser())
|
||||
== KeyguardSecurityModel.SecurityMode.None);
|
||||
boolean invisible = onAodOrDocked || mWakeAndUnlockRunning || mShowingLaunchAffordance;
|
||||
boolean fingerprintOrBypass = mFingerprintUnlock
|
||||
|| mKeyguardBypassController.getBypassEnabled();
|
||||
if (fingerprintOrBypass && !mBouncerShowingScrimmed) {
|
||||
|
||||
@@ -912,7 +912,8 @@ public class NotificationPanelViewController extends PanelViewController {
|
||||
clockPreferredY, hasCustomClock(),
|
||||
hasVisibleNotifications, mInterpolatedDarkAmount, mEmptyDragAmount,
|
||||
bypassEnabled, getUnlockedStackScrollerPadding(),
|
||||
mUpdateMonitor.isUdfpsEnrolled(), getQsExpansionFraction());
|
||||
mUpdateMonitor.shouldShowLockIcon(),
|
||||
getQsExpansionFraction());
|
||||
mClockPositionAlgorithm.run(mClockPositionResult);
|
||||
mKeyguardStatusViewController.updatePosition(
|
||||
mClockPositionResult.clockX, mClockPositionResult.clockY,
|
||||
|
||||
@@ -91,6 +91,7 @@ public class LockscreenIconControllerTest extends SysuiTestCase {
|
||||
public void setUp() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
|
||||
when(mKeyguardUpdateMonitor.shouldShowLockIcon()).thenReturn(true);
|
||||
when(mLockIcon.getContext()).thenReturn(mContext);
|
||||
mLockIconController = new LockscreenLockIconController(
|
||||
mLockscreenGestureLogger, mKeyguardUpdateMonitor, mLockPatternUtils,
|
||||
@@ -145,12 +146,10 @@ public class LockscreenIconControllerTest extends SysuiTestCase {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testVisibility_noBouncer() {
|
||||
// no security (ie: no lock screen OR swipe to unlock)
|
||||
when(mKeyguardSecurityModel.getSecurityMode(anyInt())).thenReturn(
|
||||
KeyguardSecurityModel.SecurityMode.None);
|
||||
public void testVisibility_doNotShowLockIcon() {
|
||||
when(mKeyguardUpdateMonitor.shouldShowLockIcon()).thenReturn(false);
|
||||
|
||||
mOnAttachStateChangeListener.onViewAttachedToWindow(mLockIcon);
|
||||
verify(mLockIcon).updateIconVisibility(false);
|
||||
verify(mLockIcon).setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user