public unsafe GsonResponseParser(global::GoogleGson.Gson p0)
            : base(IntPtr.Zero, JniHandleOwnership.DoNotTransfer)
        {
            if (((global::Java.Lang.Object) this).Handle != IntPtr.Zero)
            {
                return;
            }

            try {
                JValue *__args = stackalloc JValue [1];
                __args [0] = new JValue(p0);
                if (((object)this).GetType() != typeof(GsonResponseParser))
                {
                    SetHandle(
                        global::Android.Runtime.JNIEnv.StartCreateInstance(((object)this).GetType(), "(Lcom/google/gson/Gson;)V", __args),
                        JniHandleOwnership.TransferLocalRef);
                    global::Android.Runtime.JNIEnv.FinishCreateInstance(((global::Java.Lang.Object) this).Handle, "(Lcom/google/gson/Gson;)V", __args);
                    return;
                }

                if (id_ctor_Lcom_google_gson_Gson_ == IntPtr.Zero)
                {
                    id_ctor_Lcom_google_gson_Gson_ = JNIEnv.GetMethodID(class_ref, "<init>", "(Lcom/google/gson/Gson;)V");
                }
                SetHandle(
                    global::Android.Runtime.JNIEnv.StartCreateInstance(class_ref, id_ctor_Lcom_google_gson_Gson_, __args),
                    JniHandleOwnership.TransferLocalRef);
                JNIEnv.FinishCreateInstance(((global::Java.Lang.Object) this).Handle, class_ref, id_ctor_Lcom_google_gson_Gson_, __args);
            } finally {
            }
        }
        static IntPtr n_Create_Lcom_google_gson_Gson_Lcom_google_gson_reflect_TypeToken_(IntPtr jnienv, IntPtr native__this, IntPtr native_p0, IntPtr native_p1)
        {
            global::Com.Applozic.Mobicommons.Json.ArrayAdapterFactory __this = global::Java.Lang.Object.GetObject <global::Com.Applozic.Mobicommons.Json.ArrayAdapterFactory> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
            global::GoogleGson.Gson p0 = global::Java.Lang.Object.GetObject <global::GoogleGson.Gson> (native_p0, JniHandleOwnership.DoNotTransfer);
            global::GoogleGson.Reflect.TypeToken p1 = global::Java.Lang.Object.GetObject <global::GoogleGson.Reflect.TypeToken> (native_p1, JniHandleOwnership.DoNotTransfer);
            IntPtr __ret = JNIEnv.ToLocalJniHandle(__this.Create(p0, p1));

            return(__ret);
        }
        public virtual unsafe global::GoogleGson.TypeAdapter Create(global::GoogleGson.Gson p0, global::GoogleGson.Reflect.TypeToken p1)
        {
            if (id_create_Lcom_google_gson_Gson_Lcom_google_gson_reflect_TypeToken_ == IntPtr.Zero)
            {
                id_create_Lcom_google_gson_Gson_Lcom_google_gson_reflect_TypeToken_ = JNIEnv.GetMethodID(class_ref, "create", "(Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter;");
            }
            try {
                JValue *__args = stackalloc JValue [2];
                __args [0] = new JValue(p0);
                __args [1] = new JValue(p1);

                global::GoogleGson.TypeAdapter __ret;
                if (((object)this).GetType() == ThresholdType)
                {
                    __ret = global::Java.Lang.Object.GetObject <global::GoogleGson.TypeAdapter> (JNIEnv.CallObjectMethod(((global::Java.Lang.Object) this).Handle, id_create_Lcom_google_gson_Gson_Lcom_google_gson_reflect_TypeToken_, __args), JniHandleOwnership.TransferLocalRef);
                }
                else
                {
                    __ret = global::Java.Lang.Object.GetObject <global::GoogleGson.TypeAdapter> (JNIEnv.CallNonvirtualObjectMethod(((global::Java.Lang.Object) this).Handle, ThresholdClass, JNIEnv.GetMethodID(ThresholdClass, "create", "(Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter;"), __args), JniHandleOwnership.TransferLocalRef);
                }
                return(__ret);
            } finally {
            }
        }