Skip to content

Commit fbbd014

Browse files
committed
Fix case when only phone auth selected.
Bug: 62309027 Change-Id: Iccbdb2a34e8c0b14c6fcf186005e0f1a68ea180e
1 parent d340365 commit fbbd014

File tree

1 file changed

+14
-5
lines changed

1 file changed

+14
-5
lines changed

auth/src/main/java/com/firebase/ui/auth/util/signincontainer/SignInDelegate.java

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import com.firebase.ui.auth.ui.User;
2525
import com.firebase.ui.auth.ui.email.RegisterEmailActivity;
2626
import com.firebase.ui.auth.ui.idp.AuthMethodPickerActivity;
27+
import com.firebase.ui.auth.ui.phone.PhoneVerificationActivity;
2728
import com.firebase.ui.auth.util.GoogleApiHelper;
2829
import com.firebase.ui.auth.util.GoogleSignInHelper;
2930
import com.google.android.gms.auth.api.Auth;
@@ -43,6 +44,7 @@
4344
import com.google.firebase.auth.FacebookAuthProvider;
4445
import com.google.firebase.auth.FirebaseAuthInvalidUserException;
4546
import com.google.firebase.auth.GoogleAuthProvider;
47+
import com.google.firebase.auth.PhoneAuthProvider;
4648
import com.google.firebase.auth.TwitterAuthProvider;
4749
import java.util.ArrayList;
4850
import java.util.HashMap;
@@ -64,6 +66,7 @@ public class SignInDelegate extends SmartLockBase<CredentialRequestResult> {
6466
private static final int RC_IDP_SIGNIN = 3;
6567
private static final int RC_AUTH_METHOD_PICKER = 4;
6668
private static final int RC_EMAIL_FLOW = 5;
69+
private static final int RC_PHONE_FLOW = 6;
6770

6871
private Credential mCredential;
6972

@@ -242,16 +245,22 @@ private void startAuthMethodChoice() {
242245

243246
List<IdpConfig> visibleProviders = idpConfigs;
244247

245-
// If the only provider is Email, immediately launch the email flow. Otherwise, launch
246-
// the auth method picker screen.
248+
// If there is only one provider selected, launch the flow directly
247249
if (visibleProviders.size() == 1) {
248-
if (visibleProviders.get(0).getProviderId().equals(EmailAuthProvider.PROVIDER_ID)) {
250+
String firstProvider = visibleProviders.get(0).getProviderId();
251+
if (firstProvider.equals(EmailAuthProvider.PROVIDER_ID)) {
252+
// Go directly to email flow
249253
startActivityForResult(
250254
RegisterEmailActivity.createIntent(getContext(), flowParams),
251255
RC_EMAIL_FLOW);
256+
} else if (firstProvider.equals(PhoneAuthProvider.PROVIDER_ID)) {
257+
// Go directly to phone flow
258+
startActivityForResult(
259+
PhoneVerificationActivity.createIntent(getContext(), flowParams, null),
260+
RC_PHONE_FLOW);
252261
} else {
253-
redirectToIdpSignIn(null, providerIdToAccountType(
254-
visibleProviders.get(0).getProviderId()));
262+
// Launch IDP flow
263+
redirectToIdpSignIn(null, providerIdToAccountType(firstProvider));
255264
}
256265
} else {
257266
startActivityForResult(

0 commit comments

Comments
 (0)