Limit fetching Activities to 100 or max. 30 days old
authorMichael Schuster <michael@schuster.ms>
Fri, 17 Jan 2020 19:25:41 +0000 (20:25 +0100)
committerMichael Schuster <michael@schuster.ms>
Fri, 17 Jan 2020 19:25:41 +0000 (20:25 +0100)
Signed-off-by: Michael Schuster <michael@schuster.ms>
src/gui/tray/ActivityListModel.cpp
src/gui/tray/ActivityListModel.h

index dc1b109f6721cb837970702b7b53d8c1cce84966..8be9c174d025072052dfcbd263e3eea2667e5291 100644 (file)
@@ -247,6 +247,9 @@ void ActivityListModel::slotActivitiesReceived(const QJsonDocument &json, int st
 
     _currentlyFetching = false;
 
+    QDateTime oldestDate = QDateTime::currentDateTime();
+    oldestDate = oldestDate.addDays(_maxActivitiesDays * -1);
+
     foreach (auto activ, activities) {
         auto json = activ.toObject();
 
@@ -271,6 +274,14 @@ void ActivityListModel::slotActivitiesReceived(const QJsonDocument &json, int st
 
         list.append(a);
         _currentItem = list.last()._id;
+
+        _totalActivitiesFetched++;
+        if(_totalActivitiesFetched == _maxActivities ||
+            a._dateTime < oldestDate) {
+
+            _doneFetching = true;
+            break;
+        }
     }
 
     _activityLists.append(list);
@@ -432,6 +443,7 @@ void ActivityListModel::slotRefreshActivity()
     _activityLists.clear();
     _doneFetching = false;
     _currentItem = 0;
+    _totalActivitiesFetched = 0;
 
     if (canFetchActivities()) {
         startFetchJob();
@@ -448,5 +460,6 @@ void ActivityListModel::slotRemoveAccount()
     _currentlyFetching = false;
     _doneFetching = false;
     _currentItem = 0;
+    _totalActivitiesFetched = 0;
 }
 }
index e6e68cba4091bbdc7f8aabedf595bc2c8b7a7b6d..96b0785eea004783da2cb8e0801dfa781cbf5706 100644 (file)
@@ -102,6 +102,10 @@ private:
     bool _currentlyFetching = false;
     bool _doneFetching = false;
     int _currentItem = 0;
+
+    int _totalActivitiesFetched = 0;
+    int _maxActivities = 100;
+    int _maxActivitiesDays = 30;
 };
 }