package com.juns.wechat.chat.task;
import java.io.File;
import android.app.Activity;
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.util.ImageUtils;
import com.juns.wechat.chat.utils.CommonUtils;
import com.juns.wechat.chat.utils.ImageCache;
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();
}
}
}
}
}