From f7ee38b6c1d6c809feddd91647d83e6c6fdd3837 Mon Sep 17 00:00:00 2001 From: Kitsune Ral Date: Fri, 23 Mar 2018 15:40:54 +0900 Subject: Dealing with direct chats Receiving and caching m.direct (and other non-room account data along the way); Connection::addToDirectChats/removeFromDirectChats (might get siblings in Room eventually but not now), Connection/User::requestDirectChat. Closes #163. --- room.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'room.cpp') diff --git a/room.cpp b/room.cpp index 6c8d762b..48c27ba0 100644 --- a/room.cpp +++ b/room.cpp @@ -1424,6 +1424,11 @@ void Room::processStateEvents(const RoomEvents& events) auto memberEvent = static_cast(event); auto u = user(memberEvent->userId()); u->processEvent(memberEvent, this); + if (u == localUser() && memberJoinState(u) == JoinState::Invite + && memberEvent->isDirect()) + connection()->addToDirectChats(this, + user(memberEvent->senderId())); + if( memberEvent->membership() == MembershipType::Join ) { if (memberJoinState(u) != JoinState::Join) -- cgit v1.2.3