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; } } }
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 { } }
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(); } }