00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #include "CMessageSummaryGenerator.h"
00018 #include "summaryscreenlog.h"
00019
00020
00021 const RArray<TMessageSummary>& CMessageSummaryGenerator::MessageSummaries() const
00022 {
00023 return iMessageSummaries;
00024 }
00025
00026
00027 CMessageSummaryGenerator::CMessageSummaryGenerator(TMsvId aInboxEntry,
00028 TUid aMessageType,
00029 CMsvEntry& aMessagingEntry) : iMessagingEntry(aMessagingEntry),
00030 iInboxEntry(aInboxEntry),
00031 iMessageType(aMessageType)
00032 {
00033
00034 }
00035
00036 void CMessageSummaryGenerator::StartL(TRequestStatus& aStatus)
00037 {
00038 LOG(">> CMessageSummaryGenerator::StartL(TRequestStatus& aStatus)");
00039 aStatus = KRequestPending;
00040
00041 iMessageSummaries.Reset();
00042
00043
00044 iMessagingEntry.SetEntryL(iInboxEntry);
00045
00046 CMsvEntrySelection* filteredMessageIds = iMessagingEntry.ChildrenWithMtmL(iMessageType);
00047 CleanupStack::PushL(filteredMessageIds);
00048
00049
00050 TInt numberForSummary = filteredMessageIds->Count();
00051 if (numberForSummary > KMaxSummaryMessages)
00052 numberForSummary = KMaxSummaryMessages;
00053
00054 TInt index;
00055 TMsvEntry tempDataEntry;
00056 for (index = 0; index < numberForSummary; index++)
00057
00058 {
00059
00060 tempDataEntry = iMessagingEntry.ChildDataL((*filteredMessageIds)[index]);
00061
00062
00063 TMessageSummary summary;
00064
00065 summary.iFrom = tempDataEntry.iDetails.Left(KMaxSummaryStringSize - 9);
00066 summary.iSummaryText = tempDataEntry.iDescription.Left(KMaxSummaryStringSize);
00067
00068 iMessageSummaries.AppendL(summary);
00069 }
00070
00071 TRequestStatus* status = &aStatus;
00072 User::RequestComplete(status, KErrNone);
00073
00074 CleanupStack::Pop(filteredMessageIds);
00075
00076 LOG("<< CMessageSummaryGenerator::StartL(TRequestStatus& aStatus)");
00077 }
00078
00079 CMessageSummaryGenerator::~CMessageSummaryGenerator()
00080 {
00081 iMessageSummaries.Close();
00082 }