From 4aee95703d5619f7d55373d2f0bb130781266656 Mon Sep 17 00:00:00 2001 From: Max Weller Date: Sat, 5 Aug 2017 12:56:32 +0200 Subject: request history since last known messages (#110) request history since last known messages when rejoining a room at startup --- libdino/src/service/muc_manager.vala | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'libdino/src') diff --git a/libdino/src/service/muc_manager.vala b/libdino/src/service/muc_manager.vala index 7761373f..779783cc 100644 --- a/libdino/src/service/muc_manager.vala +++ b/libdino/src/service/muc_manager.vala @@ -35,7 +35,15 @@ public class MucManager : StreamInteractionModule, Object { if (stream == null) return; string nick_ = nick ?? account.bare_jid.localpart ?? account.bare_jid.domainpart; set_autojoin(stream, jid, nick_, password); - stream.get_module(Xep.Muc.Module.IDENTITY).enter(stream, jid.bare_jid.to_string(), nick_, password); + + string history_since = null; + Conversation? conversation = stream_interactor.get_module(ConversationManager.IDENTITY).get_conversation(jid, account); + if (conversation != null) { + Entities.Message? last_message = stream_interactor.get_module(MessageStorage.IDENTITY).get_last_message(conversation); + if (last_message != null) history_since = last_message.time.to_string(); + } + + stream.get_module(Xep.Muc.Module.IDENTITY).enter(stream, jid.bare_jid.to_string(), nick_, password, history_since); } public void part(Account account, Jid jid) { -- cgit v1.2.3-54-g00ecf