package com.suan.weclient.util.data.holder;
import android.util.Log;
import com.suan.weclient.util.data.bean.MessageBean;
import com.suan.weclient.util.data.bean.UserBean;
import com.suan.weclient.util.data.holder.resultHolder.MessageResultHolder;
import com.suan.weclient.util.net.UploadHelper;
import com.suan.weclient.util.net.WeChatLoader;
import java.util.ArrayList;
public class MessageHolder {
private String latestMsgId = "";
private ArrayList<MessageBean> messageBeans;
private UserBean nowBean;
private int nowMessageMode = WeChatLoader.GET_MESSAGE_MODE_ALL;
private int contentMessageMode = WeChatLoader.GET_MESSAGE_MODE_ALL;
private int messageCount =0;
private boolean holderEmpty = true;
/*
about file upload
*/
private UploadHelper uploadHelper;
public MessageHolder(UserBean userBean) {
nowBean = userBean;
messageBeans = new ArrayList<MessageBean>();
addEmptyMessage();
uploadHelper = new UploadHelper();
}
public void mergeMessageResult(MessageResultHolder messageResultHolder){
switch(messageResultHolder.getResultMode()){
case MessageResultHolder.RESULT_MODE_REFRESH:
contentMessageMode = messageResultHolder.getMessageMode();
messageBeans = messageResultHolder.getMessageBeans();
break;
case MessageResultHolder.RESULT_MODE_ADD:
contentMessageMode = messageResultHolder.getMessageMode();
addMessage(messageResultHolder.getMessageBeans());
break;
}
latestMsgId = messageResultHolder.getLastMsgId();
nowBean.setLastMsgId(latestMsgId);
initMessageCount();
}
private void initMessageCount(){
messageCount = 0;
for(int i = 0;i<messageBeans.size();i++){
MessageBean nowBean = messageBeans.get(i);
if(nowBean.getType()!= MessageBean.MESSAGE_TYPE_DATA&&nowBean.getType()!= MessageBean.MESSAGE_TYPE_EMPTY){
messageCount++;
}
}
}
public int getMessageCount(){
return messageCount;
}
public void clearMessage(boolean addEmptyMessage) {
messageBeans.clear();
if (addEmptyMessage) {
addEmptyMessage();
}
}
private void addEmptyMessage() {
MessageBean emptyMessage = new MessageBean();
emptyMessage.setType(MessageBean.MESSAGE_TYPE_EMPTY);
messageBeans.add(emptyMessage);
}
public void setNowMessageMode(int mode) {
nowMessageMode = mode;
}
public int getNowMessageMode() {
return nowMessageMode;
}
public void setContentMessageMode(int mode) {
contentMessageMode = mode;
}
public int getContentMessageMode() {
return contentMessageMode;
}
public ArrayList<MessageBean> getMessageList() {
return messageBeans;
}
private void addMessage(ArrayList<MessageBean> nowArrayList) {
for (int i = 0; i < nowArrayList.size(); i++) {
messageBeans.add(nowArrayList.get(i));
}
}
public void setLatestMsgId(String id) {
latestMsgId = id;
}
public String getLatestMsgId() {
return latestMsgId;
}
public UserBean getUserBean() {
return nowBean;
}
public boolean getHolderEmpty() {
return holderEmpty;
}
public void setHolderEmpty(boolean holderEmpty) {
this.holderEmpty = holderEmpty;
}
public UploadHelper getUploadHelper() {
return uploadHelper;
}
}