void CMultiThreadTestApp::AddEntryL(CCalEntryView& aView, const TInt aNumToAdd) { // Add Entries for Test RTest test(KTestName); test.Next(_L("Adding entries")); TBuf<50> summary; TBuf<50> location; TBuf<50> description; RPointerArray<CCalEntry> entriesToStore; CleanupResetAndDestroyPushL(entriesToStore); for (TInt index = 0; index < aNumToAdd; ++index) { CCalEntry* entry; HBufC8* guid = HBufC8::NewL(255); TPtr8 uidP = guid->Des(); RandomText8(uidP); if( (index %2) == 0 ) { entry = CreateCalEntryL(CCalEntry::ETodo, guid); } else { entry = CreateCalEntryL(CCalEntry::EAppt, guid); } TInt err = entriesToStore.Append(entry); test(err == KErrNone); SetEntryStartAndEndTimeL(entry); RandomText(summary); entry->SetSummaryL(summary); RandomText(location); entry->SetLocationL(location); RandomText(description); entry->SetDescriptionL(description); } TInt entriesStored(0); aView.StoreL(entriesToStore, entriesStored); //temp test(entriesStored == aNumToAdd); test.Close(); CleanupStack::PopAndDestroy(&entriesToStore); }
void CDummyCalendarApp::RepeatExceptedEntryCreateL() { test.Next(_L("Add entry, repeat twice, set excepted and delete")); iEntries.ResetAndDestroy(); // Create new calendar entry. CCalEntry* entry = NULL; HBufC8* guid = KGUIDInc081869().AllocLC(); entry = CreateCalEntryL(CCalEntry::EAppt, guid); CleanupStack::Pop(guid); iEntries.AppendL(entry); // Set start and end date. TTime start(TDateTime(2006, EMarch, 6, 10, 0, 0, 0)); TTime end(TDateTime(2006, EMarch, 6, 14, 0, 0, 0)); SetEntryStartAndEndTimeL(entry, start, end); TBuf<50> summary; RandomText(summary); entry->SetSummaryL(summary); TBuf<50> location; RandomText(location); entry->SetLocationL(location); TBuf<50> description; RandomText(description); entry->SetDescriptionL(description); // Create a daily repeating rule that occurs for 2 days. TCalRRule rpt(TCalRRule::EDaily); rpt.SetInterval(1); rpt.SetCount(2); // Make sure the repeat time is within the delete time range. TCalTime repeatStart; TCalTime repeatEnd; repeatStart.SetTimeLocalL(TDateTime(2006, EMarch, 6, 0, 0, 0, 0)); repeatEnd.SetTimeLocalL(TDateTime(2006, EMarch, 8, 0, 0, 0, 0)); rpt.SetDtStart(repeatStart); rpt.SetUntil(repeatEnd); entry->SetRRuleL(rpt); // Store the entry. Because it repeats over 2 days, there will // be 2 entries. TInt entriesStored(0); SynCGetEntryViewL().StoreL(iEntries, entriesStored); test(entriesStored == iEntries.Count()); }
// ----------------------------------------------------------------------------- // CPIMAgnEventAdapter::ClearPIMFieldsL // Clears the fields supported by PIM API from this Agenda Model entry. // ----------------------------------------------------------------------------- // void CPIMAgnEventAdapter::ClearPIMFieldsL(CCalEntry& aEntry, const TPIMField aSupportedFields[], // Array of supported field types TInt aSize) // Size of the array of supported fields { JELOG2(EPim); for (int i = 0; i < aSize; i++) { switch (aSupportedFields[i]) { case EPIMEventSummary: { aEntry.SetSummaryL(KNullDesC); break; } case EPIMEventLocation: { aEntry.SetLocationL(KNullDesC); break; } case EPIMEventNote: { aEntry.SetDescriptionL(KNullDesC); break; } case EPIMEventAlarm: { aEntry.SetAlarmL(NULL); break; } case EPIMEventStart: // Fallthrough case EPIMEventEnd: // Fallthrough case EPIMEventUid: // Fallthrough case EPIMEventClass: // Fallthrough case EPIMEventRevision: { break; // For these fields there is no need to do anything } default: { User::Leave(KErrArgument); } } } }
// ----------------------------------------------------------------------------- // CPIMAgnEventAdapter::ConvertStringFieldToAgnL // Makes string conversion from framework PIM item data field to Appt item field // ----------------------------------------------------------------------------- // void CPIMAgnEventAdapter::ConvertStringFieldToAgnL(const MPIMEventItem& aItem, CCalEntry& aEntry, const TPIMEventField aField) const { JELOG2(EPim); const MPIMItemData& itemData = aItem.ItemData(); TInt amount = itemData.CountValues(aField); for (TInt i = 0; i < amount; i++) { const TPIMFieldData fieldData = itemData.ValueL(aField, i); const TDesC& stringValue = fieldData.StringValue(); EnsureValidStringValueL(stringValue); // Add correct data to the field switch (aField) { case EPIMEventNote: { aEntry.SetDescriptionL(stringValue); break; } case EPIMEventSummary: { aEntry.SetSummaryL(stringValue); break; } case EPIMEventLocation: { aEntry.SetLocationL(stringValue); break; } default: { __ASSERT_DEBUG(EFalse, User::Panic(KPIMPanicCategory, EPIMPanicUnsupportedStringField)); break; } } } }
void CDummyCalendarApp::AddEntryL(TInt aNumToAdd, TBool isParent, TBool isRepeat) { test.Next(_L("Adding entries")); TBuf<50> summary; TBuf<50> location; TBuf<50> description; iEntries.ResetAndDestroy(); for (TInt index=0; index<aNumToAdd; index++) { TBuf8<255> buf; buf.Append(_L("GuidId")); buf.AppendNum(index); HBufC8* guid = buf.AllocLC(); // need to be pushed to ... CCalEntry::TType entryType=(index%2==0)?CCalEntry::ETodo:CCalEntry::EAppt; CCalEntry* entry = NULL; if(isParent) { entry = CreateCalEntryL(entryType, guid); } else { TTime localTime(KRecurrIdLocalTime); TCalTime recurrenceId; recurrenceId.SetTimeLocalL(localTime); entry = CCalEntry::NewL(entryType, guid, CCalEntry::EMethodAdd, 1, recurrenceId, CalCommon::EThisAndFuture); } CleanupStack::Pop(guid); iEntries.AppendL(entry); TInt year = -1; TInt month = -1; TInt day = -1; if (isParent) { year = index % 5 + 2001; // Any year in the range: 2001 - 2005 month = index % 12; day = index % 28; } else { // if this is a child entry, use the recurrence local time as the entry start time // so it won't be out of range TCalTime recurrId = entry->RecurrenceIdL(); TDateTime localTime = recurrId.TimeLocalL().DateTime(); year = localTime.Year(); month = localTime.Month(); day = localTime.Day(); } TTime start(TDateTime(year, (TMonth)month, day, 0, 0, 0, 0)); TTime end(TDateTime(year, (TMonth)month, day, 0, 0, 0, 0)); end += TTimeIntervalDays(1); SetEntryStartAndEndTimeL(entry,start,end); RandomText(summary); entry->SetSummaryL(summary); RandomText(location); entry->SetLocationL(location); RandomText(description); entry->SetDescriptionL(description); if(isRepeat) { //create a daily repeat rule and make sure its repeat start\end date is within the deleting time range TCalRRule rpt(TCalRRule::EDaily); rpt.SetInterval(1); TCalTime repeatStart; TCalTime repeatend; if(isParent) { //make sure the repeat time is within the delete time range repeatStart.SetTimeLocalL(TDateTime(2000, EJune, 0, 0, 0, 0, 0)); repeatend.SetTimeLocalL(TDateTime(2006, EJune, 0, 0, 0, 0, 0)); } else if (index<aNumToAdd/2) { // if this is a child entry, use the entry's recurrance time as repeating rule // start time TCalTime recurrId = entry->RecurrenceIdL(); // make sure the repeat time is within the delete time range for the first half entries repeatStart.SetTimeLocalL(recurrId.TimeLocalL()); // June 1, 2003 00:00:00 repeatend.SetTimeLocalL(recurrId.TimeLocalL() + TTimeIntervalMonths(1)); // July 1, 2003 00:00:00 } else { //make sure the repeat time is out of the delete time range for the second half entries repeatStart.SetTimeLocalL(TDateTime(2003, EJune, 0, 0, 0, 0, 0)); repeatend.SetTimeLocalL(TDateTime(2007, EJune, 0, 0, 0, 0, 0)); } rpt.SetDtStart(repeatStart); rpt.SetUntil(repeatend); entry->SetRRuleL(rpt); } } TInt entriesStored(0); iLocalEntryView->StoreL(iEntries, entriesStored); //temp test(entriesStored == iEntries.Count()); }