Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Evangelos Ribeiro Tzaras
chatty
Commits
db689dba
Commit
db689dba
authored
Jun 14, 2020
by
Mohammed Sadiq
Browse files
chat: Add API to check if chat is IM
parent
6294dda9
Changes
2
Hide whitespace changes
Inline
Side-by-side
src/chatty-chat.c
View file @
db689dba
...
...
@@ -59,10 +59,12 @@ struct _ChattyChat
char
*
last_message
;
char
*
chat_name
;
char
*
account_username
;
guint
unread_count
;
guint
last_msg_time
;
e_msg_dir
last_msg_direction
;
ChattyEncryption
encrypt
;
gboolean
is_im
;
};
G_DEFINE_TYPE
(
ChattyChat
,
chatty_chat
,
CHATTY_TYPE_ITEM
)
...
...
@@ -430,6 +432,23 @@ chatty_chat_init (ChattyChat *self)
}
ChattyChat
*
chatty_chat_new
(
const
char
*
account_username
,
const
char
*
chat_name
,
gboolean
is_im
)
{
ChattyChat
*
self
;
self
=
g_object_new
(
CHATTY_TYPE_CHAT
,
NULL
);
self
->
chat_name
=
g_strdup
(
chat_name
);
self
->
account_username
=
g_strdup
(
account_username
);
self
->
is_im
=
!!
is_im
;
return
self
;
}
ChattyChat
*
chatty_chat_new_im_chat
(
PurpleAccount
*
account
,
PurpleBuddy
*
buddy
)
...
...
@@ -536,6 +555,34 @@ chatty_chat_set_purple_conv (ChattyChat *self,
}
}
/**
* chatty_chat_is_im:
* @self: A #ChattyChat
*
* Get if @self is an instant message or not.
*
* Returns: %TRUE if @self is an instant message.
* %FALSE if @self is a multiuser chat.
*/
gboolean
chatty_chat_is_im
(
ChattyChat
*
self
)
{
PurpleConversationType
type
=
PURPLE_CONV_TYPE_UNKNOWN
;
g_return_val_if_fail
(
CHATTY_IS_CHAT
(
self
),
FALSE
);
if
(
self
->
buddy
)
return
TRUE
;
if
(
self
->
conv
)
type
=
purple_conversation_get_type
(
self
->
conv
);
if
(
type
==
PURPLE_CONV_TYPE_IM
)
return
TRUE
;
return
self
->
is_im
;
}
ChattyProtocol
chatty_chat_get_protocol
(
ChattyChat
*
self
)
{
...
...
@@ -601,6 +648,9 @@ chatty_chat_get_username (ChattyChat *self)
if
(
self
->
conv
)
return
purple_account_get_username
(
self
->
conv
->
account
);
if
(
self
->
account_username
)
return
self
->
account_username
;
return
""
;
}
...
...
src/chatty-chat.h
View file @
db689dba
...
...
@@ -32,12 +32,16 @@ typedef enum {
}
e_msg_dir
;
ChattyChat
*
chatty_chat_new
(
const
char
*
account_username
,
const
char
*
chat_name
,
gboolean
is_im
);
ChattyChat
*
chatty_chat_new_im_chat
(
PurpleAccount
*
account
,
PurpleBuddy
*
buddy
);
ChattyChat
*
chatty_chat_new_purple_chat
(
PurpleChat
*
pp_chat
);
ChattyChat
*
chatty_chat_new_purple_conv
(
PurpleConversation
*
conv
);
void
chatty_chat_set_purple_conv
(
ChattyChat
*
self
,
PurpleConversation
*
conv
);
gboolean
chatty_chat_is_im
(
ChattyChat
*
self
);
ChattyProtocol
chatty_chat_get_protocol
(
ChattyChat
*
self
);
PurpleChat
*
chatty_chat_get_purple_chat
(
ChattyChat
*
self
);
PurpleBuddy
*
chatty_chat_get_purple_buddy
(
ChattyChat
*
self
);
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment