Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion config.json
Original file line number Diff line number Diff line change
Expand Up @@ -3518,7 +3518,7 @@
"groupId": "com.google.android.material",
"artifactId": "material",
"version": "1.14.0",
"nugetVersion": "1.14.0.3",
"nugetVersion": "1.14.0.4",
"nugetId": "Xamarin.Google.Android.Material",
"comments": "Requires API-34"
},
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@
using System;
using Android.Runtime;

namespace Google.Android.Material.Slider;

// Hand-written add/remove listener methods for Slider and RangeSlider.
// The auto-generated versions are removed from Metadata.xml because the base interfaces
// (BaseOnChangeListener, BaseOnSliderTouchListener) use erased generics that cause
// ACW type erasure clashes and implementor failures. These manual implementations use
// the correct JNI signature while accepting the typed sub-interfaces directly.
// This pattern (remove in metadata + re-add in Additions) is standard in .NET Android bindings.

public partial class Slider
{
const string _addOnChangeListenerJni = "(Lcom/google/android/material/slider/BaseOnChangeListener;)V";
const string _removeOnChangeListenerJni = "(Lcom/google/android/material/slider/BaseOnChangeListener;)V";
const string _addOnSliderTouchListenerJni = "(Lcom/google/android/material/slider/BaseOnSliderTouchListener;)V";
const string _removeOnSliderTouchListenerJni = "(Lcom/google/android/material/slider/BaseOnSliderTouchListener;)V";

public unsafe void AddOnChangeListener(Slider.IOnChangeListener listener)
{
const string __id = "addOnChangeListener." + _addOnChangeListenerJni;
Java.Interop.JniArgumentValue* __args = stackalloc Java.Interop.JniArgumentValue[1];
__args[0] = new Java.Interop.JniArgumentValue(listener == null ? IntPtr.Zero : ((Java.Lang.Object)listener).Handle);
try
{
_members.InstanceMethods.InvokeVirtualVoidMethod(__id, this, __args);
}
finally
{
GC.KeepAlive(listener);
}
}

public unsafe void RemoveOnChangeListener(Slider.IOnChangeListener listener)
{
const string __id = "removeOnChangeListener." + _removeOnChangeListenerJni;
Java.Interop.JniArgumentValue* __args = stackalloc Java.Interop.JniArgumentValue[1];
__args[0] = new Java.Interop.JniArgumentValue(listener == null ? IntPtr.Zero : ((Java.Lang.Object)listener).Handle);
try
{
_members.InstanceMethods.InvokeVirtualVoidMethod(__id, this, __args);
}
finally
{
GC.KeepAlive(listener);
}
}

public unsafe void AddOnSliderTouchListener(Slider.IOnSliderTouchListener listener)
{
const string __id = "addOnSliderTouchListener." + _addOnSliderTouchListenerJni;
Java.Interop.JniArgumentValue* __args = stackalloc Java.Interop.JniArgumentValue[1];
__args[0] = new Java.Interop.JniArgumentValue(listener == null ? IntPtr.Zero : ((Java.Lang.Object)listener).Handle);
try
{
_members.InstanceMethods.InvokeVirtualVoidMethod(__id, this, __args);
}
finally
{
GC.KeepAlive(listener);
}
}

public unsafe void RemoveOnSliderTouchListener(Slider.IOnSliderTouchListener listener)
{
const string __id = "removeOnSliderTouchListener." + _removeOnSliderTouchListenerJni;
Java.Interop.JniArgumentValue* __args = stackalloc Java.Interop.JniArgumentValue[1];
__args[0] = new Java.Interop.JniArgumentValue(listener == null ? IntPtr.Zero : ((Java.Lang.Object)listener).Handle);
try
{
_members.InstanceMethods.InvokeVirtualVoidMethod(__id, this, __args);
}
finally
{
GC.KeepAlive(listener);
}
}
}

public partial class RangeSlider
{
const string _addOnChangeListenerJni = "(Lcom/google/android/material/slider/BaseOnChangeListener;)V";
const string _removeOnChangeListenerJni = "(Lcom/google/android/material/slider/BaseOnChangeListener;)V";
const string _addOnSliderTouchListenerJni = "(Lcom/google/android/material/slider/BaseOnSliderTouchListener;)V";
const string _removeOnSliderTouchListenerJni = "(Lcom/google/android/material/slider/BaseOnSliderTouchListener;)V";

public unsafe void AddOnChangeListener(RangeSlider.IOnChangeListener listener)
{
const string __id = "addOnChangeListener." + _addOnChangeListenerJni;
Java.Interop.JniArgumentValue* __args = stackalloc Java.Interop.JniArgumentValue[1];
__args[0] = new Java.Interop.JniArgumentValue(listener == null ? IntPtr.Zero : ((Java.Lang.Object)listener).Handle);
try
{
_members.InstanceMethods.InvokeVirtualVoidMethod(__id, this, __args);
}
finally
{
GC.KeepAlive(listener);
}
}

public unsafe void RemoveOnChangeListener(RangeSlider.IOnChangeListener listener)
{
const string __id = "removeOnChangeListener." + _removeOnChangeListenerJni;
Java.Interop.JniArgumentValue* __args = stackalloc Java.Interop.JniArgumentValue[1];
__args[0] = new Java.Interop.JniArgumentValue(listener == null ? IntPtr.Zero : ((Java.Lang.Object)listener).Handle);
try
{
_members.InstanceMethods.InvokeVirtualVoidMethod(__id, this, __args);
}
finally
{
GC.KeepAlive(listener);
}
}

public unsafe void AddOnSliderTouchListener(RangeSlider.IOnSliderTouchListener listener)
{
const string __id = "addOnSliderTouchListener." + _addOnSliderTouchListenerJni;
Java.Interop.JniArgumentValue* __args = stackalloc Java.Interop.JniArgumentValue[1];
__args[0] = new Java.Interop.JniArgumentValue(listener == null ? IntPtr.Zero : ((Java.Lang.Object)listener).Handle);
try
{
_members.InstanceMethods.InvokeVirtualVoidMethod(__id, this, __args);
}
finally
{
GC.KeepAlive(listener);
}
}

public unsafe void RemoveOnSliderTouchListener(RangeSlider.IOnSliderTouchListener listener)
{
const string __id = "removeOnSliderTouchListener." + _removeOnSliderTouchListenerJni;
Java.Interop.JniArgumentValue* __args = stackalloc Java.Interop.JniArgumentValue[1];
__args[0] = new Java.Interop.JniArgumentValue(listener == null ? IntPtr.Zero : ((Java.Lang.Object)listener).Handle);
try
{
_members.InstanceMethods.InvokeVirtualVoidMethod(__id, this, __args);
}
finally
{
GC.KeepAlive(listener);
}
}
}

Original file line number Diff line number Diff line change
Expand Up @@ -1982,15 +1982,20 @@ Google.Android.Material.Slider.BasicLabelFormatter
Google.Android.Material.Slider.BasicLabelFormatter.BasicLabelFormatter() -> void
Google.Android.Material.Slider.BasicLabelFormatter.GetFormattedValue(float value) -> string!
Google.Android.Material.Slider.BasicLabelFormatter.InterfaceConsts
Google.Android.Material.Slider.IBaseOnChangeListener
Google.Android.Material.Slider.IBaseOnSliderTouchListener
Google.Android.Material.Slider.ILabelFormatter
Google.Android.Material.Slider.ILabelFormatter.GetFormattedValue(float p0) -> string!
Google.Android.Material.Slider.ISliderOrientation
Google.Android.Material.Slider.ITickVisibilityMode
Google.Android.Material.Slider.LabelFormatter
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.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!
Google.Android.Material.Slider.RangeSlider.ChangeEventArgs.P1.get -> float
Google.Android.Material.Slider.RangeSlider.ChangeEventArgs.P2.get -> bool
Google.Android.Material.Slider.RangeSlider.IOnChangeListener
Google.Android.Material.Slider.RangeSlider.IOnChangeListener.OnValueChange(Google.Android.Material.Slider.RangeSlider! p0, float p1, bool p2) -> void
Google.Android.Material.Slider.RangeSlider.IOnSliderTouchListener
Expand All @@ -2000,17 +2005,40 @@ Google.Android.Material.Slider.RangeSlider.RangeSlider(Android.Content.Context!
Google.Android.Material.Slider.RangeSlider.RangeSlider(Android.Content.Context! context, Android.Util.IAttributeSet? attrs) -> void
Google.Android.Material.Slider.RangeSlider.RangeSlider(Android.Content.Context! context, Android.Util.IAttributeSet? attrs, int defStyleAttr) -> void
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.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.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.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!
Google.Android.Material.Slider.Slider.ChangeEventArgs.P1.get -> float
Google.Android.Material.Slider.Slider.ChangeEventArgs.P2.get -> bool
Google.Android.Material.Slider.Slider.IOnChangeListener
Google.Android.Material.Slider.Slider.IOnChangeListener.OnValueChange(Google.Android.Material.Slider.Slider! p0, float p1, bool p2) -> void
Google.Android.Material.Slider.Slider.IOnSliderTouchListener
Google.Android.Material.Slider.Slider.IOnSliderTouchListener.OnStartTrackingTouch(Google.Android.Material.Slider.Slider! p0) -> void
Google.Android.Material.Slider.Slider.IOnSliderTouchListener.OnStopTrackingTouch(Google.Android.Material.Slider.Slider! p0) -> void
Google.Android.Material.Slider.Slider.RemoveOnChangeListener(Google.Android.Material.Slider.Slider.IOnChangeListener! listener) -> void
Google.Android.Material.Slider.Slider.RemoveOnSliderTouchListener(Google.Android.Material.Slider.Slider.IOnSliderTouchListener! listener) -> void
Google.Android.Material.Slider.Slider.SetEnabled(bool p0) -> void
Google.Android.Material.Slider.Slider.Slider(Android.Content.Context! context) -> void
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.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.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
Google.Android.Material.Slider.SliderOrientation
Google.Android.Material.Slider.SliderOrientationConsts
Google.Android.Material.Slider.TickVisibilityMode
Expand Down Expand Up @@ -6721,8 +6749,6 @@ virtual Google.Android.Material.SideSheet.SideSheetDialog.DismissWithSheetAnimat
virtual Google.Android.Material.SideSheet.SideSheetDialog.SetFitsSystemWindows(bool p0) -> void
virtual Google.Android.Material.SideSheet.SideSheetDialog.SetSheetEdge(int p0) -> void
virtual Google.Android.Material.Slider.RangeSlider.ActiveThumbIndex.get -> int
virtual Google.Android.Material.Slider.RangeSlider.AddOnChangeListener(Google.Android.Material.Slider.IBaseOnChangeListener! listener) -> void
virtual Google.Android.Material.Slider.RangeSlider.AddOnSliderTouchListener(Google.Android.Material.Slider.IBaseOnSliderTouchListener! listener) -> void
virtual Google.Android.Material.Slider.RangeSlider.Centered.get -> bool
virtual Google.Android.Material.Slider.RangeSlider.Centered.set -> void
virtual Google.Android.Material.Slider.RangeSlider.ClearOnChangeListeners() -> void
Expand All @@ -6744,8 +6770,6 @@ virtual Google.Android.Material.Slider.RangeSlider.MinSeparation.get -> float
virtual Google.Android.Material.Slider.RangeSlider.MinSeparation.set -> void
virtual Google.Android.Material.Slider.RangeSlider.OnSaveInstanceState() -> Android.OS.IParcelable!
virtual Google.Android.Material.Slider.RangeSlider.PickActiveThumb() -> bool
virtual Google.Android.Material.Slider.RangeSlider.RemoveOnChangeListener(Google.Android.Material.Slider.IBaseOnChangeListener! listener) -> void
virtual Google.Android.Material.Slider.RangeSlider.RemoveOnSliderTouchListener(Google.Android.Material.Slider.IBaseOnSliderTouchListener! listener) -> void
virtual Google.Android.Material.Slider.RangeSlider.ScheduleTooltipTimeout() -> void
virtual Google.Android.Material.Slider.RangeSlider.SetActiveThumbIndex(int index) -> void
virtual Google.Android.Material.Slider.RangeSlider.SetCustomThumbDrawable(Android.Graphics.Drawables.Drawable! drawable) -> void
Expand Down Expand Up @@ -6838,8 +6862,6 @@ virtual Google.Android.Material.Slider.RangeSlider.ValueTo.set -> void
virtual Google.Android.Material.Slider.RangeSlider.Values.get -> System.Collections.Generic.IList<Java.Lang.Float!>!
virtual Google.Android.Material.Slider.RangeSlider.Values.set -> void
virtual Google.Android.Material.Slider.Slider.ActiveThumbIndex.get -> int
virtual Google.Android.Material.Slider.Slider.AddOnChangeListener(Google.Android.Material.Slider.IBaseOnChangeListener! listener) -> void
virtual Google.Android.Material.Slider.Slider.AddOnSliderTouchListener(Google.Android.Material.Slider.IBaseOnSliderTouchListener! listener) -> void
virtual Google.Android.Material.Slider.Slider.Centered.get -> bool
virtual Google.Android.Material.Slider.Slider.Centered.set -> void
virtual Google.Android.Material.Slider.Slider.ClearOnChangeListeners() -> void
Expand All @@ -6859,8 +6881,6 @@ virtual Google.Android.Material.Slider.Slider.LabelBehavior.get -> int
virtual Google.Android.Material.Slider.Slider.LabelBehavior.set -> void
virtual Google.Android.Material.Slider.Slider.MinSeparation.get -> float
virtual Google.Android.Material.Slider.Slider.PickActiveThumb() -> bool
virtual Google.Android.Material.Slider.Slider.RemoveOnChangeListener(Google.Android.Material.Slider.IBaseOnChangeListener! listener) -> void
virtual Google.Android.Material.Slider.Slider.RemoveOnSliderTouchListener(Google.Android.Material.Slider.IBaseOnSliderTouchListener! listener) -> void
virtual Google.Android.Material.Slider.Slider.ScheduleTooltipTimeout() -> void
virtual Google.Android.Material.Slider.Slider.SetActiveThumbIndex(int index) -> void
virtual Google.Android.Material.Slider.Slider.SetCustomThumbDrawable(Android.Graphics.Drawables.Drawable! drawable) -> void
Expand Down
Loading