/** * Modify the first value of the address field. * Set a custom label for that value. */ void PIMContact::modifyAddressField() { printf("==============Modify address field=============\n\n"); mArgs.field = MA_PIM_FIELD_CONTACT_ADDR; // Print new value on the screen. for (int i = 0; i < COUNT_ADDRESS_INDICES; i++) { MAUtil::String addressValueIndex = getAddressIndexString(i); const wchar* addressValue = sAddressModified[i]; printf("%s %S", addressValueIndex.c_str(), addressValue); } printf("\n"); // Write the address into the buffer. mArgs.bufSize = writeWCharArraysToBuf( mArgs.buf, sAddressModified, COUNT_ADDRESS_INDICES); // Set the value for the address field at position 0. // Use MA_PIM_ATTR_ADDR_CUSTOM so we can set the label later. checkResultCode(maPimItemSetValue(&mArgs, 0, MA_PIM_ATTR_ADDR_CUSTOM)); // Set custom attribute(label) for the above address. printf("\n Set label for the this address."); printf("Label: %S", sAddressLabel); // Write label value into buffer. mArgs.bufSize = copyWCharArray(mArgs.buf, sAddressLabel); // Set label value for address field at position 0. checkResultCode(maPimItemSetLabel(&mArgs, 0)); waitForClick(); }
/** * Test maPimItemSetLabel syscall. */ void AppMoblet::testMaPimItemSetLabel() { printf("\n===========Test maPimItemSetLabel syscall==========="); MAHandle list = maPimListOpen(MA_PIM_CONTACTS); printResultCode(list); MAHandle item = maPimItemCreate(list); printResultCode(item); MA_PIM_ARGS args; char buf[1024]; args.buf = buf; args.bufSize = 1024; printf("\nTest with invalid item handle"); args.item = 323; printResultCode(maPimItemSetLabel(&args, 1)); printf("\nTest with invalid field"); args.item = item; args.field = 12333; printResultCode(maPimItemSetLabel(&args, 1)); printf("\nTest with unsupported field"); args.field = MA_PIM_FIELD_CONTACT_CLASS; printResultCode(maPimItemSetLabel(&args, 1)); printf("\nTest with invalid value index and empty field"); args.field = MA_PIM_FIELD_CONTACT_ADDR; printResultCode(maPimItemSetLabel(&args, 1)); waitForClick(); printf("\nTest with invalid value index and field is not empty"); PIMContact* contact = new PIMContact(item); contact->addAddress(); printResultCode(maPimItemSetLabel(&args, 5)); waitForClick(); printf("\nTest with a valid field, but value's attribute is not custom"); printResultCode(maPimItemSetLabel(&args, 0)); printf("\nTest with a valid field and value's attribute is custom"); // Write value to buffer. args.bufSize = writeWCharArraysToBuf(args.buf, sAddressHome, COUNT_ADDRESS_INDICES); int index = maPimItemAddValue(&args, MA_PIM_ATTR_ADDR_CUSTOM); args.bufSize = copyWCharArray(args.buf, L"My label"); printResultCode(maPimItemSetLabel(&args, index)); maPimItemRemove(list, item); maPimListClose(list); waitForClick(); }