private void MAdapterOnItemLongClick(object sender, Holders.MesClickEventArgs e) { try { if (e.Position > -1) { SelectedItemPositions = MAdapter.GetItem(e.Position); if (SelectedItemPositions != null) { var arrayAdapter = new List <string>(); var dialogList = new MaterialDialog.Builder(this).Theme(AppSettings.SetTabDarkTheme ? AFollestad.MaterialDialogs.Theme.Dark : AFollestad.MaterialDialogs.Theme.Light); if (e.Type == Holders.TypeClick.Text) { arrayAdapter.Add(GetText(Resource.String.Lbl_Copy)); } if (SelectedItemPositions.MesData.Position == "right") { arrayAdapter.Add(GetText(Resource.String.Lbl_MessageInfo)); arrayAdapter.Add(GetText(Resource.String.Lbl_DeleteMessage)); } if (AppSettings.EnableForwardMessageSystem) { arrayAdapter.Add(GetText(Resource.String.Lbl_Forward)); } if (AppSettings.EnablePinMessageSystem) { arrayAdapter.Add(SelectedItemPositions.MesData.IsPinned ? GetText(Resource.String.Lbl_UnPin) : GetText(Resource.String.Lbl_Pin)); } if (AppSettings.EnableFavoriteMessageSystem) { arrayAdapter.Add(SelectedItemPositions.MesData.IsStarted ? GetText(Resource.String.Lbl_UnFavorite) : GetText(Resource.String.Lbl_Favorite)); } dialogList.Items(arrayAdapter); dialogList.NegativeText(GetText(Resource.String.Lbl_Close)).OnNegative(new WoWonderTools.MyMaterialDialog()); dialogList.AlwaysCallSingleChoiceCallback(); dialogList.ItemsCallback(this).Build().Show(); } } } catch (Exception exception) { Methods.DisplayReportResultTrack(exception); } }
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); } }
public static async 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 = await 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; 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.Activity.RunOnUiThread(() => { try { GlobalContext?.LastChatTab?.MAdapter?.ChatList.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.Activity, new ObservableCollection <ChatObject>() { updaterUser }); } } else { //insert new user var data = ConvertData(checker.MesData); if (data != null) { GlobalContext?.Activity.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) { Methods.DisplayReportResultTrack(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.Activity.RunOnUiThread(() => { try { GlobalContext?.LastMessagesTab?.MAdapter?.MLastMessagesUser.Move(index, 0); GlobalContext?.LastMessagesTab?.MAdapter?.NotifyItemMoved(index, 0); GlobalContext?.LastMessagesTab?.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.Activity, new ObservableCollection <GetUsersListObject.User>() { updaterUser }); } } else { //insert new user var data = ConvertDataChat(checker.MesData); if (data != null) { GlobalContext?.Activity.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) { Methods.DisplayReportResultTrack(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); 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); } }