Prevent double notification of folder now big in activities
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Wed, 5 Jul 2023 18:24:10 +0000 (02:24 +0800)
committerClaudio Cambra <claudio.cambra@nextcloud.com>
Fri, 4 Aug 2023 09:40:41 +0000 (17:40 +0800)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
src/gui/folder.cpp
src/gui/tray/usermodel.cpp

index dd246f109437e4ea624b1f4e6f079a72f312f95b..205ab534fbc92e5b2a9fb0446d4fac0bb44fc2dd 100644 (file)
@@ -1294,6 +1294,7 @@ void Folder::slotExistingFolderNowBig(const QString &folderPath)
         existingFolderNowBigActivity._accName = _accountState->account()->displayName();
         existingFolderNowBigActivity._folder = alias();
         existingFolderNowBigActivity._links = {blacklistActivityLink, whitelistActivityLink};
+        existingFolderNowBigActivity._id = qHash(existingFolderNowBigActivity._file);
 
         const auto user = UserModel::instance()->findUserForAccount(_accountState.data());
         user->slotAddNotification(this, existingFolderNowBigActivity);
index 926a159c6b44cc97535195db2f1e1682bf82dec8..896ff85e4d864fa94999f76b31ef5c07c12a85ca 100644 (file)
@@ -735,10 +735,11 @@ void User::slotAddErrorToGui(const QString &folderAlias, const SyncFileItem::Sta
 
 void User::slotAddNotification(const Folder *folder, const Activity &activity)
 {
-    if (!isActivityOfCurrentAccount(folder)) {
+    if (!isActivityOfCurrentAccount(folder) || _notifiedNotifications.contains(activity._id)) {
         return;
     }
 
+    _notifiedNotifications.insert(activity._id);
     _activityModel->addNotificationToActivityList(activity);
 }