/* conversation_details.c generated by valac 0.56.19, the Vala compiler
 * generated from conversation_details.vala, do not modify */

#include <adwaita.h>
#include <glib-object.h>
#include <gtk/gtk.h>
#include <gio/gio.h>
#include <glib.h>
#include <stdlib.h>
#include <string.h>
#include "dino_i18n.h"

#if !defined(VALA_STRICT_C)
#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ >= 14)
#pragma GCC diagnostic warning "-Wincompatible-pointer-types"
#elif defined(__clang__) && (__clang_major__ >= 16)
#pragma clang diagnostic ignored "-Wincompatible-function-pointer-types"
#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
#endif
#endif
#if !defined(VALA_EXTERN)
#if defined(_MSC_VER)
#define VALA_EXTERN __declspec(dllexport) extern
#elif __GNUC__ >= 4
#define VALA_EXTERN __attribute__((visibility("default"))) extern
#else
#define VALA_EXTERN extern
#endif
#endif

#define DINO_UI_CONVERSATION_DETAILS_TYPE_DIALOG (dino_ui_conversation_details_dialog_get_type ())
#define DINO_UI_CONVERSATION_DETAILS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_UI_CONVERSATION_DETAILS_TYPE_DIALOG, DinoUiConversationDetailsDialog))
#define DINO_UI_CONVERSATION_DETAILS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_UI_CONVERSATION_DETAILS_TYPE_DIALOG, DinoUiConversationDetailsDialogClass))
#define DINO_UI_CONVERSATION_DETAILS_IS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_UI_CONVERSATION_DETAILS_TYPE_DIALOG))
#define DINO_UI_CONVERSATION_DETAILS_IS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_UI_CONVERSATION_DETAILS_TYPE_DIALOG))
#define DINO_UI_CONVERSATION_DETAILS_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_UI_CONVERSATION_DETAILS_TYPE_DIALOG, DinoUiConversationDetailsDialogClass))

typedef struct _DinoUiConversationDetailsDialog DinoUiConversationDetailsDialog;
typedef struct _DinoUiConversationDetailsDialogClass DinoUiConversationDetailsDialogClass;
typedef struct _DinoUiConversationDetailsDialogPrivate DinoUiConversationDetailsDialogPrivate;

#define DINO_UI_VIEW_MODEL_TYPE_CONVERSATION_DETAILS (dino_ui_view_model_conversation_details_get_type ())
#define DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_UI_VIEW_MODEL_TYPE_CONVERSATION_DETAILS, DinoUiViewModelConversationDetails))
#define DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_UI_VIEW_MODEL_TYPE_CONVERSATION_DETAILS, DinoUiViewModelConversationDetailsClass))
#define DINO_UI_VIEW_MODEL_IS_CONVERSATION_DETAILS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_UI_VIEW_MODEL_TYPE_CONVERSATION_DETAILS))
#define DINO_UI_VIEW_MODEL_IS_CONVERSATION_DETAILS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_UI_VIEW_MODEL_TYPE_CONVERSATION_DETAILS))
#define DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_UI_VIEW_MODEL_TYPE_CONVERSATION_DETAILS, DinoUiViewModelConversationDetailsClass))

typedef struct _DinoUiViewModelConversationDetails DinoUiViewModelConversationDetails;
typedef struct _DinoUiViewModelConversationDetailsClass DinoUiViewModelConversationDetailsClass;
enum  {
	DINO_UI_CONVERSATION_DETAILS_DIALOG_0_PROPERTY,
	DINO_UI_CONVERSATION_DETAILS_DIALOG_MODEL_PROPERTY,
	DINO_UI_CONVERSATION_DETAILS_DIALOG_NUM_PROPERTIES
};
static GParamSpec* dino_ui_conversation_details_dialog_properties[DINO_UI_CONVERSATION_DETAILS_DIALOG_NUM_PROPERTIES];
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
typedef enum  {
	DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_BLOCK_STATE_USER,
	DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_BLOCK_STATE_DOMAIN,
	DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_BLOCK_STATE_UNBLOCK
} DinoUiViewModelConversationDetailsBlockState;

#define DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_TYPE_BLOCK_STATE (dino_ui_view_model_conversation_details_block_state_get_type ())
#define _g_variant_unref0(var) ((var == NULL) ? NULL : (var = (g_variant_unref (var), NULL)))
typedef enum  {
	DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_SETTING_DEFAULT,
	DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_SETTING_ON,
	DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_SETTING_HIGHLIGHT,
	DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_SETTING_OFF
} DinoUiViewModelConversationDetailsNotificationSetting;

#define DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_TYPE_NOTIFICATION_SETTING (dino_ui_view_model_conversation_details_notification_setting_get_type ())
#define _g_free0(var) (var = (g_free (var), NULL))
typedef enum  {
	DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_OPTIONS_ON_OFF,
	DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_OPTIONS_ON_HIGHLIGHT_OFF
} DinoUiViewModelConversationDetailsNotificationOptions;

#define DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_TYPE_NOTIFICATION_OPTIONS (dino_ui_view_model_conversation_details_notification_options_get_type ())
typedef struct _DinoUiViewModelConversationDetailsPrivate DinoUiViewModelConversationDetailsPrivate;

#define DINO_UI_MODEL_TYPE_CONFERENCE_MEMBER (dino_ui_model_conference_member_get_type ())
#define DINO_UI_MODEL_CONFERENCE_MEMBER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_UI_MODEL_TYPE_CONFERENCE_MEMBER, DinoUiModelConferenceMember))
#define DINO_UI_MODEL_CONFERENCE_MEMBER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_UI_MODEL_TYPE_CONFERENCE_MEMBER, DinoUiModelConferenceMemberClass))
#define DINO_UI_MODEL_IS_CONFERENCE_MEMBER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_UI_MODEL_TYPE_CONFERENCE_MEMBER))
#define DINO_UI_MODEL_IS_CONFERENCE_MEMBER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_UI_MODEL_TYPE_CONFERENCE_MEMBER))
#define DINO_UI_MODEL_CONFERENCE_MEMBER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_UI_MODEL_TYPE_CONFERENCE_MEMBER, DinoUiModelConferenceMemberClass))

typedef struct _DinoUiModelConferenceMember DinoUiModelConferenceMember;
typedef struct _DinoUiModelConferenceMemberClass DinoUiModelConferenceMemberClass;

#define DINO_UI_CONVERSATION_DETAILS_DINO_UI_CONVERSATION_DETAILS_TYPE_MEMBER_LIST_ITEM (dino_ui_conversation_details_dino_ui_conversation_details_member_list_item_get_type ())
#define DINO_UI_CONVERSATION_DETAILS_DINO_UI_CONVERSATION_DETAILS_MEMBER_LIST_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_UI_CONVERSATION_DETAILS_DINO_UI_CONVERSATION_DETAILS_TYPE_MEMBER_LIST_ITEM, DinoUiConversationDetailsDinoUiConversationDetailsMemberListItem))
#define DINO_UI_CONVERSATION_DETAILS_DINO_UI_CONVERSATION_DETAILS_MEMBER_LIST_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_UI_CONVERSATION_DETAILS_DINO_UI_CONVERSATION_DETAILS_TYPE_MEMBER_LIST_ITEM, DinoUiConversationDetailsDinoUiConversationDetailsMemberListItemClass))
#define DINO_UI_CONVERSATION_DETAILS_DINO_UI_CONVERSATION_DETAILS_IS_MEMBER_LIST_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_UI_CONVERSATION_DETAILS_DINO_UI_CONVERSATION_DETAILS_TYPE_MEMBER_LIST_ITEM))
#define DINO_UI_CONVERSATION_DETAILS_DINO_UI_CONVERSATION_DETAILS_IS_MEMBER_LIST_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_UI_CONVERSATION_DETAILS_DINO_UI_CONVERSATION_DETAILS_TYPE_MEMBER_LIST_ITEM))
#define DINO_UI_CONVERSATION_DETAILS_DINO_UI_CONVERSATION_DETAILS_MEMBER_LIST_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_UI_CONVERSATION_DETAILS_DINO_UI_CONVERSATION_DETAILS_TYPE_MEMBER_LIST_ITEM, DinoUiConversationDetailsDinoUiConversationDetailsMemberListItemClass))

typedef struct _DinoUiConversationDetailsDinoUiConversationDetailsMemberListItem DinoUiConversationDetailsDinoUiConversationDetailsMemberListItem;
typedef struct _DinoUiConversationDetailsDinoUiConversationDetailsMemberListItemClass DinoUiConversationDetailsDinoUiConversationDetailsMemberListItemClass;
typedef struct _DinoUiConversationDetailsDinoUiConversationDetailsMemberListItemPrivate DinoUiConversationDetailsDinoUiConversationDetailsMemberListItemPrivate;
enum  {
	DINO_UI_CONVERSATION_DETAILS_DINO_UI_CONVERSATION_DETAILS_MEMBER_LIST_ITEM_0_PROPERTY,
	DINO_UI_CONVERSATION_DETAILS_DINO_UI_CONVERSATION_DETAILS_MEMBER_LIST_ITEM_NUM_PROPERTIES
};
static GParamSpec* dino_ui_conversation_details_dino_ui_conversation_details_member_list_item_properties[DINO_UI_CONVERSATION_DETAILS_DINO_UI_CONVERSATION_DETAILS_MEMBER_LIST_ITEM_NUM_PROPERTIES];

struct _DinoUiConversationDetailsDialog {
	AdwWindow parent_instance;
	DinoUiConversationDetailsDialogPrivate * priv;
	GtkStack* stack;
	GtkBox* about_box;
	GtkButton* pin_button;
	AdwButtonContent* pin_button_content;
	GtkMenuButton* block_button;
	AdwButtonContent* block_button_content;
	GtkButton* notification_button_toggle;
	AdwButtonContent* notification_button_toggle_content;
	GtkMenuButton* notification_button_menu;
	AdwButtonContent* notification_button_menu_content;
	AdwSplitButton* notification_button_split;
	AdwButtonContent* notification_button_split_content;
	GtkStackPage* encryption_stack_page;
	GtkBox* encryption_box;
	GtkStackPage* member_stack_page;
	GtkBox* member_box;
};

struct _DinoUiConversationDetailsDialogClass {
	AdwWindowClass parent_class;
};

struct _DinoUiConversationDetailsDialogPrivate {
	DinoUiViewModelConversationDetails* _model;
	GSimpleAction* block_action;
};

struct _DinoUiViewModelConversationDetails {
	GObject parent_instance;
	DinoUiViewModelConversationDetailsPrivate * priv;
	GListStore* about_rows;
	GListStore* settings_rows;
	GtkMapListModel* members;
	GtkSortListModel* members_sorted;
};

struct _DinoUiViewModelConversationDetailsClass {
	GObjectClass parent_class;
};

struct _DinoUiConversationDetailsDinoUiConversationDetailsMemberListItem {
	GtkWidget parent_instance;
	DinoUiConversationDetailsDinoUiConversationDetailsMemberListItemPrivate * priv;
};

struct _DinoUiConversationDetailsDinoUiConversationDetailsMemberListItemClass {
	GtkWidgetClass parent_class;
};

static gint DinoUiConversationDetailsDialog_private_offset;
static gpointer dino_ui_conversation_details_dialog_parent_class = NULL;
static gpointer dino_ui_conversation_details_dino_ui_conversation_details_member_list_item_parent_class = NULL;

VALA_EXTERN GType dino_ui_conversation_details_dialog_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoUiConversationDetailsDialog, g_object_unref)
VALA_EXTERN GType dino_ui_view_model_conversation_details_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoUiViewModelConversationDetails, g_object_unref)
VALA_EXTERN GType dino_ui_view_model_conversation_details_block_state_get_type (void) G_GNUC_CONST ;
static void dino_ui_conversation_details_dialog_update_pinned_button (DinoUiConversationDetailsDialog* self);
VALA_EXTERN DinoUiViewModelConversationDetails* dino_ui_conversation_details_dialog_get_model (DinoUiConversationDetailsDialog* self);
VALA_EXTERN gboolean dino_ui_view_model_conversation_details_get_pinned (DinoUiViewModelConversationDetails* self);
static void dino_ui_conversation_details_dialog_update_blocked_button (DinoUiConversationDetailsDialog* self);
VALA_EXTERN DinoUiViewModelConversationDetailsBlockState dino_ui_view_model_conversation_details_get_blocked (DinoUiViewModelConversationDetails* self);
static void dino_ui_conversation_details_dialog_update_notification_button (DinoUiConversationDetailsDialog* self);
VALA_EXTERN GType dino_ui_view_model_conversation_details_notification_setting_get_type (void) G_GNUC_CONST ;
VALA_EXTERN DinoUiViewModelConversationDetailsNotificationSetting dino_ui_view_model_conversation_details_get_notification (DinoUiViewModelConversationDetails* self);
static void dino_ui_conversation_details_dialog_update_notification_button_state (DinoUiConversationDetailsDialog* self);
static void dino_ui_conversation_details_dialog_update_notification_button_visibility (DinoUiConversationDetailsDialog* self);
VALA_EXTERN GType dino_ui_view_model_conversation_details_notification_options_get_type (void) G_GNUC_CONST ;
VALA_EXTERN DinoUiViewModelConversationDetailsNotificationOptions dino_ui_view_model_conversation_details_get_notification_options (DinoUiViewModelConversationDetails* self);
VALA_EXTERN gboolean dino_ui_view_model_conversation_details_get_notification_is_default (DinoUiViewModelConversationDetails* self);
static void dino_ui_conversation_details_dialog_create_members (DinoUiConversationDetailsDialog* self);
static void __lambda163_ (DinoUiConversationDetailsDialog* self,
                   guint position);
VALA_EXTERN GType dino_ui_model_conference_member_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoUiModelConferenceMember, g_object_unref)
VALA_EXTERN const gchar* dino_ui_model_conference_member_get_name (DinoUiModelConferenceMember* self);
static void ___lambda163__gtk_list_view_activate (GtkListView* _sender,
                                           guint position,
                                           gpointer self);
VALA_EXTERN void dino_ui_conversation_details_dialog_add_members_tab_element (DinoUiConversationDetailsDialog* self,
                                                                  GtkWidget* widget);
static void dino_ui_conversation_details_dialog_create_preferences_rows (DinoUiConversationDetailsDialog* self);
VALA_EXTERN AdwPreferencesGroup* dino_ui_util_rows_to_preference_group (GListStore* row_view_models,
                                                            const gchar* title);
VALA_EXTERN GListStore* dino_ui_view_model_conversation_details_get_room_configuration_rows (DinoUiViewModelConversationDetails* self);
VALA_EXTERN const gchar* dino_ui_view_model_conversation_details_get_account_jid (DinoUiViewModelConversationDetails* self);
VALA_EXTERN void dino_ui_conversation_details_dialog_add_encryption_tab_element (DinoUiConversationDetailsDialog* self,
                                                                     AdwPreferencesGroup* preferences_group);
VALA_EXTERN DinoUiConversationDetailsDialog* dino_ui_conversation_details_dialog_new (void);
VALA_EXTERN DinoUiConversationDetailsDialog* dino_ui_conversation_details_dialog_construct (GType object_type);
static GObject * dino_ui_conversation_details_dialog_constructor (GType type,
                                                           guint n_construct_properties,
                                                           GObjectConstructParam * construct_properties);
static void _dino_ui_conversation_details_dialog___lambda168_ (DinoUiConversationDetailsDialog* self);
static void __dino_ui_conversation_details_dialog___lambda168__gtk_button_clicked (GtkButton* _sender,
                                                                            gpointer self);
static void _dino_ui_conversation_details_dialog___lambda169_ (DinoUiConversationDetailsDialog* self);
static void __dino_ui_conversation_details_dialog___lambda169__gtk_button_clicked (GtkButton* _sender,
                                                                            gpointer self);
static void _dino_ui_conversation_details_dialog___lambda170_ (DinoUiConversationDetailsDialog* self);
static void __dino_ui_conversation_details_dialog___lambda170__adw_split_button_clicked (AdwSplitButton* _sender,
                                                                                  gpointer self);
static void _dino_ui_conversation_details_dialog_update_pinned_button_g_object_notify (GObject* _sender,
                                                                                GParamSpec* pspec,
                                                                                gpointer self);
static void _dino_ui_conversation_details_dialog_update_blocked_button_g_object_notify (GObject* _sender,
                                                                                 GParamSpec* pspec,
                                                                                 gpointer self);
static void _dino_ui_conversation_details_dialog_update_notification_button_g_object_notify (GObject* _sender,
                                                                                      GParamSpec* pspec,
                                                                                      gpointer self);
static void _dino_ui_conversation_details_dialog_update_notification_button_state_g_object_notify (GObject* _sender,
                                                                                            GParamSpec* pspec,
                                                                                            gpointer self);
static void _dino_ui_conversation_details_dialog_update_notification_button_visibility_g_object_notify (GObject* _sender,
                                                                                                 GParamSpec* pspec,
                                                                                                 gpointer self);
static void _dino_ui_conversation_details_dialog_create_preferences_rows_g_list_model_items_changed (GListModel* _sender,
                                                                                              guint position,
                                                                                              guint removed,
                                                                                              guint added,
                                                                                              gpointer self);
static void _dino_ui_conversation_details_dialog_create_preferences_rows_g_object_notify (GObject* _sender,
                                                                                   GParamSpec* pspec,
                                                                                   gpointer self);
static void _dino_ui_conversation_details_dialog_create_members_g_object_notify (GObject* _sender,
                                                                          GParamSpec* pspec,
                                                                          gpointer self);
static void _dino_ui_conversation_details_dialog___lambda171_ (DinoUiConversationDetailsDialog* self,
                                                        GVariant* parameter);
static void __dino_ui_conversation_details_dialog___lambda171__g_simple_action_activate (GSimpleAction* _sender,
                                                                                  GVariant* parameter,
                                                                                  gpointer self);
static void _dino_ui_conversation_details_dialog___lambda172_ (GtkWidget* widget,
                                                        const gchar* action_name);
static void __dino_ui_conversation_details_dialog___lambda172__gtk_widget_action_activate_func (GtkWidget* widget,
                                                                                         const gchar* action_name,
                                                                                         GVariant* parameter);
static void _dino_ui_conversation_details_dialog___lambda173_ (GtkWidget* widget,
                                                        const gchar* action_name);
static void __dino_ui_conversation_details_dialog___lambda173__gtk_widget_action_activate_func (GtkWidget* widget,
                                                                                         const gchar* action_name,
                                                                                         GVariant* parameter);
static void _dino_ui_conversation_details_dialog___lambda174_ (GtkWidget* widget,
                                                        const gchar* action_name);
static void __dino_ui_conversation_details_dialog___lambda174__gtk_widget_action_activate_func (GtkWidget* widget,
                                                                                         const gchar* action_name,
                                                                                         GVariant* parameter);
static void _dino_ui_conversation_details_dialog___lambda175_ (GtkWidget* widget,
                                                        const gchar* action_name);
static void __dino_ui_conversation_details_dialog___lambda175__gtk_widget_action_activate_func (GtkWidget* widget,
                                                                                         const gchar* action_name,
                                                                                         GVariant* parameter);
static void dino_ui_conversation_details_dialog_finalize (GObject * obj);
static GType dino_ui_conversation_details_dialog_get_type_once (void);
static void _vala_dino_ui_conversation_details_dialog_get_property (GObject * object,
                                                             guint property_id,
                                                             GValue * value,
                                                             GParamSpec * pspec);
VALA_EXTERN GType dino_ui_conversation_details_dino_ui_conversation_details_member_list_item_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoUiConversationDetailsDinoUiConversationDetailsMemberListItem, g_object_unref)
VALA_EXTERN DinoUiConversationDetailsDinoUiConversationDetailsMemberListItem* dino_ui_conversation_details_dino_ui_conversation_details_member_list_item_new (void);
VALA_EXTERN DinoUiConversationDetailsDinoUiConversationDetailsMemberListItem* dino_ui_conversation_details_dino_ui_conversation_details_member_list_item_construct (GType object_type);
static GType dino_ui_conversation_details_dino_ui_conversation_details_member_list_item_get_type_once (void);
static void _vala_array_destroy (gpointer array,
                          gssize array_length,
                          GDestroyNotify destroy_func);
static void _vala_array_free (gpointer array,
                       gssize array_length,
                       GDestroyNotify destroy_func);
static inline gpointer _vala_memdup2 (gconstpointer mem,
                        gsize byte_size);

static inline gpointer
dino_ui_conversation_details_dialog_get_instance_private (DinoUiConversationDetailsDialog* self)
{
	return G_STRUCT_MEMBER_P (self, DinoUiConversationDetailsDialog_private_offset);
}

static void
dino_ui_conversation_details_dialog_update_pinned_button (DinoUiConversationDetailsDialog* self)
{
	AdwButtonContent* _tmp0_;
	const gchar* _tmp1_ = NULL;
	DinoUiViewModelConversationDetails* _tmp2_;
	gboolean _tmp3_;
	gboolean _tmp4_;
	AdwButtonContent* _tmp7_;
	DinoUiViewModelConversationDetails* _tmp8_;
	gboolean _tmp9_;
	gboolean _tmp10_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->pin_button_content;
	adw_button_content_set_icon_name (_tmp0_, "view-pin-symbolic");
	_tmp2_ = self->priv->_model;
	_tmp3_ = dino_ui_view_model_conversation_details_get_pinned (_tmp2_);
	_tmp4_ = _tmp3_;
	if (_tmp4_) {
		const gchar* _tmp5_;
		_tmp5_ = dino_gettext ("Pinned");
		_tmp1_ = _tmp5_;
	} else {
		const gchar* _tmp6_;
		_tmp6_ = dino_gettext ("Pin");
		_tmp1_ = _tmp6_;
	}
	_tmp7_ = self->pin_button_content;
	adw_button_content_set_label (_tmp7_, _tmp1_);
	_tmp8_ = self->priv->_model;
	_tmp9_ = dino_ui_view_model_conversation_details_get_pinned (_tmp8_);
	_tmp10_ = _tmp9_;
	if (_tmp10_) {
		GtkButton* _tmp11_;
		_tmp11_ = self->pin_button;
		gtk_widget_add_css_class ((GtkWidget*) _tmp11_, "accent");
	} else {
		GtkButton* _tmp12_;
		_tmp12_ = self->pin_button;
		gtk_widget_remove_css_class ((GtkWidget*) _tmp12_, "accent");
	}
}

static void
dino_ui_conversation_details_dialog_update_blocked_button (DinoUiConversationDetailsDialog* self)
{
	DinoUiViewModelConversationDetails* _tmp0_;
	DinoUiViewModelConversationDetailsBlockState _tmp1_;
	DinoUiViewModelConversationDetailsBlockState _tmp2_;
	GSimpleAction* _tmp12_;
	DinoUiViewModelConversationDetails* _tmp13_;
	DinoUiViewModelConversationDetailsBlockState _tmp14_;
	DinoUiViewModelConversationDetailsBlockState _tmp15_;
	GVariant* _tmp16_;
	GVariant* _tmp17_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->_model;
	_tmp1_ = dino_ui_view_model_conversation_details_get_blocked (_tmp0_);
	_tmp2_ = _tmp1_;
	switch (_tmp2_) {
		case DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_BLOCK_STATE_USER:
		{
			AdwButtonContent* _tmp3_;
			const gchar* _tmp4_;
			GtkMenuButton* _tmp5_;
			_tmp3_ = self->block_button_content;
			_tmp4_ = dino_gettext ("Blocked");
			adw_button_content_set_label (_tmp3_, _tmp4_);
			_tmp5_ = self->block_button;
			gtk_widget_add_css_class ((GtkWidget*) _tmp5_, "error");
			break;
		}
		case DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_BLOCK_STATE_DOMAIN:
		{
			AdwButtonContent* _tmp6_;
			const gchar* _tmp7_;
			GtkMenuButton* _tmp8_;
			_tmp6_ = self->block_button_content;
			_tmp7_ = dino_gettext ("Domain blocked");
			adw_button_content_set_label (_tmp6_, _tmp7_);
			_tmp8_ = self->block_button;
			gtk_widget_add_css_class ((GtkWidget*) _tmp8_, "error");
			break;
		}
		case DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_BLOCK_STATE_UNBLOCK:
		{
			AdwButtonContent* _tmp9_;
			const gchar* _tmp10_;
			GtkMenuButton* _tmp11_;
			_tmp9_ = self->block_button_content;
			_tmp10_ = dino_gettext ("Block");
			adw_button_content_set_label (_tmp9_, _tmp10_);
			_tmp11_ = self->block_button;
			gtk_widget_remove_css_class ((GtkWidget*) _tmp11_, "error");
			break;
		}
		default:
		break;
	}
	_tmp12_ = self->priv->block_action;
	_tmp13_ = self->priv->_model;
	_tmp14_ = dino_ui_view_model_conversation_details_get_blocked (_tmp13_);
	_tmp15_ = _tmp14_;
	_tmp16_ = g_variant_new_int32 ((gint32) _tmp15_);
	g_variant_ref_sink (_tmp16_);
	_tmp17_ = _tmp16_;
	g_simple_action_set_state (_tmp12_, _tmp17_);
	_g_variant_unref0 (_tmp17_);
}

static void
dino_ui_conversation_details_dialog_update_notification_button (DinoUiConversationDetailsDialog* self)
{
	const gchar* _tmp0_ = NULL;
	DinoUiViewModelConversationDetails* _tmp1_;
	DinoUiViewModelConversationDetailsNotificationSetting _tmp2_;
	DinoUiViewModelConversationDetailsNotificationSetting _tmp3_;
	gchar* icon_name = NULL;
	gchar* _tmp4_;
	AdwButtonContent* _tmp5_;
	AdwButtonContent* _tmp6_;
	AdwButtonContent* _tmp7_;
	g_return_if_fail (self != NULL);
	_tmp1_ = self->priv->_model;
	_tmp2_ = dino_ui_view_model_conversation_details_get_notification (_tmp1_);
	_tmp3_ = _tmp2_;
	if (_tmp3_ == DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_SETTING_OFF) {
		_tmp0_ = "dino-bell-large-none-symbolic";
	} else {
		_tmp0_ = "dino-bell-large-symbolic";
	}
	_tmp4_ = g_strdup (_tmp0_);
	icon_name = _tmp4_;
	_tmp5_ = self->notification_button_toggle_content;
	adw_button_content_set_icon_name (_tmp5_, icon_name);
	_tmp6_ = self->notification_button_split_content;
	adw_button_content_set_icon_name (_tmp6_, icon_name);
	_tmp7_ = self->notification_button_menu_content;
	adw_button_content_set_icon_name (_tmp7_, icon_name);
	_g_free0 (icon_name);
}

static void
dino_ui_conversation_details_dialog_update_notification_button_state (DinoUiConversationDetailsDialog* self)
{
	DinoUiViewModelConversationDetails* _tmp0_;
	DinoUiViewModelConversationDetailsNotificationSetting _tmp1_;
	DinoUiViewModelConversationDetailsNotificationSetting _tmp2_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->_model;
	_tmp1_ = dino_ui_view_model_conversation_details_get_notification (_tmp0_);
	_tmp2_ = _tmp1_;
	switch (_tmp2_) {
		case DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_SETTING_ON:
		{
			AdwButtonContent* _tmp3_;
			const gchar* _tmp4_;
			AdwButtonContent* _tmp5_;
			const gchar* _tmp6_;
			AdwButtonContent* _tmp7_;
			const gchar* _tmp8_;
			_tmp3_ = self->notification_button_toggle_content;
			_tmp4_ = dino_gettext ("Mute");
			adw_button_content_set_label (_tmp3_, _tmp4_);
			_tmp5_ = self->notification_button_split_content;
			_tmp6_ = dino_gettext ("Mute");
			adw_button_content_set_label (_tmp5_, _tmp6_);
			_tmp7_ = self->notification_button_menu_content;
			_tmp8_ = dino_gettext ("Notifications enabled");
			adw_button_content_set_label (_tmp7_, _tmp8_);
			break;
		}
		case DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_SETTING_HIGHLIGHT:
		{
			AdwButtonContent* _tmp9_;
			const gchar* _tmp10_;
			_tmp9_ = self->notification_button_menu_content;
			_tmp10_ = dino_gettext ("Notifications for mentions");
			adw_button_content_set_label (_tmp9_, _tmp10_);
			break;
		}
		case DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_SETTING_OFF:
		{
			AdwButtonContent* _tmp11_;
			const gchar* _tmp12_;
			AdwButtonContent* _tmp13_;
			const gchar* _tmp14_;
			AdwButtonContent* _tmp15_;
			const gchar* _tmp16_;
			_tmp11_ = self->notification_button_toggle_content;
			_tmp12_ = dino_gettext ("Muted");
			adw_button_content_set_label (_tmp11_, _tmp12_);
			_tmp13_ = self->notification_button_split_content;
			_tmp14_ = dino_gettext ("Muted");
			adw_button_content_set_label (_tmp13_, _tmp14_);
			_tmp15_ = self->notification_button_menu_content;
			_tmp16_ = dino_gettext ("Notifications disabled");
			adw_button_content_set_label (_tmp15_, _tmp16_);
			break;
		}
		default:
		break;
	}
}

static void
dino_ui_conversation_details_dialog_update_notification_button_visibility (DinoUiConversationDetailsDialog* self)
{
	GtkButton* _tmp0_;
	GtkMenuButton* _tmp1_;
	AdwSplitButton* _tmp2_;
	DinoUiViewModelConversationDetails* _tmp3_;
	DinoUiViewModelConversationDetailsNotificationOptions _tmp4_;
	DinoUiViewModelConversationDetailsNotificationOptions _tmp5_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->notification_button_toggle;
	_tmp1_ = self->notification_button_menu;
	_tmp2_ = self->notification_button_split;
	gtk_widget_set_visible ((GtkWidget*) _tmp2_, FALSE);
	gtk_widget_set_visible ((GtkWidget*) _tmp1_, FALSE);
	gtk_widget_set_visible ((GtkWidget*) _tmp0_, FALSE);
	_tmp3_ = self->priv->_model;
	_tmp4_ = dino_ui_view_model_conversation_details_get_notification_options (_tmp3_);
	_tmp5_ = _tmp4_;
	if (_tmp5_ == DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_OPTIONS_ON_OFF) {
		DinoUiViewModelConversationDetails* _tmp6_;
		gboolean _tmp7_;
		gboolean _tmp8_;
		_tmp6_ = self->priv->_model;
		_tmp7_ = dino_ui_view_model_conversation_details_get_notification_is_default (_tmp6_);
		_tmp8_ = _tmp7_;
		if (_tmp8_) {
			GtkButton* _tmp9_;
			_tmp9_ = self->notification_button_toggle;
			gtk_widget_set_visible ((GtkWidget*) _tmp9_, TRUE);
		} else {
			AdwSplitButton* _tmp10_;
			_tmp10_ = self->notification_button_split;
			gtk_widget_set_visible ((GtkWidget*) _tmp10_, TRUE);
		}
	} else {
		GtkMenuButton* _tmp11_;
		_tmp11_ = self->notification_button_menu;
		gtk_widget_set_visible ((GtkWidget*) _tmp11_, TRUE);
	}
}

static gpointer
_g_object_ref0 (gpointer self)
{
	return self ? g_object_ref (self) : NULL;
}

static const gchar*
string_to_string (const gchar* self)
{
	const gchar* result;
	g_return_val_if_fail (self != NULL, NULL);
	result = self;
	return result;
}

static void
__lambda163_ (DinoUiConversationDetailsDialog* self,
              guint position)
{
	DinoUiModelConferenceMember* row_view_model = NULL;
	DinoUiViewModelConversationDetails* _tmp0_;
	GtkSortListModel* _tmp1_;
	GObject* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	const gchar* _tmp5_;
	const gchar* _tmp6_;
	const gchar* _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	_tmp0_ = self->priv->_model;
	_tmp1_ = _tmp0_->members_sorted;
	_tmp2_ = g_list_model_get_item ((GListModel*) _tmp1_, position);
	row_view_model = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, DINO_UI_MODEL_TYPE_CONFERENCE_MEMBER, DinoUiModelConferenceMember);
	_tmp3_ = g_strdup_printf ("%u", position);
	_tmp4_ = _tmp3_;
	_tmp5_ = dino_ui_model_conference_member_get_name (row_view_model);
	_tmp6_ = _tmp5_;
	_tmp7_ = string_to_string (_tmp6_);
	_tmp8_ = g_strconcat (_tmp4_, " ", _tmp7_, "\n", NULL);
	_tmp9_ = _tmp8_;
	g_print ("%s", _tmp9_);
	_g_free0 (_tmp9_);
	_g_free0 (_tmp4_);
	_g_object_unref0 (row_view_model);
}

static void
___lambda163__gtk_list_view_activate (GtkListView* _sender,
                                      guint position,
                                      gpointer self)
{
	__lambda163_ ((DinoUiConversationDetailsDialog*) self, position);
}

static void
dino_ui_conversation_details_dialog_create_members (DinoUiConversationDetailsDialog* self)
{
	DinoUiViewModelConversationDetails* _tmp0_;
	GtkSortListModel* _tmp1_;
	guint _tmp2_;
	guint _tmp3_;
	GtkNoSelection* selection_model = NULL;
	DinoUiViewModelConversationDetails* _tmp4_;
	GtkSortListModel* _tmp5_;
	GListModel* _tmp6_;
	GtkNoSelection* _tmp7_;
	GtkBuilderListItemFactory* item_factory = NULL;
	GtkBuilderListItemFactory* _tmp8_;
	GtkListView* list_view = NULL;
	GtkNoSelection* _tmp9_;
	GtkSelectionModel* _tmp10_;
	GtkBuilderListItemFactory* _tmp11_;
	GtkListItemFactory* _tmp12_;
	GtkListView* _tmp13_ = NULL;
	GtkListView* _tmp14_;
	GtkListView* _tmp15_;
	GtkListView* _tmp16_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->_model;
	_tmp1_ = _tmp0_->members_sorted;
	g_object_get (_tmp1_, "n-items", &_tmp2_, NULL);
	_tmp3_ = _tmp2_;
	if (_tmp3_ == ((guint) 0)) {
		return;
	}
	_tmp4_ = self->priv->_model;
	_tmp5_ = _tmp4_->members_sorted;
	_tmp6_ = _g_object_ref0 ((GListModel*) _tmp5_);
	_tmp7_ = gtk_no_selection_new (_tmp6_);
	selection_model = _tmp7_;
	_tmp8_ = (GtkBuilderListItemFactory*) gtk_builder_list_item_factory_new_from_resource (NULL, "/im/dino/Dino/muc_member_list_row.ui");
	item_factory = _tmp8_;
	_tmp9_ = selection_model;
	_tmp10_ = _g_object_ref0 ((GtkSelectionModel*) _tmp9_);
	_tmp11_ = item_factory;
	_tmp12_ = _g_object_ref0 ((GtkListItemFactory*) _tmp11_);
	_tmp13_ = (GtkListView*) gtk_list_view_new (_tmp10_, _tmp12_);
	gtk_list_view_set_single_click_activate (_tmp13_, TRUE);
	g_object_ref_sink (_tmp13_);
	list_view = _tmp13_;
	_tmp14_ = list_view;
	gtk_widget_add_css_class ((GtkWidget*) _tmp14_, "card");
	_tmp15_ = list_view;
	g_signal_connect_object (_tmp15_, "activate", (GCallback) ___lambda163__gtk_list_view_activate, self, 0);
	_tmp16_ = list_view;
	dino_ui_conversation_details_dialog_add_members_tab_element (self, (GtkWidget*) _tmp16_);
	_g_object_unref0 (list_view);
	_g_object_unref0 (item_factory);
	_g_object_unref0 (selection_model);
}

static void
dino_ui_conversation_details_dialog_create_preferences_rows (DinoUiConversationDetailsDialog* self)
{
	GtkWidget* widget = NULL;
	GtkBox* _tmp0_;
	GtkWidget* _tmp1_;
	GtkWidget* _tmp2_;
	DinoUiViewModelConversationDetails* _tmp9_;
	GListStore* _tmp10_;
	DinoUiViewModelConversationDetails* _tmp17_;
	GListStore* _tmp18_;
	gboolean _tmp25_ = FALSE;
	DinoUiViewModelConversationDetails* _tmp26_;
	GListStore* _tmp27_;
	GListStore* _tmp28_;
	DinoUiViewModelConversationDetails* _tmp39_;
	const gchar* _tmp40_;
	const gchar* _tmp41_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->about_box;
	_tmp1_ = gtk_widget_get_first_child ((GtkWidget*) _tmp0_);
	_tmp2_ = _g_object_ref0 (_tmp1_);
	widget = _tmp2_;
	while (TRUE) {
		GtkWidget* _tmp3_;
		GtkBox* _tmp4_;
		GtkWidget* _tmp5_;
		GtkBox* _tmp6_;
		GtkWidget* _tmp7_;
		GtkWidget* _tmp8_;
		_tmp3_ = widget;
		if (!(_tmp3_ != NULL)) {
			break;
		}
		_tmp4_ = self->about_box;
		_tmp5_ = widget;
		gtk_box_remove (_tmp4_, _tmp5_);
		_tmp6_ = self->about_box;
		_tmp7_ = gtk_widget_get_first_child ((GtkWidget*) _tmp6_);
		_tmp8_ = _g_object_ref0 (_tmp7_);
		_g_object_unref0 (widget);
		widget = _tmp8_;
	}
	_tmp9_ = self->priv->_model;
	_tmp10_ = _tmp9_->about_rows;
	if (g_list_model_get_n_items ((GListModel*) _tmp10_) > ((guint) 0)) {
		GtkBox* _tmp11_;
		DinoUiViewModelConversationDetails* _tmp12_;
		GListStore* _tmp13_;
		const gchar* _tmp14_;
		AdwPreferencesGroup* _tmp15_;
		AdwPreferencesGroup* _tmp16_;
		_tmp11_ = self->about_box;
		_tmp12_ = self->priv->_model;
		_tmp13_ = _tmp12_->about_rows;
		_tmp14_ = dino_gettext ("About");
		_tmp15_ = dino_ui_util_rows_to_preference_group (_tmp13_, _tmp14_);
		_tmp16_ = _tmp15_;
		gtk_box_append (_tmp11_, (GtkWidget*) _tmp16_);
		_g_object_unref0 (_tmp16_);
	}
	_tmp17_ = self->priv->_model;
	_tmp18_ = _tmp17_->settings_rows;
	if (g_list_model_get_n_items ((GListModel*) _tmp18_) > ((guint) 0)) {
		GtkBox* _tmp19_;
		DinoUiViewModelConversationDetails* _tmp20_;
		GListStore* _tmp21_;
		const gchar* _tmp22_;
		AdwPreferencesGroup* _tmp23_;
		AdwPreferencesGroup* _tmp24_;
		_tmp19_ = self->about_box;
		_tmp20_ = self->priv->_model;
		_tmp21_ = _tmp20_->settings_rows;
		_tmp22_ = dino_gettext ("Settings");
		_tmp23_ = dino_ui_util_rows_to_preference_group (_tmp21_, _tmp22_);
		_tmp24_ = _tmp23_;
		gtk_box_append (_tmp19_, (GtkWidget*) _tmp24_);
		_g_object_unref0 (_tmp24_);
	}
	_tmp26_ = self->priv->_model;
	_tmp27_ = dino_ui_view_model_conversation_details_get_room_configuration_rows (_tmp26_);
	_tmp28_ = _tmp27_;
	if (_tmp28_ != NULL) {
		DinoUiViewModelConversationDetails* _tmp29_;
		GListStore* _tmp30_;
		GListStore* _tmp31_;
		_tmp29_ = self->priv->_model;
		_tmp30_ = dino_ui_view_model_conversation_details_get_room_configuration_rows (_tmp29_);
		_tmp31_ = _tmp30_;
		_tmp25_ = g_list_model_get_n_items ((GListModel*) _tmp31_) > ((guint) 0);
	} else {
		_tmp25_ = FALSE;
	}
	if (_tmp25_) {
		GtkBox* _tmp32_;
		DinoUiViewModelConversationDetails* _tmp33_;
		GListStore* _tmp34_;
		GListStore* _tmp35_;
		const gchar* _tmp36_;
		AdwPreferencesGroup* _tmp37_;
		AdwPreferencesGroup* _tmp38_;
		_tmp32_ = self->about_box;
		_tmp33_ = self->priv->_model;
		_tmp34_ = dino_ui_view_model_conversation_details_get_room_configuration_rows (_tmp33_);
		_tmp35_ = _tmp34_;
		_tmp36_ = dino_gettext ("Room Configuration");
		_tmp37_ = dino_ui_util_rows_to_preference_group (_tmp35_, _tmp36_);
		_tmp38_ = _tmp37_;
		gtk_box_append (_tmp32_, (GtkWidget*) _tmp38_);
		_g_object_unref0 (_tmp38_);
	}
	_tmp39_ = self->priv->_model;
	_tmp40_ = dino_ui_view_model_conversation_details_get_account_jid (_tmp39_);
	_tmp41_ = _tmp40_;
	if (_tmp41_ != NULL) {
		GtkLabel* account_label = NULL;
		DinoUiViewModelConversationDetails* _tmp42_;
		const gchar* _tmp43_;
		const gchar* _tmp44_;
		const gchar* _tmp45_;
		gchar* _tmp46_;
		gchar* _tmp47_;
		GtkLabel* _tmp48_ = NULL;
		GtkLabel* _tmp49_;
		GtkLabel* _tmp50_;
		GtkBox* _tmp51_;
		GtkLabel* _tmp52_;
		_tmp42_ = self->priv->_model;
		_tmp43_ = dino_ui_view_model_conversation_details_get_account_jid (_tmp42_);
		_tmp44_ = _tmp43_;
		_tmp45_ = string_to_string (_tmp44_);
		_tmp46_ = g_strconcat ("via ", _tmp45_, NULL);
		_tmp47_ = _tmp46_;
		_tmp48_ = (GtkLabel*) gtk_label_new (_tmp47_);
		gtk_widget_set_halign ((GtkWidget*) _tmp48_, GTK_ALIGN_START);
		gtk_widget_set_margin_start ((GtkWidget*) _tmp48_, 14);
		gtk_widget_set_margin_top ((GtkWidget*) _tmp48_, 4);
		g_object_ref_sink (_tmp48_);
		_tmp49_ = _tmp48_;
		_g_free0 (_tmp47_);
		account_label = _tmp49_;
		_tmp50_ = account_label;
		gtk_widget_add_css_class ((GtkWidget*) _tmp50_, "dim-label");
		_tmp51_ = self->about_box;
		_tmp52_ = account_label;
		gtk_box_append (_tmp51_, (GtkWidget*) _tmp52_);
		_g_object_unref0 (account_label);
	}
	_g_object_unref0 (widget);
}

void
dino_ui_conversation_details_dialog_add_encryption_tab_element (DinoUiConversationDetailsDialog* self,
                                                                AdwPreferencesGroup* preferences_group)
{
	GtkStackPage* _tmp0_;
	GtkBox* _tmp15_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (preferences_group != NULL);
	_tmp0_ = self->encryption_stack_page;
	if (_tmp0_ == NULL) {
		GtkBox* _tmp1_ = NULL;
		GtkScrolledWindow* scrolled_window = NULL;
		GtkScrolledWindow* _tmp2_ = NULL;
		AdwClamp* clamp = NULL;
		AdwClamp* _tmp3_;
		AdwClamp* _tmp4_;
		GtkBox* _tmp5_;
		GtkScrolledWindow* _tmp6_;
		AdwClamp* _tmp7_;
		GtkStack* _tmp8_;
		GtkScrolledWindow* _tmp9_;
		GtkStackPage* _tmp10_;
		GtkStackPage* _tmp11_;
		GtkStackPage* _tmp12_;
		const gchar* _tmp13_;
		GtkStackPage* _tmp14_;
		_tmp1_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 12);
		gtk_widget_set_margin_end ((GtkWidget*) _tmp1_, 12);
		gtk_widget_set_margin_start ((GtkWidget*) _tmp1_, 12);
		gtk_widget_set_margin_top ((GtkWidget*) _tmp1_, 18);
		gtk_widget_set_margin_bottom ((GtkWidget*) _tmp1_, 40);
		g_object_ref_sink (_tmp1_);
		_g_object_unref0 (self->encryption_box);
		self->encryption_box = _tmp1_;
		_tmp2_ = (GtkScrolledWindow*) gtk_scrolled_window_new ();
		gtk_widget_set_vexpand ((GtkWidget*) _tmp2_, TRUE);
		g_object_ref_sink (_tmp2_);
		scrolled_window = _tmp2_;
		_tmp3_ = (AdwClamp*) adw_clamp_new ();
		g_object_ref_sink (_tmp3_);
		clamp = _tmp3_;
		_tmp4_ = clamp;
		_tmp5_ = self->encryption_box;
		adw_clamp_set_child (_tmp4_, (GtkWidget*) _tmp5_);
		_tmp6_ = scrolled_window;
		_tmp7_ = clamp;
		gtk_scrolled_window_set_child (_tmp6_, (GtkWidget*) _tmp7_);
		_tmp8_ = self->stack;
		_tmp9_ = scrolled_window;
		_tmp10_ = gtk_stack_add_child (_tmp8_, (GtkWidget*) _tmp9_);
		_tmp11_ = _g_object_ref0 (_tmp10_);
		_g_object_unref0 (self->encryption_stack_page);
		self->encryption_stack_page = _tmp11_;
		_tmp12_ = self->encryption_stack_page;
		_tmp13_ = dino_gettext ("Encryption");
		gtk_stack_page_set_title (_tmp12_, _tmp13_);
		_tmp14_ = self->encryption_stack_page;
		gtk_stack_page_set_name (_tmp14_, "encryption");
		_g_object_unref0 (clamp);
		_g_object_unref0 (scrolled_window);
	}
	_tmp15_ = self->encryption_box;
	gtk_box_append (_tmp15_, (GtkWidget*) preferences_group);
}

void
dino_ui_conversation_details_dialog_add_members_tab_element (DinoUiConversationDetailsDialog* self,
                                                             GtkWidget* widget)
{
	GtkStackPage* _tmp0_;
	GtkBox* _tmp9_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (widget != NULL);
	_tmp0_ = self->member_stack_page;
	if (_tmp0_ == NULL) {
		GtkBox* _tmp1_ = NULL;
		GtkStack* _tmp2_;
		GtkBox* _tmp3_;
		GtkStackPage* _tmp4_;
		GtkStackPage* _tmp5_;
		GtkStackPage* _tmp6_;
		const gchar* _tmp7_;
		GtkStackPage* _tmp8_;
		_tmp1_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 12);
		gtk_widget_set_margin_end ((GtkWidget*) _tmp1_, 12);
		gtk_widget_set_margin_start ((GtkWidget*) _tmp1_, 12);
		gtk_widget_set_margin_top ((GtkWidget*) _tmp1_, 18);
		g_object_ref_sink (_tmp1_);
		_g_object_unref0 (self->member_box);
		self->member_box = _tmp1_;
		_tmp2_ = self->stack;
		_tmp3_ = self->member_box;
		_tmp4_ = gtk_stack_add_child (_tmp2_, (GtkWidget*) _tmp3_);
		_tmp5_ = _g_object_ref0 (_tmp4_);
		_g_object_unref0 (self->member_stack_page);
		self->member_stack_page = _tmp5_;
		_tmp6_ = self->member_stack_page;
		_tmp7_ = dino_gettext ("Members");
		gtk_stack_page_set_title (_tmp6_, _tmp7_);
		_tmp8_ = self->member_stack_page;
		gtk_stack_page_set_name (_tmp8_, "member");
	}
	_tmp9_ = self->member_box;
	gtk_box_append (_tmp9_, widget);
}

DinoUiConversationDetailsDialog*
dino_ui_conversation_details_dialog_construct (GType object_type)
{
	DinoUiConversationDetailsDialog * self = NULL;
	self = (DinoUiConversationDetailsDialog*) g_object_new (object_type, NULL);
	return self;
}

DinoUiConversationDetailsDialog*
dino_ui_conversation_details_dialog_new (void)
{
	return dino_ui_conversation_details_dialog_construct (DINO_UI_CONVERSATION_DETAILS_TYPE_DIALOG);
}

DinoUiViewModelConversationDetails*
dino_ui_conversation_details_dialog_get_model (DinoUiConversationDetailsDialog* self)
{
	DinoUiViewModelConversationDetails* result;
	DinoUiViewModelConversationDetails* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_model;
	result = _tmp0_;
	return result;
}

static void
_dino_ui_conversation_details_dialog___lambda168_ (DinoUiConversationDetailsDialog* self)
{
	DinoUiViewModelConversationDetails* _tmp0_;
	_tmp0_ = self->priv->_model;
	g_signal_emit_by_name (_tmp0_, "pin-changed");
}

static void
__dino_ui_conversation_details_dialog___lambda168__gtk_button_clicked (GtkButton* _sender,
                                                                       gpointer self)
{
	_dino_ui_conversation_details_dialog___lambda168_ ((DinoUiConversationDetailsDialog*) self);
}

static void
_dino_ui_conversation_details_dialog___lambda169_ (DinoUiConversationDetailsDialog* self)
{
	DinoUiViewModelConversationDetails* _tmp0_;
	_tmp0_ = self->priv->_model;
	g_signal_emit_by_name (_tmp0_, "notification-flipped");
}

static void
__dino_ui_conversation_details_dialog___lambda169__gtk_button_clicked (GtkButton* _sender,
                                                                       gpointer self)
{
	_dino_ui_conversation_details_dialog___lambda169_ ((DinoUiConversationDetailsDialog*) self);
}

static void
_dino_ui_conversation_details_dialog___lambda170_ (DinoUiConversationDetailsDialog* self)
{
	DinoUiViewModelConversationDetails* _tmp0_;
	_tmp0_ = self->priv->_model;
	g_signal_emit_by_name (_tmp0_, "notification-flipped");
}

static void
__dino_ui_conversation_details_dialog___lambda170__adw_split_button_clicked (AdwSplitButton* _sender,
                                                                             gpointer self)
{
	_dino_ui_conversation_details_dialog___lambda170_ ((DinoUiConversationDetailsDialog*) self);
}

static void
_dino_ui_conversation_details_dialog_update_pinned_button_g_object_notify (GObject* _sender,
                                                                           GParamSpec* pspec,
                                                                           gpointer self)
{
	dino_ui_conversation_details_dialog_update_pinned_button ((DinoUiConversationDetailsDialog*) self);
}

static void
_dino_ui_conversation_details_dialog_update_blocked_button_g_object_notify (GObject* _sender,
                                                                            GParamSpec* pspec,
                                                                            gpointer self)
{
	dino_ui_conversation_details_dialog_update_blocked_button ((DinoUiConversationDetailsDialog*) self);
}

static void
_dino_ui_conversation_details_dialog_update_notification_button_g_object_notify (GObject* _sender,
                                                                                 GParamSpec* pspec,
                                                                                 gpointer self)
{
	dino_ui_conversation_details_dialog_update_notification_button ((DinoUiConversationDetailsDialog*) self);
}

static void
_dino_ui_conversation_details_dialog_update_notification_button_state_g_object_notify (GObject* _sender,
                                                                                       GParamSpec* pspec,
                                                                                       gpointer self)
{
	dino_ui_conversation_details_dialog_update_notification_button_state ((DinoUiConversationDetailsDialog*) self);
}

static void
_dino_ui_conversation_details_dialog_update_notification_button_visibility_g_object_notify (GObject* _sender,
                                                                                            GParamSpec* pspec,
                                                                                            gpointer self)
{
	dino_ui_conversation_details_dialog_update_notification_button_visibility ((DinoUiConversationDetailsDialog*) self);
}

static void
_dino_ui_conversation_details_dialog_create_preferences_rows_g_list_model_items_changed (GListModel* _sender,
                                                                                         guint position,
                                                                                         guint removed,
                                                                                         guint added,
                                                                                         gpointer self)
{
	dino_ui_conversation_details_dialog_create_preferences_rows ((DinoUiConversationDetailsDialog*) self);
}

static void
_dino_ui_conversation_details_dialog_create_preferences_rows_g_object_notify (GObject* _sender,
                                                                              GParamSpec* pspec,
                                                                              gpointer self)
{
	dino_ui_conversation_details_dialog_create_preferences_rows ((DinoUiConversationDetailsDialog*) self);
}

static void
_dino_ui_conversation_details_dialog_create_members_g_object_notify (GObject* _sender,
                                                                     GParamSpec* pspec,
                                                                     gpointer self)
{
	dino_ui_conversation_details_dialog_create_members ((DinoUiConversationDetailsDialog*) self);
}

static void
_dino_ui_conversation_details_dialog___lambda171_ (DinoUiConversationDetailsDialog* self,
                                                   GVariant* parameter)
{
	GSimpleAction* _tmp0_;
	DinoUiViewModelConversationDetails* _tmp1_;
	_tmp0_ = self->priv->block_action;
	g_simple_action_set_state (_tmp0_, parameter);
	_tmp1_ = self->priv->_model;
	g_signal_emit_by_name (_tmp1_, "block-changed", (DinoUiViewModelConversationDetailsBlockState) g_variant_get_int32 (parameter));
}

static void
__dino_ui_conversation_details_dialog___lambda171__g_simple_action_activate (GSimpleAction* _sender,
                                                                             GVariant* parameter,
                                                                             gpointer self)
{
	_dino_ui_conversation_details_dialog___lambda171_ ((DinoUiConversationDetailsDialog*) self, parameter);
}

static GObject *
dino_ui_conversation_details_dialog_constructor (GType type,
                                                 guint n_construct_properties,
                                                 GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	DinoUiConversationDetailsDialog * self;
	GtkButton* _tmp0_;
	GtkButton* _tmp1_;
	AdwSplitButton* _tmp2_;
	DinoUiViewModelConversationDetails* _tmp3_;
	DinoUiViewModelConversationDetails* _tmp4_;
	DinoUiViewModelConversationDetails* _tmp5_;
	DinoUiViewModelConversationDetails* _tmp6_;
	DinoUiViewModelConversationDetails* _tmp7_;
	DinoUiViewModelConversationDetails* _tmp8_;
	DinoUiViewModelConversationDetails* _tmp9_;
	GListStore* _tmp10_;
	DinoUiViewModelConversationDetails* _tmp11_;
	GListStore* _tmp12_;
	DinoUiViewModelConversationDetails* _tmp13_;
	DinoUiViewModelConversationDetails* _tmp14_;
	GSimpleActionGroup* block_action_group = NULL;
	GSimpleActionGroup* _tmp15_;
	const GVariantType* _tmp16_;
	GVariant* _tmp17_;
	GVariant* _tmp18_;
	GSimpleAction* _tmp19_;
	GSimpleAction* _tmp20_;
	GSimpleActionGroup* _tmp21_;
	GSimpleAction* _tmp22_;
	GSimpleActionGroup* _tmp23_;
	GMenu* block_menu_model = NULL;
	GMenu* _tmp24_;
	gchar** menu_labels = NULL;
	const gchar* _tmp25_;
	gchar* _tmp26_;
	const gchar* _tmp27_;
	gchar* _tmp28_;
	const gchar* _tmp29_;
	gchar* _tmp30_;
	gchar** _tmp31_;
	gint menu_labels_length1;
	gint _menu_labels_size_;
	DinoUiViewModelConversationDetailsBlockState* menu_states = NULL;
	DinoUiViewModelConversationDetailsBlockState* _tmp32_;
	gint menu_states_length1;
	gint _menu_states_size_;
	GtkMenuButton* _tmp46_;
	GMenu* _tmp47_;
	AdwButtonContent* _tmp48_;
	parent_class = G_OBJECT_CLASS (dino_ui_conversation_details_dialog_parent_class);
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, DINO_UI_CONVERSATION_DETAILS_TYPE_DIALOG, DinoUiConversationDetailsDialog);
	_tmp0_ = self->pin_button;
	g_signal_connect_object (_tmp0_, "clicked", (GCallback) __dino_ui_conversation_details_dialog___lambda168__gtk_button_clicked, self, 0);
	_tmp1_ = self->notification_button_toggle;
	g_signal_connect_object (_tmp1_, "clicked", (GCallback) __dino_ui_conversation_details_dialog___lambda169__gtk_button_clicked, self, 0);
	_tmp2_ = self->notification_button_split;
	g_signal_connect_object (_tmp2_, "clicked", (GCallback) __dino_ui_conversation_details_dialog___lambda170__adw_split_button_clicked, self, 0);
	_tmp3_ = self->priv->_model;
	g_signal_connect_object ((GObject*) _tmp3_, "notify::pinned", (GCallback) _dino_ui_conversation_details_dialog_update_pinned_button_g_object_notify, self, 0);
	_tmp4_ = self->priv->_model;
	g_signal_connect_object ((GObject*) _tmp4_, "notify::blocked", (GCallback) _dino_ui_conversation_details_dialog_update_blocked_button_g_object_notify, self, 0);
	_tmp5_ = self->priv->_model;
	g_signal_connect_object ((GObject*) _tmp5_, "notify::notification", (GCallback) _dino_ui_conversation_details_dialog_update_notification_button_g_object_notify, self, 0);
	_tmp6_ = self->priv->_model;
	g_signal_connect_object ((GObject*) _tmp6_, "notify::notification", (GCallback) _dino_ui_conversation_details_dialog_update_notification_button_state_g_object_notify, self, 0);
	_tmp7_ = self->priv->_model;
	g_signal_connect_object ((GObject*) _tmp7_, "notify::notification-options", (GCallback) _dino_ui_conversation_details_dialog_update_notification_button_visibility_g_object_notify, self, 0);
	_tmp8_ = self->priv->_model;
	g_signal_connect_object ((GObject*) _tmp8_, "notify::notification-is-default", (GCallback) _dino_ui_conversation_details_dialog_update_notification_button_visibility_g_object_notify, self, 0);
	_tmp9_ = self->priv->_model;
	_tmp10_ = _tmp9_->about_rows;
	g_signal_connect_object ((GListModel*) _tmp10_, "items-changed", (GCallback) _dino_ui_conversation_details_dialog_create_preferences_rows_g_list_model_items_changed, self, 0);
	_tmp11_ = self->priv->_model;
	_tmp12_ = _tmp11_->settings_rows;
	g_signal_connect_object ((GListModel*) _tmp12_, "items-changed", (GCallback) _dino_ui_conversation_details_dialog_create_preferences_rows_g_list_model_items_changed, self, 0);
	_tmp13_ = self->priv->_model;
	g_signal_connect_object ((GObject*) _tmp13_, "notify::room-configuration-rows", (GCallback) _dino_ui_conversation_details_dialog_create_preferences_rows_g_object_notify, self, 0);
	_tmp14_ = self->priv->_model;
	g_signal_connect_object ((GObject*) _tmp14_, "notify::members", (GCallback) _dino_ui_conversation_details_dialog_create_members_g_object_notify, self, 0);
	dino_ui_conversation_details_dialog_create_members (self);
	_tmp15_ = g_simple_action_group_new ();
	block_action_group = _tmp15_;
	_tmp16_ = G_VARIANT_TYPE_INT32;
	_tmp17_ = g_variant_new_int32 ((gint32) 0);
	g_variant_ref_sink (_tmp17_);
	_tmp18_ = _tmp17_;
	_tmp19_ = g_simple_action_new_stateful ("block", _tmp16_, _tmp18_);
	_g_object_unref0 (self->priv->block_action);
	self->priv->block_action = _tmp19_;
	_g_variant_unref0 (_tmp18_);
	_tmp20_ = self->priv->block_action;
	g_signal_connect_object (_tmp20_, "activate", (GCallback) __dino_ui_conversation_details_dialog___lambda171__g_simple_action_activate, self, 0);
	_tmp21_ = block_action_group;
	_tmp22_ = self->priv->block_action;
	g_simple_action_group_insert (_tmp21_, (GAction*) _tmp22_);
	_tmp23_ = block_action_group;
	gtk_widget_insert_action_group ((GtkWidget*) self, "block", (GActionGroup*) _tmp23_);
	_tmp24_ = g_menu_new ();
	block_menu_model = _tmp24_;
	_tmp25_ = dino_gettext ("Block user");
	_tmp26_ = g_strdup (_tmp25_);
	_tmp27_ = dino_gettext ("Block entire domain");
	_tmp28_ = g_strdup (_tmp27_);
	_tmp29_ = dino_gettext ("Unblock");
	_tmp30_ = g_strdup (_tmp29_);
	_tmp31_ = g_new0 (gchar*, 3 + 1);
	_tmp31_[0] = _tmp26_;
	_tmp31_[1] = _tmp28_;
	_tmp31_[2] = _tmp30_;
	menu_labels = _tmp31_;
	menu_labels_length1 = 3;
	_menu_labels_size_ = menu_labels_length1;
	_tmp32_ = g_new0 (DinoUiViewModelConversationDetailsBlockState, 3);
	_tmp32_[0] = DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_BLOCK_STATE_USER;
	_tmp32_[1] = DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_BLOCK_STATE_DOMAIN;
	_tmp32_[2] = DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_BLOCK_STATE_UNBLOCK;
	menu_states = _tmp32_;
	menu_states_length1 = 3;
	_menu_states_size_ = menu_states_length1;
	{
		gint i = 0;
		i = 0;
		{
			gboolean _tmp33_ = FALSE;
			_tmp33_ = TRUE;
			while (TRUE) {
				gchar** _tmp35_;
				gint _tmp35__length1;
				GMenuItem* item = NULL;
				gchar** _tmp36_;
				gint _tmp36__length1;
				const gchar* _tmp37_;
				GMenuItem* _tmp38_;
				GMenuItem* _tmp39_;
				DinoUiViewModelConversationDetailsBlockState* _tmp40_;
				gint _tmp40__length1;
				DinoUiViewModelConversationDetailsBlockState _tmp41_;
				GVariant* _tmp42_;
				GVariant* _tmp43_;
				GMenu* _tmp44_;
				GMenuItem* _tmp45_;
				if (!_tmp33_) {
					gint _tmp34_;
					_tmp34_ = i;
					i = _tmp34_ + 1;
				}
				_tmp33_ = FALSE;
				_tmp35_ = menu_labels;
				_tmp35__length1 = menu_labels_length1;
				if (!(i < _tmp35__length1)) {
					break;
				}
				_tmp36_ = menu_labels;
				_tmp36__length1 = menu_labels_length1;
				_tmp37_ = _tmp36_[i];
				_tmp38_ = g_menu_item_new (_tmp37_, NULL);
				item = _tmp38_;
				_tmp39_ = item;
				_tmp40_ = menu_states;
				_tmp40__length1 = menu_states_length1;
				_tmp41_ = _tmp40_[i];
				_tmp42_ = g_variant_new_int32 ((gint32) _tmp41_);
				g_variant_ref_sink (_tmp42_);
				_tmp43_ = _tmp42_;
				g_menu_item_set_action_and_target_value (_tmp39_, "block.block", _tmp43_);
				_g_variant_unref0 (_tmp43_);
				_tmp44_ = block_menu_model;
				_tmp45_ = item;
				g_menu_append_item (_tmp44_, _tmp45_);
				_g_object_unref0 (item);
			}
		}
	}
	_tmp46_ = self->block_button;
	_tmp47_ = block_menu_model;
	gtk_menu_button_set_menu_model (_tmp46_, (GMenuModel*) _tmp47_);
	_tmp48_ = self->notification_button_menu_content;
	adw_button_content_set_can_shrink (_tmp48_, TRUE);
	dino_ui_conversation_details_dialog_update_blocked_button (self);
	menu_states = (g_free (menu_states), NULL);
	menu_labels = (_vala_array_free (menu_labels, menu_labels_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (block_menu_model);
	_g_object_unref0 (block_action_group);
	return obj;
}

static void
_dino_ui_conversation_details_dialog___lambda172_ (GtkWidget* widget,
                                                   const gchar* action_name)
{
	DinoUiViewModelConversationDetails* _tmp0_;
	g_return_if_fail (widget != NULL);
	g_return_if_fail (action_name != NULL);
	_tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (widget, DINO_UI_CONVERSATION_DETAILS_TYPE_DIALOG, DinoUiConversationDetailsDialog)->priv->_model;
	g_signal_emit_by_name (_tmp0_, "notification-changed", DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_SETTING_ON);
}

static void
__dino_ui_conversation_details_dialog___lambda172__gtk_widget_action_activate_func (GtkWidget* widget,
                                                                                    const gchar* action_name,
                                                                                    GVariant* parameter)
{
	_dino_ui_conversation_details_dialog___lambda172_ (widget, action_name);
}

static void
_dino_ui_conversation_details_dialog___lambda173_ (GtkWidget* widget,
                                                   const gchar* action_name)
{
	DinoUiViewModelConversationDetails* _tmp0_;
	g_return_if_fail (widget != NULL);
	g_return_if_fail (action_name != NULL);
	_tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (widget, DINO_UI_CONVERSATION_DETAILS_TYPE_DIALOG, DinoUiConversationDetailsDialog)->priv->_model;
	g_signal_emit_by_name (_tmp0_, "notification-changed", DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_SETTING_OFF);
}

static void
__dino_ui_conversation_details_dialog___lambda173__gtk_widget_action_activate_func (GtkWidget* widget,
                                                                                    const gchar* action_name,
                                                                                    GVariant* parameter)
{
	_dino_ui_conversation_details_dialog___lambda173_ (widget, action_name);
}

static void
_dino_ui_conversation_details_dialog___lambda174_ (GtkWidget* widget,
                                                   const gchar* action_name)
{
	DinoUiViewModelConversationDetails* _tmp0_;
	g_return_if_fail (widget != NULL);
	g_return_if_fail (action_name != NULL);
	_tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (widget, DINO_UI_CONVERSATION_DETAILS_TYPE_DIALOG, DinoUiConversationDetailsDialog)->priv->_model;
	g_signal_emit_by_name (_tmp0_, "notification-changed", DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_SETTING_HIGHLIGHT);
}

static void
__dino_ui_conversation_details_dialog___lambda174__gtk_widget_action_activate_func (GtkWidget* widget,
                                                                                    const gchar* action_name,
                                                                                    GVariant* parameter)
{
	_dino_ui_conversation_details_dialog___lambda174_ (widget, action_name);
}

static void
_dino_ui_conversation_details_dialog___lambda175_ (GtkWidget* widget,
                                                   const gchar* action_name)
{
	DinoUiViewModelConversationDetails* _tmp0_;
	g_return_if_fail (widget != NULL);
	g_return_if_fail (action_name != NULL);
	_tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (widget, DINO_UI_CONVERSATION_DETAILS_TYPE_DIALOG, DinoUiConversationDetailsDialog)->priv->_model;
	g_signal_emit_by_name (_tmp0_, "notification-changed", DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_SETTING_DEFAULT);
}

static void
__dino_ui_conversation_details_dialog___lambda175__gtk_widget_action_activate_func (GtkWidget* widget,
                                                                                    const gchar* action_name,
                                                                                    GVariant* parameter)
{
	_dino_ui_conversation_details_dialog___lambda175_ (widget, action_name);
}

static void
dino_ui_conversation_details_dialog_base_init (DinoUiConversationDetailsDialogClass * klass)
{
	gtk_widget_class_install_action (GTK_WIDGET_CLASS (klass), "notification.on", NULL, __dino_ui_conversation_details_dialog___lambda172__gtk_widget_action_activate_func);
	gtk_widget_class_install_action (GTK_WIDGET_CLASS (klass), "notification.off", NULL, __dino_ui_conversation_details_dialog___lambda173__gtk_widget_action_activate_func);
	gtk_widget_class_install_action (GTK_WIDGET_CLASS (klass), "notification.highlight", NULL, __dino_ui_conversation_details_dialog___lambda174__gtk_widget_action_activate_func);
	gtk_widget_class_install_action (GTK_WIDGET_CLASS (klass), "notification.default", NULL, __dino_ui_conversation_details_dialog___lambda175__gtk_widget_action_activate_func);
}

static void
dino_ui_conversation_details_dialog_class_init (DinoUiConversationDetailsDialogClass * klass,
                                                gpointer klass_data)
{
	dino_ui_conversation_details_dialog_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &DinoUiConversationDetailsDialog_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_dino_ui_conversation_details_dialog_get_property;
	G_OBJECT_CLASS (klass)->constructor = dino_ui_conversation_details_dialog_constructor;
	G_OBJECT_CLASS (klass)->finalize = dino_ui_conversation_details_dialog_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), DINO_UI_CONVERSATION_DETAILS_DIALOG_MODEL_PROPERTY, dino_ui_conversation_details_dialog_properties[DINO_UI_CONVERSATION_DETAILS_DIALOG_MODEL_PROPERTY] = g_param_spec_object ("model", "model", "model", DINO_UI_VIEW_MODEL_TYPE_CONVERSATION_DETAILS, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	gtk_widget_class_set_template_from_resource (GTK_WIDGET_CLASS (klass), "/im/dino/Dino/conversation_details.ui");
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "stack", FALSE, G_STRUCT_OFFSET (DinoUiConversationDetailsDialog, stack));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "about_box", FALSE, G_STRUCT_OFFSET (DinoUiConversationDetailsDialog, about_box));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "pin_button", FALSE, G_STRUCT_OFFSET (DinoUiConversationDetailsDialog, pin_button));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "pin_button_content", FALSE, G_STRUCT_OFFSET (DinoUiConversationDetailsDialog, pin_button_content));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "block_button", FALSE, G_STRUCT_OFFSET (DinoUiConversationDetailsDialog, block_button));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "block_button_content", FALSE, G_STRUCT_OFFSET (DinoUiConversationDetailsDialog, block_button_content));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "notification_button_toggle", FALSE, G_STRUCT_OFFSET (DinoUiConversationDetailsDialog, notification_button_toggle));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "notification_button_toggle_content", FALSE, G_STRUCT_OFFSET (DinoUiConversationDetailsDialog, notification_button_toggle_content));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "notification_button_menu", FALSE, G_STRUCT_OFFSET (DinoUiConversationDetailsDialog, notification_button_menu));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "notification_button_menu_content", FALSE, G_STRUCT_OFFSET (DinoUiConversationDetailsDialog, notification_button_menu_content));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "notification_button_split", FALSE, G_STRUCT_OFFSET (DinoUiConversationDetailsDialog, notification_button_split));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "notification_button_split_content", FALSE, G_STRUCT_OFFSET (DinoUiConversationDetailsDialog, notification_button_split_content));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "model", FALSE, DinoUiConversationDetailsDialog_private_offset + G_STRUCT_OFFSET (DinoUiConversationDetailsDialogPrivate, _model));
}

static void
dino_ui_conversation_details_dialog_instance_init (DinoUiConversationDetailsDialog * self,
                                                   gpointer klass)
{
	const GVariantType* _tmp0_;
	GVariant* _tmp1_;
	GVariant* _tmp2_;
	GSimpleAction* _tmp3_;
	self->priv = dino_ui_conversation_details_dialog_get_instance_private (self);
	self->encryption_stack_page = NULL;
	self->encryption_box = NULL;
	self->member_stack_page = NULL;
	self->member_box = NULL;
	_tmp0_ = G_VARIANT_TYPE_INT32;
	_tmp1_ = g_variant_new_int32 ((gint32) DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_BLOCK_STATE_UNBLOCK);
	g_variant_ref_sink (_tmp1_);
	_tmp2_ = _tmp1_;
	_tmp3_ = g_simple_action_new_stateful ("block", _tmp0_, _tmp2_);
	self->priv->block_action = _tmp3_;
	_g_variant_unref0 (_tmp2_);
	g_type_ensure (DINO_UI_VIEW_MODEL_TYPE_CONVERSATION_DETAILS);
	gtk_widget_init_template (GTK_WIDGET (self));
}

static void
dino_ui_conversation_details_dialog_finalize (GObject * obj)
{
	DinoUiConversationDetailsDialog * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, DINO_UI_CONVERSATION_DETAILS_TYPE_DIALOG, DinoUiConversationDetailsDialog);
	_g_object_unref0 (self->encryption_stack_page);
	_g_object_unref0 (self->encryption_box);
	_g_object_unref0 (self->member_stack_page);
	_g_object_unref0 (self->member_box);
	_g_object_unref0 (self->priv->block_action);
	G_OBJECT_CLASS (dino_ui_conversation_details_dialog_parent_class)->finalize (obj);
}

static GType
dino_ui_conversation_details_dialog_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (DinoUiConversationDetailsDialogClass), (GBaseInitFunc) dino_ui_conversation_details_dialog_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) dino_ui_conversation_details_dialog_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DinoUiConversationDetailsDialog), 0, (GInstanceInitFunc) dino_ui_conversation_details_dialog_instance_init, NULL };
	GType dino_ui_conversation_details_dialog_type_id;
	dino_ui_conversation_details_dialog_type_id = g_type_register_static (adw_window_get_type (), "DinoUiConversationDetailsDialog", &g_define_type_info, 0);
	DinoUiConversationDetailsDialog_private_offset = g_type_add_instance_private (dino_ui_conversation_details_dialog_type_id, sizeof (DinoUiConversationDetailsDialogPrivate));
	return dino_ui_conversation_details_dialog_type_id;
}

GType
dino_ui_conversation_details_dialog_get_type (void)
{
	static volatile gsize dino_ui_conversation_details_dialog_type_id__once = 0;
	if (g_once_init_enter (&dino_ui_conversation_details_dialog_type_id__once)) {
		GType dino_ui_conversation_details_dialog_type_id;
		dino_ui_conversation_details_dialog_type_id = dino_ui_conversation_details_dialog_get_type_once ();
		g_once_init_leave (&dino_ui_conversation_details_dialog_type_id__once, dino_ui_conversation_details_dialog_type_id);
	}
	return dino_ui_conversation_details_dialog_type_id__once;
}

static void
_vala_dino_ui_conversation_details_dialog_get_property (GObject * object,
                                                        guint property_id,
                                                        GValue * value,
                                                        GParamSpec * pspec)
{
	DinoUiConversationDetailsDialog * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, DINO_UI_CONVERSATION_DETAILS_TYPE_DIALOG, DinoUiConversationDetailsDialog);
	switch (property_id) {
		case DINO_UI_CONVERSATION_DETAILS_DIALOG_MODEL_PROPERTY:
		g_value_set_object (value, dino_ui_conversation_details_dialog_get_model (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

DinoUiConversationDetailsDinoUiConversationDetailsMemberListItem*
dino_ui_conversation_details_dino_ui_conversation_details_member_list_item_construct (GType object_type)
{
	DinoUiConversationDetailsDinoUiConversationDetailsMemberListItem * self = NULL;
	self = (DinoUiConversationDetailsDinoUiConversationDetailsMemberListItem*) g_object_new (object_type, NULL);
	return self;
}

DinoUiConversationDetailsDinoUiConversationDetailsMemberListItem*
dino_ui_conversation_details_dino_ui_conversation_details_member_list_item_new (void)
{
	return dino_ui_conversation_details_dino_ui_conversation_details_member_list_item_construct (DINO_UI_CONVERSATION_DETAILS_DINO_UI_CONVERSATION_DETAILS_TYPE_MEMBER_LIST_ITEM);
}

static void
dino_ui_conversation_details_dino_ui_conversation_details_member_list_item_class_init (DinoUiConversationDetailsDinoUiConversationDetailsMemberListItemClass * klass,
                                                                                       gpointer klass_data)
{
	dino_ui_conversation_details_dino_ui_conversation_details_member_list_item_parent_class = g_type_class_peek_parent (klass);
	gtk_widget_class_set_template_from_resource (GTK_WIDGET_CLASS (klass), "/im/dino/Dino/muc_member_list_row.ui");
}

static void
dino_ui_conversation_details_dino_ui_conversation_details_member_list_item_instance_init (DinoUiConversationDetailsDinoUiConversationDetailsMemberListItem * self,
                                                                                          gpointer klass)
{
	gtk_widget_init_template (GTK_WIDGET (self));
}

static GType
dino_ui_conversation_details_dino_ui_conversation_details_member_list_item_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (DinoUiConversationDetailsDinoUiConversationDetailsMemberListItemClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) dino_ui_conversation_details_dino_ui_conversation_details_member_list_item_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DinoUiConversationDetailsDinoUiConversationDetailsMemberListItem), 0, (GInstanceInitFunc) dino_ui_conversation_details_dino_ui_conversation_details_member_list_item_instance_init, NULL };
	GType dino_ui_conversation_details_dino_ui_conversation_details_member_list_item_type_id;
	dino_ui_conversation_details_dino_ui_conversation_details_member_list_item_type_id = g_type_register_static (gtk_widget_get_type (), "DinoUiConversationDetailsDinoUiConversationDetailsMemberListItem", &g_define_type_info, 0);
	return dino_ui_conversation_details_dino_ui_conversation_details_member_list_item_type_id;
}

GType
dino_ui_conversation_details_dino_ui_conversation_details_member_list_item_get_type (void)
{
	static volatile gsize dino_ui_conversation_details_dino_ui_conversation_details_member_list_item_type_id__once = 0;
	if (g_once_init_enter (&dino_ui_conversation_details_dino_ui_conversation_details_member_list_item_type_id__once)) {
		GType dino_ui_conversation_details_dino_ui_conversation_details_member_list_item_type_id;
		dino_ui_conversation_details_dino_ui_conversation_details_member_list_item_type_id = dino_ui_conversation_details_dino_ui_conversation_details_member_list_item_get_type_once ();
		g_once_init_leave (&dino_ui_conversation_details_dino_ui_conversation_details_member_list_item_type_id__once, dino_ui_conversation_details_dino_ui_conversation_details_member_list_item_type_id);
	}
	return dino_ui_conversation_details_dino_ui_conversation_details_member_list_item_type_id__once;
}

static void
_vala_array_destroy (gpointer array,
                     gssize array_length,
                     GDestroyNotify destroy_func)
{
	if ((array != NULL) && (destroy_func != NULL)) {
		gssize i;
		for (i = 0; i < array_length; i = i + 1) {
			if (((gpointer*) array)[i] != NULL) {
				destroy_func (((gpointer*) array)[i]);
			}
		}
	}
}

static void
_vala_array_free (gpointer array,
                  gssize array_length,
                  GDestroyNotify destroy_func)
{
	_vala_array_destroy (array, array_length, destroy_func);
	g_free (array);
}

static inline gpointer
_vala_memdup2 (gconstpointer mem,
               gsize byte_size)
{
	gpointer new_mem;
	if (mem && byte_size != 0) {
		new_mem = g_malloc (byte_size);
		memcpy (new_mem, mem, byte_size);
	} else {
		new_mem = NULL;
	}
	return new_mem;
}

