//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); } }
//========================= 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); } }
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); } }
public DialogDeleteMessage(string userid, GetUsersListObject.User item) { try { Userid = userid; ItemUser = item;//GetUsersListObject.User GlobalContext = TabbedMainActivity.GetInstance(); } catch (Exception e) { Console.WriteLine(e); } }
//========================= 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); } }
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); } }
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("{"Key"") || item.LastMessage.Text.Contains("{key:^qu") || item.LastMessage.Text.Contains("{^key:^qu") || item.LastMessage.Text.Contains("{key:")) { holder.TxtLastMessages.Text = ActivityContext.GetText(Resource.String.Lbl_SendContactnumber); } else { holder.TxtLastMessages.Text = Methods.FunString.DecodeString(Methods.FunString.SubStringCutOf(item.LastMessage.Text, 30)); } } //last seen time holder.TxtTimestamp.Text = Methods.Time.TimeAgo(int.Parse(item.LastseenUnixTime), true); //Online Or offline if (item.Lastseen == "on" && OnlineUsers.Equals(true)) { holder.TxtTimestamp.Text = ActivityContext.GetText(Resource.String.Lbl_Online); holder.ImageLastseen.SetImageResource(Resource.Drawable.Green_Online); if (AppSettings.ShowOnlineOfflineMessage) { var data = ListOnline.Contains(item.Name); if (data == false) { ListOnline.Add(item.Name); Toast toast = Toast.MakeText(ActivityContext, item.Name + " " + ActivityContext.GetText(Resource.String.Lbl_Online), ToastLength.Short); toast.SetGravity(GravityFlags.Center, 0, 0); toast.Show(); } } } else { holder.ImageLastseen.SetImageResource(Resource.Drawable.Grey_Offline); } //Check read message if (item.LastMessage.FromId != null && (item.LastMessage.ToId != null && (item.LastMessage.ToId != UserDetails.UserId && item.LastMessage.FromId == UserDetails.UserId))) { if (item.LastMessage.Seen == "0") { holder.IconCheckCountMessages.Visibility = ViewStates.Invisible; holder.TxtUsername.SetTypeface(Typeface.Default, TypefaceStyle.Normal); holder.TxtLastMessages.SetTypeface(Typeface.Default, TypefaceStyle.Normal); } else { holder.IconCheckCountMessages.Visibility = ViewStates.Visible; holder.TxtUsername.SetTypeface(Typeface.Default, TypefaceStyle.Normal); holder.TxtLastMessages.SetTypeface(Typeface.Default, TypefaceStyle.Normal); Glide.With(ActivityContext).Load(Resource.Drawable.ic_tick_vector).Into(holder.IconCheckCountMessages); } } else if (item.LastMessage.FromId != null && (item.LastMessage.ToId != null && (item.LastMessage.ToId == UserDetails.UserId && item.LastMessage.FromId != UserDetails.UserId))) { if (item.LastMessage.Seen == "0") { holder.TxtUsername.SetTypeface(Typeface.Default, TypefaceStyle.Bold); holder.TxtLastMessages.SetTypeface(Typeface.Default, TypefaceStyle.Bold); //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); } }
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); } }
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); } }
//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); } }
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); } }
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); } }