static void n_SetControlStrategy_Lorbotix_robot_base_ControlStrategy_(IntPtr jnienv, IntPtr native__this, IntPtr native_p0)
        {
            Robot __this = Java.Lang.Object.GetObject <Robot> (native__this, JniHandleOwnership.DoNotTransfer);

            global::Orbotix.Robot.Base.IControlStrategy p0 = Java.Lang.Object.GetObject <global::Orbotix.Robot.Base.IControlStrategy> (native_p0, JniHandleOwnership.DoNotTransfer);
            __this.SetControlStrategy(p0);
        }
        public virtual void SetControlStrategy(global::Orbotix.Robot.Base.IControlStrategy p0)
        {
            if (id_setControlStrategy_Lorbotix_robot_base_ControlStrategy_ == IntPtr.Zero)
            {
                id_setControlStrategy_Lorbotix_robot_base_ControlStrategy_ = JNIEnv.GetMethodID(class_ref, "setControlStrategy", "(Lorbotix/robot/base/ControlStrategy;)V");
            }

            if (GetType() == ThresholdType)
            {
                JNIEnv.CallVoidMethod(Handle, id_setControlStrategy_Lorbotix_robot_base_ControlStrategy_, new JValue(p0));
            }
            else
            {
                JNIEnv.CallNonvirtualVoidMethod(Handle, ThresholdClass, id_setControlStrategy_Lorbotix_robot_base_ControlStrategy_, new JValue(p0));
            }
        }
        public Robot(global::Orbotix.Robot.Base.IControlStrategy p0) : base(IntPtr.Zero, JniHandleOwnership.DoNotTransfer)
        {
            if (Handle != IntPtr.Zero)
            {
                return;
            }

            if (GetType() != typeof(Robot))
            {
                SetHandle(global::Android.Runtime.JNIEnv.CreateInstance(GetType(), "(Lorbotix/robot/base/ControlStrategy;)V", new JValue(p0)), JniHandleOwnership.TransferLocalRef);
                return;
            }

            if (id_ctor_Lorbotix_robot_base_ControlStrategy_ == IntPtr.Zero)
            {
                id_ctor_Lorbotix_robot_base_ControlStrategy_ = JNIEnv.GetMethodID(class_ref, "<init>", "(Lorbotix/robot/base/ControlStrategy;)V");
            }
            SetHandle(JNIEnv.NewObject(class_ref, id_ctor_Lorbotix_robot_base_ControlStrategy_, new JValue(p0)), JniHandleOwnership.TransferLocalRef);
        }