Loading packages/SystemUI/src/com/android/keyguard/KeyguardFaceListenModel.kt +1 −0 Original line number Diff line number Diff line Loading @@ -12,6 +12,7 @@ data class KeyguardFaceListenModel( val isListeningForFace: Boolean, val isBouncer: Boolean, val isAuthInterruptActive: Boolean, val isOccludingAppRequestingFaceAuth: Boolean, val isKeyguardAwake: Boolean, val isListeningForFaceAssistant: Boolean, val isSwitchingUser: Boolean, Loading packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java +39 −10 Original line number Diff line number Diff line Loading @@ -276,6 +276,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab private boolean mHasLockscreenWallpaper; private boolean mAssistantVisible; private boolean mKeyguardOccluded; private boolean mOccludingAppRequestingFp; private boolean mOccludingAppRequestingFace; private boolean mSecureCameraLaunched; @VisibleForTesting protected boolean mTelephonyCapable; Loading Loading @@ -587,6 +589,29 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab updateBiometricListeningState(); } /** * Request to listen for face authentication when an app is occluding keyguard. * @param request if true and mKeyguardOccluded, request face auth listening, else default * to normal behavior. * See {@link KeyguardUpdateMonitor#shouldListenForFace()} */ public void requestFaceAuthOnOccludingApp(boolean request) { mOccludingAppRequestingFace = request; updateFaceListeningState(); } /** * Request to listen for fingerprint when an app is occluding keyguard. * @param request if true and mKeyguardOccluded, request fingerprint listening, else default * to normal behavior. * See {@link KeyguardUpdateMonitor#shouldListenForFingerprint(boolean)} */ public void requestFingerprintAuthOnOccludingApp(boolean request) { mOccludingAppRequestingFp = request; updateFingerprintListeningState(); } /** * Invoked when the secure camera is launched. */ Loading Loading @@ -2093,6 +2118,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab @VisibleForTesting protected boolean shouldListenForFingerprint(boolean isUdfps) { final boolean userDoesNotHaveTrust = !getUserHasTrust(getCurrentUser()); final boolean shouldListenKeyguardState = mKeyguardIsVisible || !mDeviceInteractive Loading @@ -2100,7 +2126,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab || mGoingToSleep || shouldListenForFingerprintAssistant() || (mKeyguardOccluded && mIsDreaming) || (isUdfps && mKeyguardOccluded); || (mKeyguardOccluded && userDoesNotHaveTrust && (mOccludingAppRequestingFp || isUdfps)); // Only listen if this KeyguardUpdateMonitor belongs to the primary user. There is an // instance of KeyguardUpdateMonitor for each user but KeyguardUpdateMonitor is user-aware. Loading @@ -2117,7 +2144,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab final boolean shouldListenUdfpsState = !isUdfps || (!getUserCanSkipBouncer(getCurrentUser()) && !isEncryptedOrLockdown(getCurrentUser()) && mStrongAuthTracker.hasUserAuthenticatedSinceBoot()); && mStrongAuthTracker.hasUserAuthenticatedSinceBoot() && userDoesNotHaveTrust); return shouldListenKeyguardState && shouldListenUserState && shouldListenBouncerState && shouldListenUdfpsState; Loading Loading @@ -2166,7 +2194,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab // Only listen if this KeyguardUpdateMonitor belongs to the primary user. There is an // instance of KeyguardUpdateMonitor for each user but KeyguardUpdateMonitor is user-aware. final boolean shouldListen = (mBouncer || mAuthInterruptActive || awakeKeyguard (mBouncer || mAuthInterruptActive || mOccludingAppRequestingFace || awakeKeyguard || shouldListenForFaceAssistant()) && !mSwitchingUser && !isFaceDisabled(user) && becauseCannotSkipBouncer && !mKeyguardGoingAway && mBiometricEnabledForUser.get(user) && !mLockIconPressed Loading @@ -2181,6 +2209,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab shouldListen, mBouncer, mAuthInterruptActive, mOccludingAppRequestingFace, awakeKeyguard, shouldListenForFaceAssistant(), mSwitchingUser, Loading packages/SystemUI/src/com/android/systemui/biometrics/UdfpsKeyguardViewController.java +2 −2 Original line number Diff line number Diff line Loading @@ -169,7 +169,7 @@ public class UdfpsKeyguardViewController extends UdfpsAnimationViewController<Ud mView.announceForAccessibility(mView.getContext().getString( R.string.accessibility_fingerprint_bouncer)); } else { mView.animateAwayUdfpsBouncer(() -> mKeyguardViewManager.cancelPostAuthActions()); mView.animateAwayUdfpsBouncer(null); } return true; } Loading Loading @@ -231,8 +231,8 @@ public class UdfpsKeyguardViewController extends UdfpsAnimationViewController<Ud */ private void maybeShowInputBouncer() { if (mShowingUdfpsBouncer) { mKeyguardViewManager.resetAlternateAuth(false); mKeyguardViewManager.showBouncer(true); mKeyguardViewManager.resetAlternateAuth(false); } } Loading packages/SystemUI/src/com/android/systemui/media/MediaControlPanel.java +2 −2 Original line number Diff line number Diff line Loading @@ -428,7 +428,7 @@ public class MediaControlPanel { mMediaDataManagerLazy.get().dismissMediaData(mKey, MediaViewController.GUTS_ANIMATION_DURATION + 100); return true; }, /* requiresShadeOpen */ true); }, /* requiresShadeOpen */ true, false); } else { Log.w(TAG, "Dismiss media with null notification. Token uid=" + data.getToken().getUid()); Loading Loading @@ -564,7 +564,7 @@ public class MediaControlPanel { mMediaDataManagerLazy.get().dismissSmartspaceRecommendation( MediaViewController.GUTS_ANIMATION_DURATION + 100L); return true; }, true /* requiresShadeOpen */); }, true /* requiresShadeOpen */, false); }); mController = null; Loading packages/SystemUI/src/com/android/systemui/qs/tiles/ScreenRecordTile.java +1 −1 Original line number Diff line number Diff line Loading @@ -142,7 +142,7 @@ public class ScreenRecordTile extends QSTileImpl<QSTile.BooleanState> mHost.getUserContext().startActivity(intent); return false; }; mKeyguardDismissUtil.executeWhenUnlocked(dismissAction, false); mKeyguardDismissUtil.executeWhenUnlocked(dismissAction, false, false); } private void cancelCountdown() { Loading Loading
packages/SystemUI/src/com/android/keyguard/KeyguardFaceListenModel.kt +1 −0 Original line number Diff line number Diff line Loading @@ -12,6 +12,7 @@ data class KeyguardFaceListenModel( val isListeningForFace: Boolean, val isBouncer: Boolean, val isAuthInterruptActive: Boolean, val isOccludingAppRequestingFaceAuth: Boolean, val isKeyguardAwake: Boolean, val isListeningForFaceAssistant: Boolean, val isSwitchingUser: Boolean, Loading
packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java +39 −10 Original line number Diff line number Diff line Loading @@ -276,6 +276,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab private boolean mHasLockscreenWallpaper; private boolean mAssistantVisible; private boolean mKeyguardOccluded; private boolean mOccludingAppRequestingFp; private boolean mOccludingAppRequestingFace; private boolean mSecureCameraLaunched; @VisibleForTesting protected boolean mTelephonyCapable; Loading Loading @@ -587,6 +589,29 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab updateBiometricListeningState(); } /** * Request to listen for face authentication when an app is occluding keyguard. * @param request if true and mKeyguardOccluded, request face auth listening, else default * to normal behavior. * See {@link KeyguardUpdateMonitor#shouldListenForFace()} */ public void requestFaceAuthOnOccludingApp(boolean request) { mOccludingAppRequestingFace = request; updateFaceListeningState(); } /** * Request to listen for fingerprint when an app is occluding keyguard. * @param request if true and mKeyguardOccluded, request fingerprint listening, else default * to normal behavior. * See {@link KeyguardUpdateMonitor#shouldListenForFingerprint(boolean)} */ public void requestFingerprintAuthOnOccludingApp(boolean request) { mOccludingAppRequestingFp = request; updateFingerprintListeningState(); } /** * Invoked when the secure camera is launched. */ Loading Loading @@ -2093,6 +2118,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab @VisibleForTesting protected boolean shouldListenForFingerprint(boolean isUdfps) { final boolean userDoesNotHaveTrust = !getUserHasTrust(getCurrentUser()); final boolean shouldListenKeyguardState = mKeyguardIsVisible || !mDeviceInteractive Loading @@ -2100,7 +2126,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab || mGoingToSleep || shouldListenForFingerprintAssistant() || (mKeyguardOccluded && mIsDreaming) || (isUdfps && mKeyguardOccluded); || (mKeyguardOccluded && userDoesNotHaveTrust && (mOccludingAppRequestingFp || isUdfps)); // Only listen if this KeyguardUpdateMonitor belongs to the primary user. There is an // instance of KeyguardUpdateMonitor for each user but KeyguardUpdateMonitor is user-aware. Loading @@ -2117,7 +2144,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab final boolean shouldListenUdfpsState = !isUdfps || (!getUserCanSkipBouncer(getCurrentUser()) && !isEncryptedOrLockdown(getCurrentUser()) && mStrongAuthTracker.hasUserAuthenticatedSinceBoot()); && mStrongAuthTracker.hasUserAuthenticatedSinceBoot() && userDoesNotHaveTrust); return shouldListenKeyguardState && shouldListenUserState && shouldListenBouncerState && shouldListenUdfpsState; Loading Loading @@ -2166,7 +2194,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab // Only listen if this KeyguardUpdateMonitor belongs to the primary user. There is an // instance of KeyguardUpdateMonitor for each user but KeyguardUpdateMonitor is user-aware. final boolean shouldListen = (mBouncer || mAuthInterruptActive || awakeKeyguard (mBouncer || mAuthInterruptActive || mOccludingAppRequestingFace || awakeKeyguard || shouldListenForFaceAssistant()) && !mSwitchingUser && !isFaceDisabled(user) && becauseCannotSkipBouncer && !mKeyguardGoingAway && mBiometricEnabledForUser.get(user) && !mLockIconPressed Loading @@ -2181,6 +2209,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab shouldListen, mBouncer, mAuthInterruptActive, mOccludingAppRequestingFace, awakeKeyguard, shouldListenForFaceAssistant(), mSwitchingUser, Loading
packages/SystemUI/src/com/android/systemui/biometrics/UdfpsKeyguardViewController.java +2 −2 Original line number Diff line number Diff line Loading @@ -169,7 +169,7 @@ public class UdfpsKeyguardViewController extends UdfpsAnimationViewController<Ud mView.announceForAccessibility(mView.getContext().getString( R.string.accessibility_fingerprint_bouncer)); } else { mView.animateAwayUdfpsBouncer(() -> mKeyguardViewManager.cancelPostAuthActions()); mView.animateAwayUdfpsBouncer(null); } return true; } Loading Loading @@ -231,8 +231,8 @@ public class UdfpsKeyguardViewController extends UdfpsAnimationViewController<Ud */ private void maybeShowInputBouncer() { if (mShowingUdfpsBouncer) { mKeyguardViewManager.resetAlternateAuth(false); mKeyguardViewManager.showBouncer(true); mKeyguardViewManager.resetAlternateAuth(false); } } Loading
packages/SystemUI/src/com/android/systemui/media/MediaControlPanel.java +2 −2 Original line number Diff line number Diff line Loading @@ -428,7 +428,7 @@ public class MediaControlPanel { mMediaDataManagerLazy.get().dismissMediaData(mKey, MediaViewController.GUTS_ANIMATION_DURATION + 100); return true; }, /* requiresShadeOpen */ true); }, /* requiresShadeOpen */ true, false); } else { Log.w(TAG, "Dismiss media with null notification. Token uid=" + data.getToken().getUid()); Loading Loading @@ -564,7 +564,7 @@ public class MediaControlPanel { mMediaDataManagerLazy.get().dismissSmartspaceRecommendation( MediaViewController.GUTS_ANIMATION_DURATION + 100L); return true; }, true /* requiresShadeOpen */); }, true /* requiresShadeOpen */, false); }); mController = null; Loading
packages/SystemUI/src/com/android/systemui/qs/tiles/ScreenRecordTile.java +1 −1 Original line number Diff line number Diff line Loading @@ -142,7 +142,7 @@ public class ScreenRecordTile extends QSTileImpl<QSTile.BooleanState> mHost.getUserContext().startActivity(intent); return false; }; mKeyguardDismissUtil.executeWhenUnlocked(dismissAction, false); mKeyguardDismissUtil.executeWhenUnlocked(dismissAction, false, false); } private void cancelCountdown() { Loading