1 #if defined(Q_WS_MAEMO_6)
3 #include "harmattanaccountutility.h"
4 #include <Accounts/Manager>
5 #include <Accounts/Provider>
6 #include <Accounts/Service>
9 #define SERVICE_NAME "vicar"
10 #define SERVICE_TYPE "IM"
11 #define PROVIDER_NAME "vicar"
14 using namespace Accounts;
16 HarmattanAccountUtility::HarmattanAccountUtility()
18 manager = new Manager(this);
21 Account* HarmattanAccountUtility::getAccount(){
22 Account *vicarAccount = NULL;
23 //AccountIdList accountsList = manager->accountList(SERVICE_TYPE);
24 AccountIdList accountsList = manager->accountList();
26 for (int i = 0; i < accountsList.size(); i++) {
27 Account *tempAccount = manager->account(accountsList.at(i));
28 if (tempAccount->providerName() == PROVIDER_NAME){
29 qDebug() << "Account exists";
33 qDebug () << tempAccount->valueAsString("username") << "with provider " << tempAccount->providerName() <<" ignored";
37 qDebug() << "Account does not exist";
41 Account* HarmattanAccountUtility::addAccount(){
42 Account *vicarAccount;
43 vicarAccount = getAccount();
44 if (vicarAccount == NULL){
45 qDebug() << "Creating new account";
46 vicarAccount = manager->createAccount(PROVIDER_NAME);
47 if (vicarAccount != NULL) {
48 qDebug() << "Account object created";
49 connect(vicarAccount,SIGNAL(error(Accounts::Error)),SLOT(errorOccurred(Accounts::Error)));
50 vicarAccount->setDisplayName("VicarAccount");
51 vicarAccount->setValue("username","vicar");
52 vicarAccount->setValue("name","Call via Vicar");
53 vicarAccount->setEnabled(true); //Set account as enabled globally
54 Service *vicarService = manager->service(SERVICE_NAME);
55 vicarAccount->selectService(vicarService);
56 vicarAccount->setEnabled(true); //Set account as enabled at service level
57 vicarAccount->setValue("ConnectAutomatically","true");
58 vicarAccount->setValue("HasBeenOnline","true");
59 vicarAccount->setValue("NormalizedName","Vicar");
60 vicarAccount->setValue("org.freedesktop.Telepathy.Account.Interface.Addressing.DRAFT.URISchemes","tel;");
61 vicarAccount->setValue("tmc-uid","vicar/tel/vicar0");
63 qDebug() << "Account created with ID " << vicarAccount->id();
66 qDebug() << "Account not created due to error "<< manager->lastError().message();
70 qDebug() << "Account already exists. No need to create again";
75 void HarmattanAccountUtility::removeAccount(){
76 Account *vicarAccount = getAccount();
77 if (vicarAccount != NULL && vicarAccount != 0){
78 vicarAccount->remove();
80 qDebug() << "Account deleted";
85 void HarmattanAccountUtility::verifyAccount(){
86 Account *vicarAccount = getAccount();
87 if (vicarAccount != NULL && vicarAccount != 0){
88 Service *vicarService = manager->service(SERVICE_NAME);
89 vicarAccount->selectService(vicarService);
90 QStringList keysList = vicarAccount->allKeys();
96 void HarmattanAccountUtility::errorOccurred(Accounts::Error error){
97 qDebug() << "Error is "<< error.message();
100 #endif //defined(Q_WS_MAEMO_6)