private void RaiseOnInfiniteScrollWhenItemIsLastInList(ConversationMessage currentItem, ConversationMessageViewHolder viewHolder) { if (this.Messages.IndexOf(currentItem) == (this.Messages.Count - 1) && !InfiniteScrollDisabled) { this.infiniteScrollListener.OnInfiniteScroll(); } }
public void AddReceivedMessage(ConversationMessage message) { this.Messages.Insert(0, message); this.NotifyItemInserted(0); if (NewMessageAdded != null) { NewMessageAdded(this, EventArgs.Empty); } }
private static void SetLayotParameters(ConversationMessage currentItem, ConversationMessageViewHolder vh) { RelativeLayout.LayoutParams parameters = new RelativeLayout.LayoutParams(LinearLayout.LayoutParams.WrapContent, LinearLayout.LayoutParams.WrapContent); if (currentItem.UserWasSender) { parameters.AddRule(LayoutRules.AlignParentLeft); parameters.SetMargins(5, 5, 30, 5); vh.MessageLayout.Background = ContextCompat.GetDrawable(Application.Context, Resource.Drawable.conversation_user_message_background_border); vh.MessageHeader.SetTextColor(Color.Black); vh.MessageContent.SetTextColor(Color.Black); } else { parameters.AddRule(LayoutRules.AlignParentRight); parameters.SetMargins(30, 5, 5, 5); vh.MessageLayout.Background = ContextCompat.GetDrawable(Application.Context, Resource.Drawable.conversation_sender_message_background_border); vh.MessageHeader.SetTextColor(Color.White); vh.MessageContent.SetTextColor(Color.White); } vh.MessageLayout.LayoutParameters = parameters; }
private void ShowNotification(string messageContent, string messageHeader, string conversationId, string senderId) { if (lastHeader == messageHeader) { return; } if (!ConversationActivity.ConversationActivityStateModel.IsInForeground || ConversationActivity.ConversationActivityStateModel.ConversationId != int.Parse(conversationId)) { var nMgr = (NotificationManager)GetSystemService(NotificationService); var notification = new Notification(Resource.Drawable.Icon, messageContent); notification.Flags = NotificationFlags.AutoCancel; notification.Sound = RingtoneManager.GetDefaultUri(RingtoneType.Notification); var intent = new Intent(this, typeof(ConversationActivity)); intent.PutExtra(ExtrasKeys.CONVERSATION_ID, int.Parse(conversationId)); intent.PutExtra(ExtrasKeys.ADDRESSEE_ID, senderId); var pendingIntent = PendingIntent.GetActivity(this, 0, intent, 0); notification.SetLatestEventInfo(this, "Nowa wiadomoϾ", messageContent, pendingIntent); nMgr.Notify(0, notification); } else { var message = new ConversationMessage(); message.ConversationId = int.Parse(conversationId); message.MessageContent = messageContent; message.MessageHeader = messageHeader; ConversationActivity.ActivityInstance.AddMessage(message); } lastHeader = messageHeader; }
public void AddMessage(ConversationMessage message) { this.RunOnUiThread(() => this.conversationMessagesListAdapter.AddReceivedMessage(message)); }
private void SendMessage() { if (editTextMessage.Text != null & editTextMessage.Text != string.Empty) { if (chatHubClientService.IsConnected()) { var date = DateTime.Now; var message = new ConversationMessage(); message.MessageContent = editTextMessage.Text; message.UserWasSender = true; message.ConversationId = this.conversationId; message.MessageHeader = String.Format("ja, {0} {1}", date.GetDateDottedStringFormat(), date.GetTimeColonStringFormat()); this.conversationMessagesListAdapter.AddReceivedMessage(message); chatHubClientService.SendMessage(editTextMessage.Text, this.addresseeId.ToString(), this.conversationId); editTextMessage.Text = string.Empty; } else { AlertsService.ShowToast(this, "Nie mogê po³¹czyæ siê z serwerem. Upewnij siê czy masz dostêp do internetu;"); } } }