I have a problem with converting Java enum to C# enum when binding a Java native library. I have already tried:
- https://learn.microsoft.com/en-us/xamarin/android/platform/binding-java-library/customizing-bindings/java-bindings-metadata#enumfieldsxml-and-enummethodsxml
- Xamarin Android Mapping Java.Lang.Enum to C# Enum
I have class Receipt and enum Status. Enum Status is nested inside Receipt class(Java code):
public class Receipt {
public enum Status {
created,
processing,
declined,
approved,
expired,
reversed;
}
public final Status status;
}
Class Receipt has a field with Status type. When I try to build it with enum mapping it doesn't generate properly. It generates class Status instead of enum(public sealed partial class Status : global::Java.Lang.Enum)
and what is more important it doesn't generate field status for class Receipt at all(public final Status status
).
EnumFields.xml
<enum-field-mappings>
<mapping jni-class="com/cloudipsp/android/Status" clr-enum-type="Com.Cloudipsp.Android.Status">
<field jni-name="created" clr-name="created" value="0" />
<field jni-name="processing" clr-name="processing" value="1" />
<field jni-name="declined" clr-name="declined" value="2" />
<field jni-name="approved" clr-name="approved" value="3" />
<field jni-name="expired" clr-name="expired" value="4" />
<field jni-name="reversed" clr-name="reversed" value="5" />
</mapping>
</enum-field-mappings>```
I would be grateful for any help.