Skip to content
This repository was archived by the owner on Jun 20, 2023. It is now read-only.

Commit 4e0cbee

Browse files
committed
Manually add jni bindings for missing ctors
SpringAnimation and FlingAnimation were missing bindings for some ctors due to them having a generic type parameter. This adds them.
1 parent e44f3e9 commit 4e0cbee

File tree

2 files changed

+87
-0
lines changed

2 files changed

+87
-0
lines changed
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
using System;
2+
using Android.Runtime;
3+
4+
namespace Android.Support.Animation
5+
{
6+
internal static class __JniCtorUtil
7+
{
8+
internal static unsafe void CtorImpl(Java.Lang.Object sender, Type classType, IntPtr classRef, IntPtr methodId, string jniSignature, JValue* args, Action<IntPtr, JniHandleOwnership> setHandle)
9+
{
10+
if (sender.Handle != IntPtr.Zero)
11+
return;
12+
13+
try
14+
{
15+
if (((object)sender).GetType() != classType)
16+
{
17+
setHandle(
18+
global::Android.Runtime.JNIEnv.StartCreateInstance(((object)sender).GetType(), jniSignature, args),
19+
JniHandleOwnership.TransferLocalRef);
20+
global::Android.Runtime.JNIEnv.FinishCreateInstance(((global::Java.Lang.Object)sender).Handle, jniSignature, args);
21+
return;
22+
}
23+
24+
if (methodId == IntPtr.Zero)
25+
methodId = JNIEnv.GetMethodID(classRef, "<init>", jniSignature);
26+
setHandle(
27+
global::Android.Runtime.JNIEnv.StartCreateInstance(classRef, methodId, args),
28+
JniHandleOwnership.TransferLocalRef);
29+
JNIEnv.FinishCreateInstance(((global::Java.Lang.Object)sender).Handle, classRef, methodId, args);
30+
}
31+
finally
32+
{
33+
}
34+
}
35+
}
36+
37+
public partial class SpringAnimation
38+
{
39+
private const string CTOR_1 = "(Ljava/lang/Object;Landroid/support/animation/FloatPropertyCompat;)V";
40+
static IntPtr id_ctor_1;
41+
42+
[Register(".ctor", CTOR_1, "")]
43+
public unsafe SpringAnimation(global::Java.Lang.Object @object, FloatPropertyCompat @property)
44+
: base (IntPtr.Zero, JniHandleOwnership.DoNotTransfer)
45+
{
46+
JValue* __args = stackalloc JValue[2];
47+
__args[0] = new JValue(@object);
48+
__args[1] = new JValue(@property);
49+
50+
__JniCtorUtil.CtorImpl(this, typeof(SpringAnimation), class_ref, id_ctor_1, CTOR_1, __args, SetHandle);
51+
}
52+
53+
54+
private const string JNI_CTOR_2 = "(Ljava/lang/Object;Landroid/support/animation/FloatPropertyCompat;F)V";
55+
static IntPtr id_ctor_2;
56+
57+
[Register(".ctor", JNI_CTOR_2, "")]
58+
public unsafe SpringAnimation(global::Java.Lang.Object @object, FloatPropertyCompat @property, float finalPosition)
59+
: base(IntPtr.Zero, JniHandleOwnership.DoNotTransfer)
60+
{
61+
JValue* __args = stackalloc JValue[3];
62+
__args[0] = new JValue(@object);
63+
__args[1] = new JValue(@property);
64+
__args[2] = new JValue(finalPosition);
65+
66+
__JniCtorUtil.CtorImpl(this, typeof(SpringAnimation), class_ref, id_ctor_2, JNI_CTOR_2, __args, SetHandle);
67+
}
68+
}
69+
70+
public partial class FlingAnimation
71+
{
72+
private const string JNI_CTOR_1 = "(Ljava/lang/Object;Landroid/support/animation/FloatPropertyCompat;)V";
73+
static IntPtr id_ctor_1;
74+
75+
[Register(".ctor", JNI_CTOR_1, "")]
76+
public unsafe FlingAnimation(global::Java.Lang.Object @object, FloatPropertyCompat @property)
77+
: base (IntPtr.Zero, JniHandleOwnership.DoNotTransfer)
78+
{
79+
JValue* __args = stackalloc JValue[2];
80+
__args[0] = new JValue(@object);
81+
__args[1] = new JValue(@property);
82+
83+
__JniCtorUtil.CtorImpl(this, typeof(FlingAnimation), class_ref, id_ctor_1, JNI_CTOR_1, __args, SetHandle);
84+
}
85+
}
86+
}

support-dynamic-animation/source/DynamicAnimation.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
</ItemGroup>
5252
<ItemGroup>
5353
<Compile Include="Properties\AssemblyInfo.cs" />
54+
<Compile Include="Additions\Additions.cs" />
5455
</ItemGroup>
5556
<ItemGroup>
5657
<TransformFile Include="Transforms\EnumFields.xml" />

0 commit comments

Comments
 (0)