summaryrefslogtreecommitdiff
path: root/saltoqd/commmanager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'saltoqd/commmanager.cpp')
-rw-r--r--saltoqd/commmanager.cpp49
1 files changed, 41 insertions, 8 deletions
diff --git a/saltoqd/commmanager.cpp b/saltoqd/commmanager.cpp
index 271749a..dc17e7d 100644
--- a/saltoqd/commmanager.cpp
+++ b/saltoqd/commmanager.cpp
@@ -1,7 +1,10 @@
+#include <QtCore/QJsonArray>
#include "commmanager.h"
using namespace CommHistory;
+static const int RECORD_LIMIT = 20;
+
CommManager::CommManager(StorageManager *storage, ToqManager *toq) :
QObject(toq), _toq(toq), _storage(storage),
_calls(new CallModel(this)),
@@ -12,10 +15,10 @@ CommManager::CommManager(StorageManager *storage, ToqManager *toq) :
_calls->setQueryMode(EventModel::AsyncQuery);
_calls->setSorting(CallModel::SortByTime);
_calls->setResolveContacts(true);
- _calls->setLimit(20);
+ _calls->setLimit(RECORD_LIMIT);
_convs->setQueryMode(EventModel::AsyncQuery);
- _convs->setLimit(20);
+ _convs->setLimit(RECORD_LIMIT);
_refreshTimer->setSingleShot(true);
_refreshTimer->setInterval(1000);
@@ -58,13 +61,16 @@ void CommManager::refresh()
int rows = _calls->rowCount();
for (int i = 0; i < rows; i++) {
Event e = _calls->event(i);
- qDebug() << "Got call" << e.toString();
QDateTime dt = e.startTime();
QJsonObject obj;
- obj.insert("CommsType", QLatin1String("Call"));
- obj.insert("ReceivedTime", qint64(dt.toTime_t()));
- obj.insert("CallerId", e.contactName());
- obj.insert("ItemId", e.id());
+ obj.insert("Name", e.contactName());
+ obj.insert("ContactId", QJsonValue());
+ QJsonArray records;
+ QJsonObject record;
+ record.insert("CommsType", QLatin1String("Call"));
+ record.insert("ReceivedTime", qint64(dt.toTime_t()));
+ record.insert("CallerId", e.contactName());
+ record.insert("ItemId", e.id());
QJsonObject details;
details.insert("Duration", e.startTime().secsTo(e.endTime()));
details.insert("PhoneType", QLatin1String("Other")); // TODO
@@ -80,7 +86,9 @@ void CommManager::refresh()
break;
}
details.insert("IsMissedCall", e.isMissedCall());
- obj.insert("CommsDetails", details);
+ record.insert("CommsDetails", details);
+ records.append(record);
+ obj.insert("CommsRecords", records);
events.insert(dt, obj);
}
@@ -90,4 +98,29 @@ void CommManager::refresh()
Group g = _convs->group(_convs->index(i, 0));
qDebug() << "Chat" << g.contactName();
}
+
+ QJsonArray records;
+
+ int i = 0;
+ auto it = events.begin();
+ while (it != events.end()) {
+ QJsonObject record;
+ record.insert("RecordId", i);
+ record.insert("RecordPayload", it.value());
+ records.append(record);
+
+ ++it;
+ if (++i >= RECORD_LIMIT) break;
+ }
+
+
+ QString storeName("Phub.Phone.RecentComms");
+ QJsonObject store;
+ store.insert("Name", storeName);
+ store.insert("Records", records);
+
+ QJsonObject root;
+ root.insert("DataStore", store);
+
+ _storage->updateStore(storeName, root);
}