public unsafe SearchOption(global::Com.Moodstocks.Android.Scanner __self)
                : base(IntPtr.Zero, JniHandleOwnership.DoNotTransfer)
            {
                if (Handle != IntPtr.Zero)
                {
                    return;
                }

                try {
                    JValue *__args = stackalloc JValue [1];
                    __args [0] = new JValue(__self);
                    if (GetType() != typeof(SearchOption))
                    {
                        SetHandle(
                            global::Android.Runtime.JNIEnv.StartCreateInstance(GetType(), "(L" + global::Android.Runtime.JNIEnv.GetJniName(GetType().DeclaringType) + ";)V", __args),
                            JniHandleOwnership.TransferLocalRef);
                        global::Android.Runtime.JNIEnv.FinishCreateInstance(Handle, "(L" + global::Android.Runtime.JNIEnv.GetJniName(GetType().DeclaringType) + ";)V", __args);
                        return;
                    }

                    if (id_ctor_Lcom_moodstocks_android_Scanner_ == IntPtr.Zero)
                    {
                        id_ctor_Lcom_moodstocks_android_Scanner_ = JNIEnv.GetMethodID(class_ref, "<init>", "(Lcom/moodstocks/android/Scanner;)V");
                    }
                    SetHandle(
                        global::Android.Runtime.JNIEnv.StartCreateInstance(class_ref, id_ctor_Lcom_moodstocks_android_Scanner_, __args),
                        JniHandleOwnership.TransferLocalRef);
                    JNIEnv.FinishCreateInstance(Handle, class_ref, id_ctor_Lcom_moodstocks_android_Scanner_, __args);
                } finally {
                }
            }
        public unsafe AutoScannerSession(global::Android.App.Activity p0, global::Com.Moodstocks.Android.Scanner p1, global::Com.Moodstocks.Android.AutoScannerSession.IListener p2, global::Android.Views.SurfaceView p3)
            : base(IntPtr.Zero, JniHandleOwnership.DoNotTransfer)
        {
            if (Handle != IntPtr.Zero)
            {
                return;
            }

            try {
                JValue *__args = stackalloc JValue [4];
                __args [0] = new JValue(p0);
                __args [1] = new JValue(p1);
                __args [2] = new JValue(p2);
                __args [3] = new JValue(p3);
                if (GetType() != typeof(AutoScannerSession))
                {
                    SetHandle(
                        global::Android.Runtime.JNIEnv.StartCreateInstance(GetType(), "(Landroid/app/Activity;Lcom/moodstocks/android/Scanner;Lcom/moodstocks/android/AutoScannerSession$Listener;Landroid/view/SurfaceView;)V", __args),
                        JniHandleOwnership.TransferLocalRef);
                    global::Android.Runtime.JNIEnv.FinishCreateInstance(Handle, "(Landroid/app/Activity;Lcom/moodstocks/android/Scanner;Lcom/moodstocks/android/AutoScannerSession$Listener;Landroid/view/SurfaceView;)V", __args);
                    return;
                }

                if (id_ctor_Landroid_app_Activity_Lcom_moodstocks_android_Scanner_Lcom_moodstocks_android_AutoScannerSession_Listener_Landroid_view_SurfaceView_ == IntPtr.Zero)
                {
                    id_ctor_Landroid_app_Activity_Lcom_moodstocks_android_Scanner_Lcom_moodstocks_android_AutoScannerSession_Listener_Landroid_view_SurfaceView_ = JNIEnv.GetMethodID(class_ref, "<init>", "(Landroid/app/Activity;Lcom/moodstocks/android/Scanner;Lcom/moodstocks/android/AutoScannerSession$Listener;Landroid/view/SurfaceView;)V");
                }
                SetHandle(
                    global::Android.Runtime.JNIEnv.StartCreateInstance(class_ref, id_ctor_Landroid_app_Activity_Lcom_moodstocks_android_Scanner_Lcom_moodstocks_android_AutoScannerSession_Listener_Landroid_view_SurfaceView_, __args),
                    JniHandleOwnership.TransferLocalRef);
                JNIEnv.FinishCreateInstance(Handle, class_ref, id_ctor_Landroid_app_Activity_Lcom_moodstocks_android_Scanner_Lcom_moodstocks_android_AutoScannerSession_Listener_Landroid_view_SurfaceView_, __args);
            } finally {
            }
        }