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;");
				}
			}
		}