2424
2525import com .facebook .login .LoginManager ;
2626import com .firebase .ui .auth .data .model .FlowParameters ;
27- import com .firebase .ui .auth .data .remote .TwitterSignInHandler ;
2827import com .firebase .ui .auth .ui .idp .AuthMethodPickerActivity ;
2928import com .firebase .ui .auth .util .CredentialUtils ;
3029import com .firebase .ui .auth .util .ExtraConstants ;
6160import com .google .firebase .auth .PhoneAuthProvider ;
6261import com .google .firebase .auth .TwitterAuthProvider ;
6362import com .google .firebase .auth .UserInfo ;
64- import com .twitter .sdk .android .core .TwitterCore ;
6563
6664import java .lang .annotation .Retention ;
6765import java .lang .annotation .RetentionPolicy ;
@@ -139,18 +137,18 @@ public final class AuthUI {
139137 Collections .unmodifiableSet (new HashSet <>(Arrays .asList (
140138 MICROSOFT_PROVIDER ,
141139 YAHOO_PROVIDER ,
142- APPLE_PROVIDER
140+ APPLE_PROVIDER ,
141+ TwitterAuthProvider .PROVIDER_ID
143142 )));
144143
145144 /**
146- * The set of social authentication providers supported in Firebase Auth UI.
145+ * The set of social authentication providers supported in Firebase Auth UI using their SDK .
147146 */
148147 @ RestrictTo (RestrictTo .Scope .LIBRARY_GROUP )
149148 public static final Set <String > SOCIAL_PROVIDERS =
150149 Collections .unmodifiableSet (new HashSet <>(Arrays .asList (
151150 GoogleAuthProvider .PROVIDER_ID ,
152151 FacebookAuthProvider .PROVIDER_ID ,
153- TwitterAuthProvider .PROVIDER_ID ,
154152 GithubAuthProvider .PROVIDER_ID )));
155153
156154 @ RestrictTo (RestrictTo .Scope .LIBRARY_GROUP )
@@ -203,6 +201,13 @@ public static AuthUI getInstance() {
203201 */
204202 @ NonNull
205203 public static AuthUI getInstance (@ NonNull FirebaseApp app ) {
204+ if (ProviderAvailability .IS_TWITTER_AVAILABLE ) {
205+ String releaseUrl = "https://github.com/firebase/FirebaseUI-Android/releases/tag/6.2.0" ;
206+ Log .w (TAG , String .format ("Beginning with FirebaseUI 6.2.0 you no longer need to " +
207+ "include the TwitterKit SDK to sign in with Twitter. " +
208+ "Go to %s for more information" , releaseUrl ));
209+ }
210+
206211 AuthUI authUi ;
207212 synchronized (INSTANCES ) {
208213 authUi = INSTANCES .get (app );
@@ -455,10 +460,6 @@ private Task<Void> signOutIdps(@NonNull Context context) {
455460 if (ProviderAvailability .IS_FACEBOOK_AVAILABLE ) {
456461 LoginManager .getInstance ().logOut ();
457462 }
458- if (ProviderAvailability .IS_TWITTER_AVAILABLE ) {
459- TwitterSignInHandler .initializeTwitter ();
460- TwitterCore .getInstance ().getSessionManager ().clearActiveSession ();
461- }
462463 return GoogleSignIn .getClient (context , GoogleSignInOptions .DEFAULT_SIGN_IN ).signOut ();
463464 }
464465
@@ -483,7 +484,8 @@ public SignInIntentBuilder createSignInIntentBuilder() {
483484 })
484485
485486 @ Retention (RetentionPolicy .SOURCE )
486- public @interface SupportedProvider {}
487+ public @interface SupportedProvider {
488+ }
487489
488490 /**
489491 * Configuration for an identity provider.
@@ -1068,29 +1070,6 @@ public FacebookBuilder setPermissions(@NonNull List<String> permissions) {
10681070 }
10691071 }
10701072
1071- /**
1072- * {@link IdpConfig} builder for the Twitter provider.
1073- */
1074- public static final class TwitterBuilder extends Builder {
1075- public TwitterBuilder () {
1076- super (TwitterAuthProvider .PROVIDER_ID );
1077- if (!ProviderAvailability .IS_TWITTER_AVAILABLE ) {
1078- throw new RuntimeException (
1079- "Twitter provider cannot be configured " +
1080- "without dependency. Did you forget to add " +
1081- "'com.twitter.sdk.android:twitter-core:VERSION' dependency?" );
1082- }
1083- Preconditions .checkConfigured (getApplicationContext (),
1084- "Twitter provider unconfigured. Make sure to add your key and secret." +
1085- " See the docs for more info:" +
1086- " https://github" +
1087- ".com/firebase/FirebaseUI-Android/blob/master/auth/README" +
1088- ".md#twitter" ,
1089- R .string .twitter_consumer_key ,
1090- R .string .twitter_consumer_secret );
1091- }
1092- }
1093-
10941073 /**
10951074 * {@link IdpConfig} builder for the GitHub provider.
10961075 */
@@ -1138,6 +1117,19 @@ public AnonymousBuilder() {
11381117 }
11391118 }
11401119
1120+ /**
1121+ * {@link IdpConfig} builder for the Twitter provider.
1122+ */
1123+ public static final class TwitterBuilder extends GenericOAuthProviderBuilder {
1124+ private static final String PROVIDER_NAME = "Twitter" ;
1125+
1126+ public TwitterBuilder () {
1127+ super (TwitterAuthProvider .PROVIDER_ID , PROVIDER_NAME ,
1128+ R .layout .fui_idp_button_twitter );
1129+ }
1130+ }
1131+
1132+
11411133 /**
11421134 * {@link IdpConfig} builder for the Apple provider.
11431135 */
0 commit comments