Fixed name change (#1076)

This commit is contained in:
sojuz151 2021-08-24 19:35:00 +02:00 committed by GitHub
parent 863d66b16e
commit 93e2e0d1cf
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 2 deletions

View file

@ -127,6 +127,7 @@ public class ItemMetaDataHeader : Box {
public Entities.Message.Marked item_mark { get; set; } public Entities.Message.Marked item_mark { get; set; }
private ArrayList<Plugins.MetaConversationItem> items = new ArrayList<Plugins.MetaConversationItem>(); private ArrayList<Plugins.MetaConversationItem> items = new ArrayList<Plugins.MetaConversationItem>();
private uint time_update_timeout = 0; private uint time_update_timeout = 0;
private ulong updated_roster_handler_id = 0;
public ItemMetaDataHeader(StreamInteractor stream_interactor, Conversation conversation, Plugins.MetaConversationItem item) { public ItemMetaDataHeader(StreamInteractor stream_interactor, Conversation conversation, Plugins.MetaConversationItem item) {
this.stream_interactor = stream_interactor; this.stream_interactor = stream_interactor;
@ -136,6 +137,11 @@ public class ItemMetaDataHeader : Box {
update_name_label(); update_name_label();
name_label.style_updated.connect(update_name_label); name_label.style_updated.connect(update_name_label);
updated_roster_handler_id = stream_interactor.get_module(RosterManager.IDENTITY).updated_roster_item.connect((account, jid, roster_item) => {
if (this.conversation.account.equals(account) && this.conversation.counterpart.equals(jid)) {
update_name_label();
}
});
conversation.notify["encryption"].connect(update_unencrypted_icon); conversation.notify["encryption"].connect(update_unencrypted_icon);
item.notify["encryption"].connect(update_encryption_icon); item.notify["encryption"].connect(update_encryption_icon);
@ -309,12 +315,15 @@ public class ItemMetaDataHeader : Box {
} }
public override void dispose() { public override void dispose() {
base.dispose();
if (time_update_timeout != 0) { if (time_update_timeout != 0) {
Source.remove(time_update_timeout); Source.remove(time_update_timeout);
time_update_timeout = 0; time_update_timeout = 0;
} }
if (updated_roster_handler_id != 0){
stream_interactor.get_module(RosterManager.IDENTITY).disconnect(updated_roster_handler_id);
updated_roster_handler_id = 0;
}
base.dispose();
} }
} }

View file

@ -80,6 +80,11 @@ public class ConversationViewController : Object {
update_conversation_topic(subject); update_conversation_topic(subject);
} }
}); });
stream_interactor.get_module(RosterManager.IDENTITY).updated_roster_item.connect((account, jid, roster_item) => {
if (conversation.account.equals(account) && conversation.counterpart.equals(jid)) {
update_conversation_display_name();
}
});
stream_interactor.get_module(FileManager.IDENTITY).upload_available.connect(update_file_upload_status); stream_interactor.get_module(FileManager.IDENTITY).upload_available.connect(update_file_upload_status);