Skip to content
Snippets Groups Projects
Commit 649d73a7 authored by Konstantinos Sideris's avatar Konstantinos Sideris
Browse files

Clear typing notifications when the user list is empty

fixes #304
parent 0028fdfe
No related branches found
No related tags found
No related merge requests found
......@@ -136,6 +136,9 @@ private:
//! Update the room with the new notification count.
void updateRoomNotificationCount(const QString &room_id, uint16_t notification_count);
QStringList generateTypingUsers(const QString &room_id,
const std::vector<std::string> &typing_users);
QHBoxLayout *topLayout_;
Splitter *splitter;
......
......@@ -754,32 +754,32 @@ ChatPage::updateTypingUsers(const QString &roomid, const std::vector<std::string
if (!userSettings_->isTypingNotificationsEnabled())
return;
if (user_ids.empty()) {
typingUsers_[roomid] = {};
return;
}
typingUsers_[roomid] = generateTypingUsers(roomid, user_ids);
if (current_room_ == roomid)
typingDisplay_->setUsers(typingUsers_[roomid]);
}
QStringList
ChatPage::generateTypingUsers(const QString &room_id, const std::vector<std::string> &typing_users)
{
QStringList users;
QSettings settings;
QString user_id = settings.value("auth/user_id").toString();
QString local_user = settings.value("auth/user_id").toString();
for (const auto &uid : user_ids) {
auto user = QString::fromStdString(uid);
for (const auto &uid : typing_users) {
const auto remote_user = QString::fromStdString(uid);
if (user == user_id)
if (remote_user == local_user)
continue;
users.append(Cache::displayName(roomid, user));
users.append(Cache::displayName(room_id, remote_user));
}
users.sort();
if (current_room_ == roomid) {
typingDisplay_->setUsers(users);
}
typingUsers_.emplace(roomid, users);
return users;
}
void
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment