public void parseMessageObject(string msg) { Device.BeginInvokeOnMainThread(() => { System.Diagnostics.Debug.WriteLine(msg); SNSMessagePCL tmp = JsonConvert.DeserializeObject<SNSMessagePCL>(msg); if (oldTime.Equals(tmp.Time)) { return; }else { oldTime = tmp.Time; } ChatMessage message = new ChatMessage { ToFrom = tmp.ToFrom, Time = tmp.Time, Text = tmp.Text, Sender = tmp.Sender }; if (tmp.Subject == "Handshake") { MessagingCenter.Send<App, ChatMessage>(this, "Handshake", message); } else if (tmp.Subject == "HandshakeEnd") { if (ChatSelectionPageActive || ChatPageActive) { MessagingCenter.Send<App, ChatMessage>(this, "HandshakeEnd", message); } if (ChatPageActive) { MessagingCenter.Send<App, ChatMessage>(this, "ConversationEnd", message); } } else { MessagingCenter.Send<App, ChatMessage>(this, "Hi", message); } }); }
public ChatMessage singleMessageFromServer(String ToFrom, String Time, String Message) //upon recieving a single message, add it to the log of messages. { string Sender; if (ToFrom.StartsWith(Constants.conv.id)) { Sender = this.mainUser; } else { Sender = Constants.conv.name; } ChatMessage newMsg = new ChatMessage() { Text = Message, Sender = Sender, Time = generateLocalTime(Time), ToFrom = ToFrom }; return newMsg; }
public async void sendMessage(ChatMessage message) { try{ await PushMessage(message.Text); } catch(Exception E) { System.Diagnostics.Debug.WriteLine("error storing in server "+ E); }; }
private void addNameLabel(ChatMessage msgObj, bool user) { Label message = new Label() { Text = msgObj.Sender + " - " + msgObj.Time, TextColor = Color.Black, FontSize = 15, FontFamily = "Arial", FontAttributes = FontAttributes.Italic, HorizontalTextAlignment = user ? TextAlignment.End : TextAlignment.Start }; Frame frame = new Frame() { Padding = new Thickness(5), Content = message, HorizontalOptions = user ? LayoutOptions.EndAndExpand : LayoutOptions.StartAndExpand, VerticalOptions = LayoutOptions.CenterAndExpand, }; this.messageStack.Children.Add(frame); }
private void addSingleMessage(ChatMessage msgObj, bool user) { Label message = new Label() { Text = msgObj.Text, TextColor = Color.Black, FontSize = 18, FontFamily = "Arial", HorizontalTextAlignment = TextAlignment.Start, }; Frame frame = new Frame() { Padding = new Thickness(5), Content = message, HorizontalOptions = user ? LayoutOptions.EndAndExpand : LayoutOptions.StartAndExpand, VerticalOptions = LayoutOptions.CenterAndExpand, BackgroundColor = user ? Constants.rightMessageColor : Constants.leftMessageColor, WidthRequest = width * 0.70, //HasShadow = true }; TapGestureRecognizer messageFrameTapped = new TapGestureRecognizer(); messageFrameTapped.Tapped += (s, e) => MessageFrameTapped_Tapped(s, e, msgObj); frame.GestureRecognizers.Add(messageFrameTapped); this.messageStack.Children.Add(frame); }
private void AddMessageToChat(ChatMessage msgObj) { bool val; if (msgObj.Sender == this.mainUser) { val = true; } else { val = false; } if (msgObj.Sender != this.previousUser) { addSpace(3); addNameLabel(msgObj, val); addSpace(1); addSingleMessage(msgObj, val); this.previousUser = msgObj.Sender; } else { addSpace(1); addSingleMessage(msgObj, val); } }
public void deleteMessage(ChatMessage msg) //given the ID of a message, delete said message from messages. { Constants.conv.msgs.Remove(msg); }
public void reportMessage(ChatMessage msg) //Enables users to report selected message based on specific criteria { Navigation.PopAsync(); Navigation.PushAsync(new ReportMessage(msg)); }
private async void MessageFrameTapped_Tapped(object sender, EventArgs e, ChatMessage msgObj) { var action = await DisplayActionSheet(null, null, null, "Hide text", "Report", "Delete Message"); Frame frame; switch (action) { case "Hide text": frame = sender as Frame; frame.IsVisible = false; break; case "Report": reportMessage(msgObj); break; case "Delete Message": frame = sender as Frame; frame.IsVisible = false; deleteMessage(msgObj); break; } }
private void SendButtonClicked(object sender, EventArgs e) { string text = textEditor.Text; if (String.IsNullOrWhiteSpace(text)) { return; } textEditor.Text = ""; ChatMessage msgObj = new ChatMessage() { ToFrom = Helpers.Settings.ToFromArn, Text = text, Sender = this.mainUser, Time = DateTime.Now.ToString("hh:mm tt"), }; AddMessageToChat(msgObj); Constants.conv.msgs.Add(msgObj); ScrolltoBottom(false); PushMessage(text); }