Beispiel #1
0
        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);
                }
            });
        }
Beispiel #2
0
        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;
        }
Beispiel #3
0
        public async void sendMessage(ChatMessage message) 
        {

            try{
                await PushMessage(message.Text);
            }
            catch(Exception E)
            {
                System.Diagnostics.Debug.WriteLine("error storing in server "+ E);
            };
        }
Beispiel #4
0
 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);
 }
Beispiel #5
0
        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);
        }
Beispiel #6
0
        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);
            }

        }
Beispiel #7
0
 public void deleteMessage(ChatMessage msg) //given the ID of a message, delete said message from messages.
 {
     Constants.conv.msgs.Remove(msg);
 }
Beispiel #8
0
 public void reportMessage(ChatMessage msg) //Enables users to report selected message based on specific criteria
 {
     Navigation.PopAsync();
     Navigation.PushAsync(new ReportMessage(msg));
 }
Beispiel #9
0
 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;
     }
 }
Beispiel #10
0
 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);
 }