public virtual unsafe void SetListener(global::Com.Liveperson.Infra.Messaging_ui.View.Adapter.IMessagingAdapterListener p0)
        {
            if (id_setListener_Lcom_liveperson_infra_messaging_ui_view_adapter_MessagingAdapterListener_ == IntPtr.Zero)
            {
                id_setListener_Lcom_liveperson_infra_messaging_ui_view_adapter_MessagingAdapterListener_ = JNIEnv.GetMethodID(class_ref, "setListener", "(Lcom/liveperson/infra/messaging_ui/view/adapter/MessagingAdapterListener;)V");
            }
            try {
                JValue *__args = stackalloc JValue [1];
                __args [0] = new JValue(p0);

                if (((object)this).GetType() == ThresholdType)
                {
                    JNIEnv.CallVoidMethod(((global::Java.Lang.Object) this).Handle, id_setListener_Lcom_liveperson_infra_messaging_ui_view_adapter_MessagingAdapterListener_, __args);
                }
                else
                {
                    JNIEnv.CallNonvirtualVoidMethod(((global::Java.Lang.Object) this).Handle, ThresholdClass, JNIEnv.GetMethodID(ThresholdClass, "setListener", "(Lcom/liveperson/infra/messaging_ui/view/adapter/MessagingAdapterListener;)V"), __args);
                }
            } finally {
            }
        }
        static void n_OnFileClicked_Lcom_liveperson_messaging_background_filesharing_FileSharingType_Ljava_lang_String_Ljava_lang_String_JJ(IntPtr jnienv, IntPtr native__this, IntPtr native_p0, IntPtr native_p1, IntPtr native_p2, long p3, long p4)
        {
            global::Com.Liveperson.Infra.Messaging_ui.View.Adapter.IMessagingAdapterListener __this = global::Java.Lang.Object.GetObject <global::Com.Liveperson.Infra.Messaging_ui.View.Adapter.IMessagingAdapterListener> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
            global::Com.Liveperson.Messaging.Background.Filesharing.FileSharingType          p0     = global::Java.Lang.Object.GetObject <global::Com.Liveperson.Messaging.Background.Filesharing.FileSharingType> (native_p0, JniHandleOwnership.DoNotTransfer);
            string p1 = JNIEnv.GetString(native_p1, JniHandleOwnership.DoNotTransfer);
            string p2 = JNIEnv.GetString(native_p2, JniHandleOwnership.DoNotTransfer);

            __this.OnFileClicked(p0, p1, p2, p3, p4);
        }
        public virtual unsafe void InitData(global::Com.Liveperson.Messaging.Messaging p0, string p1, global::Android.Views.View p2, global::Com.Liveperson.Infra.Messaging_ui.Uicomponents.IScrollDownIndicator p3, global::Com.Liveperson.Infra.Messaging_ui.View.Adapter.Copybehavior.CopyBehavior p4, global::Com.Liveperson.Infra.Messaging_ui.View.Adapter.IMessagingAdapterListener p5)
        {
            if (id_initData_Lcom_liveperson_messaging_Messaging_Ljava_lang_String_Landroid_view_View_Lcom_liveperson_infra_messaging_ui_uicomponents_IScrollDownIndicator_Lcom_liveperson_infra_messaging_ui_view_adapter_copybehavior_CopyBehavior_Lcom_liveperson_infra_messaging_ui_view_adapter_MessagingAdapterListener_ == IntPtr.Zero)
            {
                id_initData_Lcom_liveperson_messaging_Messaging_Ljava_lang_String_Landroid_view_View_Lcom_liveperson_infra_messaging_ui_uicomponents_IScrollDownIndicator_Lcom_liveperson_infra_messaging_ui_view_adapter_copybehavior_CopyBehavior_Lcom_liveperson_infra_messaging_ui_view_adapter_MessagingAdapterListener_ = JNIEnv.GetMethodID(class_ref, "initData", "(Lcom/liveperson/messaging/Messaging;Ljava/lang/String;Landroid/view/View;Lcom/liveperson/infra/messaging_ui/uicomponents/IScrollDownIndicator;Lcom/liveperson/infra/messaging_ui/view/adapter/copybehavior/CopyBehavior;Lcom/liveperson/infra/messaging_ui/view/adapter/MessagingAdapterListener;)V");
            }
            IntPtr native_p1 = JNIEnv.NewString(p1);

            try {
                JValue *__args = stackalloc JValue [6];
                __args [0] = new JValue(p0);
                __args [1] = new JValue(native_p1);
                __args [2] = new JValue(p2);
                __args [3] = new JValue(p3);
                __args [4] = new JValue(p4);
                __args [5] = new JValue(p5);

                if (((object)this).GetType() == ThresholdType)
                {
                    JNIEnv.CallVoidMethod(((global::Java.Lang.Object) this).Handle, id_initData_Lcom_liveperson_messaging_Messaging_Ljava_lang_String_Landroid_view_View_Lcom_liveperson_infra_messaging_ui_uicomponents_IScrollDownIndicator_Lcom_liveperson_infra_messaging_ui_view_adapter_copybehavior_CopyBehavior_Lcom_liveperson_infra_messaging_ui_view_adapter_MessagingAdapterListener_, __args);
                }
                else
                {
                    JNIEnv.CallNonvirtualVoidMethod(((global::Java.Lang.Object) this).Handle, ThresholdClass, JNIEnv.GetMethodID(ThresholdClass, "initData", "(Lcom/liveperson/messaging/Messaging;Ljava/lang/String;Landroid/view/View;Lcom/liveperson/infra/messaging_ui/uicomponents/IScrollDownIndicator;Lcom/liveperson/infra/messaging_ui/view/adapter/copybehavior/CopyBehavior;Lcom/liveperson/infra/messaging_ui/view/adapter/MessagingAdapterListener;)V"), __args);
                }
            } finally {
                JNIEnv.DeleteLocalRef(native_p1);
            }
        }
 static void n_SetListener_Lcom_liveperson_infra_messaging_ui_view_adapter_MessagingAdapterListener_(IntPtr jnienv, IntPtr native__this, IntPtr native_p0)
 {
     global::Com.Liveperson.Infra.Messaging_ui.View.Adapter.MessagingRecyclerViewCursorAdapter __this = global::Java.Lang.Object.GetObject <global::Com.Liveperson.Infra.Messaging_ui.View.Adapter.MessagingRecyclerViewCursorAdapter> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
     global::Com.Liveperson.Infra.Messaging_ui.View.Adapter.IMessagingAdapterListener          p0     = (global::Com.Liveperson.Infra.Messaging_ui.View.Adapter.IMessagingAdapterListener)global::Java.Lang.Object.GetObject <global::Com.Liveperson.Infra.Messaging_ui.View.Adapter.IMessagingAdapterListener> (native_p0, JniHandleOwnership.DoNotTransfer);
     __this.SetListener(p0);
 }
        static void n_InitData_Lcom_liveperson_messaging_Messaging_Ljava_lang_String_Landroid_view_View_Lcom_liveperson_infra_messaging_ui_uicomponents_IScrollDownIndicator_Lcom_liveperson_infra_messaging_ui_view_adapter_copybehavior_CopyBehavior_Lcom_liveperson_infra_messaging_ui_view_adapter_MessagingAdapterListener_(IntPtr jnienv, IntPtr native__this, IntPtr native_p0, IntPtr native_p1, IntPtr native_p2, IntPtr native_p3, IntPtr native_p4, IntPtr native_p5)
        {
            global::Com.Liveperson.Infra.Messaging_ui.Uicomponents.List.ChatMessageListRecyclerView __this = global::Java.Lang.Object.GetObject <global::Com.Liveperson.Infra.Messaging_ui.Uicomponents.List.ChatMessageListRecyclerView> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
            global::Com.Liveperson.Messaging.Messaging p0 = global::Java.Lang.Object.GetObject <global::Com.Liveperson.Messaging.Messaging> (native_p0, JniHandleOwnership.DoNotTransfer);
            string p1 = JNIEnv.GetString(native_p1, JniHandleOwnership.DoNotTransfer);

            global::Android.Views.View p2 = global::Java.Lang.Object.GetObject <global::Android.Views.View> (native_p2, JniHandleOwnership.DoNotTransfer);
            global::Com.Liveperson.Infra.Messaging_ui.Uicomponents.IScrollDownIndicator      p3 = (global::Com.Liveperson.Infra.Messaging_ui.Uicomponents.IScrollDownIndicator)global::Java.Lang.Object.GetObject <global::Com.Liveperson.Infra.Messaging_ui.Uicomponents.IScrollDownIndicator> (native_p3, JniHandleOwnership.DoNotTransfer);
            global::Com.Liveperson.Infra.Messaging_ui.View.Adapter.Copybehavior.CopyBehavior p4 = global::Java.Lang.Object.GetObject <global::Com.Liveperson.Infra.Messaging_ui.View.Adapter.Copybehavior.CopyBehavior> (native_p4, JniHandleOwnership.DoNotTransfer);
            global::Com.Liveperson.Infra.Messaging_ui.View.Adapter.IMessagingAdapterListener p5 = (global::Com.Liveperson.Infra.Messaging_ui.View.Adapter.IMessagingAdapterListener)global::Java.Lang.Object.GetObject <global::Com.Liveperson.Infra.Messaging_ui.View.Adapter.IMessagingAdapterListener> (native_p5, JniHandleOwnership.DoNotTransfer);
            __this.InitData(p0, p1, p2, p3, p4, p5);
        }