OnCreateViewHolder(ViewGroup parent, int viewType) { RecyclerView.ViewHolder viewHolder = null; LayoutInflater inflater = LayoutInflater.From(parent.Context); switch (viewType) { case ChatListItem.TYPE_PRIVATE_CHAT: View v1 = inflater.Inflate(Resource.Layout.ChatListItem, parent, false); viewHolder = new ChatAdaptereViewHolder(v1, OnClickPrivateChatItem); break; case ChatListItem.TYPE_GROUP_CHAT: View v2 = inflater.Inflate(Resource.Layout.ChatGroupsListItem, parent, false); viewHolder = new ChatGroupViewHolder(v2, OnClickGroupChatItem); break; } return(viewHolder); //// Inflate the CardView for the photo: //var itemView = LayoutInflater.From(parent.Context). // Inflate(Resource.Layout.ChatListItem, parent, false); //// Create a ViewHolder to find and hold these view references, and //// register OnClick with the view holder: //ChatAdaptereViewHolder vh = new ChatAdaptereViewHolder(itemView, OnClick); //return vh; }
OnBindViewHolder(RecyclerView.ViewHolder holder, int position) { switch (originalChat[position].IsGroup) { case false: ChatAdaptereViewHolder vh = holder as ChatAdaptereViewHolder; var ContactUser = ContactRepository.GetContactbyUserId(Convert.ToInt64(originalChat[position].ContactId)); if (ContactUser != null) { vh.SenderName.Text = ContactUser.name; if (Convert.ToDateTime(originalChat[position].LastMessageDate).ToLocalTime().Date == DateTime.UtcNow.ToLocalTime().Date) { vh.MsgTextTime.Text = Convert.ToDateTime(originalChat[position].LastMessageDate).ToLocalTime().ToString("hh:mm tt"); } else { vh.MsgTextTime.Text = Convert.ToDateTime(originalChat[position].LastMessageDate).ToLocalTime().Date.ToString("MM/dd/yyyy"); } vh.txtFeedMessage.Text = originalChat[position].LastMessage; int count = ChatMessageRepository.getChatMessageUnRead(originalChat[position].ChatId); if (count > 0) { vh.MsgTextTime.SetTextColor(Color.YellowGreen); vh.txtMessageCount.Visibility = ViewStates.Visible; vh.txtMessageCount.Text = count.ToString(); } else { vh.txtMessageCount.Visibility = ViewStates.Invisible; } if (!string.IsNullOrEmpty(ContactUser.contactPicUrl)) { Picasso.With(context) .Load(ContactUser.contactPicUrl) .Transform(new CircleTransformation()) .Fit() .Into(vh.imgMessagelogo); } } break; case true: ChatGroupViewHolder viewHolder = holder as ChatGroupViewHolder; int countGroupUnread = GroupRepository.getGroupMessageUnRead((long)originalChat[position].GroupId); if (countGroupUnread > 0) { viewHolder.txtTime.SetTextColor(Color.YellowGreen); viewHolder.txtMessageCount.Visibility = ViewStates.Visible; viewHolder.txtMessageCount.Text = countGroupUnread.ToString(); } else { viewHolder.txtMessageCount.Visibility = ViewStates.Invisible; } var GroupDetails = GroupRepository.GetGroupByID(Convert.ToInt64(originalChat[position].GroupId)); if (GroupDetails != null) { viewHolder.lblChatGroupName.Text = GroupDetails.GroupName; if (Convert.ToDateTime(originalChat[position].LastMessageDate).ToLocalTime().Date == DateTime.UtcNow.ToLocalTime().Date) { viewHolder.txtTime.Text = Convert.ToDateTime(originalChat[position].LastMessageDate).ToLocalTime().ToString("hh:mm tt"); } else { viewHolder.txtTime.Text = Convert.ToDateTime(originalChat[position].LastMessageDate).ToLocalTime().Date.ToString("MM/dd/yyyy"); } if (!string.IsNullOrEmpty(originalChat[position].LastMessage)) { viewHolder.lblChatGroupLastMSG.Text = originalChat[position].SenderName + " : " + originalChat[position].LastMessage; } else { var GroupUser = ContactRepository.GetContactbyUserId(GroupDetails.OwnerId); if (GroupUser != null) { viewHolder.lblChatGroupLastMSG.Text = "Created by " + GroupUser.screenName; } else if (GroupDetails.OwnerId == CommonHelper.GetUserId()) { viewHolder.lblChatGroupLastMSG.Text = "Created by me"; } else { viewHolder.lblChatGroupLastMSG.Text = "Created by Unknown"; } } if (GroupDetails.GroupPictureUrl != null) { Picasso.With(context) .Load(GroupDetails.GroupPictureUrl) .Transform(new CircleTransformation()) .Fit() .Into(viewHolder.ivgroupdefault); } } break; } }