package com.suan.weclient.util.data.bean; import android.content.Context; import android.util.Log; import android.widget.Toast; import com.suan.weclient.adapter.ChatListAdapter; import com.suan.weclient.util.data.DataManager; import com.suan.weclient.util.net.WeChatLoader; import com.suan.weclient.util.net.WechatManager; public class MessageBean { public static final int MESSAGE_TYPE_TEXT = 1; public static final int MESSAGE_TYPE_IMG = 2; public static final int MESSAGE_TYPE_VOICE = 3; public static final int MESSAGE_TYPE_EMPTY = 4; public static final int MESSAGE_TYPE_DATA = 5; private String id = ""; private int type = -1; private String fakeid = ""; /* default file id is "0" */ private String fileid = "0"; private String nick_name = ""; private String date_time = ""; private String content = ""; private String source = ""; private String msg_status = ""; private String has_reply = ""; private String refuse_reason = ""; private String is_starred_msg = "0"; /* about media message */ private String title = ""; private String desc = ""; private String content_url = ""; private String show_type = ""; private String app_sub_type = ""; /* * about audio */ private String play_length = "0"; private String length = "0"; /** * **************************************************************** */ private String token = ""; private String slave_sid = ""; private String slave_user = ""; private String referer = ""; /* * about chat */ private String toFakeId = ""; private int owner = -1; private int sendState = -1; private MessageSendListener messageSendListener; private DataManager mDataManager; private UserBean userBean; private String lastMsgId; private String createTime; private ChatListAdapter.ItemViewHolder holder; public static final int MESSAGE_SEND_NONE = -1; //indecate that the message is in send mode public static final int MESSAGE_SEND_PREPARE = 0; public static final int MESSAGE_SEND_ING = 1; public static final int MESSAGE_SEND_OK = 2; public static final int MESSAGE_SEND_FAILED_LIMIT_OF_TIME = 3; public static final int MESSAGE_SEND_FAILED_FANS_NOT_RECEIVE = 4; public static final int MESSAGE_OWNER_ME = 1; public static final int MESSAGE_OWNER_HER = 2; /* about chat */ private boolean timeTagShow = false; public boolean getTimeTagShow(){ return timeTagShow; } public void setTimeTagShow(boolean timeTagShow){ this.timeTagShow = timeTagShow; } public String getToken() { return token; } public void setToken(String data) { this.token = data; } public String getReferer() { return referer; } public void setReferer(String data) { this.referer = data; } public String getSlaveSid() { return slave_sid; } public void setSlaveSid(String data) { this.slave_sid = data; } public String getSlaveUser() { return slave_user; } public void setSlaveUser(String data) { this.slave_user = data; } public boolean getStarred() { return is_starred_msg.equals("1"); } public void setStarred(boolean star) { is_starred_msg = star ? "1" : "0"; } public String getId() { return id; } public void setId(String data) { this.id = data; } public int getType() { return type; } public void setType(int data) { this.type = data; } public String getFakeId() { return fakeid; } public void setFakeId(String data) { this.fakeid = data; } public String getNickName() { return nick_name; } public void setNickName(String data) { this.nick_name = data; } public String getDateTime() { return date_time; } public void setDateTime(String data) { this.date_time = data; } public String getContent() { return content; } public void setContent(String data) { this.content = data; } public String getSource() { return source; } public void setSource(String data) { this.source = data; } public String getPlayLength() { return play_length; } public void setPlayLength(String playLength) { this.play_length = playLength; } public String getLength() { return length; } public void setLength(String length) { this.length = length; } public String getFileId() { return fileid; } public void setFileId(String data) { this.fileid = data; } public String getMsgStatus() { return msg_status; } public void setMsgStatus(String data) { this.msg_status = data; } public String getHasReply() { return has_reply; } public void setHasReply(String data) { this.has_reply = data; } public String getRefuseReason() { return refuse_reason; } public void setRefuseReason(String data) { this.refuse_reason = data; } public String getTitle() { return title; } public void setTitle(String data) { this.title = data; } public String getContentUrl() { return content_url; } public void setContentUrl(String data) { this.content_url = data; } public String getToFakeId() { return toFakeId; } public void setOwner(int owner) { this.owner = owner; } public int getOwner() { return owner; } private Context mContext; public void sendMessage(DataManager dataManager, String lastMsgId, UserBean userBean, String toFakeId, Context context) { this.toFakeId = toFakeId; this.owner = MESSAGE_OWNER_ME; this.lastMsgId = lastMsgId; this.userBean = userBean; this.mDataManager = dataManager; this.createTime = (System.currentTimeMillis() + "").substring(0, 10); this.mContext = context; dataManager.getWechatManager().singleChat(userBean, this, new WechatManager.OnActionFinishListener() { @Override public void onFinish(int code, Object object) { if (code == WechatManager.ACTION_SUCCESS) { Boolean result = (Boolean) object; if (result) { getChatNewItem(); } else { if(getSendState()==MESSAGE_SEND_FAILED_FANS_NOT_RECEIVE){ Toast.makeText(mContext, "该用户主动屏蔽了您发送的消息,无法与其聊天", Toast.LENGTH_LONG).show(); }else if(getSendState()==MESSAGE_SEND_FAILED_LIMIT_OF_TIME){ Toast.makeText(mContext, "该用户48小时未主动给您发送消息,无法与其聊天", Toast.LENGTH_LONG).show(); } } } } }); } public void resend() { mDataManager.getWechatManager().singleChat(userBean, this, new WechatManager.OnActionFinishListener() { @Override public void onFinish(int code, Object object) { Boolean result = (Boolean) object; if (result) { getChatNewItem(); } } }); } private void getChatNewItem() { WeChatLoader.wechatGetChatNewItems( new WeChatLoader.WechatGetChatNewItems() { @Override public void onBack(int resultCode,String strResult) { } }, userBean, this, lastMsgId, createTime, toFakeId ); } public void setMessageSendListener(ChatListAdapter.ItemViewHolder holder, MessageSendListener messageSendListener) { this.holder = holder; this.messageSendListener = messageSendListener; } public MessageSendListener getMessageSendListener() { return this.messageSendListener; } public void setSendState(int sendState) { if (this.messageSendListener != null) { this.messageSendListener.onSendFinish(sendState, holder); } this.sendState = sendState; } public int getSendState() { return sendState; } public interface MessageSendListener { public void onSendFinish(int state, ChatListAdapter.ItemViewHolder holder); } }