@@ -1291,7 +1291,17 @@ public void confirmSignIn(final String signInChallengeResponse,
12911291 final Callback <SignInResult > callback ) {
12921292
12931293 final InternalCallback internalCallback = new InternalCallback <SignInResult >(callback );
1294- internalCallback .async (_confirmSignIn (signInChallengeResponse , clientMetadata , internalCallback ));
1294+ internalCallback .async (_confirmSignIn (signInChallengeResponse , clientMetadata , Collections .<String , String >emptyMap (), internalCallback ));
1295+ }
1296+
1297+ @ AnyThread
1298+ public void confirmSignIn (final String signInChallengeResponse ,
1299+ final Map <String , String > clientMetadata ,
1300+ final Map <String , String > userAttributes ,
1301+ final Callback <SignInResult > callback ) {
1302+
1303+ final InternalCallback internalCallback = new InternalCallback <SignInResult >(callback );
1304+ internalCallback .async (_confirmSignIn (signInChallengeResponse , clientMetadata , userAttributes , internalCallback ));
12951305 }
12961306
12971307 @ WorkerThread
@@ -1304,11 +1314,21 @@ public SignInResult confirmSignIn(final String signInChallengeResponse,
13041314 final Map <String , String > clientMetadata ) throws Exception {
13051315
13061316 final InternalCallback <SignInResult > internalCallback = new InternalCallback <SignInResult >();
1307- return internalCallback .await (_confirmSignIn (signInChallengeResponse , clientMetadata , internalCallback ));
1317+ return internalCallback .await (_confirmSignIn (signInChallengeResponse , clientMetadata , Collections .<String , String >emptyMap (), internalCallback ));
1318+ }
1319+
1320+ @ WorkerThread
1321+ public SignInResult confirmSignIn (final String signInChallengeResponse ,
1322+ final Map <String , String > clientMetadata ,
1323+ final Map <String , String > userAttributes ) throws Exception {
1324+
1325+ final InternalCallback <SignInResult > internalCallback = new InternalCallback <SignInResult >();
1326+ return internalCallback .await (_confirmSignIn (signInChallengeResponse , clientMetadata , userAttributes , internalCallback ));
13081327 }
13091328
13101329 private Runnable _confirmSignIn (final String signInChallengeResponse ,
13111330 final Map <String , String > clientMetadata ,
1331+ final Map <String , String > userAttributes ,
13121332 final Callback <SignInResult > callback ) {
13131333
13141334 return new Runnable () {
@@ -1333,6 +1353,9 @@ public void run() {
13331353 ((NewPasswordContinuation ) signInChallengeContinuation )
13341354 .setPassword (signInChallengeResponse );
13351355 signInChallengeContinuation .setClientMetaData (clientMetadata );
1356+ for (final String key : userAttributes .keySet ()) {
1357+ signInChallengeContinuation .setChallengeResponse (CHALLENGE_RESPONSE_USER_ATTRIBUTES_PREFIX_KEY + key , userAttributes .get (key ));
1358+ }
13361359 detectedContinuation = signInChallengeContinuation ;
13371360 signInCallback = new InternalCallback <SignInResult >(callback );
13381361 break ;
0 commit comments