From be41645ae4650d41f7641fdf748c242f4e4353b4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com>
Date: Wed, 13 Mar 2019 17:27:06 -0400
Subject: [PATCH] configuration: fix saving codec details

Change-Id: I16c3c467ee1b1b583f1dc74e2294b7c069331f73
---
 src/client/configurationmanager.cpp | 2 +-
 src/manager.cpp                     | 9 +++++++++
 src/manager.h                       | 1 +
 3 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/src/client/configurationmanager.cpp b/src/client/configurationmanager.cpp
index e1257106c5..d6d501deb7 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 bc302b3525..b44a794f78 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 0fb4311c22..f5b3a430a5 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
-- 
GitLab