From 58eb557e68034fcdcb23066c56646cc0f4f97102 Mon Sep 17 00:00:00 2001 From: Ilyas Erdogan Date: Wed, 26 Nov 2025 13:23:41 -0500 Subject: [PATCH] Conversation: avoid network calls on first click Change-Id: Ib6866069f49f1a401a143bd3f2905df46bb5220a --- src/app/lrcinstance.cpp | 9 +++++++++ src/app/lrcinstance.h | 2 ++ src/app/mainview/components/CallActionBar.qml | 2 +- src/app/mainview/components/ChatViewHeader.qml | 2 +- src/app/pluginadapter.cpp | 1 - 5 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/app/lrcinstance.cpp b/src/app/lrcinstance.cpp index bc459af6b..8a5edab66 100644 --- a/src/app/lrcinstance.cpp +++ b/src/app/lrcinstance.cpp @@ -20,6 +20,8 @@ #include "global.h" #include "connectivitymonitor.h" +#include + #include #include #include @@ -73,6 +75,13 @@ LRCInstance::LRCInstance(const QString& updateUrl, connect(&accountModel(), &AccountModel::accountRemoved, this, &LRCInstance::onAccountRemoved, Qt::DirectConnection); + connect(&pluginModel(), &lrc::api::PluginModel::modelUpdated, this, [this] { + set_callMediaHandlersListCount(pluginModel().getCallMediaHandlers().size()); + set_chatHandlersListCount(pluginModel().getChatHandlers().size()); + }); + set_callMediaHandlersListCount(pluginModel().getCallMediaHandlers().size()); + set_chatHandlersListCount(pluginModel().getChatHandlers().size()); + // set the current account if any auto accountList = accountModel().getAccountList(); if (accountList.size()) { diff --git a/src/app/lrcinstance.h b/src/app/lrcinstance.h index 2cea8d9c4..7b88cd7f1 100644 --- a/src/app/lrcinstance.h +++ b/src/app/lrcinstance.h @@ -53,6 +53,8 @@ class LRCInstance : public QObject QML_PROPERTY(QString, currentAccountId) QML_RO_PROPERTY(lrc::api::profile::Type, currentAccountType) QML_PROPERTY(bool, currentAccountAvatarSet) + QML_RO_PROPERTY(int, callMediaHandlersListCount) + QML_RO_PROPERTY(int, chatHandlersListCount) public: explicit LRCInstance(const QString& updateUrl, diff --git a/src/app/mainview/components/CallActionBar.qml b/src/app/mainview/components/CallActionBar.qml index f1fd9fc59..dcbc596a9 100644 --- a/src/app/mainview/components/CallActionBar.qml +++ b/src/app/mainview/components/CallActionBar.qml @@ -455,7 +455,7 @@ Control { icon.source: JamiResources.plugins_24dp_svg icon.color: "white" text: JamiStrings.viewExtension - enabled: PluginAdapter.callMediaHandlersListCount + enabled: LRCInstance.callMediaHandlersListCount onEnabledChanged: CallOverlayModel.setEnabled(this, pluginsAction.enabled) }, Action { diff --git a/src/app/mainview/components/ChatViewHeader.qml b/src/app/mainview/components/ChatViewHeader.qml index 088458982..ffd669aaa 100644 --- a/src/app/mainview/components/ChatViewHeader.qml +++ b/src/app/mainview/components/ChatViewHeader.qml @@ -208,7 +208,7 @@ Rectangle { QWKSetParentHitTestVisible { } - visible: PluginAdapter.chatHandlersListCount && interactionButtonsVisibility + visible: LRCInstance.chatHandlersListCount && interactionButtonsVisibility source: JamiResources.plugins_24dp_svg toolTipText: JamiStrings.showExtensions diff --git a/src/app/pluginadapter.cpp b/src/app/pluginadapter.cpp index 192cdd6ef..b2d4218b6 100644 --- a/src/app/pluginadapter.cpp +++ b/src/app/pluginadapter.cpp @@ -74,7 +74,6 @@ PluginAdapter::PluginAdapter(LRCInstance* instance, AppSettingsManager* settings &PluginVersionManager::newVersionAvailable, pluginListModel_, &PluginListModel::onNewVersionAvailable); - getPluginsFromStore(); } void