1 #include "contactinterface.h"
2 #include "xmlcontroler.h"
5 ContactInterface* ContactInterface::instance = 0;
7 ContactInterface* ContactInterface::getInstance()
11 instance = new ContactInterface();
16 ContactInterface::ContactInterface(QObject *parent) :
24 ContactInterface::~ContactInterface()
26 for( int i = 0; i < all_contacts_items_db.size(); i++ )
28 delete all_contacts_items_db.at(i);
30 all_contacts_items_db.clear();
33 void ContactInterface::setItemObserver(ItemObserver *observer)
35 XmlControler::getInstance()->setItemObserver( observer );
38 void ContactInterface::setItemSelectObserver( ItemSelectObserver *observer )
40 XmlControler::getInstance()->setItemSelectObserver( observer );
43 bool ContactInterface::initEbook()
45 //qDebug() << "ContactInterface::initEbook(), Entry";
49 roster = osso_abook_aggregator_get_default(&error);
52 //qDebug() << "Couldn't open roster %s\n" << error->message;
53 g_error_free( error );
55 osso_abook_roster_start(roster);
57 //qDebug() << "osso_abook_roster_start";
59 osso_abook_waitable_run(OSSO_ABOOK_WAITABLE(roster), g_main_context_default(), &error);
61 if (!osso_abook_waitable_is_ready(OSSO_ABOOK_WAITABLE(roster), &error) )
62 g_critical("osso_abook_waitable_is_ready: %s\n", error->message);
65 // OssoABookAggregator *_aggr;
69 // osso_abook_waitable_run(OSSO_ABOOK_WAITABLE(roster), g_main_context_default(), &err);
71 // if (! osso_abook_waitable_is_ready(OSSO_ABOOK_WAITABLE(roster), &err))
72 // g_critical("osso_abook_waitable_is_ready: %s\n", err->message);
74 // _aggr = OSSO_ABOOK_AGGREGATOR(roster);
75 // list = osso_abook_aggregator_list_master_contacts(_aggr);
77 // printf("count = %d\n", g_list_length(list)); // list is not empty !
85 bool ContactInterface::updateContactsFromEbookToXml()
87 removeGroup( STR_XML_ALLCONTACTS );
89 addContactToGroup( all_contacts_items_db, STR_XML_ALLCONTACTS );
93 ItemListPtr ContactInterface::getAllContacts()
95 //qDebug() << "ContactInterface::getAllContacts() from EBook, Entry";
100 EContact *contact = NULL;
101 OssoABookAggregator *aggregator = OSSO_ABOOK_AGGREGATOR(roster);
103 list = osso_abook_aggregator_list_master_contacts( aggregator );
105 qDebug() << "get list from EBook";
106 //qDebug() << "list length is :" << g_list_length(list);
110 for( it = list; it; it = it->next )
112 //qDebug() << "into list loop";
114 contact = (EContact *)it->data;
115 Item *item = new Item();
117 str = QString::fromLocal8Bit( (char*)e_contact_get(contact, E_CONTACT_FULL_NAME) );
118 item->full_name = str;
119 qDebug() << "fullname is : " << item->full_name;
121 str = QString::fromLocal8Bit( (char*)e_contact_get(contact, E_CONTACT_PHONE_MOBILE) );
122 item->mobile_number = str;
123 qDebug() << "mobile_number is : " << item->mobile_number;
125 item->group_owner = "";
126 item->user_pic_uri = ":/images/male.png";
128 item->uid = QString::fromLocal8Bit( (char*)e_contact_get(contact, E_CONTACT_UID) );
129 qDebug() << "uid is : " << item->uid;
131 all_contacts_items_db.append( item );
136 return all_contacts_items_db;
139 void ContactInterface::getAllContactsFromXml()
141 //qDebug() << "ContactInterface::getAllContactsFromXml(), Entry";
143 XmlControler::getInstance()->getAllContactItems();
146 void ContactInterface::getAllContactsFromXml(const QString &groupname)
148 //qDebug() << "ContactInterface::getAllContactsFromXml(const QString &groupname), Entry";
150 XmlControler::getInstance()->getAllContactItemsFromGroup(groupname);
153 QStringList ContactInterface::getAllGroupNames()
155 //qDebug() << "ContactInterface::getAllGroupNames(), Entry";
156 return XmlControler::getInstance()->getAllGroupNames();
159 bool ContactInterface::createGroup(const QString &groupname)
161 return XmlControler::getInstance()->createGroup(groupname);
164 bool ContactInterface::removeGroup(const QString &groupname)
166 return XmlControler::getInstance()->removeGroup( groupname );
169 bool ContactInterface::addContactToGroup(ItemListPtr items, const QString &groupname)
171 return XmlControler::getInstance()->createContact( groupname, items );
174 bool ContactInterface::removeContactToGroup( ItemListPtr items, const QString &groupname )
176 return XmlControler::getInstance()->removeContactFromGroup( items, groupname );
179 bool ContactInterface::removeContactToGroup( ItemListPtr items )
181 return XmlControler::getInstance()->removeContactFromGroup( items );