package com.ccxt.whl.task; import java.io.File; import android.app.Activity; import android.content.Intent; import android.graphics.Bitmap; import android.os.AsyncTask; import android.view.View; import android.widget.BaseAdapter; import android.widget.ImageView; import com.easemob.chat.EMChatManager; import com.easemob.chat.EMMessage; import com.easemob.chat.VideoMessageBody; import com.ccxt.whl.activity.ShowVideoActivity; import com.ccxt.whl.utils.CommonUtils; import com.ccxt.whl.utils.ImageCache; import com.easemob.util.ImageUtils; public class LoadVideoImageTask extends AsyncTask<Object, Void, Bitmap> { private ImageView iv = null; String thumbnailPath = null; String thumbnailUrl = null; Activity activity; EMMessage message; BaseAdapter adapter; @Override protected Bitmap doInBackground(Object... params) { thumbnailPath = (String) params[0]; thumbnailUrl = (String) params[1]; iv = (ImageView) params[2]; activity = (Activity) params[3]; message = (EMMessage) params[4]; adapter = (BaseAdapter) params[5]; if (new File(thumbnailPath).exists()) { return ImageUtils.decodeScaleImage(thumbnailPath, 120, 120); } else { return null; } } @Override protected void onPostExecute(Bitmap result) { super.onPostExecute(result); if (result != null) { iv.setImageBitmap(result); ImageCache.getInstance().put(thumbnailPath, result); iv.setClickable(true); iv.setTag(thumbnailPath); iv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (thumbnailPath != null) { VideoMessageBody videoBody = (VideoMessageBody) message .getBody(); Intent intent = new Intent(activity, ShowVideoActivity.class); intent.putExtra("localpath", videoBody.getLocalUrl()); intent.putExtra("secret", videoBody.getSecret()); intent.putExtra("remotepath", videoBody.getRemoteUrl()); if (message != null && message.direct == EMMessage.Direct.RECEIVE && !message.isAcked) { message.isAcked = true; try { EMChatManager.getInstance().ackMessageRead( message.getFrom(), message.getMsgId()); } catch (Exception e) { e.printStackTrace(); } } activity.startActivity(intent); } } }); } else { if (message.status == EMMessage.Status.FAIL || message.direct == EMMessage.Direct.RECEIVE) { if (CommonUtils.isNetWorkConnected(activity)) { new AsyncTask<Void, Void, Void>() { @Override protected Void doInBackground(Void... params) { EMChatManager.getInstance().asyncFetchMessage( message); return null; } @Override protected void onPostExecute(Void result) { adapter.notifyDataSetChanged(); }; }.execute(); } } } } }