1616
1717import android .app .Activity ;
1818import android .content .Intent ;
19+ import android .os .Bundle ;
1920import android .os .Parcel ;
2021import android .os .Parcelable ;
2122import android .support .annotation .CallSuper ;
2829
2930import com .facebook .login .LoginManager ;
3031import com .firebase .ui .auth .provider .TwitterProvider ;
32+ import com .firebase .ui .auth .ui .ExtraConstants ;
3133import com .firebase .ui .auth .ui .FlowParameters ;
3234import com .firebase .ui .auth .ui .idp .AuthMethodPickerActivity ;
3335import com .firebase .ui .auth .util .GoogleSignInHelper ;
@@ -104,6 +106,11 @@ public class AuthUI {
104106 */
105107 public static final String PHONE_VERIFICATION_PROVIDER = PhoneAuthProvider .PROVIDER_ID ;
106108
109+ /**
110+ * Bundle key for the default phone number parameter
111+ */
112+ public static final String EXTRA_DEFAULT_PHONE = ExtraConstants .EXTRA_PHONE ;
113+
107114 /**
108115 * Default value for logo resource, omits the logo from the {@link AuthMethodPickerActivity}.
109116 */
@@ -269,15 +276,21 @@ public SignInIntentBuilder createSignInIntentBuilder() {
269276 public static class IdpConfig implements Parcelable {
270277 private final String mProviderId ;
271278 private final List <String > mScopes ;
279+ private final Bundle mParams ;
272280
273- private IdpConfig (@ SupportedProvider @ NonNull String providerId , List <String > scopes ) {
281+ private IdpConfig (
282+ @ SupportedProvider @ NonNull String providerId ,
283+ List <String > scopes ,
284+ Bundle params ) {
274285 mProviderId = providerId ;
275286 mScopes = Collections .unmodifiableList (scopes );
287+ mParams = params ;
276288 }
277289
278290 private IdpConfig (Parcel in ) {
279291 mProviderId = in .readString ();
280292 mScopes = Collections .unmodifiableList (in .createStringArrayList ());
293+ mParams = in .readBundle (getClass ().getClassLoader ());
281294 }
282295
283296 @ SupportedProvider
@@ -289,6 +302,10 @@ public List<String> getScopes() {
289302 return mScopes ;
290303 }
291304
305+ public Bundle getParams () {
306+ return mParams ;
307+ }
308+
292309 public static final Creator <IdpConfig > CREATOR = new Creator <IdpConfig >() {
293310 @ Override
294311 public IdpConfig createFromParcel (Parcel in ) {
@@ -310,6 +327,7 @@ public int describeContents() {
310327 public void writeToParcel (Parcel parcel , int i ) {
311328 parcel .writeString (mProviderId );
312329 parcel .writeStringList (mScopes );
330+ parcel .writeBundle (mParams );
313331 }
314332
315333 @ Override
@@ -332,12 +350,14 @@ public String toString() {
332350 return "IdpConfig{" +
333351 "mProviderId='" + mProviderId + '\'' +
334352 ", mScopes=" + mScopes +
353+ ", mParams=" + mParams +
335354 '}' ;
336355 }
337356
338357 public static class Builder {
339358 @ SupportedProvider private String mProviderId ;
340359 private List <String > mScopes = new ArrayList <>();
360+ private Bundle mParams = new Bundle ();
341361
342362 /**
343363 * Builds the configuration parameters for an identity provider.
@@ -372,8 +392,13 @@ public Builder setPermissions(List<String> permissions) {
372392 return this ;
373393 }
374394
395+ public Builder setParams (Bundle params ) {
396+ mParams = params ;
397+ return this ;
398+ }
399+
375400 public IdpConfig build () {
376- return new IdpConfig (mProviderId , mScopes );
401+ return new IdpConfig (mProviderId , mScopes , mParams );
377402 }
378403 }
379404 }
@@ -448,8 +473,8 @@ public T setAvailableProviders(@NonNull List<IdpConfig> idpConfigs) {
448473 for (IdpConfig config : idpConfigs ) {
449474 if (mProviders .contains (config )) {
450475 throw new IllegalArgumentException ("Each provider can only be set once. "
451- + config .getProviderId ()
452- + " was set twice." );
476+ + config .getProviderId ()
477+ + " was set twice." );
453478 } else {
454479 mProviders .add (config );
455480 }
0 commit comments