Snap for 10447354 from 9f64f1e37a10e5e56b299ac0e464de45c0066961 to mainline-cellbroadcast-release

Change-Id: I6d60b2792a08943264a3eba446e7f4e0fb9de92d
diff --git a/library/main/build.gradle b/library/main/build.gradle
index 17ab59a..8af3194 100644
--- a/library/main/build.gradle
+++ b/library/main/build.gradle
@@ -82,5 +82,5 @@
 
     testImplementation 'com.google.truth:truth:0.41'
     testImplementation 'org.mockito:mockito-core:3.6.0'
-    testImplementation 'org.robolectric:robolectric:4.5.1'
+    testImplementation 'org.robolectric:robolectric:4.8.2'
 }
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.