diff --git a/auth/src/main/java/com/firebase/ui/auth/AuthUI.java b/auth/src/main/java/com/firebase/ui/auth/AuthUI.java index c20a194be..4f2ed9c0a 100644 --- a/auth/src/main/java/com/firebase/ui/auth/AuthUI.java +++ b/auth/src/main/java/com/firebase/ui/auth/AuthUI.java @@ -26,6 +26,7 @@ import android.support.v4.app.FragmentActivity; import com.facebook.login.LoginManager; +import com.firebase.ui.auth.provider.TwitterProvider; import com.firebase.ui.auth.ui.FlowParameters; import com.firebase.ui.auth.ui.idp.AuthMethodPickerActivity; import com.firebase.ui.auth.util.CredentialTaskApi; @@ -49,6 +50,7 @@ import com.google.firebase.auth.FirebaseUser; import com.google.firebase.auth.GoogleAuthProvider; import com.google.firebase.auth.TwitterAuthProvider; +import com.twitter.sdk.android.Twitter; import java.util.ArrayList; import java.util.Arrays; @@ -58,6 +60,8 @@ import java.util.List; import java.util.Set; +import io.fabric.sdk.android.Fabric; + /** * The entry point to the AuthUI authentication flow, and related utility methods. If your * application uses the default {@link FirebaseApp} instance, an AuthUI instance can be retrieved @@ -192,6 +196,10 @@ public Void then(@NonNull Task task) throws Exception { // Facebook sign out LoginManager.getInstance().logOut(); + // Twitter sign out + if (!Fabric.isInitialized()) TwitterProvider.initialize(activity); + Twitter.logOut(); + // Wait for all tasks to complete return Tasks.whenAll(disableCredentialsTask, googleSignOutTask); } @@ -239,6 +247,10 @@ public Task signOut(@NonNull FragmentActivity activity) { // Facebook sign out LoginManager.getInstance().logOut(); + // Twitter sign out + if (!Fabric.isInitialized()) TwitterProvider.initialize(activity); + Twitter.logOut(); + // Wait for all tasks to complete return Tasks.whenAll(disableCredentialsTask, signOutTask); } diff --git a/auth/src/main/java/com/firebase/ui/auth/provider/TwitterProvider.java b/auth/src/main/java/com/firebase/ui/auth/provider/TwitterProvider.java index ac76df41c..52972523b 100644 --- a/auth/src/main/java/com/firebase/ui/auth/provider/TwitterProvider.java +++ b/auth/src/main/java/com/firebase/ui/auth/provider/TwitterProvider.java @@ -28,11 +28,8 @@ public class TwitterProvider extends Callback implements IdpProv private IdpCallback mCallbackObject; private TwitterAuthClient mTwitterAuthClient; - public TwitterProvider(Context appContext) { - TwitterAuthConfig authConfig = new TwitterAuthConfig( - appContext.getString(R.string.twitter_consumer_key), - appContext.getString(R.string.twitter_consumer_secret)); - Fabric.with(appContext.getApplicationContext(), new Twitter(authConfig)); + public TwitterProvider(Context context) { + initialize(context); mTwitterAuthClient = new TwitterAuthClient(); } @@ -43,6 +40,13 @@ public static AuthCredential createAuthCredential(IdpResponse response) { return TwitterAuthProvider.getCredential(response.getIdpToken(), response.getIdpSecret()); } + public static void initialize(Context context) { + TwitterAuthConfig authConfig = new TwitterAuthConfig( + context.getString(R.string.twitter_consumer_key), + context.getString(R.string.twitter_consumer_secret)); + Fabric.with(context.getApplicationContext(), new Twitter(authConfig)); + } + @Override public String getName(Context context) { return context.getString(R.string.idp_name_twitter);