Add additonal logging around user switching in KeyguardUpdateMonitor

Face auth either gets cancelled or doesn't run because we think user switching is currently in progress,
add more logs to KUM to identify which user switching API provides the information at the right time.

Bug: 285516490
Bug: 263757590
Test: NA, logging changes
Change-Id: I996044d65466c752b3c5256b27ca160edf7e03d4
This commit is contained in:
Chandru S
2023-07-25 16:12:16 -07:00
parent 1ce6427ad5
commit be484fd5a9
2 changed files with 35 additions and 4 deletions

View File

@@ -3563,6 +3563,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
*/
@VisibleForTesting
void handleUserSwitching(int userId, CountDownLatch latch) {
mLogger.logUserSwitching(userId, "from UserTracker");
Assert.isMainThread();
clearBiometricRecognized();
boolean trustUsuallyManaged = mTrustManager.isTrustUsuallyManaged(userId);
@@ -3583,6 +3584,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
*/
@VisibleForTesting
void handleUserSwitchComplete(int userId) {
mLogger.logUserSwitchComplete(userId, "from UserTracker");
Assert.isMainThread();
for (int i = 0; i < mCallbacks.size(); i++) {
KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get();
@@ -4036,6 +4038,11 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
@AnyThread
public void setSwitchingUser(boolean switching) {
if (switching) {
mLogger.logUserSwitching(getCurrentUser(), "from setSwitchingUser");
} else {
mLogger.logUserSwitchComplete(getCurrentUser(), "from setSwitchingUser");
}
mSwitchingUser = switching;
// Since this comes in on a binder thread, we need to post it first
mHandler.post(() -> updateBiometricListeningState(BIOMETRIC_ACTION_UPDATE,

View File

@@ -602,10 +602,10 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) {
fun allowFingerprintOnCurrentOccludingActivityChanged(allow: Boolean) {
logBuffer.log(
TAG,
VERBOSE,
{ bool1 = allow },
{ "allowFingerprintOnCurrentOccludingActivityChanged: $bool1" }
TAG,
VERBOSE,
{ bool1 = allow },
{ "allowFingerprintOnCurrentOccludingActivityChanged: $bool1" }
)
}
@@ -727,4 +727,28 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) {
{ "notifying about enrollments changed: $str1" }
)
}
fun logUserSwitching(userId: Int, context: String) {
logBuffer.log(
TAG,
DEBUG,
{
int1 = userId
str1 = context
},
{ "userCurrentlySwitching: $str1, userId: $int1" }
)
}
fun logUserSwitchComplete(userId: Int, context: String) {
logBuffer.log(
TAG,
DEBUG,
{
int1 = userId
str1 = context
},
{ "userSwitchComplete: $str1, userId: $int1" }
)
}
}