blob: 3476e701b37f0c880d340ae3c580991824e569d9 [file] [log] [blame]
/*
* Copyright 2012 Research In Motion Limited.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <webworks_utils.hpp>
#include "contact_account.hpp"
ContactAccount& ContactAccount::GetAccountInstance()
{
static ContactAccount ca;
return ca;
}
ContactAccount::ContactAccount()
{
fetchContactAccounts();
}
ContactAccount::~ContactAccount()
{}
QList<bb::pim::account::Account> ContactAccount::GetContactAccounts(bool fresh)
{
if (fresh) {
fetchContactAccounts();
}
return _accounts;
}
bb::pim::account::Account ContactAccount::GetAccount(bb::pim::account::AccountKey id, bool fresh)
{
if (fresh) {
fetchContactAccounts();
}
return _accountMap.value(id);
}
Json::Value ContactAccount::Account2Json(const bb::pim::account::Account& account)
{
Json::Value jsonAccount;
jsonAccount["id"] = webworks::Utils::intToStr(account.id());
jsonAccount["name"] = account.displayName().isEmpty() ? account.provider().name().toStdString() : account.displayName().toStdString();
jsonAccount["enterprise"] = account.isEnterprise() == 1 ? true : false;
return jsonAccount;
}
void ContactAccount::fetchContactAccounts()
{
QList<bb::pim::account::Account> accounts = _accountService.accounts(bb::pim::account::Service::Contacts);
_accounts.clear();
_accountMap.clear();
for (QList<bb::pim::account::Account>::const_iterator it = accounts.begin(); it != accounts.end(); ++it) {
if ((it->id() != ID_UNIFIED_ACCOUNT) && (it->id() != ID_ENHANCED_ACCOUNT)) {
_accounts.append(*it);
_accountMap.insert(it->id(), (bb::pim::account::Account)(*it));
}
}
}