diff --git a/src/client/configurationmanager.cpp b/src/client/configurationmanager.cpp index e1257106c5274b6f6d8796dc294defad22668348..d6d501deb716f16e51c18fff20d0940c40b71b9e 100644 --- a/src/client/configurationmanager.cpp +++ b/src/client/configurationmanager.cpp @@ -549,7 +549,7 @@ setActiveCodecList(const std::string& accountID if (auto acc = ring::Manager::instance().getAccount(accountID)) { acc->setActiveCodecs(list); - ring::Manager::instance().saveConfig(); + ring::Manager::instance().saveConfig(acc); } else { RING_ERR("Could not find account %s", accountID.c_str()); } diff --git a/src/manager.cpp b/src/manager.cpp index bc302b35259cab94319f17b7dbcbee51a87692f0..b44a794f789b766ab244951d9c7615f5a37d7121 100644 --- a/src/manager.cpp +++ b/src/manager.cpp @@ -1685,6 +1685,15 @@ void Manager::pollEvents() //THREAD=Main +void +Manager::saveConfig(const std::shared_ptr<Account>& acc) +{ + if (auto ringAcc = std::dynamic_pointer_cast<RingAccount>(acc)) + saveConfig(ringAcc); + else + saveConfig(); +} + void Manager::saveConfig(const std::shared_ptr<RingAccount>& account) { diff --git a/src/manager.h b/src/manager.h index 0fb4311c2290c254299b07d91409d81d6e08c92c..f5b3a430a5e278b6de99dbc720a194bd531c9e23 100644 --- a/src/manager.h +++ b/src/manager.h @@ -306,6 +306,7 @@ class Manager { */ void saveConfig(); void saveConfig(const std::shared_ptr<RingAccount>&); + void saveConfig(const std::shared_ptr<Account>& acc); /** * Play a ringtone