package com.mogujie.tt.entity;
import java.io.Serializable;
import java.util.Date;
import com.mogujie.tt.cache.biz.CacheHub;
import com.mogujie.tt.config.SysConstant;
import com.mogujie.tt.imlib.proto.MessageEntity;
import com.mogujie.tt.log.Logger;
/**
* @Description 消息列表中的消息实体
* @author Nana
* @date 2014-3-15
*/
public class MessageInfo extends MessageEntity implements Serializable {
private static final long serialVersionUID = 1L;
@Override
public String toString() {
return "MessageInfo [ownerId=" + ownerId + ", isSend=" + isSend
+ ", msgFromUserId=" + msgFromUserId + ", msgFromName="
+ msgFromName + ", msgFromUserNick=" + msgFromUserNick
+ ", msgFromUserAvatar=" + msgFromUserAvatar + ", msgType="
+ msgType + ", msgOverview=" + msgOverview + ", msgContent="
+ msgContent + ", msgLoadState=" + msgLoadState + ", targetId="
+ targetId + ", msgRenderType=" + msgRenderType
+ ", msgAttachContent=" + msgAttachContent + ", savePath="
+ savePath + ", url=" + url + ", displayType=" + displayType
+ ", playTime=" + playTime + ", created=" + created
+ ", updated=" + updated + ", readStatus=" + readStatus
+ ", seqNo=" + seqNo + ", fromId=" + fromId + ", toId=" + toId
+ ", createTime=" + createTime + ", type=" + type + ", msgLen="
+ msgLen + ", attach=" + attach + ", msgId=" + msgId
+ ", sessionId=" + sessionId + ", sessionType=" + sessionType
+ ", resend=" + resend + "]";
}
protected String ownerId = CacheHub.getInstance().getLoginUserId(); // 用户id
private Boolean isSend = false; // 消息是发送还是接收
protected int relateId; // 联系id
private String msgFromUserId = ""; // 发送信息的用户id
private String msgFromName = ""; // 发送信息的用户名
private String msgFromUserNick = ""; // 发送信息的用户昵称
private String msgFromUserAvatar = ""; // 用户头像URL链接
private byte msgType = SysConstant.MESSAGE_TYPE_TELETEXT;// 1普通信息(或含图片),100表示语音(是否包含有图片使用占位符来判断)
private String msgOverview = ""; // 消息内容概要 显示联系人最后一条历史消息时用
private String msgContent = ""; // 消息内容
private int msgLoadState = SysConstant.MESSAGE_STATE_FINISH_SUCCESSED;
// private int msgId = -1; // 数据库中存储的消息唯一ID
private int msgParentId = -1; // 每条消息的唯一ID,消息可能是图文混排,由对个msgId组合成一条消息,如果是单条消息则为默认值,否则为图文混排的第一条消息的ID
private String targetId = ""; // 接收信息的用户id
private byte msgRenderType;
private String msgAttachContent = "";
private String savePath = null; // 图片或语音保存路径
private String url = null; // 图片或语音链接
private int displayType = SysConstant.DISPLAY_TYPE_TEXT; // 消息显示类型,本地显示用
private int playTime = 0; // 语音播放时长
private byte[] audiocontent = null; // 语音本地缓存
private int created = 0; // 创建时间
private int updated = 0; // 更新时间
private boolean resend = false;
public boolean isResend() {
return resend;
}
public void setResend(boolean resend) {
this.resend = resend;
}
private int readStatus = SysConstant.MESSAGE_UNREAD;
public MessageInfo() {
// todo eric
msgInfo = this;
}
public MessageInfo(MessageEntity msg) {
msgInfo = this;
seqNo = msg.seqNo;
fromId = msg.fromId;
toId = msg.toId;
createTime = msg.createTime;
type = msg.type;
msgLen = msg.msgLen;
msgData = msg.msgData;
msg.attach = msg.attach;
generateMsgId();
generateSessionId(false);
// setMsgId(messageId); // todo eric this is right?why i don't use
setMsgFromUserId(msg.fromId);
setTargetId(msg.toId);
setMsgCreateTime(msg.createTime);
setMsgType(msg.type);
// todo eric
// msgInfo.setMsgRenderType(msgRenderType);
setMsgAttachContent(null);
if (isAudioType()) {
logger.d("chat#recv audio msg");
setAudioContent(msg.msgData);
}
}
public boolean isMyMsg() {
return msgFromUserId.equals(CacheHub.getInstance().getLoginUserId());
}
// @Override
// public String toString() {
// // TODO Auto-generated method stub
// //return super.toString();
//
// //return
// String.format("serialVersionUID:%d, ownerId:%s, isSend:%s, relateId:%d, msgFromUserId:%s, msgFromName:%s, msgFromUserNick:%s, msgFromUserAvatar:%s, msgType:%d, msgOverview:%s, ",
// )
// }
public String getOwnerId() {
return ownerId;
}
public void setOwnerId(String ownerId) {
this.ownerId = ownerId;
}
public String getSavePath() {
return savePath;
}
public void setSavePath(String savePath) {
this.savePath = savePath;
}
public int getRelateId() {
return relateId;
}
public void setRelateId(int relateId) {
this.relateId = relateId;
}
// public int getMsgId() {
// return msgId;
// }
//
// public void setMsgId(int msgId) {
// this.msgId = msgId;
// this.msgParentId = msgId;
// }
public int getMsgParentId() {
return msgParentId;
}
public void setMsgParentId(int msgParentId) {
this.msgParentId = msgParentId;
}
public int getDisplayType() {
return displayType;
}
public void setDisplayType(int displayType) {
this.displayType = displayType;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getTargetId() {
return targetId;
}
public void setTargetId(String targetId) {
this.targetId = targetId;
toId = targetId;
}
public byte getMsgRenderType() {
return msgRenderType;
}
public void setMsgRenderType(byte msgRenderType) {
this.msgRenderType = msgRenderType;
}
public String getMsgAttachContent() {
return msgAttachContent;
}
public void setMsgAttachContent(String msgAttachContent) {
this.msgAttachContent = msgAttachContent;
}
public void setMsgType(byte msgType) {
this.msgType = msgType;
type = msgType;
}
public byte getMsgType() {
return msgType;
}
public int getMsgLoadState() {
return msgLoadState;
}
public void setMsgLoadState(int msgLoadState) {
Logger.getLogger(MessageInfo.class).d(" setMsgLoadState = "
+ msgLoadState);
this.msgLoadState = msgLoadState;
}
public String getMsgFromUserId() {
return msgFromUserId;
}
public void setMsgFromUserId(String msgFromUserId) {
this.msgFromUserId = msgFromUserId;
fromId = msgFromUserId;
}
public String getMsgFromName() {
return msgFromName;
}
public void setMsgFromName(String msgFromName) {
this.msgFromName = msgFromName;
}
public String getMsgFromUserNick() {
return msgFromUserNick;
}
public void setMsgFromUserNick(String msgFromUserNick) {
this.msgFromUserNick = msgFromUserNick;
}
public String getMsgFromUserAvatar() {
return msgFromUserAvatar;
}
public void setMsgFromUserAvatar(String msgFromUserAvatar) {
this.msgFromUserAvatar = msgFromUserAvatar;
}
public Date getMsgCreateTime() {
return new Date(Long.valueOf(created) * 1000);
}
public void setMsgCreateTime(int msgCreateTime) {
this.created = msgCreateTime;
this.createTime = msgCreateTime;
}
public String getMsgOverview() {
switch (this.getDisplayType()) {
case SysConstant.DISPLAY_TYPE_TEXT :
msgOverview = this.getMsgContent(); // 文本消息用消息体
break;
case SysConstant.DISPLAY_TYPE_IMAGE :
msgOverview = SysConstant.MSG_OVERVIEW_DISPLAY_TYPE_IMAGE;
break;
case SysConstant.DISPLAY_TYPE_AUDIO :
msgOverview = SysConstant.MSG_OVERVIEW_DISPLAY_TYPE_AUDIO;
break;
default :
msgOverview = SysConstant.MSG_OVERVIEW_DISPLAY_TYPE_OTHERS;
break;
}
return msgOverview;
}
public void setMsgOverview(String msgOverview) {
this.msgOverview = msgOverview;
}
public String getMsgContent() {
return msgContent;
}
public void setMsgContent(String msgContent) {
this.msgContent = msgContent;
// msgData = msgContent.getBytes(Charset.forName("utf8"));
// msgLen = msgData.length;
}
public int getPlayTime() {
return playTime;
}
public void setPlayTime(int playTime) {
this.playTime = playTime;
}
public int getCreated() {
return created;
}
public void setCreated(int created) {
this.created = created;
createTime = created;
}
public int getUpdated() {
return updated;
}
public void setUpdated(int updated) {
this.updated = updated;
}
public byte[] getAudioContent() {
return audiocontent;
}
public void setAudioContent(byte[] AudioContent) {
audiocontent = AudioContent;
}
public void copyFromOtherMsgInfo(MessageInfo other) {
if (other == null)
return;
this.relateId = other.relateId; // 联系id
this.msgFromUserId = other.msgFromUserId; // 发送信息的用户id
this.msgFromName = other.msgFromName; // 发送信息的用户名
this.msgFromUserNick = other.msgFromUserNick; // 发送信息的用户昵称
this.msgFromUserAvatar = other.msgFromUserAvatar; // 用户头像URL链接
this.msgType = other.msgType;// 1普通信息(或含图片),100表示语音(是否包含有图片使用占位符来判断)
this.msgOverview = other.msgOverview; // 消息内容概要 显示联系人最后一条历史消息时用
this.msgContent = other.msgContent; // 消息内容
this.msgLoadState = other.msgLoadState;
this.msgId = other.msgId;
this.targetId = other.targetId; // 接收信息的用户id
this.msgRenderType = other.msgRenderType;
this.msgAttachContent = other.msgAttachContent;
this.savePath = other.savePath; // 图片或语音保存路径
this.url = other.url; // 图片或语音链接
this.displayType = other.displayType; // 消息显示类型,本地显示用
this.playTime = other.playTime; // 语音播放时长
this.audiocontent = other.audiocontent; // 语音本地缓存
this.created = other.created; // 创建时间
this.updated = other.updated; // 更新时间
this.readStatus = other.readStatus;
this.msgParentId = other.msgParentId;
}
public int getMsgReadStatus() {
return readStatus;
}
public void setMsgReadStatus(int readStatus) {
this.readStatus = readStatus;
}
/**
* @return the isSend
*/
public Boolean getIsSend() {
return isSend;
}
/**
* @param isSend
* the isSend to set
*/
public void setIsSend(Boolean isSend) {
this.isSend = isSend;
}
}