Esempio n. 1
0
        // 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);
            }
        }
Esempio n. 3
0
        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);
            }
        }