예제 #1
0
 /** 下拉载入历史消息,从最上面开始添加 */
 public void loadHistoryList(final List<MessageEntity> historyList) {
   logger.d("#messageAdapter#loadHistoryList");
   if (null == historyList || historyList.size() <= 0) {
     return;
   }
   Collections.sort(historyList, new MessageTimeComparator());
   ArrayList<Object> chatList = new ArrayList<>();
   int preTime = 0;
   int nextTime = 0;
   for (MessageEntity msg : historyList) {
     if (msg.getDisplayType() == DBConstant.MSG_TYPE_SINGLE_TEXT) {
       if (isMsgGif(msg)) {
         msg.setGIfEmo(true);
       } else {
         msg.setGIfEmo(false);
       }
     }
     nextTime = msg.getCreated();
     boolean needTimeBubble = DateUtil.needDisplayTime(preTime, nextTime);
     if (needTimeBubble) {
       Integer in = nextTime;
       chatList.add(in);
     }
     preTime = nextTime;
     if (msg.getDisplayType() == DBConstant.SHOW_MIX_TEXT) {
       MixMessage mixMessage = (MixMessage) msg;
       chatList.addAll(mixMessage.getMsgList());
     } else {
       chatList.add(msg);
     }
   }
   // 如果是历史消息,从头开始加
   msgObjectList.addAll(0, chatList);
   getImageList();
   logger.d("#messageAdapter#addItem");
   notifyDataSetChanged();
 }
예제 #2
0
 /** ----------------------添加历史消息----------------- */
 public void addItem(final MessageEntity msg) {
   if (msg.getDisplayType() == DBConstant.MSG_TYPE_SINGLE_TEXT) {
     if (isMsgGif(msg)) {
       msg.setGIfEmo(true);
     } else {
       msg.setGIfEmo(false);
     }
   }
   int nextTime = msg.getCreated();
   if (getCount() > 0) {
     Object object = msgObjectList.get(getCount() - 1);
     if (object instanceof MessageEntity) {
       int preTime = ((MessageEntity) object).getCreated();
       boolean needTime = DateUtil.needDisplayTime(preTime, nextTime);
       if (needTime) {
         Integer in = nextTime;
         msgObjectList.add(in);
       }
     }
   } else {
     Integer in = msg.getCreated();
     msgObjectList.add(in);
   }
   /** 消息的判断 */
   if (msg.getDisplayType() == DBConstant.SHOW_MIX_TEXT) {
     MixMessage mixMessage = (MixMessage) msg;
     msgObjectList.addAll(mixMessage.getMsgList());
   } else {
     msgObjectList.add(msg);
   }
   if (msg instanceof ImageMessage) {
     ImageMessage.addToImageMessageList((ImageMessage) msg);
   }
   logger.d("#messageAdapter#addItem");
   notifyDataSetChanged();
 }