blob: 49392c70305ea9eaaa687662b77a1079fb6d0529 [file] [log] [blame]
Nicolas Jagerbff5fbb2016-08-18 08:58:56 -04001/***************************************************************************
atraczyk8ce1dee2016-08-25 18:15:07 -04002 * Copyright (C) 2016 by Savoir-faire Linux *
3 * Author: Jäger Nicolas <nicolas.jager@savoirfairelinux.com> *
4 * Author: Traczyk Andreas <andreas.traczyk@savoirfairelinux.com> *
5 * *
6 * This program is free software; you can redistribute it and/or modify *
7 * it under the terms of the GNU General Public License as published by *
8 * the Free Software Foundation; either version 3 of the License, or *
9 * (at your option) any later version. *
10 * *
11 * This program is distributed in the hope that it will be useful, *
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
14 * GNU General Public License for more details. *
15 * *
16 * You should have received a copy of the GNU General Public License *
17 * along with this program. If not, see <http://www.gnu.org/licenses/>. *
18 **************************************************************************/
19
Nicolas Jagerbff5fbb2016-08-18 08:58:56 -040020#include "pch.h"
21#include "AccountsViewModel.h"
22
23using namespace RingClientUWP;
24using namespace ViewModel;
25
26AccountsViewModel::AccountsViewModel()
27{
Nicolas Jagerbff5fbb2016-08-18 08:58:56 -040028 accountsList_ = ref new Vector<Account^>();
atraczyk82f8dda2016-08-25 16:34:52 -040029}
Nicolas Jagerbff5fbb2016-08-18 08:58:56 -040030
atraczyk82f8dda2016-08-25 16:34:52 -040031void
Nicolas Jager0a7b77d2016-10-26 12:26:43 -040032AccountsViewModel::addRingAccount(std::string& alias, std::string& ringID, std::string& accountID, std::string& deviceId, bool upnpState)
atraczyk82f8dda2016-08-25 16:34:52 -040033{
Nicolas Jagerbf406b22016-10-21 11:32:33 -040034 auto account = ref new Account(
Nicolas Jager0a7b77d2016-10-26 12:26:43 -040035 Utils::toPlatformString(alias),
Nicolas Jagerbf406b22016-10-21 11:32:33 -040036 Utils::toPlatformString(ringID),
Nicolas Jager0a7b77d2016-10-26 12:26:43 -040037 "RING",
Nicolas Jagerbf406b22016-10-21 11:32:33 -040038 Utils::toPlatformString(accountID),
Nicolas Jager6abfc0d2016-10-21 14:57:47 -040039 Utils::toPlatformString(deviceId),
Nicolas Jager0a7b77d2016-10-26 12:26:43 -040040 upnpState,
41 "" /* sip hostame not used woth ring account */,
42 "" /* sip username not used with ring account */,
43 "" /* sip password not used with ring */ );
44
45 accountsList_->Append(account);
46 updateScrollView();
47 accountAdded(account);
48}
49
50void
51AccountsViewModel::addSipAccount(std::string& alias, std::string& accountID, std::string& sipHostname, std::string& sipUsername, std::string& sipPassword)
52{
53 auto account = ref new Account(
54 Utils::toPlatformString(alias),
55 "" /* ring Id not used with sip */ ,
56 "SIP",
57 Utils::toPlatformString(accountID),
58 "" /* device id not used with sip */,
59 false /* upnpn not used with sip */,
60 Utils::toPlatformString(sipHostname),
61 Utils::toPlatformString(sipUsername),
62 Utils::toPlatformString(sipPassword)
63 );
Nicolas Jagerd0830772016-10-07 08:45:33 -040064
Nicolas Jagerbf406b22016-10-21 11:32:33 -040065 accountsList_->Append(account);
atraczyk196936e2016-09-02 15:31:53 -040066 updateScrollView();
Nicolas Jagerbf406b22016-10-21 11:32:33 -040067 accountAdded(account);
atraczyk82f8dda2016-08-25 16:34:52 -040068}
69
70void
71AccountsViewModel::clearAccountList()
72{
73 accountsList_->Clear();
Nicolas Jagerbf406b22016-10-21 11:32:33 -040074 clearAccountsList();
Nicolas Jager6abfc0d2016-10-21 14:57:47 -040075}
76
77Account ^ RingClientUWP::ViewModel::AccountsViewModel::findItem(String ^ accountId)
78{
79 for each (Account^ item in accountsList_)
80 if (item->accountID_ == accountId)
81 return item;
82
83 return nullptr;
84}