const char propertyAccountStateC[] = "oc_account_state";
const int successStatusCode = 200;
const int notModifiedStatusCode = 304;
-QMap<int, QByteArray> ServerNotificationHandler::iconCache;
ServerNotificationHandler::ServerNotificationHandler(AccountState *accountState, QObject *parent)
: QObject(parent)
}
}
-void ServerNotificationHandler::slotIconDownloaded(QByteArray iconData)
-{
- iconCache.insert(sender()->property("activityId").toInt(),iconData);
-}
-
void ServerNotificationHandler::slotNotificationsReceived(const QJsonDocument &json, int statusCode)
{
if (statusCode != successStatusCode && statusCode != notModifiedStatusCode) {
a._message = json.value("message").toString();
a._icon = json.value("icon").toString();
- if (!a._icon.isEmpty()) {
- auto *iconJob = new IconJob(_accountState->account(), QUrl(a._icon));
- iconJob->setProperty("activityId", a._id);
- connect(iconJob, &IconJob::jobFinished, this, &ServerNotificationHandler::slotIconDownloaded);
- }
-
QUrl link(json.value("link").toString());
if (!link.isEmpty()) {
if (link.host().isEmpty()) {
Q_OBJECT
public:
explicit ServerNotificationHandler(AccountState *accountState, QObject *parent = nullptr);
- static QMap<int, QByteArray> iconCache;
signals:
void newNotificationList(ActivityList);
private slots:
void slotNotificationsReceived(const QJsonDocument &json, int statusCode);
void slotEtagResponseHeaderReceived(const QByteArray &value, int statusCode);
- void slotIconDownloaded(QByteArray iconData);
void slotAllowDesktopNotificationsChanged(bool isAllowed);
private: