From 1145d0613b6f9935149a21a4c073bc34e9a528e2 Mon Sep 17 00:00:00 2001 From: alex-z Date: Wed, 20 Mar 2024 21:17:06 +0100 Subject: [PATCH] Bugfix. Remove seen call notifications from the list. Signed-off-by: alex-z --- src/gui/tray/activitylistmodel.cpp | 4 +++- src/gui/tray/usermodel.cpp | 13 +++++++------ src/gui/tray/usermodel.h | 4 ++-- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/gui/tray/activitylistmodel.cpp b/src/gui/tray/activitylistmodel.cpp index d0866c440c506..3976e9950c3c5 100644 --- a/src/gui/tray/activitylistmodel.cpp +++ b/src/gui/tray/activitylistmodel.cpp @@ -688,7 +688,9 @@ void ActivityListModel::checkAndRemoveSeenActivities(const OCC::ActivityList &ne { ActivityList activitiesToRemove; for (const auto &activity : _finalList) { - if (activity._objectType == QStringLiteral("chat") && !newActivities.contains(activity)) { + const auto isTalkActiity = activity._objectType == QStringLiteral("chat") || + activity._objectType == QStringLiteral("call"); + if (isTalkActiity && !newActivities.contains(activity)) { activitiesToRemove.push_back(activity); } } diff --git a/src/gui/tray/usermodel.cpp b/src/gui/tray/usermodel.cpp index da175d3e28bf8..7cb3b08e7afa7 100644 --- a/src/gui/tray/usermodel.cpp +++ b/src/gui/tray/usermodel.cpp @@ -119,12 +119,12 @@ bool User::canShowNotification(const long notificationId) !notificationAlreadyShown(notificationId); } -void User::checkAndRemoveSeenActivities(const ActivityList &list, const int numChatNotificationsReceived) +void User::checkAndRemoveSeenActivities(const ActivityList &list, const int numTalkNotificationsReceived) { - if (numChatNotificationsReceived < _lastChatNotificationsReceivedCount) { + if (numTalkNotificationsReceived < _lastTalkNotificationsReceivedCount) { _activityModel->checkAndRemoveSeenActivities(list); } - _lastChatNotificationsReceivedCount = numChatNotificationsReceived; + _lastTalkNotificationsReceivedCount = numTalkNotificationsReceived; } void User::showDesktopNotification(const QString &title, const QString &message, const long notificationId) @@ -205,10 +205,11 @@ void User::showDesktopTalkNotification(const Activity &activity) void User::slotBuildNotificationDisplay(const ActivityList &list) { - const auto chatNotificationsReceivedCount = std::count_if(std::cbegin(list), std::cend(list), [](const auto &activity) { - return activity._objectType == QStringLiteral("chat"); + const auto talkNotificationsReceivedCount = std::count_if(std::cbegin(list), std::cend(list), [](const auto &activity) { + return activity._objectType == QStringLiteral("chat") || + activity._objectType == QStringLiteral("call"); }); - checkAndRemoveSeenActivities(list, chatNotificationsReceivedCount); + checkAndRemoveSeenActivities(list, talkNotificationsReceivedCount); ActivityList toNotifyList; diff --git a/src/gui/tray/usermodel.h b/src/gui/tray/usermodel.h index c92e98b7c938a..37f039f3a79be 100644 --- a/src/gui/tray/usermodel.h +++ b/src/gui/tray/usermodel.h @@ -166,7 +166,7 @@ private slots: bool notificationAlreadyShown(const long notificationId); bool canShowNotification(const long notificationId); - void checkAndRemoveSeenActivities(const ActivityList &list, const int numChatNotificationsReceived); + void checkAndRemoveSeenActivities(const ActivityList &list, const int numTalkNotificationsReceived); AccountStatePtr _account; bool _isCurrentUser; @@ -188,7 +188,7 @@ private slots: // no query for notifications is started. int _notificationRequestsRunning = 0; - int _lastChatNotificationsReceivedCount = 0; + int _lastTalkNotificationsReceivedCount = 0; bool _isNotificationFetchRunning = false; };