public virtual void SetOnRotationGestureListener(global::Orbotix.Robot.Utilities.RotationGestureDetector.IOnRotationGestureListener p0)
        {
            if (id_setOnRotationGestureListener_Lorbotix_robot_utilities_RotationGestureDetector_OnRotationGestureListener_ == IntPtr.Zero)
            {
                id_setOnRotationGestureListener_Lorbotix_robot_utilities_RotationGestureDetector_OnRotationGestureListener_ = JNIEnv.GetMethodID(class_ref, "setOnRotationGestureListener", "(Lorbotix/robot/utilities/RotationGestureDetector$OnRotationGestureListener;)V");
            }

            if (GetType() == ThresholdType)
            {
                JNIEnv.CallVoidMethod(Handle, id_setOnRotationGestureListener_Lorbotix_robot_utilities_RotationGestureDetector_OnRotationGestureListener_, new JValue(p0));
            }
            else
            {
                JNIEnv.CallNonvirtualVoidMethod(Handle, ThresholdClass, id_setOnRotationGestureListener_Lorbotix_robot_utilities_RotationGestureDetector_OnRotationGestureListener_, new JValue(p0));
            }
        }
        static void n_SetOnRotationGestureListener_Lorbotix_robot_utilities_RotationGestureDetector_OnRotationGestureListener_(IntPtr jnienv, IntPtr native__this, IntPtr native_p0)
        {
            RotationGestureDetector __this = Java.Lang.Object.GetObject <RotationGestureDetector> (native__this, JniHandleOwnership.DoNotTransfer);

            global::Orbotix.Robot.Utilities.RotationGestureDetector.IOnRotationGestureListener p0 = Java.Lang.Object.GetObject <global::Orbotix.Robot.Utilities.RotationGestureDetector.IOnRotationGestureListener> (native_p0, JniHandleOwnership.DoNotTransfer);
            __this.SetOnRotationGestureListener(p0);
        }