package info.justaway.task; import android.os.AsyncTask; import de.greenrobot.event.EventBus; import info.justaway.R; import info.justaway.event.action.StatusActionEvent; import info.justaway.model.FavRetweetManager; import info.justaway.model.TwitterManager; import info.justaway.util.MessageUtil; import twitter4j.TwitterException; public class RetweetTask extends AsyncTask<Void, Void, TwitterException> { private long mStatusId; private static final int ERROR_CODE_DUPLICATE = 37; public RetweetTask(long statusId) { mStatusId = statusId; FavRetweetManager.setRtId(statusId, (long) 0); EventBus.getDefault().post(new StatusActionEvent()); } @Override protected TwitterException doInBackground(Void... params) { try { twitter4j.Status status = TwitterManager.getTwitter().retweetStatus(mStatusId); FavRetweetManager.setRtId(status.getRetweetedStatus().getId(), status.getId()); return null; } catch (TwitterException e) { FavRetweetManager.setRtId(mStatusId, null); e.printStackTrace(); return e; } } @Override protected void onPostExecute(TwitterException e) { if (e == null) { MessageUtil.showToast(R.string.toast_retweet_success); } else if (e.getErrorCode() == ERROR_CODE_DUPLICATE) { MessageUtil.showToast(R.string.toast_retweet_already); } else { EventBus.getDefault().post(new StatusActionEvent()); MessageUtil.showToast(R.string.toast_retweet_failure); } } }