package com.gt.snssharinglibrary.asynctask;
import java.net.URLEncoder;
import org.apache.http.client.utils.URLEncodedUtils;
import twitter4j.TwitterException;
import twitter4j.TwitterFactory;
import twitter4j.conf.ConfigurationBuilder;
import android.content.Context;
import android.os.AsyncTask;
import com.gt.snssharinglibrary.Config;
import com.gt.snssharinglibrary.StringMapping;
import com.gt.snssharinglibrary.pojo.CusProgressDialog;
import com.gt.snssharinglibrary.pojo.SNSShareDetail;
import com.gt.snssharinglibrary.service.SNSService;
import com.gt.snssharinglibrary.util.LogController;
import com.sugree.twitter.Twitter;
public class TwitterPostTweetAsyncTask extends AsyncTask<Void, Void, Boolean> {
private Context context;
private SNSService snsService;
private Twitter twitter;
private SNSShareDetail snsShareDetail;
private CusProgressDialog cusProgressDialog;
public TwitterPostTweetAsyncTask(Context context, SNSService snsService,
Twitter twitter, SNSShareDetail snsShareDetail)
{
this.context = context;
this.snsService = snsService;
this.twitter = twitter;
this.snsShareDetail = snsShareDetail;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
// process of thread before start(UI Thread)
cusProgressDialog = new CusProgressDialog(context);
cusProgressDialog.setMessage(StringMapping.FACEBOOK_LOGIN_LOADING_MESSAGE);
cusProgressDialog.show();
}
@Override
protected Boolean doInBackground(Void... params) {
if (twitter != null && snsShareDetail != null)
{
ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setDebugEnabled(true);
cb.setOAuthConsumerKey(Config.TWITTER_CONSUMER_KEY);
cb.setOAuthConsumerSecret(Config.TWITTER_CONSUMER_SECRET);
cb.setOAuthAccessToken(twitter.getAccessToken());
cb.setOAuthAccessTokenSecret(twitter.getSecretToken());
TwitterFactory tf = new TwitterFactory(cb.build());
twitter4j.Twitter twitter4j = tf.getInstance();
try
{
String message = snsShareDetail.getDescription();
// try
// {
// message = URLEncoder.encode(message);
// }
// catch (Exception e)
// {
// e.printStackTrace();
// }
twitter4j.updateStatus(message);
return Boolean.valueOf(true);
}
catch (TwitterException e)
{
LogController.log("TwitterException on Post >>> " + e.getMessage());
e.printStackTrace();
return Boolean.valueOf(false);
}
}
return Boolean.valueOf(false);
}
@Override
protected void onPostExecute(Boolean isSuccess) {
super.onPostExecute(isSuccess);
// process of thread ended(UI Thread)
if (snsService != null)
{
snsService.postStatus(isSuccess, null);
}
if (cusProgressDialog != null)
{
cusProgressDialog.dismiss();
}
}
}