16
16
17
17
import android .app .Activity ;
18
18
import android .content .Intent ;
19
+ import android .os .Bundle ;
19
20
import android .os .Parcel ;
20
21
import android .os .Parcelable ;
21
22
import android .support .annotation .CallSuper ;
28
29
29
30
import com .facebook .login .LoginManager ;
30
31
import com .firebase .ui .auth .provider .TwitterProvider ;
32
+ import com .firebase .ui .auth .ui .ExtraConstants ;
31
33
import com .firebase .ui .auth .ui .FlowParameters ;
32
34
import com .firebase .ui .auth .ui .idp .AuthMethodPickerActivity ;
33
35
import com .firebase .ui .auth .util .GoogleSignInHelper ;
@@ -104,6 +106,11 @@ public class AuthUI {
104
106
*/
105
107
public static final String PHONE_VERIFICATION_PROVIDER = PhoneAuthProvider .PROVIDER_ID ;
106
108
109
+ /**
110
+ * Bundle key for the default phone number parameter
111
+ */
112
+ public static final String EXTRA_DEFAULT_PHONE = ExtraConstants .EXTRA_PHONE ;
113
+
107
114
/**
108
115
* Default value for logo resource, omits the logo from the {@link AuthMethodPickerActivity}.
109
116
*/
@@ -269,15 +276,21 @@ public SignInIntentBuilder createSignInIntentBuilder() {
269
276
public static class IdpConfig implements Parcelable {
270
277
private final String mProviderId ;
271
278
private final List <String > mScopes ;
279
+ private final Bundle mParams ;
272
280
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 ) {
274
285
mProviderId = providerId ;
275
286
mScopes = Collections .unmodifiableList (scopes );
287
+ mParams = params ;
276
288
}
277
289
278
290
private IdpConfig (Parcel in ) {
279
291
mProviderId = in .readString ();
280
292
mScopes = Collections .unmodifiableList (in .createStringArrayList ());
293
+ mParams = in .readBundle (getClass ().getClassLoader ());
281
294
}
282
295
283
296
@ SupportedProvider
@@ -289,6 +302,10 @@ public List<String> getScopes() {
289
302
return mScopes ;
290
303
}
291
304
305
+ public Bundle getParams () {
306
+ return mParams ;
307
+ }
308
+
292
309
public static final Creator <IdpConfig > CREATOR = new Creator <IdpConfig >() {
293
310
@ Override
294
311
public IdpConfig createFromParcel (Parcel in ) {
@@ -310,6 +327,7 @@ public int describeContents() {
310
327
public void writeToParcel (Parcel parcel , int i ) {
311
328
parcel .writeString (mProviderId );
312
329
parcel .writeStringList (mScopes );
330
+ parcel .writeBundle (mParams );
313
331
}
314
332
315
333
@ Override
@@ -332,12 +350,14 @@ public String toString() {
332
350
return "IdpConfig{" +
333
351
"mProviderId='" + mProviderId + '\'' +
334
352
", mScopes=" + mScopes +
353
+ ", mParams=" + mParams +
335
354
'}' ;
336
355
}
337
356
338
357
public static class Builder {
339
358
@ SupportedProvider private String mProviderId ;
340
359
private List <String > mScopes = new ArrayList <>();
360
+ private Bundle mParams = new Bundle ();
341
361
342
362
/**
343
363
* Builds the configuration parameters for an identity provider.
@@ -372,8 +392,13 @@ public Builder setPermissions(List<String> permissions) {
372
392
return this ;
373
393
}
374
394
395
+ public Builder setParams (Bundle params ) {
396
+ mParams = params ;
397
+ return this ;
398
+ }
399
+
375
400
public IdpConfig build () {
376
- return new IdpConfig (mProviderId , mScopes );
401
+ return new IdpConfig (mProviderId , mScopes , mParams );
377
402
}
378
403
}
379
404
}
@@ -448,8 +473,8 @@ public T setAvailableProviders(@NonNull List<IdpConfig> idpConfigs) {
448
473
for (IdpConfig config : idpConfigs ) {
449
474
if (mProviders .contains (config )) {
450
475
throw new IllegalArgumentException ("Each provider can only be set once. "
451
- + config .getProviderId ()
452
- + " was set twice." );
476
+ + config .getProviderId ()
477
+ + " was set twice." );
453
478
} else {
454
479
mProviders .add (config );
455
480
}
0 commit comments