diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/BiometricUnlockController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/BiometricUnlockController.java index 05d26b0a6a17a..bc7174d33b138 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/BiometricUnlockController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/BiometricUnlockController.java @@ -261,6 +261,8 @@ public class BiometricUnlockController extends KeyguardUpdateMonitorCallback { biometricSourceType); if (unlockAllowed) { startWakeAndUnlock(biometricSourceType); + } else { + Log.d(TAG, "onBiometricAuthenticated aborted by bypass controller"); } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBypassController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBypassController.kt index d7deedce3c2f2..c88b22bbbced3 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBypassController.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBypassController.kt @@ -21,11 +21,11 @@ import android.content.pm.PackageManager import android.hardware.biometrics.BiometricSourceType import android.hardware.face.FaceManager import android.provider.Settings -import com.android.keyguard.KeyguardUpdateMonitor import com.android.systemui.plugins.statusbar.StatusBarStateController import com.android.systemui.statusbar.NotificationLockscreenUserManager import com.android.systemui.statusbar.StatusBarState import com.android.systemui.tuner.TunerService +import java.io.PrintWriter import javax.inject.Inject import javax.inject.Singleton @@ -62,18 +62,15 @@ class KeyguardBypassController { } @Inject - constructor(context: Context, tunerService: TunerService, - statusBarStateController: StatusBarStateController, - lockscreenUserManager: NotificationLockscreenUserManager) { + constructor( + context: Context, + tunerService: TunerService, + statusBarStateController: StatusBarStateController, + lockscreenUserManager: NotificationLockscreenUserManager + ) { unlockMethodCache = UnlockMethodCache.getInstance(context) this.statusBarStateController = statusBarStateController - statusBarStateController.addCallback(object : StatusBarStateController.StateListener { - override fun onStateChanged(newState: Int) { - if (newState != StatusBarState.KEYGUARD) { - pendingUnlockType = null; - } - } - }) + if (!context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_FACE)) { return } @@ -82,16 +79,19 @@ class KeyguardBypassController { return } + statusBarStateController.addCallback(object : StatusBarStateController.StateListener { + override fun onStateChanged(newState: Int) { + if (newState != StatusBarState.KEYGUARD) { + pendingUnlockType = null + } + } + }) + val dismissByDefault = if (context.resources.getBoolean( - com.android.internal.R.bool.config_faceAuthDismissesKeyguard)) 1 else 0 - tunerService.addTunable( - object : TunerService.Tunable { - override fun onTuningChanged(key: String?, newValue: String?) { - bypassEnabled = Settings.Secure.getIntForUser( - context.contentResolver, - Settings.Secure.FACE_UNLOCK_DISMISSES_KEYGUARD, - dismissByDefault, - KeyguardUpdateMonitor.getCurrentUser()) != 0 + com.android.internal.R.bool.config_faceAuthDismissesKeyguard)) 1 else 0 + tunerService.addTunable(object : TunerService.Tunable { + override fun onTuningChanged(key: String?, newValue: String?) { + bypassEnabled = tunerService.getValue(key, dismissByDefault) != 0 } }, Settings.Secure.FACE_UNLOCK_DISMISSES_KEYGUARD) lockscreenUserManager.addUserChangedListener { pendingUnlockType = null } @@ -155,4 +155,16 @@ class KeyguardBypassController { fun onStartedGoingToSleep() { pendingUnlockType = null } + + fun dump(pw: PrintWriter) { + pw.println("KeyguardBypassController:") + pw.print(" pendingUnlockType: "); pw.println(pendingUnlockType) + pw.print(" bypassEnabled: "); pw.println(bypassEnabled) + pw.print(" canBypass: "); pw.println(canBypass()) + pw.print(" bouncerShowing: "); pw.println(bouncerShowing) + pw.print(" isPulseExpanding: "); pw.println(isPulseExpanding) + pw.print(" launchingAffordance: "); pw.println(launchingAffordance) + pw.print(" qSExpanded: "); pw.println(qSExpanded) + pw.print(" bouncerShowing: "); pw.println(bouncerShowing) + } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java index 4392c35ee233a..a84d359649946 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java @@ -2386,6 +2386,10 @@ public class StatusBar extends SystemUI implements DemoMode, mLightBarController.dump(fd, pw, args); } + if (mKeyguardBypassController != null) { + mKeyguardBypassController.dump(pw); + } + if (mKeyguardUpdateMonitor != null) { mKeyguardUpdateMonitor.dump(fd, pw, args); }