diff --git a/RingD.cpp b/RingD.cpp index c69845c75528be825ee4b1ad157cc6c4d28d8349..00eccbb30738ef423fa289f908550a54bd959cee 100644 --- a/RingD.cpp +++ b/RingD.cpp @@ -200,10 +200,8 @@ RingClientUWP::RingD::startDaemon() else { if (!hasConfig) { - std::map<std::string, std::string> ringAccountDetails; - ringAccountDetails.insert(std::make_pair(ring::Conf::CONFIG_ACCOUNT_ALIAS, accountName)); - ringAccountDetails.insert(std::make_pair(ring::Conf::CONFIG_ACCOUNT_TYPE,"RING")); - DRing::addAccount(ringAccountDetails); + tasksList_.push(ref new RingD::Task(Request::AddRingAccount)); + tasksList_.push(ref new RingD::Task(Request::AddSIPAccount)); } else { CoreApplication::MainView->CoreWindow->Dispatcher->RunAsync(CoreDispatcherPriority::Normal, @@ -233,6 +231,23 @@ RingD::dequeueTasks() auto task = tasksList_.front(); switch (task->request) { case Request::None: + break; + case Request::AddRingAccount: + { + std::map<std::string, std::string> ringAccountDetails; + ringAccountDetails.insert(std::make_pair(ring::Conf::CONFIG_ACCOUNT_ALIAS, accountName)); + ringAccountDetails.insert(std::make_pair(ring::Conf::CONFIG_ACCOUNT_TYPE,"RING")); + DRing::addAccount(ringAccountDetails); + } + break; + case Request::AddSIPAccount: + { + std::map<std::string, std::string> sipAccountDetails; + sipAccountDetails.insert(std::make_pair(ring::Conf::CONFIG_ACCOUNT_ALIAS, accountName + " (SIP)")); + sipAccountDetails.insert(std::make_pair(ring::Conf::CONFIG_ACCOUNT_TYPE,"SIP")); + DRing::addAccount(sipAccountDetails); + } + break; default: break; } diff --git a/RingD.h b/RingD.h index 366ea2efd024070971009d2e509922e1e361a640..5aaaa30a8d8880bc11633ee9b8b44460f8c9610b 100644 --- a/RingD.h +++ b/RingD.h @@ -68,9 +68,15 @@ internal: private: /* sub classes */ - enum class Request { None }; + enum class Request { + None, + AddRingAccount, + AddSIPAccount + }; ref class Task { + internal: + Task(Request r) { request = r; } public: property Request request; };