diff --git a/linphone-app/src/app/App.cpp b/linphone-app/src/app/App.cpp index 11487569c..cacd2ba1b 100644 --- a/linphone-app/src/app/App.cpp +++ b/linphone-app/src/app/App.cpp @@ -990,7 +990,7 @@ void App::openAppAfterInit (bool mustBeIconified) { #endif // ifndef __APPLE__ // Display Assistant if it does not exist proxy config. - if (coreManager->getCore()->getAccountList().empty()) + if (coreManager->getAccountList().empty()) QMetaObject::invokeMethod(mainWindow, "setView", Q_ARG(QVariant, Constants::AssistantViewName), Q_ARG(QVariant, QString("")), Q_ARG(QVariant, QString(""))); #ifdef ENABLE_UPDATE_CHECK diff --git a/linphone-app/src/components/call/CallModel.cpp b/linphone-app/src/components/call/CallModel.cpp index 7662174d3..fcac27454 100644 --- a/linphone-app/src/components/call/CallModel.cpp +++ b/linphone-app/src/components/call/CallModel.cpp @@ -531,7 +531,7 @@ void CallModel::accept (bool withVideo) { params->enableVideo(withVideo); setRecordFile(params); auto localAddress = mCall->getCallLog()->getLocalAddress(); - for(auto account : core->getAccountList()){ + for(auto account : coreManager->getAccountList()){ if( account->getParams()->getIdentityAddress()->weakEqual(localAddress)){ params->setAccount(account); break; diff --git a/linphone-app/src/components/core/CoreHandlers.cpp b/linphone-app/src/components/core/CoreHandlers.cpp index 4db6306dc..37b21fbde 100644 --- a/linphone-app/src/components/core/CoreHandlers.cpp +++ b/linphone-app/src/components/core/CoreHandlers.cpp @@ -65,7 +65,7 @@ void CoreHandlers::onAuthenticationRequested ( ) { Q_UNUSED(method) if( authInfo ) { - auto accounts = core->getAccountList(); + auto accounts = CoreManager::getInstance()->getAccountList(); auto itAccount = accounts.begin() ; std::string username = authInfo->getUsername(); std::string domain = authInfo->getDomain(); diff --git a/linphone-app/src/components/core/CoreManager.cpp b/linphone-app/src/components/core/CoreManager.cpp index 6204c27c5..6e9653ac5 100644 --- a/linphone-app/src/components/core/CoreManager.cpp +++ b/linphone-app/src/components/core/CoreManager.cpp @@ -307,7 +307,7 @@ void CoreManager::migrate () { .arg(rcVersion).arg(Constants::RcVersionCurrent); bool setlimeServerUrl = false; - for(const auto &account : mCore->getAccountList()){ + for(const auto &account : getAccountList()){ auto params = account->getParams(); if( params->getDomain() == Constants::LinphoneDomain) { auto newParams = params->clone(); @@ -362,6 +362,13 @@ int CoreManager::getMissedCallCountFromLocal( const QString &localAddress)const{ return mEventCountNotifier ? mEventCountNotifier->getMissedCallCountFromLocal(localAddress) : 0; } +std::list> CoreManager::getAccountList()const{ + std::list> accounts; + for(auto account : mCore->getAccountList()) + if( account->getCustomParam("hidden") != "1") + accounts.push_back(account); + return accounts; +} // ----------------------------------------------------------------------------- void CoreManager::startIterate(){ diff --git a/linphone-app/src/components/core/CoreManager.hpp b/linphone-app/src/components/core/CoreManager.hpp index 88986c851..d2ddabd0e 100644 --- a/linphone-app/src/components/core/CoreManager.hpp +++ b/linphone-app/src/components/core/CoreManager.hpp @@ -159,6 +159,8 @@ public: int getMissedCallCount(const QString &peerAddress, const QString &localAddress) const;// Get missed call count from a chat (useful for showing bubbles on Timelines) int getMissedCallCountFromLocal(const QString &localAddress) const;// Get missed call count from a chat (useful for showing bubbles on Timelines) + std::list> getAccountList()const; + static bool isInstanciated(){return mInstance!=nullptr;} Q_INVOKABLE bool isLastRemoteProvisioningGood(); diff --git a/linphone-app/src/components/settings/AccountSettingsModel.cpp b/linphone-app/src/components/settings/AccountSettingsModel.cpp index 775697c72..7bda77930 100644 --- a/linphone-app/src/components/settings/AccountSettingsModel.cpp +++ b/linphone-app/src/components/settings/AccountSettingsModel.cpp @@ -112,7 +112,7 @@ bool AccountSettingsModel::addOrUpdateAccount (std::shared_ptr core = coreManager->getCore(); - list> accounts = core->getAccountList(); + list> accounts = coreManager->getAccountList(); if(!account) account = core->createAccount(accountParams); if (account->setParams(accountParams) == -1) { @@ -229,7 +229,7 @@ void AccountSettingsModel::setDefaultAccountFromSipAddress (const QString &sipAd return; } - for (const auto &account : core->getAccountList()) + for (const auto &account : CoreManager::getInstance()->getAccountList()) if (account->getParams()->getIdentityAddress()->weakEqual(address)) { setDefaultAccount(account); return; @@ -241,7 +241,7 @@ void AccountSettingsModel::removeAccount (const shared_ptr &a CoreManager *coreManager = CoreManager::getInstance(); std::shared_ptr newAccount = nullptr; - std::list> allAccounts = coreManager->getCore()->getAccountList(); + std::list> allAccounts = coreManager->getAccountList(); if( account == coreManager->getCore()->getDefaultAccount()){ for(auto nextAccount : allAccounts){ if( nextAccount != account){ @@ -391,7 +391,7 @@ bool AccountSettingsModel::addOrUpdateAccount ( QString sipAddress = data["sipAddress"].toString(); shared_ptr address = CoreManager::getInstance()->getCore()->interpretUrl(sipAddress.toStdString()); - for (const auto &databaseAccount : CoreManager::getInstance()->getCore()->getAccountList()) + for (const auto &databaseAccount : CoreManager::getInstance()->getAccountList()) if (databaseAccount->getParams()->getIdentityAddress()->weakEqual(address)) { account = databaseAccount; } @@ -513,7 +513,7 @@ QVariantList AccountSettingsModel::getAccounts () const { accounts << account; } - for (const auto &account : core->getAccountList()) { + for (const auto &account : CoreManager::getInstance()->getAccountList()) { QVariantMap accountMap; accountMap["sipAddress"] = Utils::coreStringToAppString(account->getParams()->getIdentityAddress()->asStringUriOnly()); accountMap["fullSipAddress"] = Utils::coreStringToAppString(account->getParams()->getIdentityAddress()->asString()); diff --git a/linphone-app/src/components/settings/SettingsModel.cpp b/linphone-app/src/components/settings/SettingsModel.cpp index 3326e8800..ad9bd7304 100644 --- a/linphone-app/src/components/settings/SettingsModel.cpp +++ b/linphone-app/src/components/settings/SettingsModel.cpp @@ -1331,7 +1331,7 @@ void SettingsModel::configureRlsUri () { // Set rls uri if necessary. const string domain = getRlsUriDomain(); - for (const auto &account : CoreManager::getInstance()->getCore()->getAccountList()) + for (const auto &account : CoreManager::getInstance()->getAccountList()) if (account->getParams()->getDomain() == domain) { mConfig->setString("sip", "rls_uri", Constants::DefaultRlsUri); return; diff --git a/linphone-app/src/utils/Utils.cpp b/linphone-app/src/utils/Utils.cpp index b7576624d..43fff1a4b 100644 --- a/linphone-app/src/utils/Utils.cpp +++ b/linphone-app/src/utils/Utils.cpp @@ -147,7 +147,7 @@ std::shared_ptr Utils::getMatchingLocalAddress(std::shared_pt QVector > addresses; // Get default account addresses.push_back(CoreManager::getInstance()->getCore()->createPrimaryContactParsed()); - auto accounts = CoreManager::getInstance()->getCore()->getAccountList(); + auto accounts = CoreManager::getInstance()->getAccountList(); foreach(auto account, accounts) addresses.push_back(account->getParams()->getIdentityAddress()->clone()); foreach(auto address, addresses){