public virtual unsafe bool DownloadFile(global::System.IO.Stream p0, string p1, global::Com.Bpn.Payguardian.Android.Device.Rba.Ingenico_FileWrite.EncodeFormat p2, bool p3, bool p4)
        {
            if (id_DownloadFile_Ljava_io_InputStream_Ljava_lang_String_Lcom_bpn_payguardian_android_device_rba_Ingenico_FileWrite_EncodeFormat_ZZ == IntPtr.Zero)
            {
                id_DownloadFile_Ljava_io_InputStream_Ljava_lang_String_Lcom_bpn_payguardian_android_device_rba_Ingenico_FileWrite_EncodeFormat_ZZ = JNIEnv.GetMethodID(class_ref, "DownloadFile", "(Ljava/io/InputStream;Ljava/lang/String;Lcom/bpn/payguardian/android/device/rba/Ingenico_FileWrite$EncodeFormat;ZZ)Z");
            }
            IntPtr native_p0 = global::Android.Runtime.InputStreamAdapter.ToLocalJniHandle(p0);
            IntPtr native_p1 = JNIEnv.NewString(p1);

            try {
                JValue *__args = stackalloc JValue [5];
                __args [0] = new JValue(native_p0);
                __args [1] = new JValue(native_p1);
                __args [2] = new JValue(p2);
                __args [3] = new JValue(p3);
                __args [4] = new JValue(p4);

                bool __ret;
                if (((object)this).GetType() == ThresholdType)
                {
                    __ret = JNIEnv.CallBooleanMethod(((global::Java.Lang.Object) this).Handle, id_DownloadFile_Ljava_io_InputStream_Ljava_lang_String_Lcom_bpn_payguardian_android_device_rba_Ingenico_FileWrite_EncodeFormat_ZZ, __args);
                }
                else
                {
                    __ret = JNIEnv.CallNonvirtualBooleanMethod(((global::Java.Lang.Object) this).Handle, ThresholdClass, JNIEnv.GetMethodID(ThresholdClass, "DownloadFile", "(Ljava/io/InputStream;Ljava/lang/String;Lcom/bpn/payguardian/android/device/rba/Ingenico_FileWrite$EncodeFormat;ZZ)Z"), __args);
                }
                return(__ret);
            } finally {
                JNIEnv.DeleteLocalRef(native_p0);
                JNIEnv.DeleteLocalRef(native_p1);
            }
        }
            public static unsafe global::Com.Bpn.Payguardian.Android.Device.Rba.Ingenico_FileWrite.EncodeFormat ValueOf(string p0)
            {
                if (id_valueOf_Ljava_lang_String_ == IntPtr.Zero)
                {
                    id_valueOf_Ljava_lang_String_ = JNIEnv.GetStaticMethodID(class_ref, "valueOf", "(Ljava/lang/String;)Lcom/bpn/payguardian/android/device/rba/Ingenico_FileWrite$EncodeFormat;");
                }
                IntPtr native_p0 = JNIEnv.NewString(p0);

                try {
                    JValue *__args = stackalloc JValue [1];
                    __args [0] = new JValue(native_p0);
                    global::Com.Bpn.Payguardian.Android.Device.Rba.Ingenico_FileWrite.EncodeFormat __ret = global::Java.Lang.Object.GetObject <global::Com.Bpn.Payguardian.Android.Device.Rba.Ingenico_FileWrite.EncodeFormat> (JNIEnv.CallStaticObjectMethod(class_ref, id_valueOf_Ljava_lang_String_, __args), JniHandleOwnership.TransferLocalRef);
                    return(__ret);
                } finally {
                    JNIEnv.DeleteLocalRef(native_p0);
                }
            }
        static bool n_DownloadFile_Ljava_io_InputStream_Ljava_lang_String_Lcom_bpn_payguardian_android_device_rba_Ingenico_FileWrite_EncodeFormat_ZZ(IntPtr jnienv, IntPtr native__this, IntPtr native_p0, IntPtr native_p1, IntPtr native_p2, bool p3, bool p4)
        {
            global::Com.Bpn.Payguardian.Android.Device.Rba.Ingenico_FileWrite __this = global::Java.Lang.Object.GetObject <global::Com.Bpn.Payguardian.Android.Device.Rba.Ingenico_FileWrite> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
            System.IO.Stream p0 = global::Android.Runtime.InputStreamInvoker.FromJniHandle(native_p0, JniHandleOwnership.DoNotTransfer);
            string           p1 = JNIEnv.GetString(native_p1, JniHandleOwnership.DoNotTransfer);

            global::Com.Bpn.Payguardian.Android.Device.Rba.Ingenico_FileWrite.EncodeFormat p2 = global::Java.Lang.Object.GetObject <global::Com.Bpn.Payguardian.Android.Device.Rba.Ingenico_FileWrite.EncodeFormat> (native_p2, JniHandleOwnership.DoNotTransfer);
            bool __ret = __this.DownloadFile(p0, p1, p2, p3, p4);

            return(__ret);
        }