Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f1b0ce48 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Instrument latency of face unlock" into sc-dev am: d4f879b3

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14486202

Change-Id: Ifc07ae6b05c8638242945b98dcbbc64cf3ec923a
parents 87a4e5a5 d4f879b3
Loading
Loading
Loading
Loading
+10 −5
Original line number Diff line number Diff line
@@ -45,6 +45,9 @@ public class LatencyTester extends SystemUI {
    private static final String
            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
            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();
        filter.addAction(ACTION_FINGERPRINT_WAKE);
        filter.addAction(ACTION_FACE_WAKE);
        filter.addAction(ACTION_TURN_ON_SCREEN);
        mBroadcastDispatcher.registerReceiver(new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                String action = intent.getAction();
                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)) {
                    fakeTurnOnScreen();
                }
@@ -93,10 +99,9 @@ public class LatencyTester extends SystemUI {
                SystemClock.uptimeMillis(), WAKE_REASON_UNKNOWN, "android.policy:LATENCY_TESTS");
    }

    private void fakeWakeAndUnlock() {
        mBiometricUnlockController.onBiometricAcquired(BiometricSourceType.FINGERPRINT);
    private void fakeWakeAndUnlock(BiometricSourceType type) {
        mBiometricUnlockController.onBiometricAcquired(type);
        mBiometricUnlockController.onBiometricAuthenticated(
                KeyguardUpdateMonitor.getCurrentUser(), BiometricSourceType.FINGERPRINT,
                true /* isStrongBiometric */);
                KeyguardUpdateMonitor.getCurrentUser(), type, true /* isStrongBiometric */);
    }
}
+7 −2
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ import static com.android.systemui.statusbar.phone.BiometricUnlockController.MOD
import android.content.ComponentCallbacks2;
import android.content.Context;
import android.content.res.ColorStateList;
import android.hardware.biometrics.BiometricSourceType;
import android.os.Bundle;
import android.os.SystemClock;
import android.view.KeyEvent;
@@ -768,9 +769,13 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
    private void wakeAndUnlockDejank() {
        if (mBiometricUnlockController.getMode() == MODE_WAKE_AND_UNLOCK
                && LatencyTracker.isEnabled(mContext)) {
            DejankUtils.postAfterTraversal(() ->
            BiometricSourceType type = mBiometricUnlockController.getBiometricType();
            DejankUtils.postAfterTraversal(() -> {
                    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);
            });
        }
    }