Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class ChatRecyclerAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
- private static final int VIEW_TYPE_SYSTEM = 0;
- private static final int VIEW_TYPE_OUTGOING = 1;
- private static final int VIEW_TYPE_INBOX = 2;
- private List<ChatMessageModel> mMessages;
- public ChatRecyclerAdapter(List<ChatMessageModel> messages) {
- mMessages = messages;
- }
- public void add(ChatMessageModel chatMessage) {
- mMessages.add(chatMessage);
- notifyItemInserted(mMessages.size() - 1);
- }
- @Override
- public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
- LayoutInflater layoutInflater = LayoutInflater.from(parent.getContext());
- RecyclerView.ViewHolder viewHolder = null;
- switch (viewType) {
- case VIEW_TYPE_OUTGOING:
- View viewMessageOutgoing = layoutInflater.inflate(R.layout.item_chat_outgoing, parent, false);
- viewHolder = new OutgoingMessageViewHolder(viewMessageOutgoing);
- break;
- case VIEW_TYPE_INBOX:
- View viewMessageInbox = layoutInflater.inflate(R.layout.item_chat_inbox, parent, false);
- viewHolder = new InboxMessageViewHolder(viewMessageInbox);
- break;
- }
- return viewHolder;
- }
- @Override
- public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
- if (mMessages.get(position).getSenderId().equals(UserSession.getInstance().getCurrentUid())) {
- configureOutgoingMessageViewHolder((OutgoingMessageViewHolder) holder, position);
- } else {
- configureInboxMessageViewHolder((InboxMessageViewHolder) holder, position);
- }
- }
- private void configureOutgoingMessageViewHolder(OutgoingMessageViewHolder outgoingMessageViewHolder, int position) {
- ChatMessageModel chatMessage = mMessages.get(position);
- Log.i("TEST", chatMessage.getMessage());
- outgoingMessageViewHolder.txtMessageText.setText(chatMessage.getMessage());
- }
- private void configureInboxMessageViewHolder(InboxMessageViewHolder inboxMessageViewHolder, int position) {
- ChatMessageModel chatMessage = mMessages.get(position);
- Log.i("TEST", chatMessage.getMessage());
- inboxMessageViewHolder.txtMessageText.setText(chatMessage.getMessage());
- }
- @Override
- public int getItemCount() {
- if (mMessages != null) {
- return mMessages.size();
- }
- return 0;
- }
- @Override
- public int getItemViewType(int position) {
- if (mMessages.get(position).getSenderId().equals(UserSession.getInstance().getCurrentUid())) {
- return VIEW_TYPE_OUTGOING;
- } else {
- return VIEW_TYPE_INBOX;
- }
- }
- private static class OutgoingMessageViewHolder extends RecyclerView.ViewHolder {
- private TextView txtMessageText;
- public OutgoingMessageViewHolder(View itemView) {
- super(itemView);
- txtMessageText = (TextView) itemView.findViewById(R.id.text_view_message_text);
- }
- }
- private static class InboxMessageViewHolder extends RecyclerView.ViewHolder {
- private TextView txtMessageText;
- public InboxMessageViewHolder(View itemView) {
- super(itemView);
- txtMessageText = (TextView) itemView.findViewById(R.id.text_view_message_text);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment