package com.avoscloud.beijing.push.demo.keepalive.data;
import java.util.HashMap;
import java.util.List;
import com.alibaba.fastjson.JSON;
import com.avos.avoscloud.AVMessage;
import com.avos.avoscloud.AVUtils;
public class ChatDemoMessage {
public enum MessageType {
Status(-1), Text(0), Image(1), Audio(2);
private final int type;
MessageType(int type) {
this.type = type;
}
public int getType() {
return this.type;
}
}
MessageType messageType;
String messageContent;
String messageFrom;
AVMessage internalMessage;
public ChatDemoMessage() {
internalMessage = new AVMessage();
}
public MessageType getMessageType() {
return messageType;
}
public void setMessageType(MessageType messageType) {
this.messageType = messageType;
}
public String getMessageContent() {
return messageContent;
}
public void setMessageContent(String messageContent) {
this.messageContent = messageContent;
}
public String getMessageFrom() {
return messageFrom;
}
public void setMessageFrom(String messageFrom) {
this.messageFrom = messageFrom;
}
public String getGroupId() {
return this.internalMessage.getGroupId();
}
public void setGroupId(String groupId) {
this.internalMessage.setGroupId(groupId);
}
public void setToPeerIds(List<String> peerIds) {
this.internalMessage.setToPeerIds(peerIds);
}
public List<String> getToPeerIds() {
return this.internalMessage.getToPeerIds();
}
public void fromAVMessage(AVMessage message) {
this.internalMessage = message;
if (!AVUtils.isBlankString(internalMessage.getMessage())) {
HashMap<String, Object> params =
JSON.parseObject(internalMessage.getMessage(), HashMap.class);
this.messageContent = (String) params.get("content");
this.messageFrom = (String) params.get("dn");
this.messageType = (MessageType.valueOf((String) params.get("type")));
}
}
public AVMessage makeMessage() {
HashMap<String, Object> params = new HashMap<String, Object>();
params.put("type", this.messageType);
params.put("content", this.messageContent);
params.put("dn", this.messageFrom);
internalMessage.setMessage(JSON.toJSONString(params));
return internalMessage;
}
}