diff --git a/config.json b/config.json index 0d4e5d0c4..d59135661 100644 --- a/config.json +++ b/config.json @@ -3518,7 +3518,7 @@ "groupId": "com.google.android.material", "artifactId": "material", "version": "1.14.0", - "nugetVersion": "1.14.0.4", + "nugetVersion": "1.14.0.5", "nugetId": "Xamarin.Google.Android.Material", "comments": "Requires API-34" }, diff --git a/source/com.google.android.material/material/Additions/SliderListenerMethods.cs b/source/com.google.android.material/material/Additions/SliderListenerMethods.cs index 638d4c4c1..725f8ddf8 100644 --- a/source/com.google.android.material/material/Additions/SliderListenerMethods.cs +++ b/source/com.google.android.material/material/Additions/SliderListenerMethods.cs @@ -76,6 +76,61 @@ public unsafe void RemoveOnSliderTouchListener(Slider.IOnSliderTouchListener lis GC.KeepAlive(listener); } } + + // C# events wrapping the listener pattern — equivalent to the auto-generated events + // that the binding generator no longer produces because addOnChangeListener / + // addOnSliderTouchListener are removed from the generated API (remove-node in Metadata.xml) + // and re-added via this Additions file instead. + + WeakReference? _weak_implementor_AddOnChangeListener; + Slider.IOnChangeListenerImplementor __CreateIOnChangeListenerImplementor() + => new Slider.IOnChangeListenerImplementor(this); + + public event EventHandler Change + { + add => Java.Interop.EventHelper.AddEventHandler( + ref _weak_implementor_AddOnChangeListener, + __CreateIOnChangeListenerImplementor, + AddOnChangeListener, + __h => __h.Handler += value); + remove => Java.Interop.EventHelper.RemoveEventHandler( + ref _weak_implementor_AddOnChangeListener, + Slider.IOnChangeListenerImplementor.__IsEmpty, + __v => RemoveOnChangeListener(__v), + __h => __h.Handler -= value); + } + + WeakReference? _weak_implementor_AddOnSliderTouchListener; + Slider.IOnSliderTouchListenerImplementor __CreateIOnSliderTouchListenerImplementor() + => new Slider.IOnSliderTouchListenerImplementor(this); + + public event EventHandler StartTrackingTouch + { + add => Java.Interop.EventHelper.AddEventHandler( + ref _weak_implementor_AddOnSliderTouchListener, + __CreateIOnSliderTouchListenerImplementor, + AddOnSliderTouchListener, + __h => __h.OnStartTrackingTouchHandler += value); + remove => Java.Interop.EventHelper.RemoveEventHandler( + ref _weak_implementor_AddOnSliderTouchListener, + Slider.IOnSliderTouchListenerImplementor.__IsEmpty, + __v => RemoveOnSliderTouchListener(__v), + __h => __h.OnStartTrackingTouchHandler -= value); + } + + public event EventHandler StopTrackingTouch + { + add => Java.Interop.EventHelper.AddEventHandler( + ref _weak_implementor_AddOnSliderTouchListener, + __CreateIOnSliderTouchListenerImplementor, + AddOnSliderTouchListener, + __h => __h.OnStopTrackingTouchHandler += value); + remove => Java.Interop.EventHelper.RemoveEventHandler( + ref _weak_implementor_AddOnSliderTouchListener, + Slider.IOnSliderTouchListenerImplementor.__IsEmpty, + __v => RemoveOnSliderTouchListener(__v), + __h => __h.OnStopTrackingTouchHandler -= value); + } } public partial class RangeSlider @@ -144,5 +199,55 @@ public unsafe void RemoveOnSliderTouchListener(RangeSlider.IOnSliderTouchListene GC.KeepAlive(listener); } } + + WeakReference? _weak_implementor_AddOnChangeListener; + RangeSlider.IOnChangeListenerImplementor __CreateIOnChangeListenerImplementor() + => new RangeSlider.IOnChangeListenerImplementor(this); + + public event EventHandler Change + { + add => Java.Interop.EventHelper.AddEventHandler( + ref _weak_implementor_AddOnChangeListener, + __CreateIOnChangeListenerImplementor, + AddOnChangeListener, + __h => __h.Handler += value); + remove => Java.Interop.EventHelper.RemoveEventHandler( + ref _weak_implementor_AddOnChangeListener, + RangeSlider.IOnChangeListenerImplementor.__IsEmpty, + __v => RemoveOnChangeListener(__v), + __h => __h.Handler -= value); + } + + WeakReference? _weak_implementor_AddOnSliderTouchListener; + RangeSlider.IOnSliderTouchListenerImplementor __CreateIOnSliderTouchListenerImplementor() + => new RangeSlider.IOnSliderTouchListenerImplementor(this); + + public event EventHandler StartTrackingTouch + { + add => Java.Interop.EventHelper.AddEventHandler( + ref _weak_implementor_AddOnSliderTouchListener, + __CreateIOnSliderTouchListenerImplementor, + AddOnSliderTouchListener, + __h => __h.OnStartTrackingTouchHandler += value); + remove => Java.Interop.EventHelper.RemoveEventHandler( + ref _weak_implementor_AddOnSliderTouchListener, + RangeSlider.IOnSliderTouchListenerImplementor.__IsEmpty, + __v => RemoveOnSliderTouchListener(__v), + __h => __h.OnStartTrackingTouchHandler -= value); + } + + public event EventHandler StopTrackingTouch + { + add => Java.Interop.EventHelper.AddEventHandler( + ref _weak_implementor_AddOnSliderTouchListener, + __CreateIOnSliderTouchListenerImplementor, + AddOnSliderTouchListener, + __h => __h.OnStopTrackingTouchHandler += value); + remove => Java.Interop.EventHelper.RemoveEventHandler( + ref _weak_implementor_AddOnSliderTouchListener, + RangeSlider.IOnSliderTouchListenerImplementor.__IsEmpty, + __v => RemoveOnSliderTouchListener(__v), + __h => __h.OnStopTrackingTouchHandler -= value); + } } diff --git a/source/com.google.android.material/material/PublicAPI/PublicAPI.Unshipped.txt b/source/com.google.android.material/material/PublicAPI/PublicAPI.Unshipped.txt index 77bf41019..06fed8bda 100644 --- a/source/com.google.android.material/material/PublicAPI/PublicAPI.Unshipped.txt +++ b/source/com.google.android.material/material/PublicAPI/PublicAPI.Unshipped.txt @@ -1991,6 +1991,7 @@ Google.Android.Material.Slider.LabelFormatterConsts Google.Android.Material.Slider.RangeSlider Google.Android.Material.Slider.RangeSlider.AddOnChangeListener(Google.Android.Material.Slider.RangeSlider.IOnChangeListener! listener) -> void Google.Android.Material.Slider.RangeSlider.AddOnSliderTouchListener(Google.Android.Material.Slider.RangeSlider.IOnSliderTouchListener! listener) -> void +Google.Android.Material.Slider.RangeSlider.Change -> System.EventHandler! Google.Android.Material.Slider.RangeSlider.ChangeEventArgs Google.Android.Material.Slider.RangeSlider.ChangeEventArgs.ChangeEventArgs(Google.Android.Material.Slider.RangeSlider! p0, float p1, bool p2) -> void Google.Android.Material.Slider.RangeSlider.ChangeEventArgs.P0.get -> Google.Android.Material.Slider.RangeSlider! @@ -2007,15 +2008,18 @@ Google.Android.Material.Slider.RangeSlider.RangeSlider(Android.Content.Context! Google.Android.Material.Slider.RangeSlider.RangeSlider(nint javaReference, Android.Runtime.JniHandleOwnership transfer) -> void Google.Android.Material.Slider.RangeSlider.RemoveOnChangeListener(Google.Android.Material.Slider.RangeSlider.IOnChangeListener! listener) -> void Google.Android.Material.Slider.RangeSlider.RemoveOnSliderTouchListener(Google.Android.Material.Slider.RangeSlider.IOnSliderTouchListener! listener) -> void +Google.Android.Material.Slider.RangeSlider.StartTrackingTouch -> System.EventHandler! Google.Android.Material.Slider.RangeSlider.StartTrackingTouchEventArgs Google.Android.Material.Slider.RangeSlider.StartTrackingTouchEventArgs.P0.get -> Google.Android.Material.Slider.RangeSlider! Google.Android.Material.Slider.RangeSlider.StartTrackingTouchEventArgs.StartTrackingTouchEventArgs(Google.Android.Material.Slider.RangeSlider! p0) -> void +Google.Android.Material.Slider.RangeSlider.StopTrackingTouch -> System.EventHandler! Google.Android.Material.Slider.RangeSlider.StopTrackingTouchEventArgs Google.Android.Material.Slider.RangeSlider.StopTrackingTouchEventArgs.P0.get -> Google.Android.Material.Slider.RangeSlider! Google.Android.Material.Slider.RangeSlider.StopTrackingTouchEventArgs.StopTrackingTouchEventArgs(Google.Android.Material.Slider.RangeSlider! p0) -> void Google.Android.Material.Slider.Slider Google.Android.Material.Slider.Slider.AddOnChangeListener(Google.Android.Material.Slider.Slider.IOnChangeListener! listener) -> void Google.Android.Material.Slider.Slider.AddOnSliderTouchListener(Google.Android.Material.Slider.Slider.IOnSliderTouchListener! listener) -> void +Google.Android.Material.Slider.Slider.Change -> System.EventHandler! Google.Android.Material.Slider.Slider.ChangeEventArgs Google.Android.Material.Slider.Slider.ChangeEventArgs.ChangeEventArgs(Google.Android.Material.Slider.Slider! p0, float p1, bool p2) -> void Google.Android.Material.Slider.Slider.ChangeEventArgs.P0.get -> Google.Android.Material.Slider.Slider! @@ -2033,9 +2037,11 @@ Google.Android.Material.Slider.Slider.Slider(Android.Content.Context! context) - Google.Android.Material.Slider.Slider.Slider(Android.Content.Context! context, Android.Util.IAttributeSet? attrs) -> void Google.Android.Material.Slider.Slider.Slider(Android.Content.Context! context, Android.Util.IAttributeSet? attrs, int defStyleAttr) -> void Google.Android.Material.Slider.Slider.Slider(nint javaReference, Android.Runtime.JniHandleOwnership transfer) -> void +Google.Android.Material.Slider.Slider.StartTrackingTouch -> System.EventHandler! Google.Android.Material.Slider.Slider.StartTrackingTouchEventArgs Google.Android.Material.Slider.Slider.StartTrackingTouchEventArgs.P0.get -> Google.Android.Material.Slider.Slider! Google.Android.Material.Slider.Slider.StartTrackingTouchEventArgs.StartTrackingTouchEventArgs(Google.Android.Material.Slider.Slider! p0) -> void +Google.Android.Material.Slider.Slider.StopTrackingTouch -> System.EventHandler! Google.Android.Material.Slider.Slider.StopTrackingTouchEventArgs Google.Android.Material.Slider.Slider.StopTrackingTouchEventArgs.P0.get -> Google.Android.Material.Slider.Slider! Google.Android.Material.Slider.Slider.StopTrackingTouchEventArgs.StopTrackingTouchEventArgs(Google.Android.Material.Slider.Slider! p0) -> void