diff --git a/app/src/handlers/confighandler.cpp b/app/src/handlers/confighandler.cpp index bcb3e744f50dacf5d8b2a3ceb9ca6d8f6a670bf7..c4043f302011b23734f0f98f0c9598e20d4358e5 100644 --- a/app/src/handlers/confighandler.cpp +++ b/app/src/handlers/confighandler.cpp @@ -31,6 +31,11 @@ QJsonObject ConfigHandler::getUsrConfigApplication() const bool ConfigHandler::setUsrConfigApplication(const QJsonObject &object) const { + /* object format + { + "update_checked_at": 1483658977219 + } + */ return usrConfig_.set("application", object); } @@ -64,6 +69,16 @@ bool ConfigHandler::setUsrConfigInstalledItems(const QJsonObject &object) const return usrConfig_.set("installed_items", object); } +QJsonObject ConfigHandler::getUsrConfigUpdateAvailable() const +{ + return usrConfig_.get("update_available"); +} + +bool ConfigHandler::setUsrConfigUpdateAvailable(const QJsonObject &object) const +{ + return usrConfig_.set("update_available", object); +} + bool ConfigHandler::setUsrConfigProvidersProvider(const QString &providerKey, const QJsonObject &object) const { /* object format @@ -162,6 +177,28 @@ bool ConfigHandler::removeUsrConfigInstalledItemsItem(const QString &itemKey) co return setUsrConfigInstalledItems(installedItems); } +bool ConfigHandler::setUsrConfigUpdateAvailableFile(const QString &fileKey, const QJsonObject &object) const +{ + /* object format + { + "path": "/home/user/.local/bin/example.AppImage", + "filename": "example.AppImage", + "installed_item": "http://example.com/downloads/example.AppImage", + "update_method": "appimageupdate" + } + */ + auto updateAvailable = getUsrConfigUpdateAvailable(); + updateAvailable[fileKey] = object; + return setUsrConfigUpdateAvailable(updateAvailable); +} + +bool ConfigHandler::removeUsrConfigUpdateAvailableFile(const QString &fileKey) const +{ + auto updateAvailable = getUsrConfigUpdateAvailable(); + updateAvailable.remove(fileKey); + return setUsrConfigUpdateAvailable(updateAvailable); +} + void ConfigHandler::importAppConfigApplication() { appConfigApplication_ = appConfig_.get("application"); diff --git a/app/src/handlers/confighandler.h b/app/src/handlers/confighandler.h index bd44739d030aec2fe98cc653aed0e7c9f2632c12..76aa0e4cac698760f502d54c1952e347ff344912 100644 --- a/app/src/handlers/confighandler.h +++ b/app/src/handlers/confighandler.h @@ -24,6 +24,8 @@ public slots: bool setUsrConfigCategories(const QJsonObject &object) const; QJsonObject getUsrConfigInstalledItems() const; bool setUsrConfigInstalledItems(const QJsonObject &object) const; + QJsonObject getUsrConfigUpdateAvailable() const; + bool setUsrConfigUpdateAvailable(const QJsonObject &object) const; bool setUsrConfigProvidersProvider(const QString &providerKey, const QJsonObject &object) const; bool removeUsrConfigProvidersProvider(const QString &providerKey) const; @@ -32,6 +34,8 @@ public slots: bool setUsrConfigCategoriesInstallType(const QString &providerKey, const QString &categoryKey, const QString &installType) const; bool setUsrConfigInstalledItemsItem(const QString &itemKey, const QJsonObject &object) const; bool removeUsrConfigInstalledItemsItem(const QString &itemKey) const; + bool setUsrConfigUpdateAvailableFile(const QString &fileKey, const QJsonObject &object) const; + bool removeUsrConfigUpdateAvailableFile(const QString &fileKey) const; private: void importAppConfigApplication();