public static IntPtr InvokeJavaProxyMethod(AndroidJavaProxy proxy, IntPtr jmethodName, IntPtr jargs) { int num = 0; if (jargs != IntPtr.Zero) { num = AndroidJNISafe.GetArrayLength(jargs); } AndroidJavaObject[] array = new AndroidJavaObject[num]; for (int i = 0; i < num; i++) { IntPtr objectArrayElement = AndroidJNISafe.GetObjectArrayElement(jargs, i); array[i] = ((!(objectArrayElement != IntPtr.Zero)) ? null : new AndroidJavaObject(objectArrayElement)); } IntPtr result; using (AndroidJavaObject androidJavaObject = proxy.Invoke(AndroidJNI.GetStringUTFChars(jmethodName), array)) { if (androidJavaObject == null) { result = IntPtr.Zero; } else { result = AndroidJNI.NewLocalRef(androidJavaObject.GetRawObject()); } } return(result); }
public static IntPtr InvokeJavaProxyMethod(AndroidJavaProxy proxy, IntPtr jmethodName, IntPtr jargs) { int arrayLength = 0; if (jargs != IntPtr.Zero) { arrayLength = AndroidJNISafe.GetArrayLength(jargs); } AndroidJavaObject[] javaArgs = new AndroidJavaObject[arrayLength]; for (int i = 0; i < arrayLength; i++) { IntPtr objectArrayElement = AndroidJNISafe.GetObjectArrayElement(jargs, i); javaArgs[i] = !(objectArrayElement != IntPtr.Zero) ? null : new AndroidJavaObject(objectArrayElement); } using (AndroidJavaObject obj2 = proxy.Invoke(AndroidJNI.GetStringUTFChars(jmethodName), javaArgs)) { if (obj2 == null) { return(IntPtr.Zero); } return(AndroidJNI.NewLocalRef(obj2.GetRawObject())); } }
public static IntPtr InvokeJavaProxyMethod(AndroidJavaProxy proxy, IntPtr jmethodName, IntPtr jargs) { int length = 0; if (jargs != IntPtr.Zero) { length = AndroidJNISafe.GetArrayLength(jargs); } AndroidJavaObject[] javaArgs = new AndroidJavaObject[length]; for (int index = 0; index < length; ++index) { IntPtr objectArrayElement = AndroidJNISafe.GetObjectArrayElement(jargs, index); javaArgs[index] = !(objectArrayElement != IntPtr.Zero) ? (AndroidJavaObject)null : new AndroidJavaObject(objectArrayElement); } using (AndroidJavaObject androidJavaObject = proxy.Invoke(AndroidJNI.GetStringUTFChars(jmethodName), javaArgs)) { if (androidJavaObject == null) { return(IntPtr.Zero); } return(AndroidJNI.NewLocalRef(androidJavaObject.GetRawObject())); } }
internal IntPtr GetRawProxy() { IntPtr intPtr = IntPtr.Zero; bool flag = this.proxyObject != IntPtr.Zero; if (flag) { intPtr = AndroidJNI.NewLocalRef(this.proxyObject); bool flag2 = intPtr == IntPtr.Zero; if (flag2) { AndroidJNI.DeleteWeakGlobalRef(this.proxyObject); this.proxyObject = IntPtr.Zero; } } bool flag3 = intPtr == IntPtr.Zero; if (flag3) { intPtr = AndroidJNIHelper.CreateJavaProxy(this); this.proxyObject = AndroidJNI.NewWeakGlobalRef(intPtr); } return(intPtr); }