@Override public AbstractMessageViewHolder onCreateViewHolder(ViewGroup parent, int type) { int viewType = (int) Math.ceil(type / MessageType.Max); int messageType = type - viewType * MessageType.Max; MessageDisplayHandler handler = ChatSDK.ui().getMessageHandler(new MessageType(messageType)); return handler.newViewHolder(viewType == ViewTypeReply, activity); }
public static String payloadAsString (Message message) { MessageDisplayHandler handler = ChatSDK.ui().getMessageHandler(message.getMessageType()); if (handler != null) { return handler.displayName(message); } return t(R.string.unknown_message); }
@Override public void onBindViewHolder(AbstractMessageViewHolder holder, int position) { MessageListItem messageItem = getMessageItems().get(position); Message message = messageItem.getMessage(); holder.setMessage(message); if (message.getMessageStatus().equals(MessageSendStatus.Uploading) || (messageItem.progress > 0 && messageItem.progress < 1)) { holder.showProgressBar(messageItem.progress); } else { holder.hideProgressBar(); } for(MessageDisplayHandler handler : ChatSDK.ui().getMessageHandlers()) { handler.updateMessageCellView(messageItem.message, holder, activity); } }