From d86cbcc9062ea20279c48798141446382ec28a67 Mon Sep 17 00:00:00 2001 From: Milton Wu Date: Thu, 26 May 2022 17:38:02 +0800 Subject: [PATCH] Add dump info for biometrics auth dialog Add dump info under AuthController for dumpsys command adb shell dumpsys activity service com.android.systemui Bug: 232723342 Test: atest AuthContainerViewTest AuthControllerTest Change-Id: I4fdeaf0c47f4e3bb6ca381b7c295dddcce8900a9 --- .../biometrics/AuthContainerView.java | 33 +++++++++++++++++++ .../systemui/biometrics/AuthController.java | 16 +++++++++ .../systemui/biometrics/AuthDialog.java | 4 ++- 3 files changed, 52 insertions(+), 1 deletion(-) diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/AuthContainerView.java b/packages/SystemUI/src/com/android/systemui/biometrics/AuthContainerView.java index 3c2de895bf267..ab0959f7eb9b7 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/AuthContainerView.java +++ b/packages/SystemUI/src/com/android/systemui/biometrics/AuthContainerView.java @@ -61,6 +61,7 @@ import com.android.systemui.dagger.qualifiers.Background; import com.android.systemui.keyguard.WakefulnessLifecycle; import com.android.systemui.util.concurrency.DelayableExecutor; +import java.io.PrintWriter; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.HashSet; @@ -739,4 +740,36 @@ public class AuthContainerView extends LinearLayout lp.token = windowToken; return lp; } + + @Override + public void dump(@NonNull PrintWriter pw, @NonNull String[] args) { + pw.println(" isAttachedToWindow=" + isAttachedToWindow()); + pw.println(" containerState=" + mContainerState); + pw.println(" pendingCallbackReason=" + mPendingCallbackReason); + pw.println(" config exist=" + (mConfig != null)); + if (mConfig != null) { + pw.println(" config.sensorIds exist=" + (mConfig.mSensorIds != null)); + } + final AuthBiometricView biometricView = mBiometricView; + pw.println(" scrollView=" + findViewById(R.id.biometric_scrollview)); + pw.println(" biometricView=" + biometricView); + if (biometricView != null) { + int[] ids = { + R.id.title, + R.id.subtitle, + R.id.description, + R.id.biometric_icon_frame, + R.id.biometric_icon, + R.id.indicator, + R.id.button_bar, + R.id.button_negative, + R.id.button_use_credential, + R.id.button_confirm, + R.id.button_try_again + }; + for (final int id: ids) { + pw.println(" " + biometricView.findViewById(id)); + } + } + } } diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/AuthController.java b/packages/SystemUI/src/com/android/systemui/biometrics/AuthController.java index 8c59f373ec910..bfb0a09dbb237 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/AuthController.java +++ b/packages/SystemUI/src/com/android/systemui/biometrics/AuthController.java @@ -75,6 +75,7 @@ import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.util.concurrency.DelayableExecutor; import com.android.systemui.util.concurrency.Execution; +import java.io.PrintWriter; import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; @@ -1044,6 +1045,21 @@ public class AuthController extends CoreStartable implements CommandQueue.Callba userManager, lockPatternUtils); } + @Override + public void dump(@NonNull PrintWriter pw, @NonNull String[] args) { + final AuthDialog dialog = mCurrentDialog; + pw.println(" stableDisplaySize=" + mStableDisplaySize); + pw.println(" faceAuthSensorLocation=" + mFaceAuthSensorLocation); + pw.println(" fingerprintLocation=" + mFingerprintLocation); + pw.println(" udfpsBounds=" + mUdfpsBounds); + pw.println(" allFingerprintAuthenticatorsRegistered=" + + mAllFingerprintAuthenticatorsRegistered); + pw.println(" currentDialog=" + dialog); + if (dialog != null) { + dialog.dump(pw, args); + } + } + /** * Provides a float that represents the resolution scale(if the controller is for UDFPS). */ diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/AuthDialog.java b/packages/SystemUI/src/com/android/systemui/biometrics/AuthDialog.java index 4ff19f6adc115..51f39b3586595 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/AuthDialog.java +++ b/packages/SystemUI/src/com/android/systemui/biometrics/AuthDialog.java @@ -23,13 +23,15 @@ import android.hardware.biometrics.BiometricAuthenticator.Modality; import android.os.Bundle; import android.view.WindowManager; +import com.android.systemui.Dumpable; + import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; /** * Interface for the biometric dialog UI. */ -public interface AuthDialog { +public interface AuthDialog extends Dumpable { String KEY_CONTAINER_GOING_AWAY = "container_going_away"; String KEY_BIOMETRIC_SHOWING = "biometric_showing";