diff --git a/src/app/appsettingsmanager.h b/src/app/appsettingsmanager.h index b28deddc04efe09df90e1da31a184cc66a8c75e9..69344ac6c64b714e4fbb3836ba69bd13fee178c1 100644 --- a/src/app/appsettingsmanager.h +++ b/src/app/appsettingsmanager.h @@ -57,6 +57,7 @@ extern const QString defaultDownloadPath; X(WindowState, QWindow::AutomaticVisibility) \ X(EnableExperimentalSwarm, false) \ X(LANG, "SYSTEM") \ + X(PluginStoreEndpoint, "https://plugins.jami.net") \ X(PositionShareDuration, 15) \ X(PositionShareLimit, true) \ X(FlipSelf, true) \ diff --git a/src/app/pluginadapter.cpp b/src/app/pluginadapter.cpp index 79a9ff9446fb9a919ef495a297e536c3e8efed17..ccc23df89d85175a72421eacaa7b5b08435e398d 100644 --- a/src/app/pluginadapter.cpp +++ b/src/app/pluginadapter.cpp @@ -40,12 +40,11 @@ PluginAdapter::PluginAdapter(LRCInstance* instance, QString baseUrl) : QmlAdapterBase(instance, parent) , pluginStoreListModel_(new PluginStoreListModel(instance, this)) - , pluginVersionManager_(new PluginVersionManager(instance, baseUrl, this)) + , pluginVersionManager_(new PluginVersionManager(instance, this)) , pluginListModel_(new PluginListModel(instance, this)) , lrcInstance_(instance) , settingsManager_(settingsManager) , tempPath_(QDir::tempPath()) - , baseUrl_(baseUrl) { QML_REGISTERSINGLETONTYPE_POBJECT(NS_MODELS, pluginStoreListModel_, "PluginStoreListModel"); @@ -99,7 +98,7 @@ PluginAdapter::getPluginsFromStore() const auto& language = settingsManager_->getLanguage(); header["Accept-Language"] = QByteArray(language.toStdString().c_str(), language.size()); pluginVersionManager_ - ->sendGetRequest(QUrl(baseUrl_ + ->sendGetRequest(QUrl(baseUrl() + "?arch=" + lrcInstance_->pluginModel().getPlatformInfo()["os"]), header, [this, errorHandler](const QByteArray& data) { @@ -127,7 +126,7 @@ PluginAdapter::getPluginDetails(const QString& pluginId) const auto& language = settingsManager_->getLanguage(); header["Accept-Language"] = QByteArray(language.toStdString().c_str(), language.size()); pluginVersionManager_ - ->sendGetRequest(QUrl(baseUrl_ + "/details/" + pluginId + ->sendGetRequest(QUrl(baseUrl() + "/details/" + pluginId + "?arch=" + lrcInstance_->pluginModel().getPlatformInfo()["os"]), header, [this](const QByteArray& data) { @@ -214,19 +213,19 @@ PluginAdapter::checkVersionStatus(const QString& pluginId) QString PluginAdapter::baseUrl() const { - return baseUrl_; + return settingsManager_->getValue("PluginStoreEndpoint").toString(); } QString PluginAdapter::getIconUrl(const QString& pluginId) const { - return baseUrl_ + "/icons/" + pluginId + return baseUrl() + "/icons/" + pluginId + "?arch=" + lrcInstance_->pluginModel().getPlatformInfo()["os"]; } QString PluginAdapter::getBackgroundImageUrl(const QString& pluginId) const { - return baseUrl_ + "/backgrounds/" + pluginId + return baseUrl() + "/backgrounds/" + pluginId + "?arch=" + lrcInstance_->pluginModel().getPlatformInfo()["os"]; } diff --git a/src/app/pluginadapter.h b/src/app/pluginadapter.h index 5b7c3ae92bdbcd36a14737ef377c8c75d8fdb53b..f79d35384d9f92818134dccd70cdcdc34dd0aee6 100644 --- a/src/app/pluginadapter.h +++ b/src/app/pluginadapter.h @@ -22,6 +22,7 @@ #include "pluginlistmodel.h" #include "pluginhandlerlistmodel.h" #include "pluginlistpreferencemodel.h" +#include "appsettingsmanager.h" #include "pluginversionmanager.h" #include "pluginstorelistmodel.h" #include "preferenceitemlistmodel.h" @@ -78,8 +79,8 @@ private: std::unique_ptr<PluginHandlerListModel> pluginHandlerListModel_; LRCInstance* lrcInstance_; + AppSettingsManager* settingsManager_; std::mutex mtx_; QString tempPath_; QString baseUrl_; - AppSettingsManager* settingsManager_; }; diff --git a/src/app/pluginversionmanager.cpp b/src/app/pluginversionmanager.cpp index 6f2c11d5233458f2fd116a5efb1aca976e239bd2..e6a177e7f34a83572bbbdfe7f666cabda7caa4c4 100644 --- a/src/app/pluginversionmanager.cpp +++ b/src/app/pluginversionmanager.cpp @@ -33,7 +33,7 @@ public: Impl(LRCInstance* instance, PluginVersionManager& parent) : QObject(nullptr) , parent_(parent) - , appSettingsManager_(new AppSettingsManager(this)) + , settingsManager_(new AppSettingsManager(this)) , lrcInstance_(instance) , tempPath_(QDir::tempPath()) , updateTimer_(new QTimer(this)) @@ -78,12 +78,12 @@ public: bool isAutoUpdaterEnabled() { - return appSettingsManager_->getValue(Settings::Key::PluginAutoUpdate).toBool(); + return settingsManager_->getValue(Settings::Key::PluginAutoUpdate).toBool(); } void setAutoUpdate(bool state) { - appSettingsManager_->setValue(Settings::Key::PluginAutoUpdate, state); + settingsManager_->setValue(Settings::Key::PluginAutoUpdate, state); } void checkVersionStatus(const QString& pluginId) @@ -103,7 +103,8 @@ public: return; } - parent_.sendGetRequest(QUrl(parent_.baseUrl + "/versions/" + plugin.id + "?arch=" + parent_.sendGetRequest(QUrl(settingsManager_->getValue("PluginStoreEndpoint").toString() + + "/versions/" + plugin.id + "?arch=" + lrcInstance_->pluginModel().getPlatformInfo()["os"]), [this, plugin](const QByteArray& data) { // `data` represents the version in this case. @@ -121,7 +122,7 @@ public: void installRemotePlugin(const QString& pluginId) { parent_.downloadFile( - QUrl(parent_.baseUrl + "/download/" + QUrl(settingsManager_->getValue("PluginStoreEndpoint").toString() + "/download/" + lrcInstance_->pluginModel().getPlatformInfo()["os"] + "/" + pluginId), pluginId, 0, @@ -158,15 +159,14 @@ public: }; PluginVersionManager& parent_; - AppSettingsManager* appSettingsManager_ {nullptr}; + AppSettingsManager* settingsManager_ {nullptr}; LRCInstance* lrcInstance_ {nullptr}; QString tempPath_; QTimer* updateTimer_; }; -PluginVersionManager::PluginVersionManager(LRCInstance* instance, QString& baseUrl, QObject* parent) +PluginVersionManager::PluginVersionManager(LRCInstance* instance, QObject* parent) : NetworkManager(&instance->connectivityMonitor(), parent) - , baseUrl(baseUrl) , pimpl_(std::make_unique<Impl>(instance, *this)) {} diff --git a/src/app/pluginversionmanager.h b/src/app/pluginversionmanager.h index cf03b0b8525e4d74c4a2a900a7a4a5700cb90795..9aff2feaffd11a4a89c71e6a8cb0be6332e18913 100644 --- a/src/app/pluginversionmanager.h +++ b/src/app/pluginversionmanager.h @@ -46,9 +46,7 @@ class PluginVersionManager final : public NetworkManager { Q_OBJECT public: - explicit PluginVersionManager(LRCInstance* instance, - QString& baseUrl, - QObject* parent = nullptr); + explicit PluginVersionManager(LRCInstance* instance, QObject* parent = nullptr); ~PluginVersionManager(); Q_INVOKABLE bool isAutoUpdaterEnabled();