public unsafe ImageVideoDataLoadProvider(global::Com.Bumptech.Glide.Provider.IDataLoadProvider p0, global::Com.Bumptech.Glide.Provider.IDataLoadProvider p1)
            : base(IntPtr.Zero, JniHandleOwnership.DoNotTransfer)
        {
            if (Handle != IntPtr.Zero)
            {
                return;
            }

            try {
                JValue *__args = stackalloc JValue [2];
                __args [0] = new JValue(p0);
                __args [1] = new JValue(p1);
                if (GetType() != typeof(ImageVideoDataLoadProvider))
                {
                    SetHandle(
                        global::Android.Runtime.JNIEnv.StartCreateInstance(GetType(), "(Lcom/bumptech/glide/provider/DataLoadProvider;Lcom/bumptech/glide/provider/DataLoadProvider;)V", __args),
                        JniHandleOwnership.TransferLocalRef);
                    global::Android.Runtime.JNIEnv.FinishCreateInstance(Handle, "(Lcom/bumptech/glide/provider/DataLoadProvider;Lcom/bumptech/glide/provider/DataLoadProvider;)V", __args);
                    return;
                }

                if (id_ctor_Lcom_bumptech_glide_provider_DataLoadProvider_Lcom_bumptech_glide_provider_DataLoadProvider_ == IntPtr.Zero)
                {
                    id_ctor_Lcom_bumptech_glide_provider_DataLoadProvider_Lcom_bumptech_glide_provider_DataLoadProvider_ = JNIEnv.GetMethodID(class_ref, "<init>", "(Lcom/bumptech/glide/provider/DataLoadProvider;Lcom/bumptech/glide/provider/DataLoadProvider;)V");
                }
                SetHandle(
                    global::Android.Runtime.JNIEnv.StartCreateInstance(class_ref, id_ctor_Lcom_bumptech_glide_provider_DataLoadProvider_Lcom_bumptech_glide_provider_DataLoadProvider_, __args),
                    JniHandleOwnership.TransferLocalRef);
                JNIEnv.FinishCreateInstance(Handle, class_ref, id_ctor_Lcom_bumptech_glide_provider_DataLoadProvider_Lcom_bumptech_glide_provider_DataLoadProvider_, __args);
            } finally {
            }
        }
 static void n_Register_Ljava_lang_Class_Ljava_lang_Class_Lcom_bumptech_glide_provider_DataLoadProvider_(IntPtr jnienv, IntPtr native__this, IntPtr native_p0, IntPtr native_p1, IntPtr native_p2)
 {
     global::Com.Bumptech.Glide.Provider.DataLoadProviderRegistry __this = global::Java.Lang.Object.GetObject <global::Com.Bumptech.Glide.Provider.DataLoadProviderRegistry> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
     global::Java.Lang.Class p0 = global::Java.Lang.Object.GetObject <global::Java.Lang.Class> (native_p0, JniHandleOwnership.DoNotTransfer);
     global::Java.Lang.Class p1 = global::Java.Lang.Object.GetObject <global::Java.Lang.Class> (native_p1, JniHandleOwnership.DoNotTransfer);
     global::Com.Bumptech.Glide.Provider.IDataLoadProvider p2 = (global::Com.Bumptech.Glide.Provider.IDataLoadProvider)global::Java.Lang.Object.GetObject <global::Com.Bumptech.Glide.Provider.IDataLoadProvider> (native_p2, JniHandleOwnership.DoNotTransfer);
     __this.Register(p0, p1, p2);
 }
        public virtual unsafe void Register(global::Java.Lang.Class p0, global::Java.Lang.Class p1, global::Com.Bumptech.Glide.Provider.IDataLoadProvider p2)
        {
            if (id_register_Ljava_lang_Class_Ljava_lang_Class_Lcom_bumptech_glide_provider_DataLoadProvider_ == IntPtr.Zero)
            {
                id_register_Ljava_lang_Class_Ljava_lang_Class_Lcom_bumptech_glide_provider_DataLoadProvider_ = JNIEnv.GetMethodID(class_ref, "register", "(Ljava/lang/Class;Ljava/lang/Class;Lcom/bumptech/glide/provider/DataLoadProvider;)V");
            }
            try {
                JValue *__args = stackalloc JValue [3];
                __args [0] = new JValue(p0);
                __args [1] = new JValue(p1);
                __args [2] = new JValue(p2);

                if (GetType() == ThresholdType)
                {
                    JNIEnv.CallVoidMethod(Handle, id_register_Ljava_lang_Class_Ljava_lang_Class_Lcom_bumptech_glide_provider_DataLoadProvider_, __args);
                }
                else
                {
                    JNIEnv.CallNonvirtualVoidMethod(Handle, ThresholdClass, JNIEnv.GetMethodID(ThresholdClass, "register", "(Ljava/lang/Class;Ljava/lang/Class;Lcom/bumptech/glide/provider/DataLoadProvider;)V"), __args);
                }
            } finally {
            }
        }
        public unsafe FixedLoadProvider(global::Com.Bumptech.Glide.Load.Model.IModelLoader p0, global::Com.Bumptech.Glide.Load.Resource.Transcode.IResourceTranscoder p1, global::Com.Bumptech.Glide.Provider.IDataLoadProvider p2)
            : base(IntPtr.Zero, JniHandleOwnership.DoNotTransfer)
        {
            if (Handle != IntPtr.Zero)
            {
                return;
            }

            try {
                JValue *__args = stackalloc JValue [3];
                __args [0] = new JValue(p0);
                __args [1] = new JValue(p1);
                __args [2] = new JValue(p2);
                if (GetType() != typeof(FixedLoadProvider))
                {
                    SetHandle(
                        global::Android.Runtime.JNIEnv.StartCreateInstance(GetType(), "(Lcom/bumptech/glide/load/model/ModelLoader;Lcom/bumptech/glide/load/resource/transcode/ResourceTranscoder;Lcom/bumptech/glide/provider/DataLoadProvider;)V", __args),
                        JniHandleOwnership.TransferLocalRef);
                    global::Android.Runtime.JNIEnv.FinishCreateInstance(Handle, "(Lcom/bumptech/glide/load/model/ModelLoader;Lcom/bumptech/glide/load/resource/transcode/ResourceTranscoder;Lcom/bumptech/glide/provider/DataLoadProvider;)V", __args);
                    return;
                }

                if (id_ctor_Lcom_bumptech_glide_load_model_ModelLoader_Lcom_bumptech_glide_load_resource_transcode_ResourceTranscoder_Lcom_bumptech_glide_provider_DataLoadProvider_ == IntPtr.Zero)
                {
                    id_ctor_Lcom_bumptech_glide_load_model_ModelLoader_Lcom_bumptech_glide_load_resource_transcode_ResourceTranscoder_Lcom_bumptech_glide_provider_DataLoadProvider_ = JNIEnv.GetMethodID(class_ref, "<init>", "(Lcom/bumptech/glide/load/model/ModelLoader;Lcom/bumptech/glide/load/resource/transcode/ResourceTranscoder;Lcom/bumptech/glide/provider/DataLoadProvider;)V");
                }
                SetHandle(
                    global::Android.Runtime.JNIEnv.StartCreateInstance(class_ref, id_ctor_Lcom_bumptech_glide_load_model_ModelLoader_Lcom_bumptech_glide_load_resource_transcode_ResourceTranscoder_Lcom_bumptech_glide_provider_DataLoadProvider_, __args),
                    JniHandleOwnership.TransferLocalRef);
                JNIEnv.FinishCreateInstance(Handle, class_ref, id_ctor_Lcom_bumptech_glide_load_model_ModelLoader_Lcom_bumptech_glide_load_resource_transcode_ResourceTranscoder_Lcom_bumptech_glide_provider_DataLoadProvider_, __args);
            } finally {
            }
        }
 static IntPtr n_GetCacheDecoder(IntPtr jnienv, IntPtr native__this)
 {
     global::Com.Bumptech.Glide.Provider.IDataLoadProvider __this = global::Java.Lang.Object.GetObject <global::Com.Bumptech.Glide.Provider.IDataLoadProvider> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
     return(JNIEnv.ToLocalJniHandle(__this.CacheDecoder));
 }