void SeasidePerson::setPhoneNumberType(int which, SeasidePerson::DetailTypes type) { const QList<QContactPhoneNumber> &numbers = mContact.details<QContactPhoneNumber>(); if (which >= numbers.length()) { qWarning() << "Unable to set type for phone number: invalid index specified. Aborting."; return; } QContactPhoneNumber number = numbers.at(which); if (type == SeasidePerson::PhoneHomeType) { number.setSubTypes(QContactPhoneNumber::SubTypeLandline); number.setContexts(QContactDetail::ContextHome); } else if (type == SeasidePerson::PhoneWorkType) { number.setSubTypes(QContactPhoneNumber::SubTypeLandline); number.setContexts(QContactDetail::ContextWork); } else if (type == SeasidePerson::PhoneMobileType) { number.setSubTypes(QContactPhoneNumber::SubTypeMobile); number.setContexts(QContactDetail::ContextHome); } else if (type == SeasidePerson::PhoneFaxType) { number.setSubTypes(QContactPhoneNumber::SubTypeFax); number.setContexts(QContactDetail::ContextHome); } else if (type == SeasidePerson::PhonePagerType) { number.setSubTypes(QContactPhoneNumber::SubTypePager); number.setContexts(QContactDetail::ContextHome); } else { qWarning() << "Warning: Could not save phone type '" << type << "'"; } mContact.saveDetail(&number); emit phoneNumberTypesChanged(); }
void MT_CntVersitMyCardPlugin::exportOwnContact() { //create contact QContact phonecontact; QContactName contactName; contactName.setFirstName("Jo"); contactName.setLastName("Black"); phonecontact.saveDetail(&contactName); QContactPhoneNumber number; number.setContexts("Home"); number.setSubTypes("Mobile"); number.setNumber("+02644424429"); phonecontact.saveDetail(&number); //set MyCard detail QContactDetail myCard(MYCARD_DEFINTION_NAME); phonecontact.saveDetail(&myCard); //export QList<QContact> list; list.append(phonecontact); QVersitContactExporter exporter; QVERIFY(exporter.exportContacts(list, QVersitDocument::VCard21Type)); QList<QVersitDocument> documents = exporter.documents(); //X-SELF property is exported if MyCard QVersitDocument document = documents.first(); QVersitProperty property; property.setName(QLatin1String("X-SELF")); property.setValue("0"); bool propertyFound = document.properties().contains(property); QVERIFY(propertyFound); }
QContactDetail *CntTransformPhoneNumber::transformItemField(const CContactItemField& field, const QContact &contact) { Q_UNUSED(contact); QContactPhoneNumber *phoneNumber = new QContactPhoneNumber(); CContactTextField* storage = field.TextStorage(); QString number = QString::fromUtf16(storage->Text().Ptr(), storage->Text().Length()); phoneNumber->setNumber(number); if (field.ContentType().ContainsFieldType(KUidContactFieldPhoneNumber)) { if (field.ContentType().ContainsFieldType(KUidContactFieldVCardMapVOICE)) { phoneNumber->setSubTypes(QContactPhoneNumber::SubTypeLandline); } else if (field.ContentType().ContainsFieldType(KUidContactFieldVCardMapCELL)) { phoneNumber->setSubTypes(QContactPhoneNumber::SubTypeMobile); } else if (field.ContentType().ContainsFieldType(KUidContactFieldVCardMapPAGER)) { phoneNumber->setSubTypes(QContactPhoneNumber::SubTypePager); } else if (field.ContentType().ContainsFieldType(KUidContactFieldVCardMapBBS)) { phoneNumber->setSubTypes(QContactPhoneNumber::SubTypeBulletinBoardSystem); } else if (field.ContentType().ContainsFieldType(KUidContactFieldVCardMapCAR)) { phoneNumber->setSubTypes(QContactPhoneNumber::SubTypeCar); } else if (field.ContentType().Mapping() == KUidContactFieldVCardMapAssistantTel) { phoneNumber->setSubTypes(QContactPhoneNumber::SubTypeAssistant); } else if (field.ContentType().ContainsFieldType(KUidContactFieldVCardMapVIDEO)) { phoneNumber->setSubTypes(QContactPhoneNumber::SubTypeVideo); } } else if (field.ContentType().ContainsFieldType(KUidContactFieldFax)) { phoneNumber->setSubTypes(QContactPhoneNumber::SubTypeFax); } else if (field.ContentType().ContainsFieldType(KUidContactFieldDTMF)) { phoneNumber->setSubTypes(QContactPhoneNumber::SubTypeDtmfMenu); } // set context for (int i = 0; i < field.ContentType().FieldTypeCount(); i++) { setContexts(field.ContentType().FieldType(i), *phoneNumber); } return phoneNumber; }
void TestCntActions::phonenumberNoMessageSupport() { QContactPhoneNumber faxNumber; faxNumber.setNumber("555111222"); faxNumber.setSubTypes(QContactPhoneNumber::SubTypeFacsimile); QList<QContactActionDescriptor> actionDescriptors = QContactAction::actionDescriptors("message", "symbian"); QContactAction* contactAction = QContactAction::action(actionDescriptors.first()); bool isSupportDetail = contactAction->isDetailSupported(faxNumber); delete contactAction; QVERIFY(isSupportDetail == false); }
void TestCntActions::phonenumberCallSupport() { QContact contact; //Add phonenumber to contact QContactPhoneNumber number; number.setSubTypes(QContactPhoneNumber::SubTypeMobile); number.setNumber("555111222"); contact.saveDetail(&number); m_manager->saveContact(&contact); //verify that the contact has a phonenumber QList<QContactPhoneNumber> numberList = contact.details<QContactPhoneNumber>(); QVERIFY(numberList.count() > 0); //get the actions QList<QContactActionDescriptor> actionDescriptors = contact.availableActions(); QStringList actions; for (int i = 0;i < actionDescriptors.count();i++) { QString action = actionDescriptors.at(i).actionName(); actions << action; } //verify that it includes the actiosn QVERIFY(actions.contains("call", Qt::CaseInsensitive)); //verify that the action works QList<QContactActionDescriptor> callActionDescriptors = QContactAction::actionDescriptors("call", "symbian"); QVERIFY(callActionDescriptors.count() == 1); QContactAction *callAction = QContactAction::action(callActionDescriptors.at(0)); QVERIFY(callAction != 0); QContactAction::State state = callAction->state(); QVERIFY(state != QContactAction::InactiveState); QVERIFY(callAction->isDetailSupported(numberList.at(0)) == true); QList<QContactDetail> supportedDetails = callAction->supportedDetails(contact); QVERIFY(supportedDetails.count() != 0); QVariantMap variantMap = callAction->metaData(); QVERIFY(variantMap.count() == 0); variantMap = callAction->results(); QVERIFY(variantMap.count() == 0); QSignalSpy spyCallAction(callAction, SIGNAL(stateChanged(QContactAction::State))); callAction->invokeAction(contact, numberList.at(0)); callAction->invokeAction(contact); QTRY_COMPARE(spyCallAction.count(), 2); // make sure the signal was emitted exactly one time delete callAction; }
void SymbianPluginPerfomance::createComplexContacts() { // Create N contacts QList<QContact> contactsList; for(int i=0; i<NO_OF_CONTACTS; i++) { QContact alice; // Contact details QString c = QString::number(i); QString first("Alice"); QString last("Jones"); QContactName aliceName; aliceName.setFirstName(first.append(c)); aliceName.setLastName(last.append(c)); alice.saveDetail(&aliceName); QContactPhoneNumber number; number.setContexts("Home"); number.setSubTypes("Mobile"); number.setNumber("12345678"); alice.saveDetail(&number); alice.setPreferredDetail("DialAction", number); QContactPhoneNumber number2; number2.setContexts("Work"); number2.setSubTypes("Landline"); number2.setNumber("555-4444"); alice.saveDetail(&number2); QContactAddress add; add.setStreet("Leeds West Yorkshire"); add.setPostcode("10087"); add.setRegion("New York"); add.setCountry("United States"); alice.saveDetail(&add); /* Commented out to ensure compatibility with pre-10.1 platforms QContactGender gender; gender.setGender("Female"); alice.saveDetail(&gender); */ QContactBirthday bday; bday.setDate(QDate(25,10,1978)); alice.saveDetail(&bday); /* Commented out to ensure compatibility with pre-10.1 platforms QContactOnlineAccount acc; acc.setAccountUri("sips:[email protected]"); acc.setSubTypes(QContactOnlineAccount::SubTypeSip); alice.saveDetail(&acc); */ QContactEmailAddress email; email.setEmailAddress("mailto:[email protected]"); alice.saveDetail(&email); QContactOrganization org; org.setDepartment(QStringList("Services")); org.setTitle("Assistant Manager"); // Commented out to ensure compatibility with pre-10.1 platforms //org.setLocation("Nokia Cyber Park"); alice.saveDetail(&org); contactsList.append(alice); } // Save the contacts mTime.restart(); QMap<int, QContactManager::Error> errors; mCntMng->saveContacts(&contactsList, &errors); foreach(QContactManager::Error error, errors) { QCOMPARE(error, QContactManager::NoError); }
void TestCntPresenceInfoProvider::testRequestInfo() { PrcPresenceWriter *writer = PrcPresenceWriter::createWriter(); PrcPresenceBuddyInfoQt *buddy = PrcPresenceBuddyInfoQt::createInstance(); buddy->setIdentity("sip:[email protected]"); buddy->setAvailability(PrcPresenceBuddyInfoQt::PrcNotAvailable, "meh"); writer->writePresence(*buddy); QContactManager manager("symbian"); QContact c; QContactName name; name.setFirstName("firstname"); name.setLastName("lastname"); c.saveDetail(&name); QContactPhoneNumber number; number.setNumber("1234567"); number.setContexts(QContactDetail::ContextHome); number.setSubTypes(QContactPhoneNumber::SubTypeMobile); c.saveDetail(&number); manager.saveContact(&c); ContactInfoFields fields; fields = ContactInfoTextField; QSignalSpy spy(mCntPresenceInfoProvider, SIGNAL(infoFieldReady(CntInfoProvider*, int, ContactInfoField, const QString&))); mCntPresenceInfoProvider->requestInfo(c, fields); QCOMPARE(spy.count(), 0); QVERIFY(mCntPresenceInfoProvider->mBuddyMap.isEmpty()); fields = ContactInfoIcon2Field; mCntPresenceInfoProvider->requestInfo(c, fields); QCOMPARE(spy.count(), 0); QVERIFY(mCntPresenceInfoProvider->mBuddyMap.isEmpty()); QContactOnlineAccount account; account.setSubTypes(QStringList() << QContactOnlineAccount::SubTypeSip); account.setServiceProvider("sip"); account.setAccountUri("*****@*****.**"); c.saveDetail(&account); QContactOnlineAccount account2; account2.setSubTypes(QStringList() << QContactOnlineAccount::SubTypeSipVoip); account.setServiceProvider("sip"); account2.setAccountUri("*****@*****.**"); c.saveDetail(&account2); QContactOnlineAccount account3; account3.setSubTypes(QStringList() << QContactOnlineAccount::SubTypeSip); account3.setAccountUri("malformatted"); c.saveDetail(&account3); manager.saveContact(&c); mCntPresenceInfoProvider->requestInfo(c, fields); QCOMPARE(spy.count(), 0); QCOMPARE(mCntPresenceInfoProvider->mBuddyMap.count(), 1); delete mCntPresenceInfoProvider; mCntPresenceInfoProvider = NULL; buddy->setAvailability(PrcPresenceBuddyInfoQt::PrcAvailable, "meh"); writer->writePresence(*buddy); mCntPresenceInfoProvider = new CntPresenceInfoProvider(); QSignalSpy spy2(mCntPresenceInfoProvider, SIGNAL(infoFieldReady(CntInfoProvider*, int, ContactInfoField, const QString&))); mCntPresenceInfoProvider->requestInfo(c, fields); QCOMPARE(spy2.count(), 1); QCOMPARE(mCntPresenceInfoProvider->mBuddyMap.count(), 1); delete buddy; delete writer; }