Files
2026-06-04 11:42:34 +02:00

131 lines
3.8 KiB
C#

using System;
using System.Reflection;
namespace UnityEngine
{
// Token: 0x020003AF RID: 943
public class AndroidJavaProxy
{
// Token: 0x0600370C RID: 14092 RVA: 0x0005B89C File Offset: 0x00059A9C
public AndroidJavaProxy(string javaInterface)
: this(new AndroidJavaClass(javaInterface))
{
}
// Token: 0x0600370D RID: 14093 RVA: 0x0005B8AC File Offset: 0x00059AAC
public AndroidJavaProxy(AndroidJavaClass javaInterface)
{
this.javaInterface = javaInterface;
}
// Token: 0x0600370E RID: 14094 RVA: 0x0005B8BC File Offset: 0x00059ABC
public virtual AndroidJavaObject Invoke(string methodName, object[] args)
{
Exception ex = null;
BindingFlags bindingFlags = BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic;
Type[] array = new Type[args.Length];
for (int i = 0; i < args.Length; i++)
{
array[i] = ((args[i] != null) ? args[i].GetType() : typeof(AndroidJavaObject));
}
try
{
MethodInfo method = base.GetType().GetMethod(methodName, bindingFlags, null, array, null);
if (method != null)
{
return _AndroidJNIHelper.Box(method.Invoke(this, args));
}
}
catch (TargetInvocationException ex2)
{
ex = ex2.InnerException;
}
catch (Exception ex3)
{
ex = ex3;
}
string[] array2 = new string[args.Length];
for (int j = 0; j < array.Length; j++)
{
array2[j] = array[j].ToString();
}
if (ex != null)
{
throw new TargetInvocationException(string.Concat(new object[]
{
base.GetType(),
".",
methodName,
"(",
string.Join(",", array2),
")"
}), ex);
}
throw new Exception(string.Concat(new object[]
{
"No such proxy method: ",
base.GetType(),
".",
methodName,
"(",
string.Join(",", array2),
")"
}));
}
// Token: 0x0600370F RID: 14095 RVA: 0x0005BA48 File Offset: 0x00059C48
public virtual AndroidJavaObject Invoke(string methodName, AndroidJavaObject[] javaArgs)
{
object[] array = new object[javaArgs.Length];
for (int i = 0; i < javaArgs.Length; i++)
{
array[i] = _AndroidJNIHelper.Unbox(javaArgs[i]);
}
return this.Invoke(methodName, array);
}
// Token: 0x06003710 RID: 14096 RVA: 0x0005BA90 File Offset: 0x00059C90
public virtual bool equals(AndroidJavaObject obj)
{
IntPtr intPtr = ((obj != null) ? obj.GetRawObject() : IntPtr.Zero);
return AndroidJNI.IsSameObject(this.GetProxy().GetRawObject(), intPtr);
}
// Token: 0x06003711 RID: 14097 RVA: 0x0005BAD0 File Offset: 0x00059CD0
public virtual int hashCode()
{
jvalue[] array = new jvalue[1];
array[0].l = this.GetProxy().GetRawObject();
return AndroidJNISafe.CallStaticIntMethod(AndroidJavaProxy.s_JavaLangSystemClass, AndroidJavaProxy.s_HashCodeMethodID, array);
}
// Token: 0x06003712 RID: 14098 RVA: 0x0005BB18 File Offset: 0x00059D18
public virtual string toString()
{
return this.ToString() + " <c# proxy java object>";
}
// Token: 0x06003713 RID: 14099 RVA: 0x0005BB40 File Offset: 0x00059D40
internal AndroidJavaObject GetProxy()
{
if (this.proxyObject == null)
{
this.proxyObject = AndroidJavaObject.AndroidJavaObjectDeleteLocalRef(AndroidJNIHelper.CreateJavaProxy(this));
}
return this.proxyObject;
}
// Token: 0x04000C8A RID: 3210
public readonly AndroidJavaClass javaInterface;
// Token: 0x04000C8B RID: 3211
internal AndroidJavaObject proxyObject;
// Token: 0x04000C8C RID: 3212
private static readonly GlobalJavaObjectRef s_JavaLangSystemClass = new GlobalJavaObjectRef(AndroidJNISafe.FindClass("java/lang/System"));
// Token: 0x04000C8D RID: 3213
private static readonly IntPtr s_HashCodeMethodID = AndroidJNIHelper.GetMethodID(AndroidJavaProxy.s_JavaLangSystemClass, "identityHashCode", "(Ljava/lang/Object;)I", true);
}
}