From 8f997a6bcbd1f80283e717143fa44b8fa5f72794 Mon Sep 17 00:00:00 2001 From: Joe Manke Date: Tue, 13 Aug 2019 19:41:11 -0500 Subject: [PATCH] Add separate MarkerClick and InfoWindowClick events for Pins (#6079) * Add separate MarkerClick and InfoWindowClick events for Pins * Mark Pin.Clicked obsolete * Use for loops to look up Pins in renderers. * Add custom EventArgs for MapClicked and InfoWindowClicked * Update MapGalleryPage for new events * Obsolete messages and other cleanup * Correct the pragma when calling Pin.SendTapped * Change obsolete message to say 4.2.0 * Ignore warning on Pin.SendTap() on other platforms * Update obsolete messages to 4.3.0 Co-Authored-By: Samantha Houts fixes #2509 fixes #3131 fixes #5490 --- .../Bugzilla29017.cs | 6 +- .../GalleryPages/MapGallery.xaml | 16 +++-- .../GalleryPages/MapGallery.xaml.cs | 16 ++++- Xamarin.Forms.Maps.Android/MapRenderer.cs | 67 +++++++++++++++----- Xamarin.Forms.Maps.GTK/MapRenderer.cs | 6 +- Xamarin.Forms.Maps.Tizen/MapRenderer.cs | 2 + Xamarin.Forms.Maps.UWP/PushPin.cs | 3 + Xamarin.Forms.Maps.WPF/FormsPushPin.cs | 2 + Xamarin.Forms.Maps.iOS/MapRenderer.cs | 72 +++++++++++++++------- Xamarin.Forms.Maps/Pin.cs | 22 +++++++ Xamarin.Forms.Maps/PinClickedEventArgs.cs | 16 +++++ 11 files changed, 176 insertions(+), 52 deletions(-) create mode 100644 Xamarin.Forms.Maps/PinClickedEventArgs.cs diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla29017.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla29017.cs index 83a6436..bcbeccf 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla29017.cs +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla29017.cs @@ -31,9 +31,10 @@ namespace Xamarin.Forms.Controls.Issues new Button { Text = "Add pins", Command = new Command (() => { - foreach (var pin in map.Pins) { +#pragma warning disable CS0618 pin.Clicked -= PinClicked; +#pragma warning restore CS0618 } map.Pins.Clear (); @@ -54,8 +55,9 @@ namespace Xamarin.Forms.Controls.Issues Type = PinType.Place, Position = new Position (map.VisibleRegion.Center.Latitude + lat, map.VisibleRegion.Center.Longitude + lng) }; - +#pragma warning disable CS0618 pin.Clicked += PinClicked; +#pragma warning restore CS0618 map.Pins.Add (pin); } }) diff --git a/Xamarin.Forms.Controls/GalleryPages/MapGallery.xaml b/Xamarin.Forms.Controls/GalleryPages/MapGallery.xaml index 8ab68a9..e1b8539 100644 --- a/Xamarin.Forms.Controls/GalleryPages/MapGallery.xaml +++ b/Xamarin.Forms.Controls/GalleryPages/MapGallery.xaml @@ -10,6 +10,7 @@ + @@ -17,11 +18,16 @@ Placeholder="Search Address" SearchButtonPressed="SearchForAddress" /> -