diff --git a/CHANGELOG.md b/CHANGELOG.md index 4e0e87267..0f3ecabc5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Blinking on resize or Ui updates on screen that have low frame rates. - Timezones and Windows fix. - Download the correct version of openH264 (2.2.0) +- Avoid to register the account while activating it. - Update SDK to 5.3.80 ### Added diff --git a/linphone-app/src/components/assistant/AssistantModel.cpp b/linphone-app/src/components/assistant/AssistantModel.cpp index 5f0d5f4e3..85249d40e 100644 --- a/linphone-app/src/components/assistant/AssistantModel.cpp +++ b/linphone-app/src/components/assistant/AssistantModel.cpp @@ -52,17 +52,18 @@ public: } private: - void createAccount (const shared_ptr &creator) { - auto account = creator->createAccountInCore(); - if(account){ + void createAccount (const shared_ptr &creator, bool enableRegister = false) { + if(!mAssistant->mAccount) mAssistant->mAccount = creator->createAccountInCore(); + if(mAssistant->mAccount){ AccountSettingsModel *accountSettingsModel = CoreManager::getInstance()->getAccountSettingsModel(); - CoreManager::getInstance()->addingAccount(account->getParams()); - auto accountParams = account->getParams()->clone(); + CoreManager::getInstance()->addingAccount(mAssistant->mAccount->getParams()); + auto accountParams = mAssistant->mAccount->getParams()->clone(); auto natPolicy = accountParams->getNatPolicy(); if(natPolicy) accountParams->setNatPolicy(natPolicy->clone());// Be sure to have a 'ref' entry on a nat_policy. When using default values, the 'ref' entry is lost where it should be pointing to default. We get one by cloning the policy. - if (accountSettingsModel->addOrUpdateAccount(account, accountParams)) { - accountSettingsModel->setDefaultAccount(account); + accountParams->enableRegister(enableRegister); + if (accountSettingsModel->addOrUpdateAccount(mAssistant->mAccount, accountParams)) { + accountSettingsModel->setDefaultAccount(mAssistant->mAccount); } } } @@ -127,7 +128,7 @@ private: creator->recoverAccount(); }else{ emit mAssistant->loginStatusChanged(""); - createAccount(creator); + createAccount(creator, true); CoreManager::getInstance()->getSipAddressesModel()->reset(); mAssistant->setIsProcessing(false); } @@ -176,7 +177,7 @@ private: creator->recoverAccount(); }else{ emit mAssistant->loginStatusChanged(""); - createAccount(creator); + createAccount(creator, true); CoreManager::getInstance()->getSipAddressesModel()->reset(); mAssistant->setIsProcessing(false); } @@ -262,8 +263,9 @@ private: status == linphone::AccountCreator::Status::AccountAlreadyActivated ) { if (creator->getEmail().empty()) - createAccount(creator); + createAccount(creator, true); CoreManager::getInstance()->getSipAddressesModel()->reset(); + emit mAssistant->activateStatusChanged(QString("")); } else { if (status == linphone::AccountCreator::Status::RequestFailed) @@ -279,7 +281,7 @@ private: const string & ) override { if (status == linphone::AccountCreator::Status::AccountActivated) { - createAccount(creator); + createAccount(creator, true); CoreManager::getInstance()->getSipAddressesModel()->reset(); emit mAssistant->activateStatusChanged(QString("")); } else { @@ -313,7 +315,7 @@ private: linphone::AccountCreator::Status status, const std::string & response) override { if( status == linphone::AccountCreator::Status::RequestOk){ - createAccount(creator); + createAccount(creator, true); CoreManager::getInstance()->getSipAddressesModel()->reset(); emit mAssistant->activateStatusChanged(""); } else { @@ -366,6 +368,7 @@ void AssistantModel::activate () { void AssistantModel::create () { setIsProcessing(true); mNextAction = AccountCreation; + mAccount = nullptr; if(mAccountCreator->getUsername().empty()) mAccountCreator->setUsername(mAccountCreator->getPhoneNumber()); emit createStatusChanged(tr("requestingValidationUrl")); diff --git a/linphone-app/src/components/assistant/AssistantModel.hpp b/linphone-app/src/components/assistant/AssistantModel.hpp index 80a8f7294..38044d203 100644 --- a/linphone-app/src/components/assistant/AssistantModel.hpp +++ b/linphone-app/src/components/assistant/AssistantModel.hpp @@ -172,6 +172,7 @@ private: std::shared_ptr mAccountCreator; + std::shared_ptr mAccount; std::shared_ptr mHandlers; #ifdef ENABLE_OAUTH2 OAuth2Model * oAuth2Model = nullptr;