124 lines
4.5 KiB
C#
124 lines
4.5 KiB
C#
using System;
|
|
|
|
namespace UnityEngine
|
|
{
|
|
// Token: 0x020003B0 RID: 944
|
|
internal class AndroidReflection
|
|
{
|
|
// Token: 0x06003716 RID: 14102 RVA: 0x0005BBBC File Offset: 0x00059DBC
|
|
public static bool IsPrimitive(Type t)
|
|
{
|
|
return t.IsPrimitive;
|
|
}
|
|
|
|
// Token: 0x06003717 RID: 14103 RVA: 0x0005BBD8 File Offset: 0x00059DD8
|
|
public static bool IsAssignableFrom(Type t, Type from)
|
|
{
|
|
return t.IsAssignableFrom(from);
|
|
}
|
|
|
|
// Token: 0x06003718 RID: 14104 RVA: 0x0005BBF4 File Offset: 0x00059DF4
|
|
private static IntPtr GetStaticMethodID(string clazz, string methodName, string signature)
|
|
{
|
|
IntPtr intPtr = AndroidJNISafe.FindClass(clazz);
|
|
IntPtr staticMethodID;
|
|
try
|
|
{
|
|
staticMethodID = AndroidJNISafe.GetStaticMethodID(intPtr, methodName, signature);
|
|
}
|
|
finally
|
|
{
|
|
AndroidJNISafe.DeleteLocalRef(intPtr);
|
|
}
|
|
return staticMethodID;
|
|
}
|
|
|
|
// Token: 0x06003719 RID: 14105 RVA: 0x0005BC34 File Offset: 0x00059E34
|
|
public static IntPtr GetConstructorMember(IntPtr jclass, string signature)
|
|
{
|
|
jvalue[] array = new jvalue[2];
|
|
IntPtr intPtr;
|
|
try
|
|
{
|
|
array[0].l = jclass;
|
|
array[1].l = AndroidJNISafe.NewStringUTF(signature);
|
|
intPtr = AndroidJNISafe.CallStaticObjectMethod(AndroidReflection.s_ReflectionHelperClass, AndroidReflection.s_ReflectionHelperGetConstructorID, array);
|
|
}
|
|
finally
|
|
{
|
|
AndroidJNISafe.DeleteLocalRef(array[1].l);
|
|
}
|
|
return intPtr;
|
|
}
|
|
|
|
// Token: 0x0600371A RID: 14106 RVA: 0x0005BCAC File Offset: 0x00059EAC
|
|
public static IntPtr GetMethodMember(IntPtr jclass, string methodName, string signature, bool isStatic)
|
|
{
|
|
jvalue[] array = new jvalue[4];
|
|
IntPtr intPtr;
|
|
try
|
|
{
|
|
array[0].l = jclass;
|
|
array[1].l = AndroidJNISafe.NewStringUTF(methodName);
|
|
array[2].l = AndroidJNISafe.NewStringUTF(signature);
|
|
array[3].z = isStatic;
|
|
intPtr = AndroidJNISafe.CallStaticObjectMethod(AndroidReflection.s_ReflectionHelperClass, AndroidReflection.s_ReflectionHelperGetMethodID, array);
|
|
}
|
|
finally
|
|
{
|
|
AndroidJNISafe.DeleteLocalRef(array[1].l);
|
|
AndroidJNISafe.DeleteLocalRef(array[2].l);
|
|
}
|
|
return intPtr;
|
|
}
|
|
|
|
// Token: 0x0600371B RID: 14107 RVA: 0x0005BD54 File Offset: 0x00059F54
|
|
public static IntPtr GetFieldMember(IntPtr jclass, string fieldName, string signature, bool isStatic)
|
|
{
|
|
jvalue[] array = new jvalue[4];
|
|
IntPtr intPtr;
|
|
try
|
|
{
|
|
array[0].l = jclass;
|
|
array[1].l = AndroidJNISafe.NewStringUTF(fieldName);
|
|
array[2].l = AndroidJNISafe.NewStringUTF(signature);
|
|
array[3].z = isStatic;
|
|
intPtr = AndroidJNISafe.CallStaticObjectMethod(AndroidReflection.s_ReflectionHelperClass, AndroidReflection.s_ReflectionHelperGetFieldID, array);
|
|
}
|
|
finally
|
|
{
|
|
AndroidJNISafe.DeleteLocalRef(array[1].l);
|
|
AndroidJNISafe.DeleteLocalRef(array[2].l);
|
|
}
|
|
return intPtr;
|
|
}
|
|
|
|
// Token: 0x0600371C RID: 14108 RVA: 0x0005BDFC File Offset: 0x00059FFC
|
|
public static IntPtr NewProxyInstance(int delegateHandle, IntPtr interfaze)
|
|
{
|
|
jvalue[] array = new jvalue[2];
|
|
array[0].i = delegateHandle;
|
|
array[1].l = interfaze;
|
|
return AndroidJNISafe.CallStaticObjectMethod(AndroidReflection.s_ReflectionHelperClass, AndroidReflection.s_ReflectionHelperNewProxyInstance, array);
|
|
}
|
|
|
|
// Token: 0x04000C8E RID: 3214
|
|
private const string RELECTION_HELPER_CLASS_NAME = "com/unity3d/player/ReflectionHelper";
|
|
|
|
// Token: 0x04000C8F RID: 3215
|
|
private static readonly GlobalJavaObjectRef s_ReflectionHelperClass = new GlobalJavaObjectRef(AndroidJNISafe.FindClass("com/unity3d/player/ReflectionHelper"));
|
|
|
|
// Token: 0x04000C90 RID: 3216
|
|
private static readonly IntPtr s_ReflectionHelperGetConstructorID = AndroidReflection.GetStaticMethodID("com/unity3d/player/ReflectionHelper", "getConstructorID", "(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/reflect/Constructor;");
|
|
|
|
// Token: 0x04000C91 RID: 3217
|
|
private static readonly IntPtr s_ReflectionHelperGetMethodID = AndroidReflection.GetStaticMethodID("com/unity3d/player/ReflectionHelper", "getMethodID", "(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;Z)Ljava/lang/reflect/Method;");
|
|
|
|
// Token: 0x04000C92 RID: 3218
|
|
private static readonly IntPtr s_ReflectionHelperGetFieldID = AndroidReflection.GetStaticMethodID("com/unity3d/player/ReflectionHelper", "getFieldID", "(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;Z)Ljava/lang/reflect/Field;");
|
|
|
|
// Token: 0x04000C93 RID: 3219
|
|
private static readonly IntPtr s_ReflectionHelperNewProxyInstance = AndroidReflection.GetStaticMethodID("com/unity3d/player/ReflectionHelper", "newProxyInstance", "(ILjava/lang/Class;)Ljava/lang/Object;");
|
|
}
|
|
}
|