//Event public void ItemClick(View view, GetConversationListObject.DataConversation obj, int pos) { try { if (MAdapter.GetSelectedItemCount() > 0) // Add Select New Item { EnableActionMode(pos); } else { HomeActivity.GetInstance()?.SetService(); if (ToolBar.Visibility != ViewStates.Visible) { ToolBar.Visibility = ViewStates.Visible; } // read the item which removes bold from the row >> event click open ChatBox by user id var item = MAdapter.GetItem(pos); if (item != null) { UserId = item.User.Id.ToString(); item.NewMessages = 0; item.Seen = 1; Intent intent = new Intent(this, typeof(MessagesBoxActivity)); intent.PutExtra("UserId", item.User.Id.ToString()); intent.PutExtra("TypeChat", "LastChat"); intent.PutExtra("UserItem", JsonConvert.SerializeObject(item.User)); // Check if we're running on Android 5.0 or higher if ((int)Build.VERSION.SdkInt < 23) { StartActivity(intent); MAdapter.NotifyItemChanged(pos); } else { //Check to see if any permission in our group is available, if one, then all are if (CheckSelfPermission(Manifest.Permission.ReadExternalStorage) == Permission.Granted && CheckSelfPermission(Manifest.Permission.WriteExternalStorage) == Permission.Granted) { StartActivity(intent); MAdapter.NotifyItemChanged(pos); } else { new PermissionsController(this).RequestPermission(100); } } } } } catch (Exception e) { Console.WriteLine(e); } }
public void ItemLongClick(View view, GetConversationListObject.DataConversation obj, int pos) { EnableActionMode(pos); }
private void Initialize(LastChatAdapterViewHolder holder, GetConversationListObject.DataConversation item) { try { GlideImageLoader.LoadImage(ActivityContext, item.User.Avater, holder.ImageAvatar, ImageStyle.CircleCrop, ImagePlaceholders.Drawable); string name = QuickDateTools.GetNameFinal(item.User); if (holder.TxtUsername.Text != name) { holder.TxtUsername.Text = name; } //If message contains Media files switch (item.MessageType) { case "text": { holder.LastMessagesIcon.Visibility = ViewStates.Gone; holder.TxtLastMessages.Text = item.Text.Contains("http") ? Methods.FunString.SubStringCutOf(item.Text, 30) : Methods.FunString.DecodeString(Methods.FunString.SubStringCutOf(item.Text, 30)) ?? ActivityContext.GetText(Resource.String.Lbl_SendMessage); break; } case "media": { holder.LastMessagesIcon.Visibility = ViewStates.Visible; FontUtils.SetTextViewIcon(FontsIconFrameWork.IonIcons, holder.LastMessagesIcon, IonIconsFonts.Images); holder.TxtLastMessages.Text = Application.Context.GetText(Resource.String.Lbl_SendImageFile); break; } case "sticker" when item.Sticker.Contains(".gif"): { holder.LastMessagesIcon.Visibility = ViewStates.Visible; FontUtils.SetTextViewIcon(FontsIconFrameWork.FontAwesomeLight, holder.LastMessagesIcon, FontAwesomeIcon.Gift); holder.TxtLastMessages.Text = Application.Context.GetText(Resource.String.Lbl_SendGifFile); break; } case "sticker": { holder.LastMessagesIcon.Visibility = ViewStates.Visible; FontUtils.SetTextViewIcon(FontsIconFrameWork.IonIcons, holder.LastMessagesIcon, IonIconsFonts.Happy); holder.TxtLastMessages.Text = Application.Context.GetText(Resource.String.Lbl_SendStickerFile); break; } } //last seen time holder.TxtTimestamp.Text = Methods.Time.ReplaceTime(item.Time); //Check read message if (item.FromId != null && item.ToId != null && item.ToId != UserDetails.UserId && item.FromId == UserDetails.UserId) { if (item.Seen == 0) { holder.ImageColor.Visibility = ViewStates.Invisible; holder.TxtUsername.SetTypeface(Typeface.Default, TypefaceStyle.Normal); holder.TxtLastMessages.SetTypeface(Typeface.Default, TypefaceStyle.Normal); } else { holder.ImageColor.Visibility = ViewStates.Invisible; holder.TxtUsername.SetTypeface(Typeface.Default, TypefaceStyle.Normal); holder.TxtLastMessages.SetTypeface(Typeface.Default, TypefaceStyle.Normal); } } else if (item.FromId != null && item.ToId != null && item.ToId == UserDetails.UserId && item.FromId != UserDetails.UserId) { if (item.Seen == 0) { holder.TxtUsername.SetTypeface(Typeface.Default, TypefaceStyle.Bold); holder.TxtLastMessages.SetTypeface(Typeface.Default, TypefaceStyle.Bold); if (item.NewMessages != 0) { var drawable = TextDrawable.InvokeBuilder().BeginConfig().FontSize(25).EndConfig().BuildRound(item.NewMessages.ToString(), Color.ParseColor(AppSettings.MainColor)); holder.ImageColor.SetImageDrawable(drawable); holder.ImageColor.Visibility = ViewStates.Visible; } else { holder.ImageColor.Visibility = ViewStates.Invisible; } } else { holder.ImageColor.Visibility = ViewStates.Invisible; holder.TxtUsername.SetTypeface(Typeface.Default, TypefaceStyle.Normal); holder.TxtLastMessages.SetTypeface(Typeface.Default, TypefaceStyle.Normal); } } } catch (Exception e) { Console.WriteLine(e); } }