|
26 | 26 | import android.support.annotation.VisibleForTesting;
|
27 | 27 | import com.facebook.FacebookSdk;
|
28 | 28 | import com.facebook.login.LoginManager;
|
| 29 | +import com.firebase.ui.auth.provider.TwitterProvider; |
29 | 30 | import com.firebase.ui.auth.ui.ChooseAccountActivity;
|
30 | 31 | import com.firebase.ui.auth.ui.FlowParameters;
|
31 | 32 | import com.firebase.ui.auth.ui.idp.AuthMethodPickerActivity;
|
|
42 | 43 | import com.google.android.gms.tasks.Task;
|
43 | 44 | import com.google.android.gms.tasks.Tasks;
|
44 | 45 | import com.google.firebase.FirebaseApp;
|
| 46 | +import com.google.firebase.auth.EmailAuthProvider; |
| 47 | +import com.google.firebase.auth.FacebookAuthProvider; |
45 | 48 | import com.google.firebase.auth.FirebaseAuth;
|
46 | 49 | import com.google.firebase.auth.FirebaseUser;
|
| 50 | +import com.google.firebase.auth.GoogleAuthProvider; |
| 51 | +import com.google.firebase.auth.TwitterAuthProvider; |
47 | 52 | import java.util.ArrayList;
|
48 | 53 | import java.util.Arrays;
|
49 | 54 | import java.util.Collections;
|
@@ -229,22 +234,22 @@ public class AuthUI {
|
229 | 234 | * Provider identifier for email and password credentials, for use with
|
230 | 235 | * {@link SignInIntentBuilder#setProviders}.
|
231 | 236 | */
|
232 |
| - public static final String EMAIL_PROVIDER = "email"; |
| 237 | + public static final String EMAIL_PROVIDER = EmailAuthProvider.PROVIDER_ID; |
233 | 238 |
|
234 | 239 | /**
|
235 | 240 | * Provider identifier for Google, for use with {@link SignInIntentBuilder#setProviders}.
|
236 | 241 | */
|
237 |
| - public static final String GOOGLE_PROVIDER = "google"; |
| 242 | + public static final String GOOGLE_PROVIDER = GoogleAuthProvider.PROVIDER_ID; |
238 | 243 |
|
239 | 244 | /**
|
240 | 245 | * Provider identifier for Facebook, for use with {@link SignInIntentBuilder#setProviders}.
|
241 | 246 | */
|
242 |
| - public static final String FACEBOOK_PROVIDER = "facebook"; |
| 247 | + public static final String FACEBOOK_PROVIDER = FacebookAuthProvider.PROVIDER_ID; |
243 | 248 |
|
244 | 249 | /**
|
245 | 250 | * Provider identifier for Twitter, for use with {@link SignInIntentBuilder#setProviders}.
|
246 | 251 | */
|
247 |
| - public static final String TWITTER_PROVIDER = "twitter"; |
| 252 | + public static final String TWITTER_PROVIDER = TwitterAuthProvider.PROVIDER_ID; |
248 | 253 |
|
249 | 254 | /**
|
250 | 255 | * Default value for logo resource, omits the logo from the
|
@@ -464,7 +469,7 @@ public void writeToParcel(Parcel parcel, int i) {
|
464 | 469 |
|
465 | 470 | public static class Builder {
|
466 | 471 | private String mProviderId;
|
467 |
| - private List<String> mScopes; |
| 472 | + private List<String> mScopes = new ArrayList<>(); |
468 | 473 |
|
469 | 474 |
|
470 | 475 | /**
|
@@ -561,12 +566,14 @@ public SignInIntentBuilder setTosUrl(@Nullable String tosUrl) {
|
561 | 566 | * @see IdpConfig
|
562 | 567 | */
|
563 | 568 | public SignInIntentBuilder setProviders(@NonNull List<IdpConfig> idpConfigs) {
|
| 569 | + mProviders.clear(); |
564 | 570 | Set<String> configuredProviders = new HashSet<>();
|
565 | 571 | for (IdpConfig idpConfig : idpConfigs) {
|
566 | 572 | if (configuredProviders.contains(idpConfig.getProviderId())) {
|
567 | 573 | throw new IllegalArgumentException("Each provider can only be set once. "
|
568 | 574 | + idpConfig.getProviderId() + " was set twice.");
|
569 | 575 | }
|
| 576 | + configuredProviders.add(idpConfig.getProviderId()); |
570 | 577 | mProviders.add(idpConfig);
|
571 | 578 | }
|
572 | 579 | return this;
|
|
0 commit comments