#pragma once #include #include "net/NetJob.h" #include "net/Download.h" #include "multimc_logic_export.h" class MULTIMC_LOGIC_EXPORT NotificationChecker : public QObject { Q_OBJECT public: explicit NotificationChecker(QObject *parent = 0); void setNotificationsUrl(const QUrl ¬ificationsUrl); void setApplicationPlatform(QString platform); void setApplicationChannel(QString channel); void setApplicationFullVersion(QString version); struct NotificationEntry { int id; QString message; enum { Critical, Warning, Information } type; QString channel; QString platform; QString from; QString to; }; QList notificationEntries() const; public slots: void checkForNotifications(); private slots: void downloadSucceeded(int); signals: void notificationCheckFinished(); private: bool entryApplies(const NotificationEntry &entry) const; private: QList m_entries; QUrl m_notificationsUrl; NetJobPtr m_checkJob; Net::Download::Ptr m_download; QString m_appVersionChannel; QString m_appPlatform; QString m_appFullVersion; };