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() + " "; } // 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); } }