diff --git a/main.cpp b/main.cpp
index 572bd71..6f6bb90 100644
--- a/main.cpp
+++ b/main.cpp
@@ -6,6 +6,7 @@
#include "websiteparser.h"
#include "androidprojectmodifier.h"
#include "coloredstring.h"
+#include "newversionchecker.h"
int main(int argc, char *argv[])
{
@@ -13,6 +14,12 @@ int main(int argc, char *argv[])
try {
QCoreApplication app(argc, argv);
+ NewVersionChecker newVersionChecker;
+
+ if (newVersionChecker.isNewVersionAvailable()) {
+ io.writeError(ColoredString("New version available at https://github.com/RikudouSage/PwaToTwa/releases/latest"));
+ }
+
if (app.arguments().count() < 4 || app.arguments().contains("--help")) {
const auto binaryName = app.arguments().at(0);
diff --git a/newversionchecker.cpp b/newversionchecker.cpp
new file mode 100644
index 0000000..50cfa83
--- /dev/null
+++ b/newversionchecker.cpp
@@ -0,0 +1,33 @@
+#include "newversionchecker.h"
+
+NewVersionChecker::NewVersionChecker()
+{
+
+}
+
+bool NewVersionChecker::isNewVersionAvailable()
+{
+ return latestVersion() > currentVersion();
+}
+
+QVersionNumber NewVersionChecker::currentVersion()
+{
+ return QVersionNumber::fromString("0.0.14");
+}
+
+QVersionNumber NewVersionChecker::latestVersion()
+{
+ QNetworkAccessManager manager;
+ QNetworkRequest request(QUrl("https://github.com/RikudouSage/PwaToTwa/releases/latest"));
+ QEventLoop loop;
+
+ QObject::connect(&manager, &QNetworkAccessManager::finished, &loop, &QEventLoop::quit);
+
+ auto reply = manager.get(request);
+ loop.exec();
+
+ auto locationHeader = reply->header(QNetworkRequest::KnownHeaders::LocationHeader);
+ delete reply;
+
+ return QVersionNumber::fromString(locationHeader.toUrl().path().toUtf8().split('/').last().replace('v', ""));
+}
diff --git a/newversionchecker.h b/newversionchecker.h
new file mode 100644
index 0000000..aeff977
--- /dev/null
+++ b/newversionchecker.h
@@ -0,0 +1,22 @@
+#ifndef NEWVERSIONCHECKER_H
+#define NEWVERSIONCHECKER_H
+
+#include
+#include
+#include
+#include
+#include
+#include
+
+class NewVersionChecker
+{
+public:
+ NewVersionChecker();
+ bool isNewVersionAvailable();
+
+private:
+ QVersionNumber currentVersion();
+ QVersionNumber latestVersion();
+};
+
+#endif // NEWVERSIONCHECKER_H
diff --git a/pwa-to-twa.pro b/pwa-to-twa.pro
index ffc55fc..1bb9c59 100644
--- a/pwa-to-twa.pro
+++ b/pwa-to-twa.pro
@@ -28,6 +28,7 @@ SOURCES += \
githelper.cpp \
inputoutput.cpp \
main.cpp \
+ newversionchecker.cpp \
websiteparser.cpp
# Default rules for deployment.
@@ -40,4 +41,5 @@ HEADERS += \
coloredstring.h \
githelper.h \
inputoutput.h \
+ newversionchecker.h \
websiteparser.h