package io.github.mthli.Tweetin.Task.OAuth; import android.app.ProgressDialog; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.net.Uri; import android.os.AsyncTask; import android.widget.Toast; import io.github.mthli.Tweetin.Activity.SplashActivity; import io.github.mthli.Tweetin.R; import io.github.mthli.Tweetin.Twitter.TwitterUnit; import twitter4j.Twitter; import twitter4j.auth.RequestToken; public class GetAuthorizationURLTask extends AsyncTask<Void, Void, Boolean> { private SplashActivity splashActivity; private String token; private String tokenSecret; private String authorizationURL; private ProgressDialog progressDialog; public GetAuthorizationURLTask(SplashActivity splashActivity) { this.splashActivity = splashActivity; this.token = null; this.token = null; this.authorizationURL = null; } @Override protected void onPreExecute() { progressDialog = new ProgressDialog(splashActivity); progressDialog.setMessage(splashActivity.getString(R.string.splash_pd_start_authorization)); progressDialog.setCancelable(false); progressDialog.show(); } @Override protected Boolean doInBackground(Void... params) { String consumerKey = splashActivity.getString(R.string.app_consumer_key); String consumerSecret = splashActivity.getString(R.string.app_consumer_secret); Twitter twitter = TwitterUnit.getTwitterFromInstance(); twitter.setOAuthConsumer(consumerKey, consumerSecret); try { RequestToken requestToken = twitter.getOAuthRequestToken(splashActivity.getString(R.string.app_callback_url)); token = requestToken.getToken(); tokenSecret = requestToken.getTokenSecret(); authorizationURL = requestToken.getAuthorizationURL(); } catch (Exception e) { return false; } if (isCancelled()) { return false; } return true; } @Override protected void onCancelled() {} @Override protected void onPostExecute(Boolean result) { if (result) { Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(authorizationURL)); splashActivity.startActivity(intent); SharedPreferences sharedPreferences = splashActivity.getSharedPreferences(splashActivity.getString(R.string.sp_tweetin), Context.MODE_PRIVATE); SharedPreferences.Editor editor = sharedPreferences.edit(); editor.putString(splashActivity.getString(R.string.sp_use_screen_name), null); editor.putString(splashActivity.getString(R.string.sp_request_token), token); editor.putString(splashActivity.getString(R.string.sp_request_token_secret), tokenSecret); editor.putString(splashActivity.getString(R.string.sp_access_token), null); editor.putString(splashActivity.getString(R.string.sp_access_token_secret), null); editor.commit(); editor.putBoolean(splashActivity.getString(R.string.sp_is_timeline_first), true); editor.putBoolean(splashActivity.getString(R.string.sp_is_mention_first), true); editor.putBoolean(splashActivity.getString(R.string.sp_is_favorite_first), true); editor.commit(); progressDialog.hide(); progressDialog.dismiss(); splashActivity.finish(); } else { progressDialog.hide(); progressDialog.dismiss(); Toast.makeText(splashActivity, R.string.splash_toast_authorization_failed, Toast.LENGTH_SHORT).show(); } } }