Skip to content

Commit f528a22

Browse files
SUPERCILEXsamtstern
authored andcommitted
Add supported providers annotation (#700)
1 parent b2912b8 commit f528a22

File tree

9 files changed

+30
-12
lines changed

9 files changed

+30
-12
lines changed

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

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import android.support.annotation.DrawableRes;
2323
import android.support.annotation.NonNull;
2424
import android.support.annotation.Nullable;
25+
import android.support.annotation.StringDef;
2526
import android.support.annotation.StyleRes;
2627
import android.support.v4.app.FragmentActivity;
2728

@@ -73,6 +74,13 @@
7374
* for examples on how to get started with FirebaseUI Auth.
7475
*/
7576
public class AuthUI {
77+
@StringDef({
78+
EmailAuthProvider.PROVIDER_ID, EMAIL_PROVIDER,
79+
GoogleAuthProvider.PROVIDER_ID, GOOGLE_PROVIDER,
80+
FacebookAuthProvider.PROVIDER_ID, FACEBOOK_PROVIDER,
81+
TwitterAuthProvider.PROVIDER_ID, TWITTER_PROVIDER
82+
})
83+
public @interface SupportedProvider {}
7684

7785
/**
7886
* Provider identifier for email and password credentials, for use with
@@ -326,7 +334,7 @@ public static class IdpConfig implements Parcelable {
326334
private final String mProviderId;
327335
private final List<String> mScopes;
328336

329-
private IdpConfig(@NonNull String providerId, List<String> scopes) {
337+
private IdpConfig(@SupportedProvider @NonNull String providerId, List<String> scopes) {
330338
mProviderId = providerId;
331339
mScopes = Collections.unmodifiableList(scopes);
332340
}
@@ -336,6 +344,7 @@ private IdpConfig(Parcel in) {
336344
mScopes = Collections.unmodifiableList(in.createStringArrayList());
337345
}
338346

347+
@SupportedProvider
339348
public String getProviderId() {
340349
return mProviderId;
341350
}
@@ -391,7 +400,7 @@ public String toString() {
391400
}
392401

393402
public static class Builder {
394-
private String mProviderId;
403+
@SupportedProvider private String mProviderId;
395404
private List<String> mScopes = new ArrayList<>();
396405

397406
/**
@@ -401,7 +410,7 @@ public static class Builder {
401410
* AuthUI#GOOGLE_PROVIDER}. See {@link AuthUI#SUPPORTED_PROVIDERS} for
402411
* the complete list of supported Identity providers
403412
*/
404-
public Builder(@NonNull String providerId) {
413+
public Builder(@SupportedProvider @NonNull String providerId) {
405414
if (!SUPPORTED_PROVIDERS.contains(providerId)) {
406415
throw new IllegalArgumentException("Unkown provider: " + providerId);
407416
}

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ public Intent toIntent() {
8484
* Get the type of provider. e.g. {@link AuthUI#GOOGLE_PROVIDER}
8585
*/
8686
@NonNull
87+
@AuthUI.SupportedProvider
8788
public String getProviderType() {
8889
return mProviderId;
8990
}
@@ -158,7 +159,7 @@ public static class Builder {
158159
private String mToken;
159160
private String mSecret;
160161

161-
public Builder(@NonNull String providerId, @Nullable String email) {
162+
public Builder(@AuthUI.SupportedProvider @NonNull String providerId, @Nullable String email) {
162163
mProviderId = providerId;
163164
mEmail = email;
164165
}

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ public String getName(Context context) {
8989
}
9090

9191
@Override
92+
@AuthUI.SupportedProvider
9293
public String getProviderId() {
9394
return FacebookAuthProvider.PROVIDER_ID;
9495
}

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import android.util.Log;
2727
import android.widget.Toast;
2828

29+
import com.firebase.ui.auth.AuthUI;
2930
import com.firebase.ui.auth.AuthUI.IdpConfig;
3031
import com.firebase.ui.auth.IdpResponse;
3132
import com.firebase.ui.auth.R;
@@ -104,6 +105,7 @@ public String getName(Context context) {
104105
}
105106

106107
@Override
108+
@AuthUI.SupportedProvider
107109
public String getProviderId() {
108110
return GoogleAuthProvider.PROVIDER_ID;
109111
}

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import android.support.annotation.LayoutRes;
88
import android.util.Log;
99

10+
import com.firebase.ui.auth.AuthUI;
1011
import com.firebase.ui.auth.IdpResponse;
1112
import com.firebase.ui.auth.R;
1213
import com.google.firebase.auth.AuthCredential;
@@ -54,6 +55,7 @@ public String getName(Context context) {
5455
}
5556

5657
@Override
58+
@AuthUI.SupportedProvider
5759
public String getProviderId() {
5860
return TwitterAuthProvider.PROVIDER_ID;
5961
}

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
import android.support.annotation.Nullable;
1010
import android.support.annotation.RestrictTo;
1111

12+
import com.firebase.ui.auth.AuthUI;
13+
1214
@RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
1315
public class User implements Parcelable {
1416
public static final Parcelable.Creator<User> CREATOR = new Parcelable.Creator<User>() {
@@ -57,6 +59,7 @@ public String getName() {
5759
}
5860

5961
@Nullable
62+
@AuthUI.SupportedProvider
6063
public String getProvider() {
6164
return mProvider;
6265
}
@@ -94,7 +97,7 @@ public Builder setName(String name) {
9497
return this;
9598
}
9699

97-
public Builder setProvider(String provider) {
100+
public Builder setProvider(@AuthUI.SupportedProvider String provider) {
98101
mProvider = provider;
99102
return this;
100103
}

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import android.support.annotation.RestrictTo;
2121
import android.util.Log;
2222

23+
import com.firebase.ui.auth.AuthUI;
2324
import com.firebase.ui.auth.ErrorCodes;
2425
import com.firebase.ui.auth.IdpResponse;
2526
import com.firebase.ui.auth.ResultCodes;

auth/src/main/java/com/firebase/ui/auth/util/signincontainer/SignInDelegate.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import android.support.v4.app.FragmentManager;
1212
import android.text.TextUtils;
1313
import android.util.Log;
14+
1415
import com.firebase.ui.auth.AuthUI;
1516
import com.firebase.ui.auth.AuthUI.IdpConfig;
1617
import com.firebase.ui.auth.IdpResponse;
@@ -185,7 +186,7 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) {
185186
private List<String> getSupportedAccountTypes() {
186187
List<String> accounts = new ArrayList<>();
187188
for (AuthUI.IdpConfig idpConfig : mHelper.getFlowParams().providerInfo) {
188-
String providerId = idpConfig.getProviderId();
189+
@AuthUI.SupportedProvider String providerId = idpConfig.getProviderId();
189190
if (providerId.equals(GoogleAuthProvider.PROVIDER_ID)
190191
|| providerId.equals(FacebookAuthProvider.PROVIDER_ID)
191192
|| providerId.equals(TwitterAuthProvider.PROVIDER_ID)) {

auth/src/main/java/com/firebase/ui/auth/util/signincontainer/SmartLockBase.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import android.util.Pair;
1010
import android.widget.Toast;
1111

12+
import com.firebase.ui.auth.AuthUI;
1213
import com.firebase.ui.auth.ui.FragmentBase;
1314
import com.google.android.gms.auth.api.credentials.Credential;
1415
import com.google.android.gms.auth.api.credentials.IdentityProviders;
@@ -42,7 +43,7 @@ public abstract class SmartLockBase<R extends Result> extends FragmentBase imple
4243
* Translate a Firebase Auth provider ID (such as {@link GoogleAuthProvider#PROVIDER_ID}) to
4344
* a Credentials API account type (such as {@link IdentityProviders#GOOGLE}).
4445
*/
45-
public static String providerIdToAccountType(@NonNull String providerId) {
46+
public static String providerIdToAccountType(@AuthUI.SupportedProvider @NonNull String providerId) {
4647
switch (providerId) {
4748
case GoogleAuthProvider.PROVIDER_ID:
4849
return IdentityProviders.GOOGLE;
@@ -58,6 +59,7 @@ public static String providerIdToAccountType(@NonNull String providerId) {
5859
}
5960
}
6061

62+
@AuthUI.SupportedProvider
6163
public static String accountTypeToProviderId(@NonNull String accountType) {
6264
switch (accountType) {
6365
case IdentityProviders.GOOGLE:
@@ -84,7 +86,7 @@ public static List<Credential> credentialsFromFirebaseUser(@NonNull FirebaseUser
8486
List<Credential> credentials = new ArrayList<>();
8587
for (UserInfo userInfo : user.getProviderData()) {
8688
// Get provider ID from Firebase Auth
87-
String providerId = userInfo.getProviderId();
89+
@AuthUI.SupportedProvider String providerId = userInfo.getProviderId();
8890

8991
// Convert to Credentials API account type
9092
String accountType = providerIdToAccountType(providerId);
@@ -132,10 +134,6 @@ public void onStop() {
132134
@Override
133135
public void onDestroy() {
134136
super.onDestroy();
135-
cleanup();
136-
}
137-
138-
public void cleanup() {
139137
if (mGoogleApiClient != null) {
140138
mGoogleApiClient.disconnect();
141139
}

0 commit comments

Comments
 (0)