12/n: Add LockPatternView for setDeviceCredentialAllowed(true)

Includes lock icon, title, subtitle, description, lock pattern view.
Corner radius and padding animates nicely from !=0 --> 0.

Support for password/pin will come in a subsequent CL.
Unit tests for AuthCredentialView will be added when
password/pin are implemented.

Support for persisting across configuration changes
and landscape view will also be added in a subsequent
change.

Test: BiometricPromptDemo with the following:
      1) Confirm pattern, callback received
      2) Rejected, error string shown
      3) Lockout (5 attempts), countdown string shown,
         pattern view disabled until countdown is over
      4) Cancel pattern auth, callback received
Test: atest BiometricServiceTest
Test: atest com.android.systemui.biometrics

Change-Id: Idc01e33be0074a6c8a43f60b172a4391bfbe5e8a
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/AuthDialogCallback.java b/packages/SystemUI/src/com/android/systemui/biometrics/AuthDialogCallback.java
index 70752f5..12bb122 100644
--- a/packages/SystemUI/src/com/android/systemui/biometrics/AuthDialogCallback.java
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/AuthDialogCallback.java
@@ -27,17 +27,18 @@
     int DISMISSED_USER_CANCELED = 1;
     int DISMISSED_BUTTON_NEGATIVE = 2;
     int DISMISSED_BUTTON_POSITIVE = 3;
-
-    int DISMISSED_AUTHENTICATED = 4;
+    int DISMISSED_BIOMETRIC_AUTHENTICATED = 4;
     int DISMISSED_ERROR = 5;
     int DISMISSED_BY_SYSTEM_SERVER = 6;
+    int DISMISSED_CREDENTIAL_AUTHENTICATED = 7;
 
     @IntDef({DISMISSED_USER_CANCELED,
             DISMISSED_BUTTON_NEGATIVE,
             DISMISSED_BUTTON_POSITIVE,
-            DISMISSED_AUTHENTICATED,
+            DISMISSED_BIOMETRIC_AUTHENTICATED,
             DISMISSED_ERROR,
-            DISMISSED_BY_SYSTEM_SERVER})
+            DISMISSED_BY_SYSTEM_SERVER,
+            DISMISSED_CREDENTIAL_AUTHENTICATED})
     @interface DismissedReason {}
 
     /**
@@ -50,4 +51,9 @@
      * Invoked when the "try again" button is clicked
      */
     void onTryAgainPressed();
+
+    /**
+     * Invoked when the "use password" button is clicked
+     */
+    void onDeviceCredentialPressed();
 }