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
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/AuthContainerView.java b/packages/SystemUI/src/com/android/systemui/biometrics/AuthContainerView.java
index 3c2de89..ab0959f 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.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 @@
         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 8c59f37..bfb0a09 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.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 @@
                         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 4ff19f6..51f39b3 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.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";