OnBindViewHolder(RecyclerView.ViewHolder holder, int position) { ChatAdaptereViewHolder vh = holder as ChatAdaptereViewHolder; _PhoneContactModel = new PhoneContactModel(); _PhoneContactModel = _items[position]; vh.ContactPersonName.Text = _items[position].name.ToString(); vh.ContactNumber.Text = _items[position].number; if (_items[position].photoId == null) { vh.imgContactPersonlogo.SetImageResource(Resource.Drawable.default_profile); } //else //{ // var contactUri = ContentUris.WithAppendedId( // ContactsContract.Contacts.ContentUri, _items[position].contactId); // //var contactPhotoUri = Android.Net.Uri.WithAppendedPath(contactUri, Contacts.Photos.ContentDirectory); // vh.imgContactPersonlogo.SetImageURI(Android.Net.Uri.WithAppendedPath(contactUri, Contacts.Photos.ContentDirectory)); // ////////viewHolder.imgContactPersonlogo.SetImageDrawable(ImageManager.Get(parent.Context, _items[position].photo)); //} vh.InvitePhoneContact.Tag = _items[position].number; vh.InvitePhoneContact.SetOnClickListener(new InvitePhoneContactButtonClickListener(_items, context)); //vh.imgMessagelogo.Tag = _items[position].number; //vh.imgMessagelogo.SetOnClickListener(new imgMessagelogoButtonClickListener(_items, context)); }
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; }
OnCreateViewHolder(ViewGroup parent, int viewType) { // Inflate the CardView for the photo: var itemView = LayoutInflater.From(parent.Context). Inflate(Resource.Layout.PhoneContactsListItem, 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; } }