diff options
Diffstat (limited to 'saltoqd/commmanager.cpp')
-rw-r--r-- | saltoqd/commmanager.cpp | 49 |
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); } |