Skip to content

Commit a7d101d

Browse files
committed
Replace ServiceStack Xamarin.Auth with native Twitter Auth Client
1 parent 5c925b2 commit a7d101d

File tree

1 file changed

+60
-32
lines changed
  • src/AndroidClient/androidchat/src/main/java/servicestack/net/androidchat

1 file changed

+60
-32
lines changed

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

Lines changed: 60 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import android.animation.ValueAnimator;
66
import android.content.Intent;
77
import android.content.SharedPreferences;
8-
import android.net.Uri;
98
import android.os.Bundle;
109
import android.preference.PreferenceManager;
1110
import android.support.v4.view.animation.FastOutLinearInInterpolator;
@@ -15,9 +14,18 @@
1514
import android.widget.ImageButton;
1615
import 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+
1825
import 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

Comments
 (0)