// Replace the contents of a view (invoked by the layout manager) public override void OnBindViewHolder(RecyclerView.ViewHolder viewHolder, int position) { try { if (viewHolder is ManageSessionsAdapterViewHolder holder) { var item = SessionsList[position]; if (item != null) { holder.Platform.Text = item.Platform; holder.Browser.Text = ActivityContext.GetText(Resource.String.Lbl_Browser) + " : " + item.Browser; holder.Seen.Text = ActivityContext.GetText(Resource.String.Lbl_Last_seen) + " : " + item.Time; if (!string.IsNullOrEmpty(item.IpAddress)) { holder.Address.Text = ActivityContext.GetText(Resource.String.Lbl_IpAddress) + " : " + item.IpAddress; } else { holder.Address.Visibility = ViewStates.Gone; } if (item.Browser != null) { var drawable = new TextDrawable.Builder().BeginConfig().FontSize(35).EndConfig().BuildRound(item.Browser.Substring(0, 1), Color.ParseColor(AppSettings.MainColor)); holder.Image.SetImageDrawable(drawable); } } } } catch (Exception exception) { Console.WriteLine(exception); } }
// Replace the contents of a view (invoked by the layout manager) public override void OnBindViewHolder(RecyclerView.ViewHolder viewHolder, int position) { try { if (viewHolder is Holders.LastMessagesViewHolder holder) { var item = ChatList[position]; if (item != null) { var image = item.Avatar; if (!string.IsNullOrEmpty(image)) { var avatarSplit = image.Split('/').Last(); var getImageAvatar = Methods.MultiMedia.GetMediaFrom_Disk(Methods.Path.FolderDiskImage, avatarSplit); if (getImageAvatar != "File Dont Exists") { var file = Uri.FromFile(new File(getImageAvatar)); Glide.With(ActivityContext).Load(file.Path).Apply(Options).Into(holder.ImageAvatar); } else { Methods.MultiMedia.DownloadMediaTo_DiskAsync(Methods.Path.FolderDiskImage, image); GlideImageLoader.LoadImage(ActivityContext, image, holder.ImageAvatar, ImageStyle.CircleCrop, ImagePlaceholders.Drawable); } } item.LastMessage.LastMessageClass.Stickers = item.LastMessage.LastMessageClass.Stickers?.Replace(".mp4", ".gif") ?? ""; //If message contains Media files if (item.LastMessage.LastMessageClass.Media.Contains("image")) { holder.LastMessagesIcon.Visibility = ViewStates.Visible; Glide.With(ActivityContext).Load(Resource.Drawable.ic_image_vector).Into(holder.LastMessagesIcon); holder.TxtLastMessages.Text = ActivityContext.GetText(Resource.String.Lbl_SendImageFile); } else if (item.LastMessage.LastMessageClass.Media.Contains("video")) { holder.LastMessagesIcon.Visibility = ViewStates.Visible; Glide.With(ActivityContext).Load(Resource.Drawable.ic_video_player_vector).Into(holder.LastMessagesIcon); holder.TxtLastMessages.Text = ActivityContext.GetText(Resource.String.Lbl_SendVideoFile); } else if (item.LastMessage.LastMessageClass.Media.Contains("sticker")) { holder.LastMessagesIcon.Visibility = ViewStates.Visible; Glide.With(ActivityContext).Load(Resource.Drawable.ic_sticker_vector).Into(holder.LastMessagesIcon); holder.TxtLastMessages.Text = ActivityContext.GetText(Resource.String.Lbl_SendStickerFile); } else if (item.LastMessage.LastMessageClass.Media.Contains("sounds")) { holder.LastMessagesIcon.Visibility = ViewStates.Visible; Glide.With(ActivityContext).Load(Resource.Drawable.ic_radios_vector).Into(holder.LastMessagesIcon); holder.TxtLastMessages.Text = ActivityContext.GetText(Resource.String.Lbl_SendAudioFile); } else if (item.LastMessage.LastMessageClass.Media.Contains("file")) { holder.LastMessagesIcon.Visibility = ViewStates.Visible; Glide.With(ActivityContext).Load(Resource.Drawable.ic_document_vector).Into(holder.LastMessagesIcon); holder.TxtLastMessages.Text = ActivityContext.GetText(Resource.String.Lbl_SendFile); } else if (item.LastMessage.LastMessageClass?.Stickers != null && item.LastMessage.LastMessageClass.Stickers.Contains(".gif")) { holder.LastMessagesIcon.Visibility = ViewStates.Visible; Glide.With(ActivityContext).Load(Resource.Drawable.ic_gif_vector).Into(holder.LastMessagesIcon); holder.TxtLastMessages.Text = ActivityContext.GetText(Resource.String.Lbl_SendGifFile); } else if (!string.IsNullOrEmpty(item.LastMessage.LastMessageClass.ProductId) && item.LastMessage.LastMessageClass.ProductId != "0") { holder.TxtLastMessages.Text = ActivityContext.GetText(Resource.String.Lbl_SendProductFile); } else { // holder.LastMessagesIcon.Visibility = ViewStates.Gone; if (item.LastMessage.LastMessageClass.Text.Contains("http")) { holder.TxtLastMessages.Text = Methods.FunString.SubStringCutOf(item.LastMessage.LastMessageClass.Text, 30); } else if (item.LastMessage.LastMessageClass.Text.Contains("{"Key"") || item.LastMessage.LastMessageClass.Text.Contains("{key:^qu") || item.LastMessage.LastMessageClass.Text.Contains("{^key:^qu") || item.LastMessage.LastMessageClass.Text.Contains("{key:")) { holder.TxtLastMessages.Text = ActivityContext.GetText(Resource.String.Lbl_SendContactnumber); } else { holder.TxtLastMessages.Text = Methods.FunString.DecodeString(Methods.FunString.SubStringCutOf(item.LastMessage.LastMessageClass.Text, 30)); } } //last seen time holder.TxtTimestamp.Text = Methods.Time.TimeAgo(int.Parse(item.ChatTime), true); //Check read message if (item.LastMessage.LastMessageClass.FromId != null && (item.LastMessage.LastMessageClass.ToId != null && (item.LastMessage.LastMessageClass.ToId != UserDetails.UserId && item.LastMessage.LastMessageClass.FromId == UserDetails.UserId))) { if (item.LastMessage.LastMessageClass.Seen == "0") { holder.IconCheckCountMessages.Visibility = ViewStates.Invisible; holder.TxtUsername.SetTypeface(Typeface.Default, TypefaceStyle.Normal); holder.TxtLastMessages.SetTypeface(Typeface.Default, TypefaceStyle.Normal); } else { holder.IconCheckCountMessages.Visibility = ViewStates.Visible; holder.TxtUsername.SetTypeface(Typeface.Default, TypefaceStyle.Normal); holder.TxtLastMessages.SetTypeface(Typeface.Default, TypefaceStyle.Normal); Glide.With(ActivityContext).Load(Resource.Drawable.ic_tick_vector).Into(holder.IconCheckCountMessages); } } else if (item.LastMessage.LastMessageClass.FromId != null && (item.LastMessage.LastMessageClass.ToId != null && (item.LastMessage.LastMessageClass.ToId == UserDetails.UserId && item.LastMessage.LastMessageClass.FromId != UserDetails.UserId))) { if (item.LastMessage.LastMessageClass.Seen == "0") { holder.TxtUsername.SetTypeface(Typeface.Default, TypefaceStyle.Bold); holder.TxtLastMessages.SetTypeface(Typeface.Default, TypefaceStyle.Bold); holder.IconCheckCountMessages.Visibility = ViewStates.Visible; if (item.ChatType == "user") { if (!string.IsNullOrEmpty(item.MessageCount)) { var drawable = new TextDrawable.Builder().BeginConfig().FontSize(25).EndConfig().BuildRound(item.MessageCount, Color.ParseColor(AppSettings.MainColor)); holder.IconCheckCountMessages.SetImageDrawable(drawable); holder.IconCheckCountMessages.Visibility = ViewStates.Visible; } else { var drawable = new TextDrawable.Builder().BeginConfig().FontSize(25).EndConfig().BuildRound("N", Color.ParseColor(AppSettings.MainColor)); holder.IconCheckCountMessages.SetImageDrawable(drawable); holder.IconCheckCountMessages.Visibility = ViewStates.Visible; } } } else { holder.IconCheckCountMessages.Visibility = ViewStates.Invisible; holder.TxtUsername.SetTypeface(Typeface.Default, TypefaceStyle.Normal); holder.TxtLastMessages.SetTypeface(Typeface.Default, TypefaceStyle.Normal); } } switch (item.ChatType) { case "user": InitializeUser(holder, item); break; case "page": InitializePage(holder, item); break; case "group": InitializeGroup(holder, item); break; } holder.RelativeLayoutMain.Visibility = item.Swiped ? ViewStates.Gone : ViewStates.Visible; holder.MainSwipe.Visibility = item.Swiped ? ViewStates.Visible : ViewStates.Gone; } } } catch (Exception exception) { Console.WriteLine(exception); } }
private void Initialize(Holders.LastMessagesViewHolder holder, GetUsersListObject.User item) { try { var image = !string.IsNullOrEmpty(item.OldAvatar) ? item.OldAvatar : item.Avatar ?? ""; if (!string.IsNullOrEmpty(image)) { var avatarSplit = image.Split('/').Last(); var getImageAvatar = Methods.MultiMedia.GetMediaFrom_Disk(Methods.Path.FolderDiskImage, avatarSplit); if (getImageAvatar != "File Dont Exists") { var file = Uri.FromFile(new File(getImageAvatar)); Glide.With(ActivityContext).Load(file.Path).Apply(Options).Into(holder.ImageAvatar); } else { Methods.MultiMedia.DownloadMediaTo_DiskAsync(Methods.Path.FolderDiskImage, image); GlideImageLoader.LoadImage(ActivityContext, image, holder.ImageAvatar, ImageStyle.CircleCrop, ImagePlaceholders.Drawable); } } holder.TxtUsername.Text = WoWonderTools.GetNameFinal(item); if (item.Verified == "1") { holder.TxtUsername.SetCompoundDrawablesWithIntrinsicBounds(0, 0, Resource.Drawable.icon_checkmark_small_vector, 0); } if (item.LastMessage.Stickers != null) { item.LastMessage.Stickers = item.LastMessage.Stickers.Replace(".mp4", ".gif"); } //If message contains Media files if (item.LastMessage.Media.Contains("image")) { holder.LastMessagesIcon.Visibility = ViewStates.Visible; Glide.With(ActivityContext).Load(Resource.Drawable.ic_image_vector).Into(holder.LastMessagesIcon); holder.TxtLastMessages.Text = ActivityContext.GetText(Resource.String.Lbl_SendImageFile); } else if (item.LastMessage.Media.Contains("video")) { holder.LastMessagesIcon.Visibility = ViewStates.Visible; Glide.With(ActivityContext).Load(Resource.Drawable.ic_video_player_vector).Into(holder.LastMessagesIcon); holder.TxtLastMessages.Text = ActivityContext.GetText(Resource.String.Lbl_SendVideoFile); } else if (item.LastMessage.Media.Contains("sticker")) { holder.LastMessagesIcon.Visibility = ViewStates.Visible; Glide.With(ActivityContext).Load(Resource.Drawable.ic_sticker_vector).Into(holder.LastMessagesIcon); holder.TxtLastMessages.Text = ActivityContext.GetText(Resource.String.Lbl_SendStickerFile); } else if (item.LastMessage.Media.Contains("sounds")) { holder.LastMessagesIcon.Visibility = ViewStates.Visible; Glide.With(ActivityContext).Load(Resource.Drawable.ic_radios_vector).Into(holder.LastMessagesIcon); holder.TxtLastMessages.Text = ActivityContext.GetText(Resource.String.Lbl_SendAudioFile); } else if (item.LastMessage.Media.Contains("file")) { holder.LastMessagesIcon.Visibility = ViewStates.Visible; Glide.With(ActivityContext).Load(Resource.Drawable.ic_document_vector).Into(holder.LastMessagesIcon); holder.TxtLastMessages.Text = ActivityContext.GetText(Resource.String.Lbl_SendFile); } else if (item.LastMessage?.Stickers != null && item.LastMessage.Stickers.Contains(".gif")) { holder.LastMessagesIcon.Visibility = ViewStates.Visible; Glide.With(ActivityContext).Load(Resource.Drawable.ic_gif_vector).Into(holder.LastMessagesIcon); holder.TxtLastMessages.Text = ActivityContext.GetText(Resource.String.Lbl_SendGifFile); } else if (!string.IsNullOrEmpty(item.LastMessage.ProductId) && item.LastMessage.ProductId != "0") { holder.TxtLastMessages.Text = ActivityContext.GetText(Resource.String.Lbl_SendProductFile); } else { // holder.LastMessagesIcon.Visibility = ViewStates.Gone; if (item.LastMessage.Text.Contains("http")) { holder.TxtLastMessages.Text = Methods.FunString.SubStringCutOf(item.LastMessage.Text, 30); } else if (item.LastMessage.Text.Contains("{"Key"") || item.LastMessage.Text.Contains("{key:^qu") || item.LastMessage.Text.Contains("{^key:^qu") || item.LastMessage.Text.Contains("{key:")) { holder.TxtLastMessages.Text = ActivityContext.GetText(Resource.String.Lbl_SendContactnumber); } else { holder.TxtLastMessages.Text = Methods.FunString.DecodeString(Methods.FunString.SubStringCutOf(item.LastMessage.Text, 30)); } } //last seen time holder.TxtTimestamp.Text = Methods.Time.TimeAgo(int.Parse(item.LastseenUnixTime), true); //Online Or offline if (item.Lastseen == "on" && OnlineUsers.Equals(true)) { holder.TxtTimestamp.Text = ActivityContext.GetText(Resource.String.Lbl_Online); holder.ImageLastseen.SetImageResource(Resource.Drawable.Green_Online); if (AppSettings.ShowOnlineOfflineMessage) { var data = ListOnline.Contains(item.Name); if (data == false) { ListOnline.Add(item.Name); Toast toast = Toast.MakeText(ActivityContext, item.Name + " " + ActivityContext.GetText(Resource.String.Lbl_Online), ToastLength.Short); toast.SetGravity(GravityFlags.Center, 0, 0); toast.Show(); } } } else { holder.ImageLastseen.SetImageResource(Resource.Drawable.Grey_Offline); } //Check read message if (item.LastMessage.FromId != null && (item.LastMessage.ToId != null && (item.LastMessage.ToId != UserDetails.UserId && item.LastMessage.FromId == UserDetails.UserId))) { if (item.LastMessage.Seen == "0") { holder.IconCheckCountMessages.Visibility = ViewStates.Invisible; holder.TxtUsername.SetTypeface(Typeface.Default, TypefaceStyle.Normal); holder.TxtLastMessages.SetTypeface(Typeface.Default, TypefaceStyle.Normal); } else { holder.IconCheckCountMessages.Visibility = ViewStates.Visible; holder.TxtUsername.SetTypeface(Typeface.Default, TypefaceStyle.Normal); holder.TxtLastMessages.SetTypeface(Typeface.Default, TypefaceStyle.Normal); Glide.With(ActivityContext).Load(Resource.Drawable.ic_tick_vector).Into(holder.IconCheckCountMessages); } } else if (item.LastMessage.FromId != null && (item.LastMessage.ToId != null && (item.LastMessage.ToId == UserDetails.UserId && item.LastMessage.FromId != UserDetails.UserId))) { if (item.LastMessage.Seen == "0") { holder.TxtUsername.SetTypeface(Typeface.Default, TypefaceStyle.Bold); holder.TxtLastMessages.SetTypeface(Typeface.Default, TypefaceStyle.Bold); holder.IconCheckCountMessages.Visibility = ViewStates.Visible; var drawable = new TextDrawable.Builder().BeginConfig().FontSize(25).EndConfig().BuildRound("N", Color.ParseColor(AppSettings.MainColor)); holder.IconCheckCountMessages.SetImageDrawable(drawable); holder.IconCheckCountMessages.Visibility = ViewStates.Visible; } else { holder.IconCheckCountMessages.Visibility = ViewStates.Invisible; holder.TxtUsername.SetTypeface(Typeface.Default, TypefaceStyle.Normal); holder.TxtLastMessages.SetTypeface(Typeface.Default, TypefaceStyle.Normal); } } } catch (Exception e) { Console.WriteLine(e); } }