Skip to content

Commit 1a804cf

Browse files
author
Aaron Mandle
committed
Skip nascar screen if only email is selected
Change-Id: Ie82bf9f54919843c32db24bfa653060ddffc63a6
1 parent a55d472 commit 1a804cf

File tree

1 file changed

+26
-11
lines changed

1 file changed

+26
-11
lines changed

auth/src/main/java/com/firebase/ui/auth/ui/credentials/ChooseAccountActivity.java

Lines changed: 26 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,11 @@
2222
import android.util.Log;
2323

2424
import com.firebase.ui.auth.BuildConfig;
25+
import com.firebase.ui.auth.provider.IDPProviderParcel;
2526
import com.firebase.ui.auth.ui.ActivityBase;
2627
import com.firebase.ui.auth.ui.ActivityHelper;
2728
import com.firebase.ui.auth.ui.FlowParameters;
29+
import com.firebase.ui.auth.ui.email.SignInNoPasswordActivity;
2830
import com.firebase.ui.auth.ui.idp.AuthMethodPickerActivity;
2931
import com.firebase.ui.auth.ui.idp.IDPSignInContainerActivity;
3032
import com.firebase.ui.auth.util.CredentialsAPI;
@@ -34,14 +36,18 @@
3436
import com.google.android.gms.tasks.OnFailureListener;
3537
import com.google.android.gms.tasks.Task;
3638
import com.google.firebase.auth.AuthResult;
39+
import com.google.firebase.auth.EmailAuthProvider;
3740
import com.google.firebase.auth.FacebookAuthProvider;
3841
import com.google.firebase.auth.GoogleAuthProvider;
3942

43+
import java.util.List;
44+
4045
public class ChooseAccountActivity extends ActivityBase {
4146
private static final String TAG = "ChooseAccountActivity";
4247
private static final int RC_CREDENTIALS_READ = 2;
4348
private static final int RC_IDP_SIGNIN = 3;
4449
private static final int RC_AUTH_METHOD_PICKER = 4;
50+
private static final int RC_EMAIL_FLOW = 5;
4551

4652
protected CredentialsAPI mCredentialsApi;
4753

@@ -73,7 +79,6 @@ protected void onStop() {
7379
super.onStop();
7480
}
7581

76-
7782
public void onCredentialsApiConnected() {
7883
// called back when the CredentialsAPI connects
7984
String email = mCredentialsApi.getEmailFromCredential();
@@ -101,12 +106,24 @@ public void onComplete(@NonNull Task<AuthResult> task) {
101106
// resolve credential
102107
mCredentialsApi.resolveSavedEmails(this);
103108
} else {
104-
startActivityForResult(
105-
AuthMethodPickerActivity.createIntent(
106-
this,
107-
mActivityHelper.flowParams),
108-
RC_AUTH_METHOD_PICKER);
109+
startAuthMethodChoice();
109110
}
111+
} else {
112+
startAuthMethodChoice();
113+
}
114+
}
115+
116+
private void startAuthMethodChoice() {
117+
List<IDPProviderParcel> providers = mActivityHelper.flowParams.providerInfo;
118+
if ( providers.size() == 1
119+
&& providers.get(0).getProviderType().equals(EmailAuthProvider.PROVIDER_ID)) {
120+
startActivityForResult(
121+
SignInNoPasswordActivity.createIntent(
122+
this,
123+
mActivityHelper.flowParams,
124+
null
125+
),
126+
RC_EMAIL_FLOW);
110127
} else {
111128
startActivityForResult(
112129
AuthMethodPickerActivity.createIntent(
@@ -166,18 +183,16 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) {
166183
);
167184
} else if (resultCode == RESULT_CANCELED) {
168185
// Smart lock selector cancelled, go to the AuthMethodPicker screen
169-
startActivityForResult(
170-
AuthMethodPickerActivity.createIntent(
171-
this,
172-
mActivityHelper.flowParams),
173-
RC_AUTH_METHOD_PICKER);
186+
startAuthMethodChoice();
174187
} else if (resultCode == RESULT_FIRST_USER) {
175188
// TODO: (serikb) figure out flow
176189
}
177190
} else if (requestCode == RC_IDP_SIGNIN) {
178191
finish(resultCode, new Intent());
179192
} else if (requestCode == RC_AUTH_METHOD_PICKER) {
180193
finish(resultCode, new Intent());
194+
} else if (requestCode == RC_EMAIL_FLOW) {
195+
finish(resultCode, new Intent());
181196
}
182197
}
183198

0 commit comments

Comments
 (0)