Loading packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java +1 −2 Original line number Diff line number Diff line Loading @@ -2145,7 +2145,6 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab && !isEncryptedOrLockdown(getCurrentUser()) && !userNeedsStrongAuth() && userDoesNotHaveTrust); return shouldListenKeyguardState && shouldListenUserState && shouldListenBouncerState && shouldListenUdfpsState; } Loading Loading @@ -3270,7 +3269,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab pw.println(" disabled(DPM)=" + isFingerprintDisabled(userId)); pw.println(" possible=" + isUnlockWithFingerprintPossible(userId)); pw.println(" listening: actual=" + mFingerprintRunningState + " expected=" + (shouldListenForFingerprint(false) ? 1 : 0)); + " expected=" + (shouldListenForFingerprint(isUdfpsEnrolled()) ? 1 : 0)); pw.println(" strongAuthFlags=" + Integer.toHexString(strongAuthFlags)); pw.println(" trustManaged=" + getUserTrustIsManaged(userId)); pw.println(" udfpsEnrolled=" + isUdfpsEnrolled()); Loading packages/SystemUI/src/com/android/keyguard/LockIconViewController.java +47 −11 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ import com.android.settingslib.Utils; import com.android.systemui.Dumpable; import com.android.systemui.R; import com.android.systemui.biometrics.AuthController; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.dump.DumpManager; import com.android.systemui.plugins.FalsingManager; import com.android.systemui.plugins.statusbar.StatusBarStateController; Loading @@ -48,6 +49,7 @@ import com.android.systemui.statusbar.phone.dagger.StatusBarComponent; import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.systemui.statusbar.policy.KeyguardStateController; import com.android.systemui.util.ViewController; import com.android.systemui.util.concurrency.DelayableExecutor; import java.io.FileDescriptor; import java.io.PrintWriter; Loading @@ -70,6 +72,7 @@ public class LockIconViewController extends ViewController<LockIconView> impleme @NonNull private final AuthController mAuthController; @NonNull private final AccessibilityManager mAccessibilityManager; @NonNull private final ConfigurationController mConfigurationController; @NonNull private final DelayableExecutor mExecutor; private boolean mHasUdfpsOrFaceAuthFeatures; private boolean mUdfpsEnrolled; Loading @@ -90,6 +93,7 @@ public class LockIconViewController extends ViewController<LockIconView> impleme private int mStatusBarState; private boolean mIsKeyguardShowing; private boolean mUserUnlockedWithBiometric; private Runnable mCancelDelayedUpdateVisibilityRunnable; private boolean mShowButton; private boolean mShowUnlockIcon; Loading @@ -106,7 +110,8 @@ public class LockIconViewController extends ViewController<LockIconView> impleme @NonNull AuthController authController, @NonNull DumpManager dumpManager, @NonNull AccessibilityManager accessibilityManager, @NonNull ConfigurationController configurationController @NonNull ConfigurationController configurationController, @NonNull @Main DelayableExecutor executor ) { super(view); mStatusBarStateController = statusBarStateController; Loading @@ -117,6 +122,7 @@ public class LockIconViewController extends ViewController<LockIconView> impleme mFalsingManager = falsingManager; mAccessibilityManager = accessibilityManager; mConfigurationController = configurationController; mExecutor = executor; final Context context = view.getContext(); mButton = context.getResources().getDrawable( Loading Loading @@ -202,6 +208,11 @@ public class LockIconViewController extends ViewController<LockIconView> impleme mKeyguardStateController.removeCallback(mKeyguardStateCallback); mAccessibilityManager.removeTouchExplorationStateChangeListener( mTouchExplorationStateChangeListener); if (mCancelDelayedUpdateVisibilityRunnable != null) { mCancelDelayedUpdateVisibilityRunnable.run(); mCancelDelayedUpdateVisibilityRunnable = null; } } public float getTop() { Loading @@ -213,8 +224,8 @@ public class LockIconViewController extends ViewController<LockIconView> impleme return false; } // pre-emptively set to false to hide view mIsKeyguardShowing = false; // pre-emptively set to true to hide view mIsBouncerShowing = true; updateVisibility(); mKeyguardViewController.showBouncer(/* scrim */ true); return true; Loading @@ -229,6 +240,11 @@ public class LockIconViewController extends ViewController<LockIconView> impleme } private void updateVisibility() { if (mCancelDelayedUpdateVisibilityRunnable != null) { mCancelDelayedUpdateVisibilityRunnable.run(); mCancelDelayedUpdateVisibilityRunnable = null; } if (!mIsKeyguardShowing || (!mUdfpsEnrolled && !mFaceAuthEnrolled)) { mView.setVisibility(View.INVISIBLE); return; Loading Loading @@ -318,13 +334,13 @@ public class LockIconViewController extends ViewController<LockIconView> impleme @Override public void dump(@NonNull FileDescriptor fd, @NonNull PrintWriter pw, @NonNull String[] args) { pw.println(" mShowBouncerButton: " + mShowButton); pw.println(" mShowUnlockIcon: " + mShowUnlockIcon); pw.println(" mShowLockIcon: " + mShowLockIcon); pw.println("mHasUdfpsOrFaceAuthFeatures: " + mHasUdfpsOrFaceAuthFeatures); pw.println("mUdfpsEnrolled: " + mUdfpsEnrolled); pw.println("mFaceAuthEnrolled: " + mFaceAuthEnrolled); pw.println("mIsKeyguardShowing: " + mIsKeyguardShowing); pw.println(" mShowBouncerButton: " + mShowButton); pw.println(" mShowUnlockIcon: " + mShowUnlockIcon); pw.println(" mShowLockIcon: " + mShowLockIcon); pw.println(" mIsDozing: " + mIsDozing); pw.println(" mIsBouncerShowing: " + mIsBouncerShowing); pw.println(" mUserUnlockedWithBiometric: " + mUserUnlockedWithBiometric); Loading @@ -351,6 +367,14 @@ public class LockIconViewController extends ViewController<LockIconView> impleme private final KeyguardUpdateMonitorCallback mKeyguardUpdateMonitorCallback = new KeyguardUpdateMonitorCallback() { @Override public void onKeyguardVisibilityChanged(boolean showing) { // reset mIsBouncerShowing state in case it was preemptively set // onAffordanceClick mIsBouncerShowing = mKeyguardViewController.isBouncerShowing(); updateVisibility(); } @Override public void onKeyguardBouncerChanged(boolean bouncer) { mIsBouncerShowing = bouncer; Loading @@ -366,9 +390,21 @@ public class LockIconViewController extends ViewController<LockIconView> impleme if (biometricSourceType == FINGERPRINT) { mRunningFPS = running; if (!mRunningFPS) { if (mCancelDelayedUpdateVisibilityRunnable != null) { mCancelDelayedUpdateVisibilityRunnable.run(); } // For some devices, auth is cancelled immediately on screen off but // before dozing state is set. We want to avoid briefly showing the // button in this case, so we delay updating the visibility by 50ms. mCancelDelayedUpdateVisibilityRunnable = mExecutor.executeDelayed(() -> updateVisibility(), 50); } else { updateVisibility(); } } } }; private final KeyguardStateController.Callback mKeyguardStateCallback = Loading packages/SystemUI/src/com/android/systemui/biometrics/UdfpsKeyguardViewController.java +13 −22 Original line number Diff line number Diff line Loading @@ -56,7 +56,7 @@ public class UdfpsKeyguardViewController extends UdfpsAnimationViewController<Ud @NonNull private final KeyguardViewMediator mKeyguardViewMediator; @NonNull private final UdfpsController mUdfpsController; @Nullable private Runnable mCancelRunnable; @Nullable private Runnable mCancelDelayedHintRunnable; private boolean mShowingUdfpsBouncer; private boolean mUdfpsRequested; private boolean mQsExpanded; Loading @@ -64,7 +64,6 @@ public class UdfpsKeyguardViewController extends UdfpsAnimationViewController<Ud private boolean mHintShown; private boolean mTransitioningFromHome; private int mStatusBarState; private boolean mKeyguardIsVisible; /** * hidden amount of pin/pattern/password bouncer Loading Loading @@ -111,7 +110,6 @@ public class UdfpsKeyguardViewController extends UdfpsAnimationViewController<Ud mUdfpsRequested = false; mStatusBarState = mStatusBarStateController.getState(); mQsExpanded = mKeyguardViewManager.isQsExpanded(); mKeyguardIsVisible = mKeyguardUpdateMonitor.isKeyguardVisible(); mInputBouncerHiddenAmount = KeyguardBouncer.EXPANSION_HIDDEN; updateAlpha(); updatePauseAuth(); Loading @@ -131,9 +129,9 @@ public class UdfpsKeyguardViewController extends UdfpsAnimationViewController<Ud mTransitioningFromHome = false; mKeyguardUpdateMonitor.requestFaceAuthOnOccludingApp(false); if (mCancelRunnable != null) { mCancelRunnable.run(); mCancelRunnable = null; if (mCancelDelayedHintRunnable != null) { mCancelDelayedHintRunnable.run(); mCancelDelayedHintRunnable = null; } } Loading @@ -145,7 +143,6 @@ public class UdfpsKeyguardViewController extends UdfpsAnimationViewController<Ud pw.println("mTransitioningFromHomeToKeyguard=" + mTransitioningFromHome); pw.println("mStatusBarState=" + StatusBarState.toShortString(mStatusBarState)); pw.println("mQsExpanded=" + mQsExpanded); pw.println("mKeyguardVisible=" + mKeyguardIsVisible); pw.println("mIsBouncerVisible=" + mIsBouncerVisible); pw.println("mInputBouncerHiddenAmount=" + mInputBouncerHiddenAmount); pw.println("mAlpha=" + mView.getAlpha()); Loading Loading @@ -205,11 +202,7 @@ public class UdfpsKeyguardViewController extends UdfpsAnimationViewController<Ud return true; } if (!mKeyguardIsVisible) { return true; } if (mInputBouncerHiddenAmount < .4f) { if (mInputBouncerHiddenAmount < .4f || mIsBouncerVisible) { return true; } Loading Loading @@ -240,9 +233,9 @@ public class UdfpsKeyguardViewController extends UdfpsAnimationViewController<Ud } private void cancelDelayedHint() { if (mCancelRunnable != null) { mCancelRunnable.run(); mCancelRunnable = null; if (mCancelDelayedHintRunnable != null) { mCancelDelayedHintRunnable.run(); mCancelDelayedHintRunnable = null; } } Loading @@ -252,9 +245,9 @@ public class UdfpsKeyguardViewController extends UdfpsAnimationViewController<Ud } // show udfps hint a few seconds after face auth started running if (!mFaceDetectRunning && running && !mHintShown && mCancelRunnable == null) { if (!mFaceDetectRunning && running && !mHintShown && mCancelDelayedHintRunnable == null) { // Face detect started running, show udfps hint after a delay mCancelRunnable = mExecutor.executeDelayed(() -> showHint(false), mCancelDelayedHintRunnable = mExecutor.executeDelayed(() -> showHint(false), AFTER_FACE_AUTH_HINT_DELAY); } Loading Loading @@ -328,11 +321,6 @@ public class UdfpsKeyguardViewController extends UdfpsAnimationViewController<Ud cancelDelayedHint(); } } public void onKeyguardVisibilityChangedRaw(boolean showing) { mKeyguardIsVisible = showing; updatePauseAuth(); } }; private final StatusBarKeyguardViewManager.AlternateAuthInterceptor mAlternateAuthInterceptor = Loading Loading @@ -385,6 +373,9 @@ public class UdfpsKeyguardViewController extends UdfpsAnimationViewController<Ud @Override public void onBouncerVisibilityChanged() { mIsBouncerVisible = mKeyguardViewManager.bouncerIsOrWillBeShowing(); if (!mIsBouncerVisible) { mInputBouncerHiddenAmount = 1f; } updatePauseAuth(); } Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +10 −4 Original line number Diff line number Diff line Loading @@ -3669,7 +3669,9 @@ public class StatusBar extends SystemUI implements DemoMode, public boolean onBackPressed() { boolean isScrimmedBouncer = mScrimController.getState() == ScrimState.BOUNCER_SCRIMMED; if (mStatusBarKeyguardViewManager.onBackPressed(isScrimmedBouncer /* hideImmediately */)) { if (!isScrimmedBouncer) { if (isScrimmedBouncer) { mStatusBarStateController.setLeaveOpenOnKeyguardHide(false); } else { mNotificationPanelViewController.expandWithoutQs(); } return true; Loading Loading @@ -3704,9 +3706,13 @@ public class StatusBar extends SystemUI implements DemoMode, } private void showBouncerIfKeyguard() { if ((mState == StatusBarState.KEYGUARD || mState == StatusBarState.SHADE_LOCKED) && !mKeyguardViewMediator.isHiding()) { if (!mKeyguardViewMediator.isHiding()) { if (mState == StatusBarState.KEYGUARD && !mStatusBarKeyguardViewManager.bouncerIsOrWillBeShowing()) { mStatusBarKeyguardViewManager.showGenericBouncer(true /* scrimmed */); } else if (mState == StatusBarState.SHADE_LOCKED) { mStatusBarKeyguardViewManager.showBouncer(true /* scrimmed */); } } } Loading packages/SystemUI/tests/src/com/android/systemui/biometrics/UdfpsKeyguardViewControllerTest.java +0 −12 Original line number Diff line number Diff line Loading @@ -97,7 +97,6 @@ public class UdfpsKeyguardViewControllerTest extends SysuiTestCase { when(mView.getContext()).thenReturn(mResourceContext); when(mResourceContext.getString(anyInt())).thenReturn("test string"); when(mKeyguardViewMediator.isAnimatingScreenOff()).thenReturn(false); when(mKeyguardUpdateMonitor.isKeyguardVisible()).thenReturn(true); mController = new UdfpsKeyguardViewController( mView, mStatusBarStateController, Loading Loading @@ -183,17 +182,6 @@ public class UdfpsKeyguardViewControllerTest extends SysuiTestCase { assertFalse(mController.shouldPauseAuth()); } @Test public void testShouldPauseAuthKeyguardNotVisible() { mController.onViewAttached(); captureKeyguardUpdateMonitorCallback(); // WHEN keyguard isn't visible mKeyguardUpdateMonitorCallback.onKeyguardVisibilityChangedRaw(false); assertTrue(mController.shouldPauseAuth()); } @Test public void testShouldPauseAuthOnShadeLocked() { mController.onViewAttached(); Loading Loading
packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java +1 −2 Original line number Diff line number Diff line Loading @@ -2145,7 +2145,6 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab && !isEncryptedOrLockdown(getCurrentUser()) && !userNeedsStrongAuth() && userDoesNotHaveTrust); return shouldListenKeyguardState && shouldListenUserState && shouldListenBouncerState && shouldListenUdfpsState; } Loading Loading @@ -3270,7 +3269,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab pw.println(" disabled(DPM)=" + isFingerprintDisabled(userId)); pw.println(" possible=" + isUnlockWithFingerprintPossible(userId)); pw.println(" listening: actual=" + mFingerprintRunningState + " expected=" + (shouldListenForFingerprint(false) ? 1 : 0)); + " expected=" + (shouldListenForFingerprint(isUdfpsEnrolled()) ? 1 : 0)); pw.println(" strongAuthFlags=" + Integer.toHexString(strongAuthFlags)); pw.println(" trustManaged=" + getUserTrustIsManaged(userId)); pw.println(" udfpsEnrolled=" + isUdfpsEnrolled()); Loading
packages/SystemUI/src/com/android/keyguard/LockIconViewController.java +47 −11 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ import com.android.settingslib.Utils; import com.android.systemui.Dumpable; import com.android.systemui.R; import com.android.systemui.biometrics.AuthController; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.dump.DumpManager; import com.android.systemui.plugins.FalsingManager; import com.android.systemui.plugins.statusbar.StatusBarStateController; Loading @@ -48,6 +49,7 @@ import com.android.systemui.statusbar.phone.dagger.StatusBarComponent; import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.systemui.statusbar.policy.KeyguardStateController; import com.android.systemui.util.ViewController; import com.android.systemui.util.concurrency.DelayableExecutor; import java.io.FileDescriptor; import java.io.PrintWriter; Loading @@ -70,6 +72,7 @@ public class LockIconViewController extends ViewController<LockIconView> impleme @NonNull private final AuthController mAuthController; @NonNull private final AccessibilityManager mAccessibilityManager; @NonNull private final ConfigurationController mConfigurationController; @NonNull private final DelayableExecutor mExecutor; private boolean mHasUdfpsOrFaceAuthFeatures; private boolean mUdfpsEnrolled; Loading @@ -90,6 +93,7 @@ public class LockIconViewController extends ViewController<LockIconView> impleme private int mStatusBarState; private boolean mIsKeyguardShowing; private boolean mUserUnlockedWithBiometric; private Runnable mCancelDelayedUpdateVisibilityRunnable; private boolean mShowButton; private boolean mShowUnlockIcon; Loading @@ -106,7 +110,8 @@ public class LockIconViewController extends ViewController<LockIconView> impleme @NonNull AuthController authController, @NonNull DumpManager dumpManager, @NonNull AccessibilityManager accessibilityManager, @NonNull ConfigurationController configurationController @NonNull ConfigurationController configurationController, @NonNull @Main DelayableExecutor executor ) { super(view); mStatusBarStateController = statusBarStateController; Loading @@ -117,6 +122,7 @@ public class LockIconViewController extends ViewController<LockIconView> impleme mFalsingManager = falsingManager; mAccessibilityManager = accessibilityManager; mConfigurationController = configurationController; mExecutor = executor; final Context context = view.getContext(); mButton = context.getResources().getDrawable( Loading Loading @@ -202,6 +208,11 @@ public class LockIconViewController extends ViewController<LockIconView> impleme mKeyguardStateController.removeCallback(mKeyguardStateCallback); mAccessibilityManager.removeTouchExplorationStateChangeListener( mTouchExplorationStateChangeListener); if (mCancelDelayedUpdateVisibilityRunnable != null) { mCancelDelayedUpdateVisibilityRunnable.run(); mCancelDelayedUpdateVisibilityRunnable = null; } } public float getTop() { Loading @@ -213,8 +224,8 @@ public class LockIconViewController extends ViewController<LockIconView> impleme return false; } // pre-emptively set to false to hide view mIsKeyguardShowing = false; // pre-emptively set to true to hide view mIsBouncerShowing = true; updateVisibility(); mKeyguardViewController.showBouncer(/* scrim */ true); return true; Loading @@ -229,6 +240,11 @@ public class LockIconViewController extends ViewController<LockIconView> impleme } private void updateVisibility() { if (mCancelDelayedUpdateVisibilityRunnable != null) { mCancelDelayedUpdateVisibilityRunnable.run(); mCancelDelayedUpdateVisibilityRunnable = null; } if (!mIsKeyguardShowing || (!mUdfpsEnrolled && !mFaceAuthEnrolled)) { mView.setVisibility(View.INVISIBLE); return; Loading Loading @@ -318,13 +334,13 @@ public class LockIconViewController extends ViewController<LockIconView> impleme @Override public void dump(@NonNull FileDescriptor fd, @NonNull PrintWriter pw, @NonNull String[] args) { pw.println(" mShowBouncerButton: " + mShowButton); pw.println(" mShowUnlockIcon: " + mShowUnlockIcon); pw.println(" mShowLockIcon: " + mShowLockIcon); pw.println("mHasUdfpsOrFaceAuthFeatures: " + mHasUdfpsOrFaceAuthFeatures); pw.println("mUdfpsEnrolled: " + mUdfpsEnrolled); pw.println("mFaceAuthEnrolled: " + mFaceAuthEnrolled); pw.println("mIsKeyguardShowing: " + mIsKeyguardShowing); pw.println(" mShowBouncerButton: " + mShowButton); pw.println(" mShowUnlockIcon: " + mShowUnlockIcon); pw.println(" mShowLockIcon: " + mShowLockIcon); pw.println(" mIsDozing: " + mIsDozing); pw.println(" mIsBouncerShowing: " + mIsBouncerShowing); pw.println(" mUserUnlockedWithBiometric: " + mUserUnlockedWithBiometric); Loading @@ -351,6 +367,14 @@ public class LockIconViewController extends ViewController<LockIconView> impleme private final KeyguardUpdateMonitorCallback mKeyguardUpdateMonitorCallback = new KeyguardUpdateMonitorCallback() { @Override public void onKeyguardVisibilityChanged(boolean showing) { // reset mIsBouncerShowing state in case it was preemptively set // onAffordanceClick mIsBouncerShowing = mKeyguardViewController.isBouncerShowing(); updateVisibility(); } @Override public void onKeyguardBouncerChanged(boolean bouncer) { mIsBouncerShowing = bouncer; Loading @@ -366,9 +390,21 @@ public class LockIconViewController extends ViewController<LockIconView> impleme if (biometricSourceType == FINGERPRINT) { mRunningFPS = running; if (!mRunningFPS) { if (mCancelDelayedUpdateVisibilityRunnable != null) { mCancelDelayedUpdateVisibilityRunnable.run(); } // For some devices, auth is cancelled immediately on screen off but // before dozing state is set. We want to avoid briefly showing the // button in this case, so we delay updating the visibility by 50ms. mCancelDelayedUpdateVisibilityRunnable = mExecutor.executeDelayed(() -> updateVisibility(), 50); } else { updateVisibility(); } } } }; private final KeyguardStateController.Callback mKeyguardStateCallback = Loading
packages/SystemUI/src/com/android/systemui/biometrics/UdfpsKeyguardViewController.java +13 −22 Original line number Diff line number Diff line Loading @@ -56,7 +56,7 @@ public class UdfpsKeyguardViewController extends UdfpsAnimationViewController<Ud @NonNull private final KeyguardViewMediator mKeyguardViewMediator; @NonNull private final UdfpsController mUdfpsController; @Nullable private Runnable mCancelRunnable; @Nullable private Runnable mCancelDelayedHintRunnable; private boolean mShowingUdfpsBouncer; private boolean mUdfpsRequested; private boolean mQsExpanded; Loading @@ -64,7 +64,6 @@ public class UdfpsKeyguardViewController extends UdfpsAnimationViewController<Ud private boolean mHintShown; private boolean mTransitioningFromHome; private int mStatusBarState; private boolean mKeyguardIsVisible; /** * hidden amount of pin/pattern/password bouncer Loading Loading @@ -111,7 +110,6 @@ public class UdfpsKeyguardViewController extends UdfpsAnimationViewController<Ud mUdfpsRequested = false; mStatusBarState = mStatusBarStateController.getState(); mQsExpanded = mKeyguardViewManager.isQsExpanded(); mKeyguardIsVisible = mKeyguardUpdateMonitor.isKeyguardVisible(); mInputBouncerHiddenAmount = KeyguardBouncer.EXPANSION_HIDDEN; updateAlpha(); updatePauseAuth(); Loading @@ -131,9 +129,9 @@ public class UdfpsKeyguardViewController extends UdfpsAnimationViewController<Ud mTransitioningFromHome = false; mKeyguardUpdateMonitor.requestFaceAuthOnOccludingApp(false); if (mCancelRunnable != null) { mCancelRunnable.run(); mCancelRunnable = null; if (mCancelDelayedHintRunnable != null) { mCancelDelayedHintRunnable.run(); mCancelDelayedHintRunnable = null; } } Loading @@ -145,7 +143,6 @@ public class UdfpsKeyguardViewController extends UdfpsAnimationViewController<Ud pw.println("mTransitioningFromHomeToKeyguard=" + mTransitioningFromHome); pw.println("mStatusBarState=" + StatusBarState.toShortString(mStatusBarState)); pw.println("mQsExpanded=" + mQsExpanded); pw.println("mKeyguardVisible=" + mKeyguardIsVisible); pw.println("mIsBouncerVisible=" + mIsBouncerVisible); pw.println("mInputBouncerHiddenAmount=" + mInputBouncerHiddenAmount); pw.println("mAlpha=" + mView.getAlpha()); Loading Loading @@ -205,11 +202,7 @@ public class UdfpsKeyguardViewController extends UdfpsAnimationViewController<Ud return true; } if (!mKeyguardIsVisible) { return true; } if (mInputBouncerHiddenAmount < .4f) { if (mInputBouncerHiddenAmount < .4f || mIsBouncerVisible) { return true; } Loading Loading @@ -240,9 +233,9 @@ public class UdfpsKeyguardViewController extends UdfpsAnimationViewController<Ud } private void cancelDelayedHint() { if (mCancelRunnable != null) { mCancelRunnable.run(); mCancelRunnable = null; if (mCancelDelayedHintRunnable != null) { mCancelDelayedHintRunnable.run(); mCancelDelayedHintRunnable = null; } } Loading @@ -252,9 +245,9 @@ public class UdfpsKeyguardViewController extends UdfpsAnimationViewController<Ud } // show udfps hint a few seconds after face auth started running if (!mFaceDetectRunning && running && !mHintShown && mCancelRunnable == null) { if (!mFaceDetectRunning && running && !mHintShown && mCancelDelayedHintRunnable == null) { // Face detect started running, show udfps hint after a delay mCancelRunnable = mExecutor.executeDelayed(() -> showHint(false), mCancelDelayedHintRunnable = mExecutor.executeDelayed(() -> showHint(false), AFTER_FACE_AUTH_HINT_DELAY); } Loading Loading @@ -328,11 +321,6 @@ public class UdfpsKeyguardViewController extends UdfpsAnimationViewController<Ud cancelDelayedHint(); } } public void onKeyguardVisibilityChangedRaw(boolean showing) { mKeyguardIsVisible = showing; updatePauseAuth(); } }; private final StatusBarKeyguardViewManager.AlternateAuthInterceptor mAlternateAuthInterceptor = Loading Loading @@ -385,6 +373,9 @@ public class UdfpsKeyguardViewController extends UdfpsAnimationViewController<Ud @Override public void onBouncerVisibilityChanged() { mIsBouncerVisible = mKeyguardViewManager.bouncerIsOrWillBeShowing(); if (!mIsBouncerVisible) { mInputBouncerHiddenAmount = 1f; } updatePauseAuth(); } Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +10 −4 Original line number Diff line number Diff line Loading @@ -3669,7 +3669,9 @@ public class StatusBar extends SystemUI implements DemoMode, public boolean onBackPressed() { boolean isScrimmedBouncer = mScrimController.getState() == ScrimState.BOUNCER_SCRIMMED; if (mStatusBarKeyguardViewManager.onBackPressed(isScrimmedBouncer /* hideImmediately */)) { if (!isScrimmedBouncer) { if (isScrimmedBouncer) { mStatusBarStateController.setLeaveOpenOnKeyguardHide(false); } else { mNotificationPanelViewController.expandWithoutQs(); } return true; Loading Loading @@ -3704,9 +3706,13 @@ public class StatusBar extends SystemUI implements DemoMode, } private void showBouncerIfKeyguard() { if ((mState == StatusBarState.KEYGUARD || mState == StatusBarState.SHADE_LOCKED) && !mKeyguardViewMediator.isHiding()) { if (!mKeyguardViewMediator.isHiding()) { if (mState == StatusBarState.KEYGUARD && !mStatusBarKeyguardViewManager.bouncerIsOrWillBeShowing()) { mStatusBarKeyguardViewManager.showGenericBouncer(true /* scrimmed */); } else if (mState == StatusBarState.SHADE_LOCKED) { mStatusBarKeyguardViewManager.showBouncer(true /* scrimmed */); } } } Loading
packages/SystemUI/tests/src/com/android/systemui/biometrics/UdfpsKeyguardViewControllerTest.java +0 −12 Original line number Diff line number Diff line Loading @@ -97,7 +97,6 @@ public class UdfpsKeyguardViewControllerTest extends SysuiTestCase { when(mView.getContext()).thenReturn(mResourceContext); when(mResourceContext.getString(anyInt())).thenReturn("test string"); when(mKeyguardViewMediator.isAnimatingScreenOff()).thenReturn(false); when(mKeyguardUpdateMonitor.isKeyguardVisible()).thenReturn(true); mController = new UdfpsKeyguardViewController( mView, mStatusBarStateController, Loading Loading @@ -183,17 +182,6 @@ public class UdfpsKeyguardViewControllerTest extends SysuiTestCase { assertFalse(mController.shouldPauseAuth()); } @Test public void testShouldPauseAuthKeyguardNotVisible() { mController.onViewAttached(); captureKeyguardUpdateMonitorCallback(); // WHEN keyguard isn't visible mKeyguardUpdateMonitorCallback.onKeyguardVisibilityChangedRaw(false); assertTrue(mController.shouldPauseAuth()); } @Test public void testShouldPauseAuthOnShadeLocked() { mController.onViewAttached(); Loading