Beispiel #1
0
        private async void HandleArguments(ToastNotificationActivatedEventArgs args)
        {
            string arguments = args.Argument;

            string action   = args.Argument.Split('&').First(x => x.ToLower(new CultureInfo("en-US")).StartsWith("action=", StringComparison.InvariantCulture)).Split('=')[1];
            string from     = args.Argument.Split('&').First(x => x.ToLower(new CultureInfo("en-US")).StartsWith("from=", StringComparison.InvariantCulture)).Split('=')[1];
            string deviceid = args.Argument.Split('&').First(x => x.ToLower(new CultureInfo("en-US")).StartsWith("deviceid=", StringComparison.InvariantCulture)).Split('=')[1];

            switch (action.ToLower(new CultureInfo("en-US")))
            {
            case "reply":
            {
                try
                {
                    string     messagetosend = (string)args.UserInput["textBox"];
                    SmsDevice2 smsDevice     = SmsDevice2.FromId(deviceid);
                    await SmsUtils.SendTextMessageAsync(smsDevice, from, messagetosend);
                }
                catch
                {
                }

                break;
            }

            case "openthread":
            {
                ChatMenuItemControl selectedConvo = null;
                foreach (var convo in ViewModel.ChatConversations)
                {
                    var contact = convo.ViewModel.Contact;
                    foreach (var num in contact.Phones)
                    {
                        if (ContactUtils.ArePhoneNumbersMostLikelyTheSame(from, num.Number))
                        {
                            selectedConvo = convo;
                            break;
                        }
                    }
                    if (selectedConvo != null)
                    {
                        break;
                    }
                }
                if (selectedConvo != null)
                {
                    ViewModel.SelectedItem = selectedConvo;
                }
                break;
            }
            }
        }
Beispiel #2
0
        private async Task HandleTaskActions(IBackgroundTaskInstance taskInstance)
        {
            try
            {
                if (taskInstance.TriggerDetails is ToastNotificationActionTriggerDetail)
                {
                    try
                    {
                        BadgeHandler.DecreaseBadgeNumber();
                    }
                    catch
                    {
                    }

                    var details = taskInstance.TriggerDetails as ToastNotificationActionTriggerDetail;

                    string arguments = details.Argument;

                    string action   = details.Argument.Split('&').First(x => x.ToLower().StartsWith("action=")).Split('=')[1];
                    string from     = details.Argument.Split('&').First(x => x.ToLower().StartsWith("from=")).Split('=')[1];
                    string deviceid = details.Argument.Split('&').First(x => x.ToLower().StartsWith("deviceid=")).Split('=')[1];

                    switch (action.ToLower())
                    {
                    case "reply":
                    {
                        try
                        {
                            string     messagetosend = (string)details.UserInput["textBox"];
                            SmsDevice2 smsDevice     = SmsDevice2.FromId(deviceid);
                            await SmsUtils.SendTextMessageAsync(smsDevice, from, messagetosend);
                        }
                        catch
                        {
                        }

                        break;
                    }

                    case "openthread":
                    {
                        break;
                    }
                    }
                }
            }
            catch
            {
            }
        }
Beispiel #3
0
        private async void SendButton_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                SendButton.IsEnabled = false;
                var smsDevice = cellularlineControls[CellularLineComboBox.SelectedIndex].device;

                var result = await SmsUtils.SendTextMessageAsync(smsDevice, convo.Participants.First(), ComposeTextBox.Text);

                if (!result)
                {
                    await new MessageDialog("We could not send one or some messages.", "Something went wrong").ShowAsync();
                }

                SendButton.IsEnabled = true;
                ComposeTextBox.Text  = "";
            }
            catch (Exception ex)
            {
                SendButton.IsEnabled = true;
                await new MessageDialog(ex.Message + " - " + ex.StackTrace).ShowAsync();
            }
        }