From 9f570a3ceef5617770d46cff86d4d02f85ec3b98 Mon Sep 17 00:00:00 2001 From: Xavier Jouslin de Noray <xavier.jouslindenoray@savoirfairelinux.com> Date: Tue, 22 Aug 2023 12:01:14 -0400 Subject: [PATCH] Plugin Queries: resolve architecture to be able to handle dynamically all platform Change-Id: I35ea5be7dc87dcf2e15b5803f9819887c946b91a --- src/app/pluginadapter.cpp | 34 +++++++++++-------- src/app/pluginversionmanager.cpp | 7 ++-- src/app/utils.cpp | 6 ---- src/app/utils.h | 2 -- src/libclient/api/pluginmodel.h | 1 + src/libclient/pluginmodel.cpp | 6 ++++ src/libclient/qtwrapper/pluginmanager.cpp | 6 ++++ src/libclient/qtwrapper/pluginmanagerMock.cpp | 6 ++++ src/libclient/qtwrapper/pluginmanager_wrap.h | 2 ++ 9 files changed, 44 insertions(+), 26 deletions(-) diff --git a/src/app/pluginadapter.cpp b/src/app/pluginadapter.cpp index edfa0d4ce..c01d69e8b 100644 --- a/src/app/pluginadapter.cpp +++ b/src/app/pluginadapter.cpp @@ -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"]; } diff --git a/src/app/pluginversionmanager.cpp b/src/app/pluginversionmanager.cpp index e508402b9..04c850d3f 100644 --- a/src/app/pluginversionmanager.cpp +++ b/src/app/pluginversionmanager.cpp @@ -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) { diff --git a/src/app/utils.cpp b/src/app/utils.cpp index cbd725b87..57fe7e6aa 100644 --- a/src/app/utils.cpp +++ b/src/app/utils.cpp @@ -931,9 +931,3 @@ Utils::generateUid() { return QUuid::createUuid().toString(QUuid::Id128); } - -QString -Utils::getPlatformString() -{ - return "desktop"; -} diff --git a/src/app/utils.h b/src/app/utils.h index 6f7bed819..6e762be25 100644 --- a/src/app/utils.h +++ b/src/app/utils.h @@ -126,6 +126,4 @@ QString generateUid(); // Misc QString humanFileSize(qint64 fileSize); QString getDebugFilePath(); - -QString getPlatformString(); } // namespace Utils diff --git a/src/libclient/api/pluginmodel.h b/src/libclient/api/pluginmodel.h index 2faafeac0..88bdae939 100644 --- a/src/libclient/api/pluginmodel.h +++ b/src/libclient/api/pluginmodel.h @@ -102,6 +102,7 @@ public: */ QString getPluginPath(const QString& pluginId); + MapStringString getPlatformInfo(); /** * @brief fetch all plugins path and id * diff --git a/src/libclient/pluginmodel.cpp b/src/libclient/pluginmodel.cpp index 7afd2acb1..7e80d30c6 100644 --- a/src/libclient/pluginmodel.cpp +++ b/src/libclient/pluginmodel.cpp @@ -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) { diff --git a/src/libclient/qtwrapper/pluginmanager.cpp b/src/libclient/qtwrapper/pluginmanager.cpp index cc6c13db4..af74942f2 100644 --- a/src/libclient/qtwrapper/pluginmanager.cpp +++ b/src/libclient/qtwrapper/pluginmanager.cpp @@ -60,6 +60,12 @@ PluginManagerInterface::uninstallPlugin(const QString& pluginRootPath) return libjami::uninstallPlugin(pluginRootPath.toStdString()); } +MapStringString +PluginManagerInterface::getPlatformInfo() +{ + return convertMap(libjami::getPlatformInfo()); +} + QStringList PluginManagerInterface::getCallMediaHandlers() { diff --git a/src/libclient/qtwrapper/pluginmanagerMock.cpp b/src/libclient/qtwrapper/pluginmanagerMock.cpp index c0194f22c..4b89113a0 100644 --- a/src/libclient/qtwrapper/pluginmanagerMock.cpp +++ b/src/libclient/qtwrapper/pluginmanagerMock.cpp @@ -61,6 +61,12 @@ PluginManagerInterface::uninstallPlugin(const QString& pluginRootPath) return 0; } +MapStringString +PluginManagerInterface::getPlatformInfo() +{ + return {}; +} + QStringList PluginManagerInterface::getCallMediaHandlers() { diff --git a/src/libclient/qtwrapper/pluginmanager_wrap.h b/src/libclient/qtwrapper/pluginmanager_wrap.h index 9e2a6befc..cbf35edfb 100644 --- a/src/libclient/qtwrapper/pluginmanager_wrap.h +++ b/src/libclient/qtwrapper/pluginmanager_wrap.h @@ -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); -- GitLab