Skip to content

Commit b61c950

Browse files
committed
Tweaking twitter deps
We upgrade to twitter kit 3.0 and achieve the following 1. No more fabric deps. This shaves our sdk down even more and clears related bugs. 2. We use only twitter core and not other deps. Shaves even more. Total savings: 0.6 MB Change-Id: I64ae5b6c7e2f238c35e25d6b2a2b7089431a3a0a
1 parent 46602c5 commit b61c950

File tree

5 files changed

+26
-16
lines changed

5 files changed

+26
-16
lines changed

auth/build.gradle

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
apply plugin: 'com.android.library'
2-
apply plugin: 'io.fabric'
32
apply from: '../library/quality/quality.gradle'
43

54
android {
@@ -45,7 +44,7 @@ dependencies {
4544
compile "com.google.android.gms:play-services-auth:$firebaseVersion"
4645

4746
compile 'com.facebook.android:facebook-android-sdk:4.23.0'
48-
compile("com.twitter.sdk.android:twitter:2.3.2@aar") { transitive = true }
47+
compile("com.twitter.sdk.android:twitter-core:3.0.0@aar") { transitive = true }
4948

5049
// The following libraries are needed to prevent incompatibilities with the facebook
5150
// library when updating com.android.support libraries:

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

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@
5151
import com.google.firebase.auth.GoogleAuthProvider;
5252
import com.google.firebase.auth.PhoneAuthProvider;
5353
import com.google.firebase.auth.TwitterAuthProvider;
54-
import com.twitter.sdk.android.Twitter;
5554

5655
import java.util.ArrayList;
5756
import java.util.Arrays;
@@ -61,8 +60,6 @@
6160
import java.util.List;
6261
import java.util.Set;
6362

64-
import io.fabric.sdk.android.Fabric;
65-
6663
/**
6764
* The entry point to the AuthUI authentication flow, and related utility methods. If your
6865
* application uses the default {@link FirebaseApp} instance, an AuthUI instance can be retrieved
@@ -204,8 +201,8 @@ public Void then(@NonNull Task<GoogleApiClient> task) throws Exception {
204201
LoginManager.getInstance().logOut();
205202

206203
// Twitter sign out
207-
if (!Fabric.isInitialized()) TwitterProvider.initialize(activity);
208-
Twitter.logOut();
204+
TwitterProvider.signout(activity);
205+
209206

210207
// Wait for all tasks to complete
211208
return Tasks.whenAll(disableCredentialsTask, googleSignOutTask);
@@ -255,8 +252,7 @@ public Task<Void> signOut(@NonNull FragmentActivity activity) {
255252
LoginManager.getInstance().logOut();
256253

257254
// Twitter sign out
258-
if (!Fabric.isInitialized()) TwitterProvider.initialize(activity);
259-
Twitter.logOut();
255+
TwitterProvider.signout(activity);
260256

261257
// Wait for all tasks to complete
262258
return Tasks.whenAll(disableCredentialsTask, signOutTask);

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

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,17 +11,18 @@
1111
import com.firebase.ui.auth.R;
1212
import com.google.firebase.auth.AuthCredential;
1313
import com.google.firebase.auth.TwitterAuthProvider;
14-
import com.twitter.sdk.android.Twitter;
1514
import com.twitter.sdk.android.core.Callback;
1615
import com.twitter.sdk.android.core.Result;
16+
import com.twitter.sdk.android.core.Twitter;
1717
import com.twitter.sdk.android.core.TwitterAuthConfig;
18+
import com.twitter.sdk.android.core.TwitterConfig;
19+
import com.twitter.sdk.android.core.TwitterCore;
1820
import com.twitter.sdk.android.core.TwitterException;
1921
import com.twitter.sdk.android.core.TwitterSession;
2022
import com.twitter.sdk.android.core.identity.TwitterAuthClient;
2123

2224
import java.lang.ref.WeakReference;
2325

24-
import io.fabric.sdk.android.Fabric;
2526

2627
public class TwitterProvider extends Callback<TwitterSession> implements IdpProvider {
2728
private static final String TAG = "TwitterProvider";
@@ -45,7 +46,19 @@ public static void initialize(Context context) {
4546
TwitterAuthConfig authConfig = new TwitterAuthConfig(
4647
context.getString(R.string.twitter_consumer_key),
4748
context.getString(R.string.twitter_consumer_secret));
48-
Fabric.with(context.getApplicationContext(), new Twitter(authConfig));
49+
TwitterConfig config = new TwitterConfig.Builder(context)
50+
.twitterAuthConfig(authConfig)
51+
.build();
52+
Twitter.initialize(config);
53+
}
54+
55+
public static void signout(Context context) {
56+
try {
57+
signOut();
58+
} catch (IllegalStateException e) {
59+
initialize(context);
60+
signOut();
61+
}
4962
}
5063

5164
@Override
@@ -126,4 +139,8 @@ private IdpResponse createIdpResponse(String email) {
126139
.build();
127140
}
128141
}
142+
143+
private static void signOut() throws IllegalStateException {
144+
TwitterCore.getInstance().getSessionManager().clearActiveSession();
145+
}
129146
}

auth/src/main/java/com/firebase/ui/auth/ui/phone/CountryListLoadTask.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,13 @@
1818

1919
package com.firebase.ui.auth.ui.phone;
2020

21+
import android.os.AsyncTask;
22+
2123
import java.util.ArrayList;
2224
import java.util.Collections;
2325
import java.util.List;
2426
import java.util.Locale;
2527

26-
import io.fabric.sdk.android.services.concurrency.AsyncTask;
2728

2829
// We need to move away from ListView and AsyncTask in the future and use (say)
2930
// RecyclerView and Task/ThreadPoolExecutor .

build.gradle

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,11 @@ buildscript {
44
repositories {
55
jcenter()
66
mavenLocal()
7-
maven { url 'https://maven.fabric.io/public' }
87
}
98

109
dependencies {
1110
classpath 'com.android.tools.build:gradle:2.3.1'
1211
classpath 'com.google.gms:google-services:3.0.0'
13-
classpath 'io.fabric.tools:gradle:1.+'
1412
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3'
1513
}
1614
}
@@ -20,7 +18,6 @@ allprojects {
2018
jcenter()
2119
mavenLocal()
2220
mavenCentral()
23-
maven { url 'https://maven.fabric.io/public' }
2421
}
2522
}
2623

0 commit comments

Comments
 (0)