Add API to provide complexity validation error

Currently there is no method for SUW to retrieve the
feedback String when user password/PIN/pattern does
not meet the complexity requirement.

We create a new API checkValidLockForMessage to
retrieve the respective Strings shown to users in
Settings when password does not meet the requirement.

Additionally, we update LIBRARY_VERSION to 2.

Bug: 268506426
Test: manual - build passes when InitialSetupService
in CarSettings implements the method

Change-Id: I37ca7d0b5eec178f993770ba806fc428b7eda0c8
Merged-In: I37ca7d0b5eec178f993770ba806fc428b7eda0c8
diff --git a/library/utils/src/com/android/car/setupwizardlib/IInitialLockSetupService.aidl b/library/utils/src/com/android/car/setupwizardlib/IInitialLockSetupService.aidl
index 305195b..3cc4bd4 100644
--- a/library/utils/src/com/android/car/setupwizardlib/IInitialLockSetupService.aidl
+++ b/library/utils/src/com/android/car/setupwizardlib/IInitialLockSetupService.aidl
@@ -44,5 +44,19 @@
      * deserializable by the service.
      */
     int setLock(in int lockType, in byte[] password) = 3;
+
+    /**
+     * Added in LIBRARY_VERSION = 2.
+     *
+     * Returns a message String combing all input validation error messages to
+     * directly display to user. If there is no error and the credentialBytes
+     * is valid then it will return an empty String. The String returned should
+     * be the same message as shown to users in the Security Settings page
+     * and should be properly localized.
+
+     * @param credentialBytes input value in bytes representing one of
+     * Password, PIN, or Pattern input.
+     */
+    String checkValidLockAndReturnError(in int lockType, in byte[] credentialBytes) = 4;
 }
 
diff --git a/library/utils/src/com/android/car/setupwizardlib/InitialLockSetupConstants.java b/library/utils/src/com/android/car/setupwizardlib/InitialLockSetupConstants.java
index 8ca5c6e..7362cd1 100644
--- a/library/utils/src/com/android/car/setupwizardlib/InitialLockSetupConstants.java
+++ b/library/utils/src/com/android/car/setupwizardlib/InitialLockSetupConstants.java
@@ -27,8 +27,12 @@
     /**
      * The library version. All relevant changes should bump this version number and ensure
      * all relevant parts of the interface handle backwards compatibility.
+     *
+     * Library version 1: Initial implementation
+     * Library version 2: Add API checkValidLockAndReturnError to allow complexity validation
+     * error to be retrieved from Settings.
      */
-    int LIBRARY_VERSION = 1;
+    int LIBRARY_VERSION = 2;
 
     /**
      * Lock types supported by the InitialLockSetupService.