aboutsummaryrefslogtreecommitdiff
path: root/libdino/src/service/muc_manager.vala
diff options
context:
space:
mode:
Diffstat (limited to 'libdino/src/service/muc_manager.vala')
-rw-r--r--libdino/src/service/muc_manager.vala8
1 files changed, 6 insertions, 2 deletions
diff --git a/libdino/src/service/muc_manager.vala b/libdino/src/service/muc_manager.vala
index b69d71f2..98700c60 100644
--- a/libdino/src/service/muc_manager.vala
+++ b/libdino/src/service/muc_manager.vala
@@ -12,6 +12,7 @@ public class MucManager : StreamInteractionModule, Object {
public signal void enter_error(Account account, Jid jid, Xep.Muc.MucEnterError error);
public signal void left(Account account, Jid jid);
public signal void subject_set(Account account, Jid jid, string? subject);
+ public signal void room_name_set(Account account, Jid jid, string? room_name);
public signal void bookmarks_updated(Account account, Gee.List<Xep.Bookmarks.Conference> conferences);
private StreamInteractor stream_interactor;
@@ -42,7 +43,7 @@ public class MucManager : StreamInteractionModule, Object {
Entities.Message? last_message = stream_interactor.get_module(MessageStorage.IDENTITY).get_last_message(conversation);
if (last_message != null) history_since = last_message.time;
}
-
+
stream.get_module(Xep.Muc.Module.IDENTITY).enter(stream, jid.bare_jid, nick_, password, history_since);
}
@@ -125,7 +126,7 @@ public class MucManager : StreamInteractionModule, Object {
}
public bool is_groupchat_occupant(Jid jid, Account account) {
- return is_groupchat(jid.bare_jid, account) && jid.is_full();
+ return is_groupchat(jid.bare_jid, account) && jid.resourcepart != null;
}
public void get_bookmarks(Account account, owned Xep.Bookmarks.Module.OnResult listener) {
@@ -242,6 +243,9 @@ public class MucManager : StreamInteractionModule, Object {
stream_interactor.module_manager.get_module(account, Xep.Muc.Module.IDENTITY).subject_set.connect( (stream, subject, jid) => {
subject_set(account, jid, subject);
});
+ stream_interactor.module_manager.get_module(account, Xep.Muc.Module.IDENTITY).room_name_set.connect( (stream, jid, room_name) => {
+ room_name_set(account, jid, room_name);
+ });
stream_interactor.module_manager.get_module(account, Xep.Bookmarks.Module.IDENTITY).received_conferences.connect( (stream, conferences) => {
sync_autojoin_active(account, conferences);
bookmarks_updated(account, conferences);