Only mark as direct, if invite was direct

This commit is contained in:
Nicolas Werner 2021-11-21 07:06:37 +01:00
parent 3d92e8ae60
commit e7d4aec6ec
No known key found for this signature in database
GPG key ID: C8D75E610773F2D9
3 changed files with 20 additions and 5 deletions

View file

@ -586,8 +586,9 @@ RoomlistModel::initializeRooms()
}
invites = cache::client()->invites();
for (const auto &id : invites.keys())
for (const auto &id : invites.keys()) {
roomids.push_back(id);
}
for (const auto &id : cache::client()->roomIds())
addRoom(id, true);
@ -626,9 +627,17 @@ RoomlistModel::acceptInvite(QString roomid)
{
if (invites.contains(roomid)) {
// Don't remove invite yet, so that we can switch to it
auto members = cache::getMembersFromInvite(roomid.toStdString(), 0, -1);
auto local = utils::localUser();
for (const auto &m : members) {
if (m.user_id == local && m.is_direct) {
nhlog::db()->info("marking {} as direct", roomid.toStdString());
utils::markRoomAsDirect(roomid, members);
break;
}
}
ChatPage::instance()->joinRoom(roomid);
utils::markRoomAsDirect(roomid,
cache::client()->getMembersFromInvite(roomid.toStdString(), 0, -1));
}
}
void