package com.oreilly.android.otweet.tasks;
import twitter4j.Twitter;
import twitter4j.TwitterException;
import android.os.AsyncTask;
public class PostTweetAsyncTask extends AsyncTask<String, Void, twitter4j.Status> {
private Twitter twitter;
private PostTweetResponder responder;
public PostTweetAsyncTask(PostTweetResponder responder, Twitter twitter) {
super();
this.twitter = twitter;
this.responder = responder;
}
public interface PostTweetResponder {
public void tweetPosting();
public void tweetPosted(twitter4j.Status tweet);
}
@Override
protected twitter4j.Status doInBackground(String... params) {
String tweet = params[0];
try {
return twitter.updateStatus(tweet);
} catch (TwitterException e) {
throw new RuntimeException("Couldn't post status", e);
}
}
@Override
protected void onPostExecute(twitter4j.Status result) {
super.onPostExecute(result);
responder.tweetPosted(result);
}
@Override
protected void onPreExecute() {
super.onPreExecute();
responder.tweetPosting();
}
}