55import android .animation .ValueAnimator ;
66import android .content .Intent ;
77import android .content .SharedPreferences ;
8- import android .net .Uri ;
98import android .os .Bundle ;
109import android .preference .PreferenceManager ;
1110import android .support .v4 .view .animation .FastOutLinearInInterpolator ;
1514import android .widget .ImageButton ;
1615import android .widget .ProgressBar ;
1716
17+ import com .twitter .sdk .android .Twitter ;
18+ import com .twitter .sdk .android .core .Callback ;
19+ import com .twitter .sdk .android .core .Result ;
20+ import com .twitter .sdk .android .core .TwitterAuthConfig ;
21+ import com .twitter .sdk .android .core .TwitterException ;
22+ import com .twitter .sdk .android .core .TwitterSession ;
23+ import com .twitter .sdk .android .core .identity .TwitterAuthClient ;
24+
1825import net .servicestack .android .AndroidServiceClient ;
26+ import net .servicestack .client .Log ;
1927
20- import static servicestack . net . androidchat . dtos . GetUserDetails ;
28+ import io . fabric . sdk . android . Fabric ;
2129
2230
2331/**
@@ -28,6 +36,12 @@ public class LoginActivity extends AppCompatActivity {
2836 private ProgressBar progressBar ;
2937 private ObjectAnimator animation ;
3038
39+ // For: http://localhost:11001/
40+ private static final String TWITTER_KEY = "3H1FHjGbA1N0n0aT5yApA" ;
41+ private static final String TWITTER_SECRET = "MLrZ0ujK6DwyjlRk2YLp6HwSdoBjtuqwXeHDQLv0Q" ;
42+
43+ private TwitterAuthClient twitterAuth ;
44+
3145 @ Override
3246 protected void onCreate (Bundle savedInstanceState ){
3347 super .onCreate (savedInstanceState );
@@ -51,43 +65,57 @@ protected void onCreate(Bundle savedInstanceState){
5165
5266 ImageButton btnTwitter = (ImageButton )findViewById (R .id .btnTwitter );
5367 ImageButton btnAnon = (ImageButton )findViewById (R .id .btnAnon );
54- AndroidServiceClient client = new AndroidServiceClient (MainActivity .BaseUrl );
55-
56- // btnTwitter.setOnClickListener(view -> {
57- // startProgressBar();
58- // Account existingAccount = tryResolveAccount();
59- // // If cookies saved from twitter login, automatically continue to chat activity.
60- // if (existingAccount != null){
61- // try {
62- //// client.CookieContainer = existingAccount.Cookies;
63- // client.getAsync(new GetUserDetails(), res -> {
64- // startAuthChatActivity(client, existingAccount);
65- // stopProgressBar();
66- // }, e -> {
67- // // Failed with current cookie
68- // client.clearCookies();
69- // performServiceStackAuth(client);
70- // stopProgressBar();
71- // });
72- // } catch (Exception e){
73- // // Failed with current cookie
74- // client.clearCookies();
75- // stopProgressBar();
76- // performServiceStackAuth(client);
77- // }
78- // } else {
79- // stopProgressBar();
80- // performServiceStackAuth(client);
81- // }
82- // });
68+ LoginActivity activity = this ;
69+
70+ TwitterAuthConfig authConfig = new TwitterAuthConfig (TWITTER_KEY , TWITTER_SECRET );
71+ Fabric .with (this , new Twitter (authConfig ));
72+
73+ twitterAuth = new TwitterAuthClient ();
74+ btnTwitter .setOnClickListener (view -> {
75+ startProgressBar ();
76+ twitterAuth .authorize (activity , new Callback <TwitterSession >() {
77+ @ Override
78+ public void success (Result <TwitterSession > result ) {
79+ TwitterSession session = result .data ;
80+
81+ App .get ().getServiceClient ().postAsync (new dtos .Authenticate ()
82+ .setProvider ("twitter" )
83+ .setUserName (Long .toString (session .getUserId ()))
84+ .setAccessToken (session .getAuthToken ().token )
85+ .setAccessTokenSecret (session .getAuthToken ().secret )
86+ .setRememberMe (true ),
87+ r -> {
88+ Intent intent = new Intent (activity , MainActivity .class );
89+ startActivity (intent );
90+ },
91+ error -> {
92+ Log .e ("TwitterAuthClient FAILED!" , error );
93+ });
94+
95+ stopProgressBar ();
96+ }
97+
98+ @ Override
99+ public void failure (TwitterException exception ) {
100+ exception .printStackTrace ();
101+ stopProgressBar ();
102+ }
103+ });
104+ });
83105
84106 btnAnon .setOnClickListener (view -> {
85107 startProgressBar ();
86- startGuestChatActivity (client );
108+ startGuestChatActivity (App . get (). getServiceClient () );
87109 stopProgressBar ();
88110 });
89111 }
90112
113+ @ Override
114+ protected void onActivityResult (int requestCode , int resultCode , Intent data ) {
115+ super .onActivityResult (requestCode , resultCode , data );
116+ twitterAuth .onActivityResult (requestCode , resultCode , data );
117+ }
118+
91119 private void startProgressBar (){
92120 runOnUiThread (() -> {
93121 progressBar .setVisibility (View .VISIBLE );
0 commit comments