1 package com.android.keyguard 2 3 import android.annotation.CurrentTimeMillisLong 4 import android.hardware.biometrics.BiometricAuthenticator.Modality 5 import android.hardware.biometrics.BiometricAuthenticator.TYPE_FACE 6 import android.hardware.biometrics.BiometricAuthenticator.TYPE_FINGERPRINT 7 8 /** Verbose logging for various keyguard listening states. */ 9 sealed class KeyguardListenModel { 10 /** Timestamp of the state change. */ 11 abstract val timeMillis: Long 12 /** Current user */ 13 abstract val userId: Int 14 /** If keyguard is listening for the given [modality]. */ 15 abstract val listening: Boolean 16 /** Sensor type */ 17 @Modality abstract val modality: Int 18 } 19 20 /** 21 * Verbose debug information associated with [KeyguardUpdateMonitor.shouldListenForFingerprint]. 22 */ 23 data class KeyguardFingerprintListenModel( 24 @CurrentTimeMillisLong override val timeMillis: Long, 25 override val userId: Int, 26 override val listening: Boolean, 27 // keep sorted 28 val biometricEnabledForUser: Boolean, 29 val bouncer: Boolean, 30 val canSkipBouncer: Boolean, 31 val credentialAttempted: Boolean, 32 val deviceInteractive: Boolean, 33 val dreaming: Boolean, 34 val encryptedOrLockdown: Boolean, 35 val fingerprintDisabled: Boolean, 36 val fingerprintLockedOut: Boolean, 37 val goingToSleep: Boolean, 38 val keyguardGoingAway: Boolean, 39 val keyguardIsVisible: Boolean, 40 val keyguardOccluded: Boolean, 41 val occludingAppRequestingFp: Boolean, 42 val primaryUser: Boolean, 43 val shouldListenForFingerprintAssistant: Boolean, 44 val switchingUser: Boolean, 45 val udfps: Boolean, 46 val userDoesNotHaveTrust: Boolean 47 ) : KeyguardListenModel() { 48 override val modality: Int = TYPE_FACE 49 } 50 51 /** 52 * Verbose debug information associated with [KeyguardUpdateMonitor.shouldListenForFace]. 53 */ 54 data class KeyguardFaceListenModel( 55 @CurrentTimeMillisLong override val timeMillis: Long, 56 override val userId: Int, 57 override val listening: Boolean, 58 // keep sorted 59 val authInterruptActive: Boolean, 60 val becauseCannotSkipBouncer: Boolean, 61 val biometricSettingEnabledForUser: Boolean, 62 val bouncer: Boolean, 63 val faceAuthenticated: Boolean, 64 val faceDisabled: Boolean, 65 val keyguardAwake: Boolean, 66 val keyguardGoingAway: Boolean, 67 val listeningForFaceAssistant: Boolean, 68 val lockIconPressed: Boolean, 69 val occludingAppRequestingFaceAuth: Boolean, 70 val primaryUser: Boolean, 71 val scanningAllowedByStrongAuth: Boolean, 72 val secureCameraLaunched: Boolean, 73 val switchingUser: Boolean 74 ) : KeyguardListenModel() { 75 override val modality: Int = TYPE_FINGERPRINT 76 } 77