1
0
Fork 0
mirror of https://git.jami.net/savoirfairelinux/jami-client-qt.git synced 2025-08-03 14:25:38 +02:00

Plugin Queries: resolve architecture to be able to handle dynamically all platform

Change-Id: I35ea5be7dc87dcf2e15b5803f9819887c946b91a
This commit is contained in:
Xavier Jouslin de Noray 2023-08-22 12:01:14 -04:00
parent 2371f0c09f
commit 9f570a3cee
9 changed files with 44 additions and 26 deletions

View file

@ -90,7 +90,8 @@ PluginAdapter::getPluginsFromStore()
Q_EMIT storeNotAvailable();
});
pluginVersionManager_
->sendGetRequest(QUrl(baseUrl_ + "?arch=" + Utils::getPlatformString()),
->sendGetRequest(QUrl(baseUrl_
+ "?arch=" + lrcInstance_->pluginModel().getPlatformInfo()["os"]),
[this, errorHandler](const QByteArray& data) {
auto result = QJsonDocument::fromJson(data).array();
auto pluginsInstalled = lrcInstance_->pluginModel().getPluginsId();
@ -112,18 +113,19 @@ PluginAdapter::getPluginsFromStore()
void
PluginAdapter::getPluginDetails(const QString& pluginId)
{
pluginVersionManager_->sendGetRequest(QUrl(baseUrl_ + "/details/" + pluginId
+ "?arch=" + Utils::getPlatformString()),
[this](const QByteArray& data) {
auto result = QJsonDocument::fromJson(data).object();
// my response is a json object and I want to convert
// it to a QVariantMap
auto plugin = result.toVariantMap();
if (!plugin.contains("id")) {
plugin["id"] = plugin["name"];
}
pluginStoreListModel_->addPlugin(plugin);
});
pluginVersionManager_
->sendGetRequest(QUrl(baseUrl_ + "/details/" + pluginId
+ "?arch=" + lrcInstance_->pluginModel().getPlatformInfo()["os"]),
[this](const QByteArray& data) {
auto result = QJsonDocument::fromJson(data).object();
// my response is a json object and I want to convert
// it to a QVariantMap
auto plugin = result.toVariantMap();
if (!plugin.contains("id")) {
plugin["id"] = plugin["name"];
}
pluginStoreListModel_->addPlugin(plugin);
});
}
void
@ -204,11 +206,13 @@ PluginAdapter::baseUrl() const
QString
PluginAdapter::getIconUrl(const QString& pluginId) const
{
return baseUrl_ + "/icons/" + pluginId + "?arch=" + Utils::getPlatformString();
return baseUrl_ + "/icons/" + pluginId
+ "?arch=" + lrcInstance_->pluginModel().getPlatformInfo()["os"];
}
QString
PluginAdapter::getBackgroundImageUrl(const QString& pluginId) const
{
return baseUrl_ + "/backgrounds/" + pluginId + "?arch=" + Utils::getPlatformString();
return baseUrl_ + "/backgrounds/" + pluginId
+ "?arch=" + lrcInstance_->pluginModel().getPlatformInfo()["os"];
}

View file

@ -103,8 +103,8 @@ public:
return;
}
parent_.sendGetRequest(QUrl(parent_.baseUrl + "/versions/" + plugin.id
+ "?arch=" + Utils::getPlatformString()),
parent_.sendGetRequest(QUrl(parent_.baseUrl + "/versions/" + plugin.id + "?arch="
+ lrcInstance_->pluginModel().getPlatformInfo()["os"]),
[this, plugin](const QByteArray& data) {
// `data` represents the version in this case.
if (plugin.version < data) {
@ -121,7 +121,8 @@ public:
void installRemotePlugin(const QString& pluginId)
{
parent_.downloadFile(
QUrl(parent_.baseUrl + "/download/" + Utils::getPlatformString() + "/" + pluginId),
QUrl(parent_.baseUrl + "/download/"
+ lrcInstance_->pluginModel().getPlatformInfo()["os"] + "/" + pluginId),
pluginId,
0,
[this, pluginId](bool success, const QString& error) {

View file

@ -931,9 +931,3 @@ Utils::generateUid()
{
return QUuid::createUuid().toString(QUuid::Id128);
}
QString
Utils::getPlatformString()
{
return "desktop";
}

View file

@ -126,6 +126,4 @@ QString generateUid();
// Misc
QString humanFileSize(qint64 fileSize);
QString getDebugFilePath();
QString getPlatformString();
} // namespace Utils

View file

@ -102,6 +102,7 @@ public:
*/
QString getPluginPath(const QString& pluginId);
MapStringString getPlatformInfo();
/**
* @brief fetch all plugins path and id
*

View file

@ -109,6 +109,12 @@ PluginModel::getPluginDetails(const QString& path)
return result;
}
MapStringString
PluginModel::getPlatformInfo()
{
return PluginManager::instance().getPlatformInfo();
}
bool
PluginModel::installPlugin(const QString& jplPath, bool force)
{

View file

@ -60,6 +60,12 @@ PluginManagerInterface::uninstallPlugin(const QString& pluginRootPath)
return libjami::uninstallPlugin(pluginRootPath.toStdString());
}
MapStringString
PluginManagerInterface::getPlatformInfo()
{
return convertMap(libjami::getPlatformInfo());
}
QStringList
PluginManagerInterface::getCallMediaHandlers()
{

View file

@ -61,6 +61,12 @@ PluginManagerInterface::uninstallPlugin(const QString& pluginRootPath)
return 0;
}
MapStringString
PluginManagerInterface::getPlatformInfo()
{
return {};
}
QStringList
PluginManagerInterface::getCallMediaHandlers()
{

View file

@ -58,6 +58,8 @@ public Q_SLOTS: // METHODS
int uninstallPlugin(const QString& pluginRootPath);
MapStringString getPlatformInfo();
QStringList getCallMediaHandlers();
void toggleCallMediaHandler(const QString& mediaHandlerId, const QString& callId, bool toggle);