package com.mogujie.tt.task.biz; import java.io.IOException; import java.util.List; import android.graphics.Bitmap; import android.os.Handler; import android.os.Message; import android.text.TextUtils; import com.mogujie.tt.config.HandlerConstant; import com.mogujie.tt.config.SysConstant; import com.mogujie.tt.config.TaskConstant; import com.mogujie.tt.entity.MessageInfo; import com.mogujie.tt.https.MoGuHttpClient; import com.mogujie.tt.imlib.IMUnAckMsgManager; import com.mogujie.tt.log.Logger; import com.mogujie.tt.task.MAsyncTask; import com.mogujie.tt.ui.tools.PhotoHandler; public class UploadImageTask extends MAsyncTask { // private String strUrl; // private String strDao; private Logger logger = Logger.getLogger(UploadImageTask.class); private List<MessageInfo> list; private Handler handler; public UploadImageTask(Handler handler, int sessionType, String url, String Dao, List<MessageInfo> msgInfoList) { this.handler = handler; list = msgInfoList; logger.d("chat#pic#put uploading images msg list into unack manager"); for (MessageInfo msgInfo : msgInfoList) { IMUnAckMsgManager.instance().add(msgInfo); } } @Override public int getTaskType() { return TaskConstant.TASK_UPLOAD_IMAGE; } @Override public Object doTask() { for (MessageInfo messageInfo : list) { String result = null; Bitmap bitmap = null; try { bitmap = PhotoHandler.revitionImage(messageInfo.getSavePath()); if (null != bitmap) { // byte[] bytes = PhotoHandler.getBytes(bitmap); MoGuHttpClient httpClient = new MoGuHttpClient(); // result = httpClient.uploadImage(strUrl, bytes, // messageInfo.getSavePath(), strDao); // todo eric result // result = // httpClient.uploadImage3("http://122.225.68.125:8001/upload/", // messageInfo.getSavePath()); result = httpClient.uploadImage3(SysConstant.UPLOAD_IMAGE_URL_PREFIX + "upload/", messageInfo.getSavePath()); logger.d("pic#uploadImage ret url:%s", result); } if (handler == null) { logger.e("pic#handler is null"); return null; } Message message = handler.obtainMessage(); if (TextUtils.isEmpty(result)) { logger.e("pic#upload failed"); message.what = HandlerConstant.HANDLER_IMAGE_UPLOAD_FAILD; message.obj = messageInfo; messageInfo.setMsgLoadState(SysConstant.MESSAGE_STATE_FINISH_FAILED); } else { String imageUrl = (String) result; logger.e("pic#upload ok, url:%s", imageUrl); Logger.getLogger(UploadImageTask.class).d(imageUrl); messageInfo.setUrl(imageUrl); message.what = HandlerConstant.HANDLER_IMAGE_UPLOAD_SUCESS; message.obj = messageInfo; } handler.sendMessage(message); } catch (IOException e) { logger.e(e.getMessage()); } } return null; } // @Override // public void callback(Object result) { // Handler handler = MessageActivity.getMsgHandler(); // Message message = handler.obtainMessage(); // // if (result == null) { // message.what = HandlerConstant.HANDLER_IMAGE_UPLOAD_FAILD; // message.obj = messageInfo; // handler.sendMessage(message); // } else { // String imageUrl = (String) result; // Logger.getLogger(UploadImageTask.class).d(imageUrl); // messageInfo.setUrl(imageUrl); // message.what = HandlerConstant.HANDLER_IMAGE_UPLOAD_SUCESS; // message.obj = messageInfo; // handler.sendMessage(message); // } // } }