Merge "Instrument latency of face unlock" into sc-dev

This commit is contained in:
TreeHugger Robot
2021-06-08 06:31:47 +00:00
committed by Android (Google) Code Review
2 changed files with 17 additions and 7 deletions

View File

@@ -45,6 +45,9 @@ public class LatencyTester extends SystemUI {
private static final String private static final String
ACTION_FINGERPRINT_WAKE = ACTION_FINGERPRINT_WAKE =
"com.android.systemui.latency.ACTION_FINGERPRINT_WAKE"; "com.android.systemui.latency.ACTION_FINGERPRINT_WAKE";
private static final String
ACTION_FACE_WAKE =
"com.android.systemui.latency.ACTION_FACE_WAKE";
private static final String private static final String
ACTION_TURN_ON_SCREEN = ACTION_TURN_ON_SCREEN =
"com.android.systemui.latency.ACTION_TURN_ON_SCREEN"; "com.android.systemui.latency.ACTION_TURN_ON_SCREEN";
@@ -70,13 +73,16 @@ public class LatencyTester extends SystemUI {
IntentFilter filter = new IntentFilter(); IntentFilter filter = new IntentFilter();
filter.addAction(ACTION_FINGERPRINT_WAKE); filter.addAction(ACTION_FINGERPRINT_WAKE);
filter.addAction(ACTION_FACE_WAKE);
filter.addAction(ACTION_TURN_ON_SCREEN); filter.addAction(ACTION_TURN_ON_SCREEN);
mBroadcastDispatcher.registerReceiver(new BroadcastReceiver() { mBroadcastDispatcher.registerReceiver(new BroadcastReceiver() {
@Override @Override
public void onReceive(Context context, Intent intent) { public void onReceive(Context context, Intent intent) {
String action = intent.getAction(); String action = intent.getAction();
if (ACTION_FINGERPRINT_WAKE.equals(action)) { if (ACTION_FINGERPRINT_WAKE.equals(action)) {
fakeWakeAndUnlock(); fakeWakeAndUnlock(BiometricSourceType.FINGERPRINT);
} else if (ACTION_FACE_WAKE.equals(action)) {
fakeWakeAndUnlock(BiometricSourceType.FACE);
} else if (ACTION_TURN_ON_SCREEN.equals(action)) { } else if (ACTION_TURN_ON_SCREEN.equals(action)) {
fakeTurnOnScreen(); fakeTurnOnScreen();
} }
@@ -93,10 +99,9 @@ public class LatencyTester extends SystemUI {
SystemClock.uptimeMillis(), WAKE_REASON_UNKNOWN, "android.policy:LATENCY_TESTS"); SystemClock.uptimeMillis(), WAKE_REASON_UNKNOWN, "android.policy:LATENCY_TESTS");
} }
private void fakeWakeAndUnlock() { private void fakeWakeAndUnlock(BiometricSourceType type) {
mBiometricUnlockController.onBiometricAcquired(BiometricSourceType.FINGERPRINT); mBiometricUnlockController.onBiometricAcquired(type);
mBiometricUnlockController.onBiometricAuthenticated( mBiometricUnlockController.onBiometricAuthenticated(
KeyguardUpdateMonitor.getCurrentUser(), BiometricSourceType.FINGERPRINT, KeyguardUpdateMonitor.getCurrentUser(), type, true /* isStrongBiometric */);
true /* isStrongBiometric */);
} }
} }

View File

@@ -26,6 +26,7 @@ import static com.android.systemui.statusbar.phone.BiometricUnlockController.MOD
import android.content.ComponentCallbacks2; import android.content.ComponentCallbacks2;
import android.content.Context; import android.content.Context;
import android.content.res.ColorStateList; import android.content.res.ColorStateList;
import android.hardware.biometrics.BiometricSourceType;
import android.os.Bundle; import android.os.Bundle;
import android.os.SystemClock; import android.os.SystemClock;
import android.view.KeyEvent; import android.view.KeyEvent;
@@ -768,9 +769,13 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
private void wakeAndUnlockDejank() { private void wakeAndUnlockDejank() {
if (mBiometricUnlockController.getMode() == MODE_WAKE_AND_UNLOCK if (mBiometricUnlockController.getMode() == MODE_WAKE_AND_UNLOCK
&& LatencyTracker.isEnabled(mContext)) { && LatencyTracker.isEnabled(mContext)) {
DejankUtils.postAfterTraversal(() -> BiometricSourceType type = mBiometricUnlockController.getBiometricType();
DejankUtils.postAfterTraversal(() -> {
LatencyTracker.getInstance(mContext).onActionEnd( LatencyTracker.getInstance(mContext).onActionEnd(
LatencyTracker.ACTION_FINGERPRINT_WAKE_AND_UNLOCK)); type == BiometricSourceType.FACE
? LatencyTracker.ACTION_FACE_WAKE_AND_UNLOCK
: LatencyTracker.ACTION_FINGERPRINT_WAKE_AND_UNLOCK);
});
} }
} }