12 #ifndef hifi_AutoUpdater_h
13 #define hifi_AutoUpdater_h
15 #include <QtCore/QCoreApplication>
16 #include <QtCore/QDebug>
17 #include <QtCore/QMap>
18 #include <QtCore/QObject>
19 #include <QtCore/QString>
20 #include <QtCore/QUrl>
21 #include <QtCore/QXmlStreamAttributes>
22 #include <QtCore/QXmlStreamReader>
23 #include <QtGui/QDesktopServices>
24 #include <QtNetwork/QNetworkAccessManager>
25 #include <QtNetwork/QNetworkConfiguration>
26 #include <QtNetwork/QNetworkReply>
27 #include <QtNetwork/QNetworkRequest>
29 #include <ApplicationVersion.h>
30 #include <DependencyManager.h>
32 class AutoUpdater :
public QObject,
public Dependency {
39 enum class InstallerType {
44 void checkForUpdate();
45 const QMap<ApplicationVersion, QMap<QString, QString>>& getBuildData() {
return _builds; }
46 void openLatestUpdateURL();
47 void setInstallerType(InstallerType type) { _installerType = type; }
48 void setInstallerCampaign(QString campaign) { _installerCampaign = campaign; }
50 const ApplicationVersion& getCurrentVersion()
const {
return _currentVersion; }
53 void latestVersionDataParsed();
54 void newVersionIsAvailable();
55 void newVersionIsDownloaded();
58 QMap<ApplicationVersion, QMap<QString, QString>> _builds;
59 QString _operatingSystem;
60 InstallerType _installerType { InstallerType::FULL };
61 QString _installerCampaign {
"" };
63 ApplicationVersion _currentVersion;
65 void getLatestVersionData();
66 void downloadUpdateVersion(
const QString& version);
67 void appendBuildData(
const QString& versionNumber,
68 const QString& downloadURL,
69 const QString& releaseTime,
70 const QString& releaseNotes,
71 const QString& pullRequestNumber);
74 void parseLatestVersionData();
75 void checkVersionAndNotify();