3 @author: Sudheer K. <scifi1947 at gmail.com>
4 @license: GNU General Public License
7 #if defined(Q_WS_MAEMO_6)
9 #include "harmattanaccountutility.h"
10 #include <Accounts/Manager>
11 #include <Accounts/Provider>
12 #include <Accounts/Service>
15 #define SERVICE_NAME "vicar"
16 #define SERVICE_TYPE "IM" //CRITICAL to display on contact page
17 #define PROVIDER_NAME "vicar"
20 using namespace Accounts;
22 HarmattanAccountUtility::HarmattanAccountUtility()
24 manager = new Manager(this);
27 Account* HarmattanAccountUtility::getAccount(){
28 Account *vicarAccount = NULL;
29 //AccountIdList accountsList = manager->accountList(SERVICE_TYPE);
30 AccountIdList accountsList = manager->accountList();
32 for (int i = 0; i < accountsList.size(); i++) {
33 Account *tempAccount = manager->account(accountsList.at(i));
34 if (tempAccount->providerName() == PROVIDER_NAME){
35 qDebug() << "Account exists";
39 qDebug () << tempAccount->valueAsString("username") << "with provider " << tempAccount->providerName() <<" ignored";
43 qDebug() << "Account does not exist";
47 Account* HarmattanAccountUtility::addAccount(){
48 Account *vicarAccount;
49 vicarAccount = getAccount();
50 if (vicarAccount == NULL){
51 qDebug() << "Creating new account";
52 vicarAccount = manager->createAccount(PROVIDER_NAME);
53 if (vicarAccount != NULL) {
54 qDebug() << "Account object created";
55 connect(vicarAccount,SIGNAL(error(Accounts::Error)),SLOT(errorOccurred(Accounts::Error)));
56 vicarAccount->setDisplayName("VicarAccount");
57 vicarAccount->setValue("username","vicar");
58 vicarAccount->setValue("name","Call via Vicar");
59 vicarAccount->setEnabled(true); //Set account as enabled globally
60 Service *vicarService = manager->service(SERVICE_NAME);
61 vicarAccount->selectService(vicarService);
62 vicarAccount->setEnabled(true); //Set account as enabled at service level
63 vicarAccount->setValue("ConnectAutomatically","true");
64 vicarAccount->setValue("HasBeenOnline","true");
65 vicarAccount->setValue("NormalizedName","Vicar");
66 vicarAccount->setValue("org.freedesktop.Telepathy.Account.Interface.Addressing.DRAFT.URISchemes","tel;"); //CRITICAL to display on contact page
67 vicarAccount->setValue("tmc-uid","vicar/tel/vicar0");
69 qDebug() << "Account created with ID " << vicarAccount->id();
72 qDebug() << "Account not created due to error "<< manager->lastError().message();
76 qDebug() << "Account already exists. No need to create again";
81 void HarmattanAccountUtility::removeAccount(){
82 Account *vicarAccount = getAccount();
83 if (vicarAccount != NULL && vicarAccount != 0){
84 vicarAccount->remove();
86 qDebug() << "Account deleted";
91 void HarmattanAccountUtility::verifyAccount(){
92 Account *vicarAccount = getAccount();
93 if (vicarAccount != NULL && vicarAccount != 0){
94 Service *vicarService = manager->service(SERVICE_NAME);
95 vicarAccount->selectService(vicarService);
96 QStringList keysList = vicarAccount->allKeys();
102 void HarmattanAccountUtility::errorOccurred(Accounts::Error error){
103 qDebug() << "Error is "<< error.message();
106 #endif //defined(Q_WS_MAEMO_6)