Skip to content

Commit 1270158

Browse files
committed
Implement save access token for twitter
1 parent c1a0a43 commit 1270158

File tree

3 files changed

+39
-2
lines changed

3 files changed

+39
-2
lines changed

src/AndroidClient/androidchat/src/main/java/servicestack/net/androidchat/App.java

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,14 @@
22

33
import android.app.Application;
44
import android.content.Context;
5+
import android.content.SharedPreferences;
56
import android.graphics.Bitmap;
67
import android.support.v4.util.LruCache;
78

9+
import com.facebook.AccessToken;
10+
import com.facebook.login.LoginManager;
11+
import com.twitter.sdk.android.core.TwitterAuthToken;
12+
813
import net.servicestack.android.AndroidServerEventsClient;
914
import net.servicestack.android.AndroidServiceClient;
1015
import net.servicestack.android.AsyncUtils;
@@ -18,6 +23,7 @@ public class App extends Application {
1823
public static final String BaseUrl = "http://chat.servicestack.net/";
1924

2025
private Context context;
26+
private SharedPreferences prefs;
2127
private AndroidServerEventsClient serverEventsClient;
2228
private static App instance;
2329
private LruCache bitmapCache = new LruCache(4 * 1024 * 1024) {// 4MiB
@@ -30,6 +36,7 @@ public App() {}
3036

3137
public App(Context context, String... channels) {
3238
this.context = context;
39+
this.prefs = context.getSharedPreferences("servicestack.net.androidchat",Context.MODE_PRIVATE);
3340
serverEventsClient = new AndroidServerEventsClient(BaseUrl, channels);
3441
}
3542

@@ -54,6 +61,34 @@ public AndroidServiceClient getServiceClient(){
5461
return serverEventsClient.getAndroidClient();
5562
}
5663

64+
public dtos.Authenticate getSavedAccessToken(){
65+
AccessToken facebookAccessToken = AccessToken.getCurrentAccessToken();
66+
if (facebookAccessToken != null){
67+
return new dtos.Authenticate()
68+
.setProvider("facebook")
69+
.setAccessToken(facebookAccessToken.getToken())
70+
.setRememberMe(true);
71+
}
72+
73+
String twitterAccessToken = prefs.getString("twitter.AccessToken", null);
74+
String twitterAccessSecret = prefs.getString("twitter.AccessTokenSecret", null);
75+
76+
if (twitterAccessToken == null || twitterAccessSecret == null)
77+
return null;
78+
79+
return new dtos.Authenticate()
80+
.setProvider("twitter")
81+
.setAccessToken(twitterAccessToken)
82+
.setAccessTokenSecret(twitterAccessSecret)
83+
.setRememberMe(true);
84+
}
85+
86+
public void saveTwitterAccessToken(TwitterAuthToken authToken){
87+
SharedPreferences.Editor editor = prefs.edit();
88+
editor.putString("twitter.AccessToken", authToken.token);
89+
editor.putString("twitter.AccessTokenSecret", authToken.secret);
90+
editor.apply();
91+
}
5792
public void readBitmap(final String url, final AsyncSuccess<Bitmap> success){
5893
Bitmap cachedBitmap = (Bitmap)bitmapCache.get(url);
5994
if (cachedBitmap != null){

src/AndroidClient/androidchat/src/main/java/servicestack/net/androidchat/LoginActivity.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,9 +83,10 @@ public void success(Result<TwitterSession> result) {
8383
.setAccessTokenSecret(session.getAuthToken().secret)
8484
.setRememberMe(true),
8585
r -> {
86+
App.get().saveTwitterAccessToken(session.getAuthToken());
8687
Intent intent = new Intent(activity, MainActivity.class);
87-
startActivity(intent);
8888
stopProgressBar();
89+
startActivity(intent);
8990
},
9091
error -> {
9192
Log.e("TwitterAuthClient FAILED!", error);

src/AndroidClient/androidchat/src/main/java/servicestack/net/androidchat/LoginButtonsActivity.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,9 +82,10 @@ public void success(Result<TwitterSession> result) {
8282
.setAccessTokenSecret(session.getAuthToken().secret)
8383
.setRememberMe(true),
8484
r -> {
85+
App.get().saveTwitterAccessToken(session.getAuthToken());
8586
Intent intent = new Intent(activity, MainActivity.class);
86-
startActivity(intent);
8787
stopProgressBar();
88+
startActivity(intent);
8889
},
8990
error -> {
9091
Log.e("TwitterAuthClient FAILED!", error);

0 commit comments

Comments
 (0)