Ejemplo n.º 1
0
        //More Swipe Item
        private void MAdapterOnMoreItemClick(object sender, Holders.LastMessagesClickEventArgs e)
        {
            try
            {
                var position = e.Position;
                if (position >= 0)
                {
                    var item = MAdapter.GetItem(position);
                    if (item != null)
                    {
                        DataUserChat = item;
                        var arrayAdapter = new List <string>();
                        var dialogList   = new MaterialDialog.Builder(Context).Theme(AppSettings.SetTabDarkTheme ? Theme.Dark : Theme.Light);

                        arrayAdapter.Add(Context.GetText(Resource.String.Lbl_View_Profile));
                        arrayAdapter.Add(Context.GetText(Resource.String.Lbl_Block));

                        dialogList.Items(arrayAdapter);
                        dialogList.PositiveText(GetText(Resource.String.Lbl_Close)).OnPositive(this);
                        dialogList.AlwaysCallSingleChoiceCallback();
                        dialogList.ItemsCallback(this).Build().Show();
                    }
                }
            }
            catch (Exception exception)
            {
                Console.WriteLine(exception);
            }
        }
Ejemplo n.º 2
0
        //========================= Functions =========================
        public static async Task SendMessageTask(ChatWindowActivity windowActivity, string userId, string messageHashId, string text = "", string contact = "", string filePath = "", string imageUrl = "", string stickerId = "", string gifUrl = "", string productId = "", string lat = "", string lng = "")
        {
            try
            {
                WindowActivity = windowActivity;
                if (windowActivity.DataUser != null)
                {
                    Datauser = windowActivity.DataUser;
                }
                else if (windowActivity.UserData != null)
                {
                    UserData = windowActivity.UserData;
                }
                else if (windowActivity.DataUserChat != null)
                {
                    DataUserChat = windowActivity.DataUserChat;
                }

                GlobalContext = TabbedMainActivity.GetInstance();

                StartApiService(userId, messageHashId, text, contact, filePath, imageUrl, stickerId, gifUrl, productId, lat, lng);

                await Task.Delay(0);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
        }
Ejemplo n.º 3
0
        public static void UpdateRecyclerLastMessageView(MessageData result, GetUsersListObject.User user, int index, MsgTabbedMainActivity context)
        {
            try
            {
                if (IsImageExtension(result.MediaFileName))
                {
                    result.Text = WindowActivity?.GetText(Resource.String.Lbl_SendImageFile);
                }
                else if (IsVideoExtension(result.MediaFileName))
                {
                    result.Text = WindowActivity?.GetText(Resource.String.Lbl_SendVideoFile);
                }
                else if (IsAudioExtension(result.MediaFileName))
                {
                    result.Text = WindowActivity?.GetText(Resource.String.Lbl_SendAudioFile);
                }
                else if (IsFileExtension(result.MediaFileName))
                {
                    result.Text = WindowActivity?.GetText(Resource.String.Lbl_SendFile);
                }
                else if (result.MediaFileName.Contains(".gif") || result.MediaFileName.Contains(".GIF"))
                {
                    result.Text = WindowActivity?.GetText(Resource.String.Lbl_SendGifFile);
                }
                else
                {
                    result.Text = Methods.FunString.DecodeString(result.Text);
                }

                context.Activity?.RunOnUiThread(() =>
                {
                    try
                    {
                        context.LastChatTab?.MAdapter?.NotifyItemChanged(index, "WithoutBlob");
                    }
                    catch (Exception e)
                    {
                        Methods.DisplayReportResultTrack(e);
                    }
                });

                SqLiteDatabase dbDatabase = new SqLiteDatabase();
                //Update All data users to database
                dbDatabase.Insert_Or_Update_LastUsersChat(GlobalContext.Context, new ObservableCollection <GetUsersListObject.User> {
                    user
                });
            }
            catch (Exception e)
            {
                Methods.DisplayReportResultTrack(e);
            }
        }
Ejemplo n.º 4
0
        public DialogDeleteMessage(string userid, GetUsersListObject.User item)
        {
            try
            {
                Userid   = userid;
                ItemUser = item;//GetUsersListObject.User

                GlobalContext = TabbedMainActivity.GetInstance();
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
Ejemplo n.º 5
0
        //========================= Functions =========================
        public static async Task SendMessageTask(ChatWindowActivity windowActivity, string userId, string messageHashId, string text = "", string contact = "", string filePath = "", string imageUrl = "", string stickerId = "", string gifUrl = "", string productId = "", string lat = "", string lng = "")
        {
            try
            {
                WindowActivity = windowActivity;
                if (windowActivity.DataUser != null)
                {
                    DataUser = windowActivity.DataUser;
                }
                else if (windowActivity.UserData != null)
                {
                    UserData = windowActivity.UserData;
                }
                else if (windowActivity.DataUserChat != null)
                {
                    DataUserChat = windowActivity.DataUserChat;
                }

                GlobalContext = MsgTabbedMainActivity.GetInstance();

                if (AppSettings.EnableVideoCompress && Methods.AttachmentFiles.Check_FileExtension(filePath) == "Video")
                {
                    File destinationPath = new File(Methods.Path.FolderDcimVideo + "/Compressor");

                    if (!Directory.Exists(destinationPath.Path))
                    {
                        Directory.CreateDirectory(destinationPath.Path);
                    }

                    await Task.Factory.StartNew(() => new VideoCompressAsyncTask(windowActivity, userId, messageHashId, text, filePath).Execute("false", filePath, destinationPath.Path));
                }
                else
                {
                    StartApiService(userId, messageHashId, text, contact, filePath, imageUrl, stickerId, gifUrl, productId, lat, lng);
                }

                await Task.Delay(0);
            }
            catch (Exception ex)
            {
                Methods.DisplayReportResultTrack(ex);
            }
        }
Ejemplo n.º 6
0
        public void OnItemDismiss(int position)
        {
            try
            {
                var item = MLastMessagesUser[position];
                // handle when double swipe
                if (item != null && item.Swiped)
                {
                    ItemsSwiped = null;
                    item.Swiped = false;
                    NotifyItemChanged(position);
                    return;
                }

                if (item == null)
                {
                    return;
                }

                foreach (var user in MLastMessagesUser)
                {
                    int indexSwiped = MLastMessagesUser.IndexOf(user);
                    if (indexSwiped <= -1)
                    {
                        continue;
                    }
                    user.Swiped = false;
                    NotifyItemChanged(indexSwiped);
                }

                item.Swiped = true;
                ItemsSwiped = item;
                NotifyItemChanged(position);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
Ejemplo n.º 7
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?.Lat) && !string.IsNullOrEmpty(item.LastMessage?.Lng) && item.LastMessage.Lat != "0" && item.LastMessage.Lng != "0")
                {
                    holder.LastMessagesIcon.Visibility = ViewStates.Visible;
                    Glide.With(ActivityContext).Load(Resource.Drawable.icon_search_location_vector).Into(holder.LastMessagesIcon);
                    holder.TxtLastMessages.Text = ActivityContext.GetText(Resource.String.Lbl_SendLocationFile);
                }
                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("{&quot;Key&quot;") || 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);

                        //var drawable = new TextDrawable.Builder().BeginConfig().FontSize(25).EndConfig().BuildRound("N", Color.ParseColor(AppSettings.MainColor));
                        //holder.IconCheckCountMessages.SetImageDrawable(drawable);
                        holder.IconCheckCountMessages.Visibility = ViewStates.Invisible;
                    }
                    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);
            }
        }
Ejemplo n.º 8
0
        private static GetUsersListObject.User ConvertDataChat(MessageData ms)
        {
            try
            {
                if (DataUserChat != null)
                {
                    GetUsersListObject.User user = new GetUsersListObject.User
                    {
                        UserId           = ms.ToId,
                        Username         = DataUserChat.Username,
                        Avatar           = DataUserChat.Avatar,
                        Cover            = DataUserChat.Cover,
                        LastseenTimeText = DataUserChat.LastseenTimeText,
                        Lastseen         = DataUserChat.Lastseen,
                        Url              = DataUserChat.Url,
                        Name             = DataUserChat.Name,
                        LastseenUnixTime = DataUserChat.LastseenUnixTime,
                        ChatColor        = AppSettings.MainColor,
                        Verified         = DataUserChat.Verified,
                        LastMessage      = new MessageData
                        {
                            Id             = ms.Id,
                            FromId         = ms.FromId,
                            GroupId        = ms.GroupId,
                            ToId           = ms.ToId,
                            Text           = ms.Text,
                            Media          = ms.Media,
                            MediaFileName  = ms.MediaFileName,
                            MediaFileNames = ms.MediaFileNames,
                            Time           = ms.Time,
                            Seen           = ms.Seen,
                            DeletedOne     = ms.DeletedOne,
                            DeletedTwo     = ms.DeletedTwo,
                            SentPush       = ms.SentPush,
                            NotificationId = ms.NotificationId,
                            TypeTwo        = ms.TypeTwo,
                            Stickers       = ms.Stickers,
                            Lat            = ms.Lat,
                            Lng            = ms.Lng,
                            ProductId      = ms.ProductId,
                        }
                    };
                    return(user);
                }

                if (DataUser != null)
                {
                    GetUsersListObject.User user = new GetUsersListObject.User
                    {
                        UserId           = ms.ToId,
                        Username         = DataUser.Username,
                        Avatar           = DataUser.Avatar,
                        Cover            = DataUser.Cover,
                        Lastseen         = DataUser.Lastseen,
                        Url              = DataUser.Url,
                        Name             = DataUser.Name,
                        LastseenUnixTime = DataUser.LastseenUnixTime,
                        Verified         = DataUser.Verified,
                        LastMessage      = new MessageData
                        {
                            Id             = ms.Id,
                            FromId         = ms.FromId,
                            GroupId        = ms.GroupId,
                            ToId           = ms.ToId,
                            Text           = ms.Text,
                            Media          = ms.Media,
                            MediaFileName  = ms.MediaFileName,
                            MediaFileNames = ms.MediaFileNames,
                            Time           = ms.Time,
                            Seen           = ms.Seen,
                            DeletedOne     = ms.DeletedOne,
                            DeletedTwo     = ms.DeletedTwo,
                            SentPush       = ms.SentPush,
                            NotificationId = ms.NotificationId,
                            TypeTwo        = ms.TypeTwo,
                            Stickers       = ms.Stickers,
                            Lat            = ms.Lat,
                            Lng            = ms.Lng,
                            ProductId      = ms.ProductId,
                        }
                    };
                    return(user);
                }
                if (UserData != null)
                {
                    GetUsersListObject.User user = new GetUsersListObject.User
                    {
                        UserId           = ms.ToId,
                        Username         = UserData.Username,
                        Avatar           = UserData.Avatar,
                        Cover            = UserData.Cover,
                        LastseenTimeText = UserData.LastseenTimeText,
                        Lastseen         = UserData.Lastseen,
                        Url              = UserData.Url,
                        Name             = UserData.Name,
                        LastseenUnixTime = UserData.LastseenUnixTime,
                        ChatColor        = AppSettings.MainColor,
                        Verified         = UserData.Verified,
                        LastMessage      = new MessageData
                        {
                            Id             = ms.Id,
                            FromId         = ms.FromId,
                            GroupId        = ms.GroupId,
                            ToId           = ms.ToId,
                            Text           = ms.Text,
                            Media          = ms.Media,
                            MediaFileName  = ms.MediaFileName,
                            MediaFileNames = ms.MediaFileNames,
                            Time           = ms.Time,
                            Seen           = ms.Seen,
                            DeletedOne     = ms.DeletedOne,
                            DeletedTwo     = ms.DeletedTwo,
                            SentPush       = ms.SentPush,
                            NotificationId = ms.NotificationId,
                            TypeTwo        = ms.TypeTwo,
                            Stickers       = ms.Stickers,
                            Lat            = ms.Lat,
                            Lng            = ms.Lng,
                            ProductId      = ms.ProductId,
                        }
                    };
                    return(user);
                }

                return(DataUserChat);
            }
            catch (Exception e)
            {
                Methods.DisplayReportResultTrack(e);
                return(null);
            }
        }
Ejemplo n.º 9
0
        public static void UpdateLastIdMessage(SendMessageObject chatMessages)
        {
            try
            {
                foreach (var messageInfo in chatMessages.MessageData)
                {
                    MessageData m = new MessageData
                    {
                        Id             = messageInfo.Id,
                        FromId         = messageInfo.FromId,
                        GroupId        = messageInfo.GroupId,
                        ToId           = messageInfo.ToId,
                        Text           = messageInfo.Text,
                        Media          = messageInfo.Media,
                        MediaFileName  = messageInfo.MediaFileName,
                        MediaFileNames = messageInfo.MediaFileNames,
                        Time           = messageInfo.Time,
                        Seen           = messageInfo.Seen,
                        DeletedOne     = messageInfo.DeletedOne,
                        DeletedTwo     = messageInfo.DeletedTwo,
                        SentPush       = messageInfo.SentPush,
                        NotificationId = messageInfo.NotificationId,
                        TypeTwo        = messageInfo.TypeTwo,
                        Stickers       = messageInfo.Stickers,
                        TimeText       = messageInfo.TimeText,
                        Position       = messageInfo.Position,
                        ModelType      = messageInfo.ModelType,
                        FileSize       = messageInfo.FileSize,
                        MediaDuration  = messageInfo.MediaDuration,
                        MediaIsPlaying = messageInfo.MediaIsPlaying,
                        ContactNumber  = messageInfo.ContactNumber,
                        ContactName    = messageInfo.ContactName,
                        ProductId      = messageInfo.ProductId,
                        MessageUser    = messageInfo.MessageUser,
                        Product        = messageInfo.Product,
                        MessageHashId  = messageInfo.MessageHashId,
                        Lat            = messageInfo.Lat,
                        Lng            = messageInfo.Lng,
                        SendFile       = false,
                    };

                    var typeModel = Holders.GetTypeModel(m);
                    if (typeModel == MessageModelType.None)
                    {
                        continue;
                    }

                    var message = WoWonderTools.MessageFilter(messageInfo.ToId, m, typeModel, true);
                    message.ModelType = typeModel;

                    AdapterModelsClassMessage checker = WindowActivity?.MAdapter?.DifferList?.FirstOrDefault(a => a.MesData.Id == messageInfo.MessageHashId);
                    if (checker != null)
                    {
                        //checker.TypeView = typeModel;
                        checker.MesData  = message;
                        checker.Id       = Java.Lang.Long.ParseLong(message.Id);
                        checker.TypeView = typeModel;

                        checker.MesData.Id             = message.Id;
                        checker.MesData.FromId         = message.FromId;
                        checker.MesData.GroupId        = message.GroupId;
                        checker.MesData.ToId           = message.ToId;
                        checker.MesData.Text           = message.Text;
                        checker.MesData.Media          = message.Media;
                        checker.MesData.MediaFileName  = message.MediaFileName;
                        checker.MesData.MediaFileNames = message.MediaFileNames;
                        checker.MesData.Time           = message.Time;
                        checker.MesData.Seen           = message.Seen;
                        checker.MesData.DeletedOne     = message.DeletedOne;
                        checker.MesData.DeletedTwo     = message.DeletedTwo;
                        checker.MesData.SentPush       = message.SentPush;
                        checker.MesData.NotificationId = message.NotificationId;
                        checker.MesData.TypeTwo        = message.TypeTwo;
                        checker.MesData.Stickers       = message.Stickers;
                        checker.MesData.TimeText       = message.TimeText;
                        checker.MesData.Position       = message.Position;
                        checker.MesData.ModelType      = message.ModelType;
                        checker.MesData.FileSize       = message.FileSize;
                        checker.MesData.MediaDuration  = message.MediaDuration;
                        checker.MesData.MediaIsPlaying = message.MediaIsPlaying;
                        checker.MesData.ContactNumber  = message.ContactNumber;
                        checker.MesData.ContactName    = message.ContactName;
                        checker.MesData.ProductId      = message.ProductId;
                        checker.MesData.MessageUser    = message.MessageUser;
                        checker.MesData.Product        = message.Product;
                        checker.MesData.MessageHashId  = message.MessageHashId;
                        checker.MesData.Lat            = message.Lat;
                        checker.MesData.Lng            = message.Lng;
                        checker.MesData.SendFile       = false;

                        #region LastChat

                        //if (AppSettings.LastChatSystem == SystemApiGetLastChat.New)
                        //{
                        //    var updaterUser = GlobalContext?.LastChatTab?.MAdapter?.LastChatsList?.FirstOrDefault(a => a.LastChat?.UserId == message.ToId);
                        //    if (updaterUser?.LastChat != null)
                        //    {
                        //        var index = GlobalContext.LastChatTab.MAdapter.LastChatsList.IndexOf(GlobalContext.LastChatTab.MAdapter.LastChatsList.FirstOrDefault(x => x.LastChat?.UserId == message.ToId));
                        //        if (index > -1)
                        //        {
                        //            updaterUser.LastChat.LastMessage.LastMessageClass.Text = typeModel switch
                        //            {
                        //                MessageModelType.RightGif => WindowActivity?.GetText(Resource.String.Lbl_SendGifFile),
                        //                MessageModelType.RightText => !string.IsNullOrEmpty(message.Text) ? Methods.FunString.DecodeString(message.Text) : WindowActivity?.GetText(Resource.String.Lbl_SendMessage),
                        //                MessageModelType.RightSticker => WindowActivity?.GetText(Resource.String.Lbl_SendStickerFile),
                        //                MessageModelType.RightContact => WindowActivity?.GetText(Resource.String.Lbl_SendContactnumber),
                        //                MessageModelType.RightFile => WindowActivity?.GetText(Resource.String.Lbl_SendFile),
                        //                MessageModelType.RightVideo => WindowActivity?.GetText(Resource.String.Lbl_SendVideoFile),
                        //                MessageModelType.RightImage => WindowActivity?.GetText(Resource.String.Lbl_SendImageFile),
                        //                MessageModelType.RightAudio => WindowActivity?.GetText(Resource.String.Lbl_SendAudioFile),
                        //                MessageModelType.RightMap => WindowActivity?.GetText(Resource.String.Lbl_SendLocationFile),
                        //                _ => updaterUser.LastChat?.LastMessage.LastMessageClass.Text
                        //            };

                        //            GlobalContext?.RunOnUiThread(() =>
                        //            {
                        //                try
                        //                {
                        //                    if (!updaterUser.LastChat.IsPin)
                        //                    {
                        //                        var checkPin = GlobalContext.LastChatTab.MAdapter.LastChatsList.LastOrDefault(o => o.LastChat != null && o.LastChat.IsPin);
                        //                        if (checkPin != null)
                        //                        {
                        //                            var toIndex = GlobalContext.LastChatTab.MAdapter.LastChatsList.IndexOf(checkPin) + 1;
                        //                            GlobalContext?.LastChatTab?.MAdapter.LastChatsList.Move(index, toIndex);
                        //                            GlobalContext?.LastChatTab?.MAdapter.NotifyItemMoved(index, toIndex);
                        //                        }
                        //                        else
                        //                        {
                        //                            if (ListUtils.FriendRequestsList.Count > 0)
                        //                            {
                        //                                GlobalContext?.LastChatTab?.MAdapter.LastChatsList.Move(index, 1);
                        //                                GlobalContext?.LastChatTab?.MAdapter.NotifyItemMoved(index, 1);
                        //                            }
                        //                            else
                        //                            {
                        //                                GlobalContext?.LastChatTab?.MAdapter?.LastChatsList.Move(index, 0);
                        //                                GlobalContext?.LastChatTab?.MAdapter?.NotifyItemMoved(index, 0);
                        //                                GlobalContext?.LastChatTab?.MAdapter?.NotifyItemChanged(index, "WithoutBlob");
                        //                            }
                        //                        }
                        //                    }
                        //                }
                        //                catch (Exception e)
                        //                {
                        //                    Methods.DisplayReportResultTrack(e);
                        //                }
                        //            });

                        //            SqLiteDatabase dbSqLite = new SqLiteDatabase();
                        //            //Update All data users to database
                        //            dbSqLite.Insert_Or_Update_LastUsersChat(GlobalContext, new ObservableCollection<ChatObject> { updaterUser?.LastChat });

                        //        }
                        //    }
                        //    else
                        //    {
                        //        //insert new user
                        //        var data = ConvertData(checker.MesData);
                        //        if (data != null)
                        //        {
                        //            //wael change after add in api
                        //            data.IsMute = WoWonderTools.CheckMute(data.UserId, "user");
                        //            data.IsPin = WoWonderTools.CheckPin(data.UserId, "user");
                        //            var archiveObject = WoWonderTools.CheckArchive(data.UserId, "user");
                        //            data.IsArchive = archiveObject != null;


                        //            GlobalContext?.RunOnUiThread(() =>
                        //            {
                        //                try
                        //                {
                        //                    if (!data.IsArchive)
                        //                    {
                        //                        if (ListUtils.FriendRequestsList.Count > 0)
                        //                        {
                        //                            GlobalContext?.LastChatTab.MAdapter.LastChatsList.Insert(0, new Classes.LastChatsClass()
                        //                            {
                        //                                LastChat = data,
                        //                                Type = Classes.ItemType.LastChatNewV
                        //                            });
                        //                            GlobalContext?.LastChatTab.MAdapter.NotifyItemInserted(0);
                        //                            GlobalContext?.LastChatTab.MRecycler.ScrollToPosition(0);
                        //                        }
                        //                        else
                        //                        {
                        //                            GlobalContext?.LastChatTab.MAdapter.LastChatsList.Insert(1, new Classes.LastChatsClass()
                        //                            {
                        //                                LastChat = data,
                        //                                Type = Classes.ItemType.LastChatNewV
                        //                            });
                        //                            GlobalContext?.LastChatTab.MAdapter.NotifyItemInserted(1);
                        //                            GlobalContext?.LastChatTab.MRecycler.ScrollToPosition(1);
                        //                        }
                        //                    }
                        //                    else
                        //                    {
                        //                        if (archiveObject != null)
                        //                        {
                        //                            if (archiveObject.LastMessagesUser.LastMessage?.Id != data.LastMessage.LastMessageClass?.Id)
                        //                            {
                        //                                if (ListUtils.FriendRequestsList.Count > 0)
                        //                                {
                        //                                    GlobalContext?.LastChatTab.MAdapter.LastChatsList.Insert(0, new Classes.LastChatsClass()
                        //                                    {
                        //                                        LastChat = data,
                        //                                        Type = Classes.ItemType.LastChatNewV
                        //                                    });
                        //                                    GlobalContext?.LastChatTab.MAdapter.NotifyItemInserted(0);
                        //                                    GlobalContext?.LastChatTab.MRecycler.ScrollToPosition(0);
                        //                                }
                        //                                else
                        //                                {
                        //                                    GlobalContext?.LastChatTab.MAdapter.LastChatsList.Insert(1, new Classes.LastChatsClass()
                        //                                    {
                        //                                        LastChat = data,
                        //                                        Type = Classes.ItemType.LastChatNewV
                        //                                    });
                        //                                    GlobalContext?.LastChatTab.MAdapter.NotifyItemInserted(1);
                        //                                    GlobalContext?.LastChatTab.MRecycler.ScrollToPosition(1);
                        //                                }

                        //                                ListUtils.ArchiveList.Remove(archiveObject);

                        //                                var sqLiteDatabase = new SqLiteDatabase();
                        //                                sqLiteDatabase.InsertORDelete_Archive(archiveObject);
                        //                            }
                        //                        }
                        //                    }
                        //                }
                        //                catch (Exception e)
                        //                {
                        //                    Methods.DisplayReportResultTrack(e);
                        //                }
                        //            });

                        //            //Update All data users to database
                        //            //dbDatabase.Insert_Or_Update_LastUsersChat(new ObservableCollection<GetUsersListObject.User>
                        //            //{
                        //            //    data
                        //            //});
                        //        }
                        //    }
                        //}
                        //else
                        //{
                        //    var updaterUser = GlobalContext?.LastChatTab?.MAdapter?.LastChatsList?.FirstOrDefault(a => a.LastMessagesUser?.UserId == message.ToId);
                        //    if (updaterUser?.LastMessagesUser != null)
                        //    {
                        //        var index = GlobalContext.LastChatTab.MAdapter.LastChatsList.IndexOf(GlobalContext.LastChatTab.MAdapter.LastChatsList.FirstOrDefault(x => x.LastMessagesUser?.UserId == message.ToId));
                        //        if (index > -1)
                        //        {
                        //            updaterUser.LastMessagesUser.LastMessage.Text = typeModel switch
                        //            {
                        //                MessageModelType.RightGif => WindowActivity?.GetText(Resource.String.Lbl_SendGifFile),
                        //                MessageModelType.RightText => !string.IsNullOrEmpty(message.Text) ? Methods.FunString.DecodeString(message.Text) : WindowActivity?.GetText(Resource.String.Lbl_SendMessage),
                        //                MessageModelType.RightSticker => WindowActivity?.GetText(Resource.String.Lbl_SendStickerFile),
                        //                MessageModelType.RightContact => WindowActivity?.GetText(Resource.String.Lbl_SendContactnumber),
                        //                MessageModelType.RightFile => WindowActivity?.GetText(Resource.String.Lbl_SendFile),
                        //                MessageModelType.RightVideo => WindowActivity?.GetText(Resource.String.Lbl_SendVideoFile),
                        //                MessageModelType.RightImage => WindowActivity?.GetText(Resource.String.Lbl_SendImageFile),
                        //                MessageModelType.RightAudio => WindowActivity?.GetText(Resource.String.Lbl_SendAudioFile),
                        //                MessageModelType.RightMap => WindowActivity?.GetText(Resource.String.Lbl_SendLocationFile),
                        //                _ => updaterUser.LastMessagesUser?.LastMessage.Text
                        //            };

                        //            GlobalContext?.RunOnUiThread(() =>
                        //            {
                        //                try
                        //                {
                        //                    if (!updaterUser.LastMessagesUser.IsPin)
                        //                    {
                        //                        var checkPin = GlobalContext?.LastChatTab?.MAdapter.LastChatsList.LastOrDefault(o => o.LastMessagesUser != null && o.LastMessagesUser.IsPin);
                        //                        if (checkPin != null)
                        //                        {
                        //                            var toIndex = GlobalContext.LastChatTab.MAdapter.LastChatsList.IndexOf(checkPin) + 1;
                        //                            GlobalContext?.LastChatTab?.MAdapter.LastChatsList.Move(index, toIndex);
                        //                            GlobalContext?.LastChatTab?.MAdapter.NotifyItemMoved(index, toIndex);
                        //                        }
                        //                        else
                        //                        {
                        //                            if (ListUtils.FriendRequestsList.Count > 0)
                        //                            {
                        //                                GlobalContext?.LastChatTab?.MAdapter.LastChatsList.Move(index, 1);
                        //                                GlobalContext?.LastChatTab?.MAdapter.NotifyItemMoved(index, 1);
                        //                            }
                        //                            else
                        //                            {
                        //                                GlobalContext?.LastChatTab?.MAdapter.LastChatsList.Move(index, 0);
                        //                                GlobalContext?.LastChatTab?.MAdapter.NotifyItemMoved(index, 0);
                        //                            }
                        //                        }
                        //                    }
                        //                }
                        //                catch (Exception e)
                        //                {
                        //                    Methods.DisplayReportResultTrack(e);
                        //                }
                        //            });
                        //            SqLiteDatabase dbSqLite = new SqLiteDatabase();
                        //            //Update All data users to database
                        //            dbSqLite.Insert_Or_Update_LastUsersChat(GlobalContext, new ObservableCollection<GetUsersListObject.User> { updaterUser.LastMessagesUser });
                        //        }
                        //    }
                        //    else
                        //    {
                        //        //insert new user
                        //        var data = ConvertDataChat(checker.MesData);
                        //        if (data != null)
                        //        {
                        //            //wael change after add in api
                        //            data.IsMute = WoWonderTools.CheckMute(data.UserId, "user");
                        //            data.IsPin = WoWonderTools.CheckPin(data.UserId, "user");
                        //            var archiveObject = WoWonderTools.CheckArchive(data.UserId, "user");
                        //            data.IsArchive = archiveObject != null;

                        //            GlobalContext?.RunOnUiThread(() =>
                        //            {
                        //                try
                        //                {
                        //                    if (!data.IsArchive)
                        //                    {
                        //                        if (ListUtils.FriendRequestsList.Count > 0)
                        //                        {
                        //                            GlobalContext?.LastChatTab?.MAdapter.LastChatsList.Insert(0, new Classes.LastChatsClass()
                        //                            {
                        //                                LastMessagesUser = data,
                        //                                Type = Classes.ItemType.LastChatOldV
                        //                            });
                        //                            GlobalContext?.LastChatTab?.MAdapter.NotifyItemInserted(0);
                        //                            GlobalContext?.LastChatTab?.MRecycler.ScrollToPosition(0);
                        //                        }
                        //                        else
                        //                        {
                        //                            GlobalContext?.LastChatTab?.MAdapter.LastChatsList.Insert(1, new Classes.LastChatsClass()
                        //                            {
                        //                                LastMessagesUser = data,
                        //                                Type = Classes.ItemType.LastChatOldV
                        //                            });
                        //                            GlobalContext?.LastChatTab?.MAdapter.NotifyItemInserted(1);
                        //                            GlobalContext?.LastChatTab?.MRecycler.ScrollToPosition(1);
                        //                        }
                        //                    }
                        //                    else
                        //                    {
                        //                        if (archiveObject != null)
                        //                        {
                        //                            if (archiveObject.LastMessagesUser.LastMessage?.Id != data.LastMessage.Id)
                        //                            {
                        //                                if (ListUtils.FriendRequestsList.Count > 0)
                        //                                {
                        //                                    GlobalContext?.LastChatTab?.MAdapter.LastChatsList.Insert(0, new Classes.LastChatsClass()
                        //                                    {
                        //                                        LastMessagesUser = data,
                        //                                        Type = Classes.ItemType.LastChatOldV
                        //                                    });
                        //                                    GlobalContext?.LastChatTab?.MAdapter.NotifyItemInserted(0);
                        //                                    GlobalContext?.LastChatTab?.MRecycler.ScrollToPosition(0);
                        //                                }
                        //                                else
                        //                                {
                        //                                    GlobalContext?.LastChatTab?.MAdapter.LastChatsList.Insert(1, new Classes.LastChatsClass()
                        //                                    {
                        //                                        LastMessagesUser = data,
                        //                                        Type = Classes.ItemType.LastChatOldV
                        //                                    });
                        //                                    GlobalContext?.LastChatTab?.MAdapter.NotifyItemInserted(1);
                        //                                    GlobalContext?.LastChatTab?.MRecycler.ScrollToPosition(1);
                        //                                }

                        //                                ListUtils.ArchiveList.Remove(archiveObject);

                        //                                var sqLiteDatabase = new SqLiteDatabase();
                        //                                sqLiteDatabase.InsertORDelete_Archive(archiveObject);
                        //                            }
                        //                        }
                        //                    }
                        //                }
                        //                catch (Exception e)
                        //                {
                        //                    Methods.DisplayReportResultTrack(e);
                        //                }
                        //            });

                        //            //Update All data users to database
                        //            //dbDatabase.Insert_Or_Update_LastUsersChat(new ObservableCollection<GetUsersListObject.User>
                        //            //{
                        //            //    data
                        //            //});
                        //        }
                        //    }
                        //}

                        #endregion

                        //checker.Media = media;
                        //Update All data users to database
                        SqLiteDatabase dbDatabase = new SqLiteDatabase();
                        dbDatabase.Insert_Or_Update_To_one_MessagesTable(checker.MesData);

                        GlobalContext.Activity?.RunOnUiThread(() =>
                        {
                            try
                            {
                                //Update data RecyclerView Messages.
                                //if (message.ModelType == MessageModelType.RightSticker || message.ModelType == MessageModelType.RightImage || message.ModelType == MessageModelType.RightMap || message.ModelType == MessageModelType.RightVideo)
                                WindowActivity?.Update_One_Messages(checker.MesData);

                                if (UserDetails.SoundControl)
                                {
                                    Methods.AudioRecorderAndPlayer.PlayAudioFromAsset("Popup_SendMesseges.mp3");
                                }
                            }
                            catch (Exception e)
                            {
                                Methods.DisplayReportResultTrack(e);
                            }
                        });
                    }
                }

                DataUser     = null;
                DataUserChat = null;
                UserData     = null;
            }
            catch (Exception e)
            {
                Methods.DisplayReportResultTrack(e);
            }
        }
Ejemplo n.º 10
0
        //Call Swipe Item
        private void MAdapterOnCallItemClick(object sender, Holders.LastMessagesClickEventArgs e)
        {
            try
            {
                var position = e.Position;
                if (position >= 0)
                {
                    var item = MAdapter.GetItem(position);
                    if (item != null)
                    {
                        DataUserChat = item;

                        string timeNow       = DateTime.Now.ToString("hh:mm");
                        var    unixTimestamp = DateTimeOffset.UtcNow.ToUnixTimeSeconds();
                        string time          = Convert.ToString(unixTimestamp);

                        if (AppSettings.EnableAudioCall && AppSettings.EnableVideoCall)
                        {
                            var arrayAdapter = new List <string>();
                            var dialogList   = new MaterialDialog.Builder(Context).Theme(AppSettings.SetTabDarkTheme ? Theme.Dark : Theme.Light);

                            arrayAdapter.Add(Context.GetText(Resource.String.Lbl_Voice_call));
                            arrayAdapter.Add(Context.GetText(Resource.String.Lbl_Video_call));

                            dialogList.Title(GetText(Resource.String.Lbl_Call));
                            //dialogList.Content(GetText(Resource.String.Lbl_Select_Type_Call));
                            dialogList.Items(arrayAdapter);
                            dialogList.PositiveText(GetText(Resource.String.Lbl_Close)).OnPositive(this);
                            dialogList.AlwaysCallSingleChoiceCallback();
                            dialogList.ItemsCallback(this).Build().Show();
                        }
                        else if (AppSettings.EnableAudioCall == false && AppSettings.EnableVideoCall) // Video Call On
                        {
                            try
                            {
                                Intent intentVideoCall = new Intent(Context, typeof(TwilioVideoCallActivity));
                                if (AppSettings.UseAgoraLibrary && AppSettings.UseTwilioLibrary == false)
                                {
                                    intentVideoCall = new Intent(Context, typeof(AgoraVideoCallActivity));
                                    intentVideoCall.PutExtra("type", "Agora_video_calling_start");
                                }
                                else if (AppSettings.UseAgoraLibrary == false && AppSettings.UseTwilioLibrary)
                                {
                                    intentVideoCall = new Intent(Context, typeof(TwilioVideoCallActivity));
                                    intentVideoCall.PutExtra("type", "Twilio_video_calling_start");
                                }

                                intentVideoCall.PutExtra("UserID", item.UserId);
                                intentVideoCall.PutExtra("avatar", item.Avatar);
                                intentVideoCall.PutExtra("name", item.Name);
                                intentVideoCall.PutExtra("time", timeNow);
                                intentVideoCall.PutExtra("CallID", time);
                                intentVideoCall.PutExtra("access_token", "YOUR_TOKEN");
                                intentVideoCall.PutExtra("access_token_2", "YOUR_TOKEN");
                                intentVideoCall.PutExtra("from_id", "0");
                                intentVideoCall.PutExtra("active", "0");
                                intentVideoCall.PutExtra("status", "0");
                                intentVideoCall.PutExtra("room_name", "TestRoom");
                                StartActivity(intentVideoCall);
                            }
                            catch (Exception exception)
                            {
                                Console.WriteLine(exception);
                            }
                        }
                        else if (AppSettings.EnableAudioCall && AppSettings.EnableVideoCall == false) // Audio Call On
                        {
                            try
                            {
                                Intent intentVideoCall = new Intent(Context, typeof(TwilioVideoCallActivity));
                                if (AppSettings.UseAgoraLibrary && AppSettings.UseTwilioLibrary == false)
                                {
                                    intentVideoCall = new Intent(Context, typeof(AgoraAudioCallActivity));
                                    intentVideoCall.PutExtra("type", "Agora_audio_calling_start");
                                }
                                else if (AppSettings.UseAgoraLibrary == false && AppSettings.UseTwilioLibrary)
                                {
                                    intentVideoCall = new Intent(Context, typeof(TwilioAudioCallActivity));
                                    intentVideoCall.PutExtra("type", "Twilio_audio_calling_start");
                                }

                                intentVideoCall.PutExtra("UserID", item.UserId);
                                intentVideoCall.PutExtra("avatar", item.Avatar);
                                intentVideoCall.PutExtra("name", item.Name);
                                intentVideoCall.PutExtra("time", timeNow);
                                intentVideoCall.PutExtra("CallID", time);
                                intentVideoCall.PutExtra("access_token", "YOUR_TOKEN");
                                intentVideoCall.PutExtra("access_token_2", "YOUR_TOKEN");
                                intentVideoCall.PutExtra("from_id", "0");
                                intentVideoCall.PutExtra("active", "0");
                                intentVideoCall.PutExtra("status", "0");
                                intentVideoCall.PutExtra("room_name", "TestRoom");
                                StartActivity(intentVideoCall);
                            }
                            catch (Exception exception)
                            {
                                Console.WriteLine(exception);
                            }
                        }
                    }
                }
            }
            catch (Exception exception)
            {
                Console.WriteLine(exception);
            }
        }
Ejemplo n.º 11
0
        public static void UpdateLastIdMessage(SendMessageObject chatMessages)
        {
            try
            {
                foreach (var messageInfo in chatMessages.MessageData)
                {
                    MessageData m = new MessageData
                    {
                        Id             = messageInfo.Id,
                        FromId         = messageInfo.FromId,
                        GroupId        = messageInfo.GroupId,
                        ToId           = messageInfo.ToId,
                        Text           = messageInfo.Text,
                        Media          = messageInfo.Media,
                        MediaFileName  = messageInfo.MediaFileName,
                        MediaFileNames = messageInfo.MediaFileNames,
                        Time           = messageInfo.Time,
                        Seen           = messageInfo.Seen,
                        DeletedOne     = messageInfo.DeletedOne,
                        DeletedTwo     = messageInfo.DeletedTwo,
                        SentPush       = messageInfo.SentPush,
                        NotificationId = messageInfo.NotificationId,
                        TypeTwo        = messageInfo.TypeTwo,
                        Stickers       = messageInfo.Stickers,
                        TimeText       = messageInfo.TimeText,
                        Position       = messageInfo.Position,
                        ModelType      = messageInfo.ModelType,
                        FileSize       = messageInfo.FileSize,
                        MediaDuration  = messageInfo.MediaDuration,
                        MediaIsPlaying = messageInfo.MediaIsPlaying,
                        ContactNumber  = messageInfo.ContactNumber,
                        ContactName    = messageInfo.ContactName,
                        ProductId      = messageInfo.ProductId,
                        MessageUser    = messageInfo.MessageUser,
                        Product        = messageInfo.Product,
                        MessageHashId  = messageInfo.MessageHashId,
                        Lat            = messageInfo.Lat,
                        Lng            = messageInfo.Lng,
                        SendFile       = false,
                    };

                    var typeModel = Holders.GetTypeModel(m);
                    if (typeModel == MessageModelType.None)
                    {
                        continue;
                    }

                    var message = WoWonderTools.MessageFilter(messageInfo.ToId, m, typeModel, true);
                    message.ModelType = typeModel;

                    AdapterModelsClassUser checker = WindowActivity?.MAdapter?.DifferList?.FirstOrDefault(a => a.MesData.Id == messageInfo.MessageHashId);
                    if (checker != null)
                    {
                        //checker.TypeView = typeModel;
                        checker.MesData  = message;
                        checker.Id       = Java.Lang.Long.ParseLong(message.Id);
                        checker.TypeView = typeModel;

                        checker.MesData.Id             = message.Id;
                        checker.MesData.FromId         = message.FromId;
                        checker.MesData.GroupId        = message.GroupId;
                        checker.MesData.ToId           = message.ToId;
                        checker.MesData.Text           = message.Text;
                        checker.MesData.Media          = message.Media;
                        checker.MesData.MediaFileName  = message.MediaFileName;
                        checker.MesData.MediaFileNames = message.MediaFileNames;
                        checker.MesData.Time           = message.Time;
                        checker.MesData.Seen           = message.Seen;
                        checker.MesData.DeletedOne     = message.DeletedOne;
                        checker.MesData.DeletedTwo     = message.DeletedTwo;
                        checker.MesData.SentPush       = message.SentPush;
                        checker.MesData.NotificationId = message.NotificationId;
                        checker.MesData.TypeTwo        = message.TypeTwo;
                        checker.MesData.Stickers       = message.Stickers;
                        checker.MesData.TimeText       = message.TimeText;
                        checker.MesData.Position       = message.Position;
                        checker.MesData.ModelType      = message.ModelType;
                        checker.MesData.FileSize       = message.FileSize;
                        checker.MesData.MediaDuration  = message.MediaDuration;
                        checker.MesData.MediaIsPlaying = message.MediaIsPlaying;
                        checker.MesData.ContactNumber  = message.ContactNumber;
                        checker.MesData.ContactName    = message.ContactName;
                        checker.MesData.ProductId      = message.ProductId;
                        checker.MesData.MessageUser    = message.MessageUser;
                        checker.MesData.Product        = message.Product;
                        checker.MesData.MessageHashId  = message.MessageHashId;
                        checker.MesData.Lat            = message.Lat;
                        checker.MesData.Lng            = message.Lng;
                        checker.MesData.SendFile       = false;

                        if (AppSettings.LastChatSystem == SystemApiGetLastChat.New)
                        {
                            var updaterUser = GlobalContext?.LastChatTab?.MAdapter?.ChatList?.FirstOrDefault(a => a.UserId == message.ToId);
                            if (updaterUser != null)
                            {
                                var index = GlobalContext.LastChatTab.MAdapter.ChatList.IndexOf(GlobalContext.LastChatTab.MAdapter.ChatList.FirstOrDefault(x => x.UserId == message.ToId));
                                if (index > -1)
                                {
                                    updaterUser.LastMessage.LastMessageClass.Text = typeModel switch
                                    {
                                        MessageModelType.RightGif => WindowActivity?.GetText(Resource.String.Lbl_SendGifFile),
                                        MessageModelType.RightText => !string.IsNullOrEmpty(message.Text) ? Methods.FunString.DecodeString(message.Text) : WindowActivity?.GetText(Resource.String.Lbl_SendMessage),
                                        MessageModelType.RightSticker => WindowActivity?.GetText(Resource.String.Lbl_SendStickerFile),
                                        MessageModelType.RightContact => WindowActivity?.GetText(Resource.String.Lbl_SendContactnumber),
                                        MessageModelType.RightFile => WindowActivity?.GetText(Resource.String.Lbl_SendFile),
                                        MessageModelType.RightVideo => WindowActivity?.GetText(Resource.String.Lbl_SendVideoFile),
                                        MessageModelType.RightImage => WindowActivity?.GetText(Resource.String.Lbl_SendImageFile),
                                        MessageModelType.RightAudio => WindowActivity?.GetText(Resource.String.Lbl_SendAudioFile),
                                        MessageModelType.RightMap => WindowActivity?.GetText(Resource.String.Lbl_SendLocationFile),
                                        _ => updaterUser.LastMessage.LastMessageClass.Text
                                    };

                                    GlobalContext.RunOnUiThread(() =>
                                    {
                                        try
                                        {
                                            GlobalContext?.LastChatTab?.MAdapter?.ChatList.Move(index, 0);
                                            GlobalContext?.LastChatTab?.MAdapter?.NotifyItemMoved(index, 0);
                                            GlobalContext?.LastChatTab?.MAdapter?.NotifyItemChanged(index, "WithoutBlob");
                                        }
                                        catch (Exception e)
                                        {
                                            Console.WriteLine(e);
                                        }
                                    });

                                    SqLiteDatabase dbSqLite = new SqLiteDatabase();
                                    //Update All data users to database
                                    dbSqLite.Insert_Or_Update_LastUsersChat(GlobalContext, new ObservableCollection <ChatObject>()
                                    {
                                        updaterUser
                                    });
                                    dbSqLite.Dispose();
                                }
                            }
                            else
                            {
                                //insert new user
                                var data = ConvertData(checker.MesData);
                                if (data != null)
                                {
                                    GlobalContext?.RunOnUiThread(() =>
                                    {
                                        try
                                        {
                                            GlobalContext?.LastChatTab.MAdapter.ChatList.Insert(0, data);
                                            GlobalContext?.LastChatTab.MAdapter.NotifyItemInserted(0);
                                            GlobalContext?.LastChatTab.MRecycler.ScrollToPosition(GlobalContext.LastChatTab.MAdapter.ChatList.IndexOf(data));
                                        }
                                        catch (Exception e)
                                        {
                                            Console.WriteLine(e);
                                        }
                                    });

                                    //Update All data users to database
                                    //dbDatabase.Insert_Or_Update_LastUsersChat(new ObservableCollection<GetUsersListObject.User>
                                    //{
                                    //    data
                                    //});
                                }
                            }
                        }
                        else
                        {
                            var updaterUser = GlobalContext?.LastMessagesTab?.MAdapter?.MLastMessagesUser?.FirstOrDefault(a => a.UserId == message.ToId);
                            if (updaterUser != null)
                            {
                                var index = GlobalContext.LastMessagesTab.MAdapter.MLastMessagesUser.IndexOf(GlobalContext.LastMessagesTab.MAdapter.MLastMessagesUser.FirstOrDefault(x => x.UserId == message.ToId));
                                if (index > -1)
                                {
                                    updaterUser.LastMessage.Text = typeModel switch
                                    {
                                        MessageModelType.RightGif => WindowActivity?.GetText(Resource.String.Lbl_SendGifFile),
                                        MessageModelType.RightText => !string.IsNullOrEmpty(message.Text) ? Methods.FunString.DecodeString(message.Text) : WindowActivity?.GetText(Resource.String.Lbl_SendMessage),
                                        MessageModelType.RightSticker => WindowActivity?.GetText(Resource.String.Lbl_SendStickerFile),
                                        MessageModelType.RightContact => WindowActivity?.GetText(Resource.String.Lbl_SendContactnumber),
                                        MessageModelType.RightFile => WindowActivity?.GetText(Resource.String.Lbl_SendFile),
                                        MessageModelType.RightVideo => WindowActivity?.GetText(Resource.String.Lbl_SendVideoFile),
                                        MessageModelType.RightImage => WindowActivity?.GetText(Resource.String.Lbl_SendImageFile),
                                        MessageModelType.RightAudio => WindowActivity?.GetText(Resource.String.Lbl_SendAudioFile),
                                        MessageModelType.RightMap => WindowActivity?.GetText(Resource.String.Lbl_SendLocationFile),
                                        _ => updaterUser.LastMessage.Text
                                    };

                                    GlobalContext.RunOnUiThread(() =>
                                    {
                                        try
                                        {
                                            GlobalContext?.LastMessagesTab?.MAdapter?.MLastMessagesUser.Move(index, 0);
                                            GlobalContext?.LastMessagesTab?.MAdapter?.NotifyItemMoved(index, 0);
                                            GlobalContext?.LastMessagesTab?.MAdapter?.NotifyItemChanged(index, "WithoutBlob");
                                        }
                                        catch (Exception e)
                                        {
                                            Console.WriteLine(e);
                                        }
                                    });
                                    SqLiteDatabase dbSqLite = new SqLiteDatabase();
                                    //Update All data users to database
                                    dbSqLite.Insert_Or_Update_LastUsersChat(GlobalContext, new ObservableCollection <GetUsersListObject.User>()
                                    {
                                        updaterUser
                                    });
                                    dbSqLite.Dispose();
                                }
                            }
                            else
                            {
                                //insert new user
                                var data = ConvertDataChat(checker.MesData);
                                if (data != null)
                                {
                                    GlobalContext?.RunOnUiThread(() =>
                                    {
                                        try
                                        {
                                            GlobalContext?.LastMessagesTab?.MAdapter.MLastMessagesUser.Insert(0, data);
                                            GlobalContext?.LastMessagesTab?.MAdapter.NotifyItemInserted(0);
                                            GlobalContext?.LastMessagesTab?.MRecycler.ScrollToPosition(GlobalContext.LastMessagesTab.MAdapter.MLastMessagesUser.IndexOf(data));
                                        }
                                        catch (Exception e)
                                        {
                                            Console.WriteLine(e);
                                        }
                                    });

                                    //Update All data users to database
                                    //dbDatabase.Insert_Or_Update_LastUsersChat(new ObservableCollection<GetUsersListObject.User>
                                    //{
                                    //    data
                                    //});
                                }
                            }
                        }

                        //checker.Media = media;
                        //Update All data users to database
                        SqLiteDatabase dbDatabase = new SqLiteDatabase();
                        dbDatabase.Insert_Or_Update_To_one_MessagesTable(checker.MesData);
                        dbDatabase.Dispose();

                        GlobalContext?.RunOnUiThread(() =>
                        {
                            try
                            {
                                //Update data RecyclerView Messages.
                                if (message.ModelType != MessageModelType.RightSticker || message.ModelType != MessageModelType.RightImage || message.ModelType != MessageModelType.RightMap || message.ModelType != MessageModelType.RightVideo)
                                {
                                    WindowActivity?.Update_One_Messages(checker.MesData);
                                }

                                if (SettingsPrefFragment.SSoundControl)
                                {
                                    Methods.AudioRecorderAndPlayer.PlayAudioFromAsset("Popup_SendMesseges.mp3");
                                }
                            }
                            catch (Exception e)
                            {
                                Console.WriteLine(e);
                            }
                        });
                    }
                }

                Datauser     = null;
                DataUserChat = null;
                UserData     = null;
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
Ejemplo n.º 12
0
        public static void UpdateRecyclerLastMessageView(GetUsersListObject.LastMessage result, GetUsersListObject.User user, int index, TabbedMainActivity context)
        {
            try
            {
                if (IsImageExtension(result.MediaFileName))
                {
                    result.Text = WindowActivity?.GetText(Resource.String.Lbl_SendImageFile);
                }
                else if (IsVideoExtension(result.MediaFileName))
                {
                    result.Text = WindowActivity?.GetText(Resource.String.Lbl_SendVideoFile);
                }
                else if (IsAudioExtension(result.MediaFileName))
                {
                    result.Text = WindowActivity?.GetText(Resource.String.Lbl_SendAudioFile);
                }
                else if (IsFileExtension(result.MediaFileName))
                {
                    result.Text = WindowActivity?.GetText(Resource.String.Lbl_SendFile);
                }
                else if (result.MediaFileName.Contains(".gif") || result.MediaFileName.Contains(".GIF"))
                {
                    result.Text = WindowActivity?.GetText(Resource.String.Lbl_SendGifFile);
                }
                else
                {
                    result.Text = Methods.FunString.DecodeString(result.Text);
                }

                context.RunOnUiThread(() =>
                {
                    try
                    {
                        switch (AppSettings.LastChatSystem)
                        {
                        case SystemApiGetLastChat.New:
                            context.LastChatTab?.MAdapter?.NotifyItemChanged(index);
                            break;

                        default:
                            context.LastMessagesTab?.MAdapter?.NotifyItemChanged(index);
                            break;
                        }
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e);
                    }
                });

                SqLiteDatabase dbDatabase = new SqLiteDatabase();
                //Update All data users to database
                dbDatabase.Insert_Or_Update_LastUsersChat(GlobalContext, new ObservableCollection <GetUsersListObject.User>()
                {
                    user
                });
                dbDatabase.Dispose();
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }