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);
}