/** * 判断是什么消息类型 */ @Override public int getItemViewType(int position) { AVIMMessage message = messageList.get(position); if (null != message && message instanceof AVIMTypedMessage) { AVIMTypedMessage typedMessage = (AVIMTypedMessage) message; boolean isMe = fromMe(typedMessage); if (typedMessage.getMessageType() == LCIMRedPacketMessage.RED_PACKET_MESSAGE_TYPE) { return isMe ? ITEM_RIGHT_TEXT_RED_PACKET : ITEM_LEFT_TEXT_RED_PACKET; } else if (typedMessage.getMessageType() == LCIMRedPacketAckMessage.RED_PACKET_ACK_MESSAGE_TYPE) { // return RedPacketUtils.getInstance().receiveRedPacketAckMsg((LCIMRedPacketAckMessage) typedMessage,ITEM_TEXT_RED_PACKET_NOTIFY,ITEM_TEXT_RED_PACKET_NOTIFY_MEMBER); } else if (typedMessage.getMessageType() == LCIMTransferMessage.TRANSFER_MESSAGE_TYPE) { return isMe ? ITEM_RIGHT_TEXT_TRANSFER : ITEM_LEFT_TEXT_TRANSFER; } } return super.getItemViewType(position); } }
@Override public final String getContent() { JSONObject json = new JSONObject(); json.put("_lctype", this.getMessageType()); if (!fieldCache.contains(this.getClass())) { computeFieldAttribute(this.getClass()); } Map<String, FieldAttribute> classFieldAttributesMap = fieldCache.get(this.getClass()); for (FieldAttribute fieldAttribute : classFieldAttributesMap.values()) { Object fieldValue = fieldAttribute.get(this); json.put(fieldAttribute.getAliaName(), fieldValue); } return json.toJSONString(); }
@Override public int getItemViewType(int position) { AVIMMessage message = messageList.get(position); if (null != message && message instanceof AVIMTypedMessage) { AVIMTypedMessage typedMessage = (AVIMTypedMessage) message; boolean isMe = message.getFrom().equals(AVImClientManager.getInstance().getClientId()); if (typedMessage.getMessageType() == AVIMReservedMessageType.TextMessageType.getType()) { return isMe ? ITEM_RIGHT_TEXT : ITEM_LEFT_TEXT; } else { return isMe ? ITEM_RIGHT : ITEM_LEFT; } } return 8888; }