async void OnViewInMapButtonClicked(object sender, EventArgs e) { if (!await LocationDetails.ValidateCoordinates(latitudeEntry.Text, longitudeEntry.Text)) { return; } Location location = new Location(double.Parse(latitudeEntry.Text), double.Parse(longitudeEntry.Text)); MapLaunchOptions options = new MapLaunchOptions { Name = nameEntry.Text }; try { await Map.OpenAsync(location, options); } catch { // No map application available to open await DisplayAlert("View On Map Failure", "There is no map application available to open.", "OK"); } }
async void OnAddButtonClicked(object sender, EventArgs e) { if (string.IsNullOrWhiteSpace(nameEntry.Text)) { await DisplayAlert("Incomplete Name Entry", "A name entry is required.", "OK"); return; } if (string.IsNullOrWhiteSpace(latitudeEntry.Text) || string.IsNullOrWhiteSpace(longitudeEntry.Text)) { await DisplayAlert("Incomplete Latitude or Longitude Entry", "Both a Latitude and Longitude entry is required.", "OK"); return; } if (!await LocationDetails.ValidateCoordinates(latitudeEntry.Text, longitudeEntry.Text)) { return; } // radius if (string.IsNullOrWhiteSpace(radiusEntry.Text)) { await DisplayAlert("Incomplete Radius Entry", "A radius entry is required.", "OK"); return; } try { int.Parse(radiusEntry.Text); } catch { await DisplayAlert("Invalid Radius Entry", "The radius entry must be a whole number.", "OK"); return; } //seconds /*if (string.IsNullOrWhiteSpace(secondsEntry.Text)) * { * await DisplayAlert("Incomplete Seconds Entry", "A seconds entry is required.", "OK"); * return; * } * * try * { * int.Parse(secondsEntry.Text); * } * catch * { * await DisplayAlert("Invalid Seconds Entry", "The seconds entry must be a whole number.", "OK"); * return; * }*/ // reminders if (onEnterPicker.SelectedIndex == -1 && onExitPicker.SelectedIndex == -1) { await DisplayAlert("Incomplete Reminders", "At least one reminder needs to be chosen.", "OK"); return; } string onEnterReminder = ""; if (onEnterPicker.SelectedIndex != -1) { onEnterReminder = onEnterPicker.SelectedItem.ToString(); } string onExitReminder = ""; if (onExitPicker.SelectedIndex != -1) { onExitReminder = onExitPicker.SelectedItem.ToString(); } try { if (editingItem != null) { editingItem.Name = nameEntry.Text; editingItem.Latitude = double.Parse(latitudeEntry.Text); editingItem.Longitude = double.Parse(longitudeEntry.Text); editingItem.Radius = int.Parse(radiusEntry.Text); //editingItem.Seconds = int.Parse(secondsEntry.Text); editingItem.OnEnter = onEnterPicker.SelectedIndex != -1; editingItem.OnExit = onExitPicker.SelectedIndex != -1; editingItem.OnEnterReminder = onEnterReminder; editingItem.OnExitReminder = onExitReminder; } else { editingItem = new CoordinateItem { Name = nameEntry.Text, Latitude = double.Parse(latitudeEntry.Text), Longitude = double.Parse(longitudeEntry.Text), Radius = int.Parse(radiusEntry.Text), //Seconds = int.Parse(secondsEntry.Text), Seconds = 0, OnEnter = onEnterPicker.SelectedIndex != -1, OnExit = onExitPicker.SelectedIndex != -1, OnEnterReminder = onEnterReminder, OnExitReminder = onExitReminder, IsOn = false }; } } catch { await DisplayAlert("Invalid Entry", "An entry field contains invalid characters.", "OK"); return; } await App.Database.SaveCoordinateAsync(editingItem); await Navigation.PopAsync(); }