package com.shejiaomao.weibo.service.task; import com.shejiaomao.maobo.R; import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnCancelListener; import android.os.AsyncTask; import android.util.Log; import android.widget.Toast; import com.cattong.commons.LibException; import com.cattong.commons.Logger; import com.cattong.weibo.Weibo; import com.shejiaomao.common.ResourceBook; import com.shejiaomao.weibo.SheJiaoMaoApplication; import com.shejiaomao.weibo.common.GlobalVars; public class TwitterRetweetTask extends AsyncTask<Void, Void, com.cattong.entity.Status> { private static final String TAG = TwitterRetweetTask.class.getSimpleName(); private Context context; private long accountId; private com.cattong.entity.Status originalStatus; private ProgressDialog dialog; private String errorMsg; public TwitterRetweetTask(Context context, com.cattong.entity.Status status) { this.accountId = ((SheJiaoMaoApplication)context.getApplicationContext()).getCurrentAccount().getAccountId(); this.context = context; this.originalStatus = status; } @Override protected void onPreExecute() { super.onPreExecute(); dialog = ProgressDialog.show(context, null, context.getString(R.string.msg_blog_sending)); dialog.setCancelable(true); dialog.setOnCancelListener(onCancelListener); } @Override protected com.cattong.entity.Status doInBackground(Void... params) { if (originalStatus == null) { return null; } Weibo microBlog = GlobalVars.getMicroBlog(accountId); if (microBlog == null) { return null; } com.cattong.entity.Status newStatus = null; try { String originalStatusId = originalStatus.getStatusId(); if (originalStatus.getRetweetedStatus() != null) { originalStatusId = originalStatus.getRetweetedStatus().getStatusId(); } newStatus = microBlog.retweetStatus(originalStatusId, null, false); } catch (LibException e) { if (Logger.isDebug()) Log.e(TAG, e.getMessage(), e); errorMsg = ResourceBook.getResultCodeValue(e.getErrorCode(), context); } return newStatus; } @Override protected void onPostExecute(com.cattong.entity.Status resultStatus) { if (dialog != null) { try { dialog.dismiss(); } catch(Exception e) {} } if (resultStatus != null && errorMsg == null) { Toast.makeText(context, context.getString(R.string.msg_status_success), Toast.LENGTH_LONG).show(); } else { Toast.makeText(context, errorMsg, Toast.LENGTH_LONG).show(); } } private OnCancelListener onCancelListener = new OnCancelListener() { public void onCancel(DialogInterface dialog) { TwitterRetweetTask.this.cancel(true); } }; }