Skip to content
Snippets Groups Projects
Commit d765fc92 authored by Xavier Jouslin de Noray's avatar Xavier Jouslin de Noray Committed by Adrien Béraud
Browse files

PluginStoreEndPoint: add possibility to change the plugin store end point

Gitlab: #1341
Change-Id: Ib4516c6cf2361a4976230a6b056a4c072932a92b
parent f8f1301f
No related branches found
No related tags found
No related merge requests found
......@@ -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) \
......
......@@ -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"];
}
......@@ -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_;
};
......@@ -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))
{}
......
......@@ -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();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment