From 5a5e0bd198d0acdb9f6389625c8846e8f3d7fa06 Mon Sep 17 00:00:00 2001 From: Lucas Dupin Date: Thu, 11 Jul 2019 14:19:11 +0900 Subject: [PATCH] Dump bypass controller state for debugging Test: adb shell dumpsys activity service com.android.systemui Bug: 136536811 Change-Id: I6b81a1b893c95cc0807738509755460c4b05a82a --- .../phone/BiometricUnlockController.java | 2 + .../phone/KeyguardBypassController.kt | 52 ++++++++++++------- .../systemui/statusbar/phone/StatusBar.java | 4 ++ 3 files changed, 38 insertions(+), 20 deletions(-) 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); }