Skip to content

Commit

Permalink
Merge pull request #6563 from nextcloud/bugfix/outdated-call-notifica…
Browse files Browse the repository at this point in the history
…tions

Bugfix. Remove seen call notifications from the list.
  • Loading branch information
allexzander authored Apr 2, 2024
2 parents 45bb243 + 1145d06 commit 6cc4c02
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 9 deletions.
4 changes: 3 additions & 1 deletion src/gui/tray/activitylistmodel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
}
Expand Down
13 changes: 7 additions & 6 deletions src/gui/tray/usermodel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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;

Expand Down
4 changes: 2 additions & 2 deletions src/gui/tray/usermodel.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -188,7 +188,7 @@ private slots:
// no query for notifications is started.
int _notificationRequestsRunning = 0;

int _lastChatNotificationsReceivedCount = 0;
int _lastTalkNotificationsReceivedCount = 0;

bool _isNotificationFetchRunning = false;
};
Expand Down

0 comments on commit 6cc4c02

Please sign in to comment.