Merge "Add session id to keyguard metrics"
This commit is contained in:
committed by
Android (Google) Code Review
commit
d62aedf2b0
@@ -16,6 +16,7 @@
|
||||
|
||||
package com.android.keyguard
|
||||
|
||||
import android.app.StatusBarManager.SESSION_KEYGUARD
|
||||
import android.content.Context
|
||||
import android.hardware.biometrics.BiometricSourceType
|
||||
import com.android.internal.annotations.VisibleForTesting
|
||||
@@ -28,7 +29,7 @@ import com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STRONG_AUT
|
||||
import com.android.keyguard.KeyguardBiometricLockoutLogger.PrimaryAuthRequiredEvent
|
||||
import com.android.systemui.CoreStartable
|
||||
import com.android.systemui.dagger.SysUISingleton
|
||||
import com.android.systemui.dump.DumpManager
|
||||
import com.android.systemui.log.SessionTracker
|
||||
import java.io.FileDescriptor
|
||||
import java.io.PrintWriter
|
||||
import javax.inject.Inject
|
||||
@@ -44,7 +45,7 @@ class KeyguardBiometricLockoutLogger @Inject constructor(
|
||||
context: Context?,
|
||||
private val uiEventLogger: UiEventLogger,
|
||||
private val keyguardUpdateMonitor: KeyguardUpdateMonitor,
|
||||
private val dumpManager: DumpManager
|
||||
private val sessionTracker: SessionTracker
|
||||
) : CoreStartable(context) {
|
||||
private var fingerprintLockedOut = false
|
||||
private var faceLockedOut = false
|
||||
@@ -53,7 +54,6 @@ class KeyguardBiometricLockoutLogger @Inject constructor(
|
||||
private var timeout = false
|
||||
|
||||
override fun start() {
|
||||
dumpManager.registerDumpable(this)
|
||||
mKeyguardUpdateMonitorCallback.onStrongAuthStateChanged(
|
||||
KeyguardUpdateMonitor.getCurrentUser())
|
||||
keyguardUpdateMonitor.registerCallback(mKeyguardUpdateMonitorCallback)
|
||||
@@ -65,22 +65,17 @@ class KeyguardBiometricLockoutLogger @Inject constructor(
|
||||
if (biometricSourceType == BiometricSourceType.FINGERPRINT) {
|
||||
val lockedOut = keyguardUpdateMonitor.isFingerprintLockedOut
|
||||
if (lockedOut && !fingerprintLockedOut) {
|
||||
uiEventLogger.log(
|
||||
PrimaryAuthRequiredEvent.PRIMARY_AUTH_REQUIRED_FINGERPRINT_LOCKED_OUT)
|
||||
log(PrimaryAuthRequiredEvent.PRIMARY_AUTH_REQUIRED_FINGERPRINT_LOCKED_OUT)
|
||||
} else if (!lockedOut && fingerprintLockedOut) {
|
||||
uiEventLogger.log(
|
||||
PrimaryAuthRequiredEvent
|
||||
.PRIMARY_AUTH_REQUIRED_FINGERPRINT_LOCKED_OUT_RESET)
|
||||
log(PrimaryAuthRequiredEvent.PRIMARY_AUTH_REQUIRED_FINGERPRINT_LOCKED_OUT_RESET)
|
||||
}
|
||||
fingerprintLockedOut = lockedOut
|
||||
} else if (biometricSourceType == BiometricSourceType.FACE) {
|
||||
val lockedOut = keyguardUpdateMonitor.isFaceLockedOut
|
||||
if (lockedOut && !faceLockedOut) {
|
||||
uiEventLogger.log(
|
||||
PrimaryAuthRequiredEvent.PRIMARY_AUTH_REQUIRED_FACE_LOCKED_OUT)
|
||||
log(PrimaryAuthRequiredEvent.PRIMARY_AUTH_REQUIRED_FACE_LOCKED_OUT)
|
||||
} else if (!lockedOut && faceLockedOut) {
|
||||
uiEventLogger.log(
|
||||
PrimaryAuthRequiredEvent.PRIMARY_AUTH_REQUIRED_FACE_LOCKED_OUT_RESET)
|
||||
log(PrimaryAuthRequiredEvent.PRIMARY_AUTH_REQUIRED_FACE_LOCKED_OUT_RESET)
|
||||
}
|
||||
faceLockedOut = lockedOut
|
||||
}
|
||||
@@ -95,20 +90,19 @@ class KeyguardBiometricLockoutLogger @Inject constructor(
|
||||
|
||||
val newEncryptedOrLockdown = keyguardUpdateMonitor.isEncryptedOrLockdown(userId)
|
||||
if (newEncryptedOrLockdown && !encryptedOrLockdown) {
|
||||
uiEventLogger.log(
|
||||
PrimaryAuthRequiredEvent.PRIMARY_AUTH_REQUIRED_ENCRYPTED_OR_LOCKDOWN)
|
||||
log(PrimaryAuthRequiredEvent.PRIMARY_AUTH_REQUIRED_ENCRYPTED_OR_LOCKDOWN)
|
||||
}
|
||||
encryptedOrLockdown = newEncryptedOrLockdown
|
||||
|
||||
val newUnattendedUpdate = isUnattendedUpdate(strongAuthFlags)
|
||||
if (newUnattendedUpdate && !unattendedUpdate) {
|
||||
uiEventLogger.log(PrimaryAuthRequiredEvent.PRIMARY_AUTH_REQUIRED_UNATTENDED_UPDATE)
|
||||
log(PrimaryAuthRequiredEvent.PRIMARY_AUTH_REQUIRED_UNATTENDED_UPDATE)
|
||||
}
|
||||
unattendedUpdate = newUnattendedUpdate
|
||||
|
||||
val newTimeout = isStrongAuthTimeout(strongAuthFlags)
|
||||
if (newTimeout && !timeout) {
|
||||
uiEventLogger.log(PrimaryAuthRequiredEvent.PRIMARY_AUTH_REQUIRED_TIMEOUT)
|
||||
log(PrimaryAuthRequiredEvent.PRIMARY_AUTH_REQUIRED_TIMEOUT)
|
||||
}
|
||||
timeout = newTimeout
|
||||
}
|
||||
@@ -123,6 +117,9 @@ class KeyguardBiometricLockoutLogger @Inject constructor(
|
||||
) = containsFlag(flags, STRONG_AUTH_REQUIRED_AFTER_TIMEOUT) ||
|
||||
containsFlag(flags, STRONG_AUTH_REQUIRED_AFTER_NON_STRONG_BIOMETRICS_TIMEOUT)
|
||||
|
||||
private fun log(event: PrimaryAuthRequiredEvent) =
|
||||
uiEventLogger.log(event, sessionTracker.getSessionId(SESSION_KEYGUARD))
|
||||
|
||||
override fun dump(fd: FileDescriptor, pw: PrintWriter, args: Array<String>) {
|
||||
pw.println(" mFingerprintLockedOut=$fingerprintLockedOut")
|
||||
pw.println(" mFaceLockedOut=$faceLockedOut")
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
|
||||
package com.android.keyguard;
|
||||
|
||||
import static android.app.StatusBarManager.SESSION_KEYGUARD;
|
||||
|
||||
import static com.android.keyguard.KeyguardSecurityContainer.BOUNCER_DISMISS_BIOMETRIC;
|
||||
import static com.android.keyguard.KeyguardSecurityContainer.BOUNCER_DISMISS_EXTENDED_ACCESS;
|
||||
import static com.android.keyguard.KeyguardSecurityContainer.BOUNCER_DISMISS_NONE_SECURITY;
|
||||
@@ -36,7 +38,10 @@ import android.util.Log;
|
||||
import android.util.Slog;
|
||||
import android.view.MotionEvent;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.android.internal.annotations.VisibleForTesting;
|
||||
import com.android.internal.logging.InstanceId;
|
||||
import com.android.internal.logging.MetricsLogger;
|
||||
import com.android.internal.logging.UiEventLogger;
|
||||
import com.android.internal.logging.nano.MetricsProto;
|
||||
@@ -53,6 +58,7 @@ import com.android.systemui.R;
|
||||
import com.android.systemui.classifier.FalsingCollector;
|
||||
import com.android.systemui.flags.FeatureFlags;
|
||||
import com.android.systemui.flags.Flags;
|
||||
import com.android.systemui.log.SessionTracker;
|
||||
import com.android.systemui.plugins.FalsingManager;
|
||||
import com.android.systemui.shared.system.SysUiStatsLog;
|
||||
import com.android.systemui.statusbar.policy.ConfigurationController;
|
||||
@@ -86,6 +92,7 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard
|
||||
private final UserSwitcherController mUserSwitcherController;
|
||||
private final GlobalSettings mGlobalSettings;
|
||||
private final FeatureFlags mFeatureFlags;
|
||||
private final SessionTracker mSessionTracker;
|
||||
|
||||
private int mLastOrientation = Configuration.ORIENTATION_UNDEFINED;
|
||||
|
||||
@@ -191,7 +198,7 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard
|
||||
mMetricsLogger.write(new LogMaker(MetricsEvent.BOUNCER)
|
||||
.setType(success ? MetricsEvent.TYPE_SUCCESS : MetricsEvent.TYPE_FAILURE));
|
||||
mUiEventLogger.log(success ? BouncerUiEvent.BOUNCER_PASSWORD_SUCCESS
|
||||
: BouncerUiEvent.BOUNCER_PASSWORD_FAILURE);
|
||||
: BouncerUiEvent.BOUNCER_PASSWORD_FAILURE, getSessionId());
|
||||
}
|
||||
|
||||
public void reset() {
|
||||
@@ -242,7 +249,8 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard
|
||||
FalsingManager falsingManager,
|
||||
UserSwitcherController userSwitcherController,
|
||||
FeatureFlags featureFlags,
|
||||
GlobalSettings globalSettings) {
|
||||
GlobalSettings globalSettings,
|
||||
SessionTracker sessionTracker) {
|
||||
super(view);
|
||||
mLockPatternUtils = lockPatternUtils;
|
||||
mUpdateMonitor = keyguardUpdateMonitor;
|
||||
@@ -261,6 +269,7 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard
|
||||
mUserSwitcherController = userSwitcherController;
|
||||
mFeatureFlags = featureFlags;
|
||||
mGlobalSettings = globalSettings;
|
||||
mSessionTracker = sessionTracker;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -456,7 +465,7 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard
|
||||
.setType(MetricsProto.MetricsEvent.TYPE_DISMISS).setSubtype(eventSubtype));
|
||||
}
|
||||
if (uiEvent != BouncerUiEvent.UNKNOWN) {
|
||||
mUiEventLogger.log(uiEvent);
|
||||
mUiEventLogger.log(uiEvent, getSessionId());
|
||||
}
|
||||
if (finish) {
|
||||
mSecurityCallback.finish(strongAuth, targetUserId);
|
||||
@@ -599,6 +608,10 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard
|
||||
}
|
||||
}
|
||||
|
||||
private @Nullable InstanceId getSessionId() {
|
||||
return mSessionTracker.getSessionId(SESSION_KEYGUARD);
|
||||
}
|
||||
|
||||
/** Update keyguard position based on a tapped X coordinate. */
|
||||
public void updateKeyguardPosition(float x) {
|
||||
mView.updatePositionByTouchX(x);
|
||||
@@ -622,6 +635,7 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard
|
||||
private final GlobalSettings mGlobalSettings;
|
||||
private final FeatureFlags mFeatureFlags;
|
||||
private final UserSwitcherController mUserSwitcherController;
|
||||
private final SessionTracker mSessionTracker;
|
||||
|
||||
@Inject
|
||||
Factory(KeyguardSecurityContainer view,
|
||||
@@ -639,7 +653,8 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard
|
||||
FalsingManager falsingManager,
|
||||
UserSwitcherController userSwitcherController,
|
||||
FeatureFlags featureFlags,
|
||||
GlobalSettings globalSettings) {
|
||||
GlobalSettings globalSettings,
|
||||
SessionTracker sessionTracker) {
|
||||
mView = view;
|
||||
mAdminSecondaryLockScreenControllerFactory = adminSecondaryLockScreenControllerFactory;
|
||||
mLockPatternUtils = lockPatternUtils;
|
||||
@@ -655,6 +670,7 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard
|
||||
mFeatureFlags = featureFlags;
|
||||
mGlobalSettings = globalSettings;
|
||||
mUserSwitcherController = userSwitcherController;
|
||||
mSessionTracker = sessionTracker;
|
||||
}
|
||||
|
||||
public KeyguardSecurityContainerController create(
|
||||
@@ -664,7 +680,7 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard
|
||||
mKeyguardUpdateMonitor, mKeyguardSecurityModel, mMetricsLogger, mUiEventLogger,
|
||||
mKeyguardStateController, securityCallback, mSecurityViewFlipperController,
|
||||
mConfigurationController, mFalsingCollector, mFalsingManager,
|
||||
mUserSwitcherController, mFeatureFlags, mGlobalSettings);
|
||||
mUserSwitcherController, mFeatureFlags, mGlobalSettings, mSessionTracker);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
|
||||
package com.android.systemui.statusbar.phone;
|
||||
|
||||
import static android.app.StatusBarManager.SESSION_KEYGUARD;
|
||||
|
||||
import android.annotation.IntDef;
|
||||
import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
@@ -28,7 +30,10 @@ import android.os.SystemClock;
|
||||
import android.os.Trace;
|
||||
import android.util.Log;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.android.internal.annotations.VisibleForTesting;
|
||||
import com.android.internal.logging.InstanceId;
|
||||
import com.android.internal.logging.MetricsLogger;
|
||||
import com.android.internal.logging.UiEvent;
|
||||
import com.android.internal.logging.UiEventLogger;
|
||||
@@ -48,6 +53,7 @@ import com.android.systemui.keyguard.KeyguardUnlockAnimationController;
|
||||
import com.android.systemui.keyguard.KeyguardViewMediator;
|
||||
import com.android.systemui.keyguard.ScreenLifecycle;
|
||||
import com.android.systemui.keyguard.WakefulnessLifecycle;
|
||||
import com.android.systemui.log.SessionTracker;
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||
import com.android.systemui.statusbar.CommandQueue;
|
||||
import com.android.systemui.statusbar.NotificationMediaManager;
|
||||
@@ -156,6 +162,7 @@ public class BiometricUnlockController extends KeyguardUpdateMonitorCallback imp
|
||||
private final DozeParameters mDozeParameters;
|
||||
private final KeyguardStateController mKeyguardStateController;
|
||||
private final NotificationShadeWindowController mNotificationShadeWindowController;
|
||||
private final SessionTracker mSessionTracker;
|
||||
private final Context mContext;
|
||||
private final int mWakeUpDelay;
|
||||
private int mMode;
|
||||
@@ -273,7 +280,8 @@ public class BiometricUnlockController extends KeyguardUpdateMonitorCallback imp
|
||||
ScreenLifecycle screenLifecycle,
|
||||
AuthController authController,
|
||||
StatusBarStateController statusBarStateController,
|
||||
KeyguardUnlockAnimationController keyguardUnlockAnimationController) {
|
||||
KeyguardUnlockAnimationController keyguardUnlockAnimationController,
|
||||
SessionTracker sessionTracker) {
|
||||
mContext = context;
|
||||
mPowerManager = powerManager;
|
||||
mShadeController = shadeController;
|
||||
@@ -297,6 +305,7 @@ public class BiometricUnlockController extends KeyguardUpdateMonitorCallback imp
|
||||
mAuthController = authController;
|
||||
mStatusBarStateController = statusBarStateController;
|
||||
mKeyguardUnlockAnimationController = keyguardUnlockAnimationController;
|
||||
mSessionTracker = sessionTracker;
|
||||
dumpManager.registerDumpable(getClass().getName(), this);
|
||||
}
|
||||
|
||||
@@ -376,7 +385,7 @@ public class BiometricUnlockController extends KeyguardUpdateMonitorCallback imp
|
||||
mMetricsLogger.write(new LogMaker(MetricsEvent.BIOMETRIC_AUTH)
|
||||
.setType(MetricsEvent.TYPE_SUCCESS).setSubtype(toSubtype(biometricSourceType)));
|
||||
Optional.ofNullable(BiometricUiEvent.SUCCESS_EVENT_BY_SOURCE_TYPE.get(biometricSourceType))
|
||||
.ifPresent(UI_EVENT_LOGGER::log);
|
||||
.ifPresent(event -> UI_EVENT_LOGGER.log(event, getSessionId()));
|
||||
|
||||
boolean unlockAllowed =
|
||||
mKeyguardStateController.isOccluded()
|
||||
@@ -641,7 +650,7 @@ public class BiometricUnlockController extends KeyguardUpdateMonitorCallback imp
|
||||
mMetricsLogger.write(new LogMaker(MetricsEvent.BIOMETRIC_AUTH)
|
||||
.setType(MetricsEvent.TYPE_FAILURE).setSubtype(toSubtype(biometricSourceType)));
|
||||
Optional.ofNullable(BiometricUiEvent.FAILURE_EVENT_BY_SOURCE_TYPE.get(biometricSourceType))
|
||||
.ifPresent(UI_EVENT_LOGGER::log);
|
||||
.ifPresent(event -> UI_EVENT_LOGGER.log(event, getSessionId()));
|
||||
|
||||
if (biometricSourceType == BiometricSourceType.FINGERPRINT
|
||||
&& mUpdateMonitor.isUdfpsSupported()) {
|
||||
@@ -656,7 +665,7 @@ public class BiometricUnlockController extends KeyguardUpdateMonitorCallback imp
|
||||
|
||||
if (mNumConsecutiveFpFailures >= FP_ATTEMPTS_BEFORE_SHOW_BOUNCER) {
|
||||
startWakeAndUnlock(MODE_SHOW_BOUNCER);
|
||||
UI_EVENT_LOGGER.log(BiometricUiEvent.BIOMETRIC_BOUNCER_SHOWN);
|
||||
UI_EVENT_LOGGER.log(BiometricUiEvent.BIOMETRIC_BOUNCER_SHOWN, getSessionId());
|
||||
mNumConsecutiveFpFailures = 0;
|
||||
}
|
||||
}
|
||||
@@ -670,7 +679,7 @@ public class BiometricUnlockController extends KeyguardUpdateMonitorCallback imp
|
||||
.setType(MetricsEvent.TYPE_ERROR).setSubtype(toSubtype(biometricSourceType))
|
||||
.addTaggedData(MetricsEvent.FIELD_BIOMETRIC_AUTH_ERROR, msgId));
|
||||
Optional.ofNullable(BiometricUiEvent.ERROR_EVENT_BY_SOURCE_TYPE.get(biometricSourceType))
|
||||
.ifPresent(UI_EVENT_LOGGER::log);
|
||||
.ifPresent(event -> UI_EVENT_LOGGER.log(event, getSessionId()));
|
||||
|
||||
// if we're on the shade and we're locked out, immediately show the bouncer
|
||||
if (biometricSourceType == BiometricSourceType.FINGERPRINT
|
||||
@@ -680,7 +689,7 @@ public class BiometricUnlockController extends KeyguardUpdateMonitorCallback imp
|
||||
&& (mStatusBarStateController.getState() == StatusBarState.SHADE
|
||||
|| mStatusBarStateController.getState() == StatusBarState.SHADE_LOCKED)) {
|
||||
startWakeAndUnlock(MODE_SHOW_BOUNCER);
|
||||
UI_EVENT_LOGGER.log(BiometricUiEvent.BIOMETRIC_BOUNCER_SHOWN);
|
||||
UI_EVENT_LOGGER.log(BiometricUiEvent.BIOMETRIC_BOUNCER_SHOWN, getSessionId());
|
||||
}
|
||||
cleanup();
|
||||
}
|
||||
@@ -786,6 +795,9 @@ public class BiometricUnlockController extends KeyguardUpdateMonitorCallback imp
|
||||
return mBiometricType;
|
||||
}
|
||||
|
||||
private @Nullable InstanceId getSessionId() {
|
||||
return mSessionTracker.getSessionId(SESSION_KEYGUARD);
|
||||
}
|
||||
/**
|
||||
* Translates biometric source type for logging purpose.
|
||||
*/
|
||||
|
||||
@@ -20,11 +20,12 @@ import android.hardware.biometrics.BiometricSourceType
|
||||
import org.mockito.Mockito.verify
|
||||
import android.testing.AndroidTestingRunner
|
||||
import androidx.test.filters.SmallTest
|
||||
import com.android.internal.logging.InstanceId
|
||||
import com.android.internal.logging.UiEventLogger
|
||||
import com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STRONG_AUTH_REQUIRED_AFTER_TIMEOUT
|
||||
import com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STRONG_AUTH_REQUIRED_FOR_UNATTENDED_UPDATE
|
||||
import com.android.systemui.SysuiTestCase
|
||||
import com.android.systemui.dump.DumpManager
|
||||
import com.android.systemui.log.SessionTracker
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
@@ -44,9 +45,11 @@ class KeyguardBiometricLockoutLoggerTest : SysuiTestCase() {
|
||||
@Mock
|
||||
lateinit var keyguardUpdateMonitor: KeyguardUpdateMonitor
|
||||
@Mock
|
||||
lateinit var dumpManager: DumpManager
|
||||
@Mock
|
||||
lateinit var strongAuthTracker: KeyguardUpdateMonitor.StrongAuthTracker
|
||||
@Mock
|
||||
lateinit var sessionTracker: SessionTracker
|
||||
@Mock
|
||||
lateinit var sessionId: InstanceId
|
||||
|
||||
@Captor
|
||||
lateinit var updateMonitorCallbackCaptor: ArgumentCaptor<KeyguardUpdateMonitorCallback>
|
||||
@@ -58,11 +61,12 @@ class KeyguardBiometricLockoutLoggerTest : SysuiTestCase() {
|
||||
fun setUp() {
|
||||
MockitoAnnotations.initMocks(this)
|
||||
whenever(keyguardUpdateMonitor.strongAuthTracker).thenReturn(strongAuthTracker)
|
||||
whenever(sessionTracker.getSessionId(anyInt())).thenReturn(sessionId)
|
||||
keyguardBiometricLockoutLogger = KeyguardBiometricLockoutLogger(
|
||||
mContext,
|
||||
uiEventLogger,
|
||||
keyguardUpdateMonitor,
|
||||
dumpManager)
|
||||
sessionTracker)
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -76,7 +80,7 @@ class KeyguardBiometricLockoutLoggerTest : SysuiTestCase() {
|
||||
|
||||
// THEN encrypted / lockdown state is logged
|
||||
verify(uiEventLogger).log(KeyguardBiometricLockoutLogger.PrimaryAuthRequiredEvent
|
||||
.PRIMARY_AUTH_REQUIRED_ENCRYPTED_OR_LOCKDOWN)
|
||||
.PRIMARY_AUTH_REQUIRED_ENCRYPTED_OR_LOCKDOWN, sessionId)
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -93,7 +97,7 @@ class KeyguardBiometricLockoutLoggerTest : SysuiTestCase() {
|
||||
|
||||
// THEN primary auth required state is logged
|
||||
verify(uiEventLogger).log(KeyguardBiometricLockoutLogger.PrimaryAuthRequiredEvent
|
||||
.PRIMARY_AUTH_REQUIRED_TIMEOUT)
|
||||
.PRIMARY_AUTH_REQUIRED_TIMEOUT, sessionId)
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -110,7 +114,7 @@ class KeyguardBiometricLockoutLoggerTest : SysuiTestCase() {
|
||||
|
||||
// THEN primary auth required state is logged
|
||||
verify(uiEventLogger).log(KeyguardBiometricLockoutLogger.PrimaryAuthRequiredEvent
|
||||
.PRIMARY_AUTH_REQUIRED_UNATTENDED_UPDATE)
|
||||
.PRIMARY_AUTH_REQUIRED_UNATTENDED_UPDATE, sessionId)
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -128,9 +132,9 @@ class KeyguardBiometricLockoutLoggerTest : SysuiTestCase() {
|
||||
|
||||
// THEN primary auth required state is logged with all the reasons
|
||||
verify(uiEventLogger).log(KeyguardBiometricLockoutLogger.PrimaryAuthRequiredEvent
|
||||
.PRIMARY_AUTH_REQUIRED_TIMEOUT)
|
||||
.PRIMARY_AUTH_REQUIRED_TIMEOUT, sessionId)
|
||||
verify(uiEventLogger).log(KeyguardBiometricLockoutLogger.PrimaryAuthRequiredEvent
|
||||
.PRIMARY_AUTH_REQUIRED_UNATTENDED_UPDATE)
|
||||
.PRIMARY_AUTH_REQUIRED_UNATTENDED_UPDATE, sessionId)
|
||||
|
||||
// WHEN onStrongAuthStateChanged is called again
|
||||
updateMonitorCallback.onStrongAuthStateChanged(0)
|
||||
@@ -152,7 +156,7 @@ class KeyguardBiometricLockoutLoggerTest : SysuiTestCase() {
|
||||
|
||||
// THEN primary auth required state is logged
|
||||
verify(uiEventLogger).log(KeyguardBiometricLockoutLogger.PrimaryAuthRequiredEvent
|
||||
.PRIMARY_AUTH_REQUIRED_FACE_LOCKED_OUT)
|
||||
.PRIMARY_AUTH_REQUIRED_FACE_LOCKED_OUT, sessionId)
|
||||
|
||||
// WHEN face lockout is reset
|
||||
whenever(keyguardUpdateMonitor.isFaceLockedOut).thenReturn(false)
|
||||
@@ -160,7 +164,7 @@ class KeyguardBiometricLockoutLoggerTest : SysuiTestCase() {
|
||||
|
||||
// THEN primary auth required state is logged
|
||||
verify(uiEventLogger).log(KeyguardBiometricLockoutLogger.PrimaryAuthRequiredEvent
|
||||
.PRIMARY_AUTH_REQUIRED_FACE_LOCKED_OUT_RESET)
|
||||
.PRIMARY_AUTH_REQUIRED_FACE_LOCKED_OUT_RESET, sessionId)
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -176,7 +180,7 @@ class KeyguardBiometricLockoutLoggerTest : SysuiTestCase() {
|
||||
|
||||
// THEN primary auth required state is logged
|
||||
verify(uiEventLogger).log(KeyguardBiometricLockoutLogger.PrimaryAuthRequiredEvent
|
||||
.PRIMARY_AUTH_REQUIRED_FINGERPRINT_LOCKED_OUT)
|
||||
.PRIMARY_AUTH_REQUIRED_FINGERPRINT_LOCKED_OUT, sessionId)
|
||||
|
||||
// WHEN fingerprint lockout is reset
|
||||
whenever(keyguardUpdateMonitor.isFingerprintLockedOut).thenReturn(false)
|
||||
@@ -184,7 +188,7 @@ class KeyguardBiometricLockoutLoggerTest : SysuiTestCase() {
|
||||
|
||||
// THEN primary auth required state is logged
|
||||
verify(uiEventLogger).log(KeyguardBiometricLockoutLogger.PrimaryAuthRequiredEvent
|
||||
.PRIMARY_AUTH_REQUIRED_FINGERPRINT_LOCKED_OUT_RESET)
|
||||
.PRIMARY_AUTH_REQUIRED_FINGERPRINT_LOCKED_OUT_RESET, sessionId)
|
||||
}
|
||||
|
||||
fun captureUpdateMonitorCallback() {
|
||||
|
||||
@@ -49,6 +49,7 @@ import com.android.systemui.R;
|
||||
import com.android.systemui.SysuiTestCase;
|
||||
import com.android.systemui.classifier.FalsingCollector;
|
||||
import com.android.systemui.flags.FeatureFlags;
|
||||
import com.android.systemui.log.SessionTracker;
|
||||
import com.android.systemui.plugins.FalsingManager;
|
||||
import com.android.systemui.statusbar.policy.ConfigurationController;
|
||||
import com.android.systemui.statusbar.policy.KeyguardStateController;
|
||||
@@ -120,6 +121,8 @@ public class KeyguardSecurityContainerControllerTest extends SysuiTestCase {
|
||||
private FeatureFlags mFeatureFlags;
|
||||
@Mock
|
||||
private UserSwitcherController mUserSwitcherController;
|
||||
@Mock
|
||||
private SessionTracker mSessionTracker;
|
||||
private Configuration mConfiguration;
|
||||
|
||||
private KeyguardSecurityContainerController mKeyguardSecurityContainerController;
|
||||
@@ -154,7 +157,8 @@ public class KeyguardSecurityContainerControllerTest extends SysuiTestCase {
|
||||
mKeyguardUpdateMonitor, mKeyguardSecurityModel, mMetricsLogger, mUiEventLogger,
|
||||
mKeyguardStateController, mKeyguardSecurityViewFlipperController,
|
||||
mConfigurationController, mFalsingCollector, mFalsingManager,
|
||||
mUserSwitcherController, mFeatureFlags, mGlobalSettings).create(mSecurityCallback);
|
||||
mUserSwitcherController, mFeatureFlags, mGlobalSettings,
|
||||
mSessionTracker).create(mSecurityCallback);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -46,6 +46,7 @@ import com.android.systemui.keyguard.KeyguardUnlockAnimationController;
|
||||
import com.android.systemui.keyguard.KeyguardViewMediator;
|
||||
import com.android.systemui.keyguard.ScreenLifecycle;
|
||||
import com.android.systemui.keyguard.WakefulnessLifecycle;
|
||||
import com.android.systemui.log.SessionTracker;
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||
import com.android.systemui.statusbar.NotificationMediaManager;
|
||||
import com.android.systemui.statusbar.NotificationShadeWindowController;
|
||||
@@ -107,6 +108,8 @@ public class BiometricsUnlockControllerTest extends SysuiTestCase {
|
||||
private StatusBarStateController mStatusBarStateController;
|
||||
@Mock
|
||||
private KeyguardUnlockAnimationController mKeyguardUnlockAnimationController;
|
||||
@Mock
|
||||
private SessionTracker mSessionTracker;
|
||||
private BiometricUnlockController mBiometricUnlockController;
|
||||
|
||||
@Before
|
||||
@@ -129,7 +132,8 @@ public class BiometricsUnlockControllerTest extends SysuiTestCase {
|
||||
mUpdateMonitor, res.getResources(), mKeyguardBypassController, mDozeParameters,
|
||||
mMetricsLogger, mDumpManager, mPowerManager,
|
||||
mNotificationMediaManager, mWakefulnessLifecycle, mScreenLifecycle,
|
||||
mAuthController, mStatusBarStateController, mKeyguardUnlockAnimationController);
|
||||
mAuthController, mStatusBarStateController, mKeyguardUnlockAnimationController,
|
||||
mSessionTracker);
|
||||
mBiometricUnlockController.setKeyguardViewController(mStatusBarKeyguardViewManager);
|
||||
mBiometricUnlockController.setBiometricModeListener(mBiometricModeListener);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user