Skip to content

Commit 90ae3f5

Browse files
author
Aaron Mandle
committed
review feedback
1 parent fdeaa80 commit 90ae3f5

File tree

6 files changed

+40
-28
lines changed

6 files changed

+40
-28
lines changed

auth/src/main/java/com/firebase/ui/auth/AuthUI.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,11 @@
4949
import java.util.Collections;
5050
import java.util.HashSet;
5151
import java.util.IdentityHashMap;
52+
import java.util.LinkedHashSet;
5253
import java.util.List;
5354
import java.util.Set;
55+
import java.util.SortedSet;
56+
import java.util.TreeSet;
5457

5558
/**
5659
* The entry point to the AuthUI authentication flow, and related utility methods.
@@ -487,6 +490,8 @@ public Builder(@NonNull String providerId) {
487490
*
488491
* For Google permissions see:
489492
* https://developers.google.com/identity/protocols/googlescopes
493+
*
494+
* Twitter scopes are only configurable through the Twitter developer console.
490495
*/
491496
public Builder setPermissions(List<String> permissions) {
492497
mScopes = permissions;
@@ -505,7 +510,7 @@ public IdpConfig build() {
505510
public final class SignInIntentBuilder {
506511
private int mLogo = NO_LOGO;
507512
private int mTheme = getDefaultTheme();
508-
private List<IdpConfig> mProviders = new ArrayList<>();
513+
private LinkedHashSet<IdpConfig> mProviders = new LinkedHashSet<>();
509514
private String mTosUrl;
510515
private boolean mIsSmartLockEnabled = true;
511516

@@ -558,12 +563,12 @@ public SignInIntentBuilder setTosUrl(@Nullable String tosUrl) {
558563
public SignInIntentBuilder setProviders(@NonNull List<IdpConfig> idpConfigs) {
559564
Set<String> configuredProviders = new HashSet<>();
560565
for (IdpConfig idpConfig : idpConfigs) {
561-
if (!configuredProviders.add(idpConfig.getProviderId())) {
566+
if (configuredProviders.contains(idpConfig.getProviderId())) {
562567
throw new IllegalArgumentException("Each provider can only be set once. "
563568
+ idpConfig.getProviderId() + " was set twice.");
564569
}
570+
mProviders.add(idpConfig);
565571
}
566-
mProviders = idpConfigs;
567572
return this;
568573
}
569574

@@ -612,7 +617,7 @@ public Intent build(Context context) {
612617
context,
613618
new FlowParameters(
614619
mApp.getName(),
615-
mProviders,
620+
new ArrayList<>(mProviders),
616621
mTheme,
617622
mLogo,
618623
mTosUrl,

auth/src/main/java/com/firebase/ui/auth/provider/FacebookProvider.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import com.facebook.GraphResponse;
2929
import com.facebook.login.LoginManager;
3030
import com.facebook.login.LoginResult;
31+
import com.firebase.ui.auth.AuthUI.IdpConfig;
3132
import com.firebase.ui.auth.BuildConfig;
3233
import com.firebase.ui.auth.R;
3334
import com.google.firebase.auth.AuthCredential;
@@ -53,10 +54,17 @@ public class FacebookProvider implements IDPProvider, FacebookCallback<LoginResu
5354
private CallbackManager mCallbackManager;
5455
private IDPCallback mCallbackObject;
5556

56-
public FacebookProvider (
57-
Context appContext,
58-
List<String> scopes) {
57+
public FacebookProvider(Context appContext, IdpConfig idpConfig) {
5958
mCallbackManager = CallbackManager.Factory.create();
59+
60+
if (appContext.getResources().getIdentifier(
61+
"google_permissions", "array", appContext.getPackageName()) != 0) {
62+
Log.w(TAG, "DEVELOPER WARNING: You have defined R.array.facebook_permissions but that"
63+
+ " is no longer respected as of FirebaseUI 1.0.0. Please see README for IDP"
64+
+ " scope configuraton instructions.");
65+
}
66+
67+
List<String> scopes = idpConfig.getScopes();
6068
if (scopes == null) {
6169
mScopes = new ArrayList<>();
6270
} else {

auth/src/main/java/com/firebase/ui/auth/provider/GoogleProvider.java

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import android.view.View;
2727
import android.view.View.OnClickListener;
2828

29+
import com.firebase.ui.auth.AuthUI.IdpConfig;
2930
import com.firebase.ui.auth.R;
3031
import com.google.android.gms.auth.api.Auth;
3132
import com.google.android.gms.auth.api.signin.GoogleSignInAccount;
@@ -51,21 +52,25 @@ public class GoogleProvider implements
5152
private Activity mActivity;
5253
private IDPCallback mIDPCallback;
5354

54-
public GoogleProvider(
55-
FragmentActivity activity,
56-
@Nullable String email,
57-
List<String> scopes) {
55+
public GoogleProvider(FragmentActivity activity, @Nullable String email, IdpConfig idpConfig) {
5856
mActivity = activity;
5957
String mClientId = activity.getString(R.string.default_web_client_id);
6058
GoogleSignInOptions googleSignInOptions;
6159

62-
GoogleSignInOptions.Builder builder = new GoogleSignInOptions.Builder(GoogleSignInOptions
63-
.DEFAULT_SIGN_IN)
64-
.requestEmail()
65-
.requestIdToken(mClientId);
60+
GoogleSignInOptions.Builder builder =
61+
new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
62+
.requestEmail()
63+
.requestIdToken(mClientId);
64+
65+
if (activity.getResources().getIdentifier(
66+
"google_permissions", "array", activity.getPackageName()) != 0){
67+
Log.w(TAG, "DEVELOPER WARNING: You have defined R.array.google_permissions but that is"
68+
+ " no longer respected as of FirebaseUI 1.0.0. Please see README for IDP scope"
69+
+ " configuraton instructions.");
70+
}
6671

6772
// Add additional scopes
68-
for (String scopeString : scopes) {
73+
for (String scopeString : idpConfig.getScopes()) {
6974
builder.requestScopes(new Scope(scopeString));
7075
}
7176

auth/src/main/java/com/firebase/ui/auth/ui/account_link/WelcomeBackIDPPrompt.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -69,14 +69,10 @@ protected void onCreate(Bundle savedInstanceState) {
6969
if (mProviderId.equals(idpConfig.getProviderId())) {
7070
switch (mProviderId) {
7171
case GoogleAuthProvider.PROVIDER_ID:
72-
mIdpProvider = new GoogleProvider(
73-
this,
74-
getEmailFromIntent(),
75-
idpConfig.getScopes());
72+
mIdpProvider = new GoogleProvider(this, getEmailFromIntent(), idpConfig);
7673
break;
7774
case FacebookAuthProvider.PROVIDER_ID:
78-
mIdpProvider = new FacebookProvider(
79-
this, idpConfig.getScopes());
75+
mIdpProvider = new FacebookProvider(this, idpConfig);
8076
break;
8177
default:
8278
Log.w(TAG, "Unknown provider: " + mProviderId);

auth/src/main/java/com/firebase/ui/auth/ui/idp/AuthMethodPickerActivity.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,10 +88,10 @@ private void populateIdpList(List<IdpConfig> providers) {
8888
for (IdpConfig idpConfig : providers) {
8989
switch (idpConfig.getProviderId()) {
9090
case AuthUI.FACEBOOK_PROVIDER :
91-
mIdpProviders.add(new FacebookProvider(this, idpConfig.getScopes()));
91+
mIdpProviders.add(new FacebookProvider(this, idpConfig));
9292
break;
9393
case AuthUI.GOOGLE_PROVIDER:
94-
mIdpProviders.add(new GoogleProvider(this, null, idpConfig.getScopes()));
94+
mIdpProviders.add(new GoogleProvider(this, null, idpConfig));
9595
break;
9696
case AuthUI.EMAIL_PROVIDER:
9797
findViewById(R.id.email_provider).setVisibility(View.VISIBLE);

auth/src/main/java/com/firebase/ui/auth/ui/idp/IDPSignInContainerActivity.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,11 +60,9 @@ protected void onCreate(Bundle savedInstanceState) {
6060
return;
6161
}
6262
if (mProvider.equalsIgnoreCase(FacebookAuthProvider.PROVIDER_ID)) {
63-
mIDPProvider = new FacebookProvider(
64-
this, providerConfig.getScopes());
63+
mIDPProvider = new FacebookProvider(this, providerConfig);
6564
} else if (mProvider.equalsIgnoreCase(GoogleAuthProvider.PROVIDER_ID)) {
66-
mIDPProvider = new GoogleProvider(
67-
this, mEmail, providerConfig.getScopes());
65+
mIDPProvider = new GoogleProvider(this, mEmail, providerConfig);
6866
}
6967
mIDPProvider.setAuthenticationCallback(this);
7068
mIDPProvider.startLogin(this);

0 commit comments

Comments
 (0)