Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a1616135 authored by Beverly's avatar Beverly Committed by Beverly Tai
Browse files

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
parent 18b99c52
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -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
     */
+3 −3
Original line number Diff line number Diff line
@@ -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;
+4 −6
Original line number Diff line number Diff line
@@ -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) {
+2 −1
Original line number Diff line number Diff line
@@ -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,
+4 −5
Original line number Diff line number Diff line
@@ -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);
    }
}