diff options
6 files changed, 79 insertions, 42 deletions
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardBiometricLockoutLogger.kt b/packages/SystemUI/src/com/android/keyguard/KeyguardBiometricLockoutLogger.kt index 214b284ac4b9..43cd764f0110 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardBiometricLockoutLogger.kt +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardBiometricLockoutLogger.kt @@ -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") diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainerController.java b/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainerController.java index 49a802235619..57997d8efd6f 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainerController.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainerController.java @@ -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); } } } 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 8d500fa4e8b0..04d3e9a01d86 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/BiometricUnlockController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/BiometricUnlockController.java @@ -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. */ diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardBiometricLockoutLoggerTest.kt b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardBiometricLockoutLoggerTest.kt index 6bc65054d830..aa671d1e3790 100644 --- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardBiometricLockoutLoggerTest.kt +++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardBiometricLockoutLoggerTest.kt @@ -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() { diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardSecurityContainerControllerTest.java b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardSecurityContainerControllerTest.java index 599e5474c564..a819a7a0f815 100644 --- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardSecurityContainerControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardSecurityContainerControllerTest.java @@ -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 diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/BiometricsUnlockControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/BiometricsUnlockControllerTest.java index 5ca1f21eb021..8c7d22dde0b7 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/BiometricsUnlockControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/BiometricsUnlockControllerTest.java @@ -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); } |