22
33import android .app .Application ;
44import android .content .Context ;
5+ import android .content .SharedPreferences ;
56import android .graphics .Bitmap ;
67import 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+
813import net .servicestack .android .AndroidServerEventsClient ;
914import net .servicestack .android .AndroidServiceClient ;
1015import 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 ){
0 commit comments