diff -r 36f374c67aa8 -r 12db4185673b messagingapp/msgappfw/plugins/msgplugin/src/ccsmsghandler.cpp --- a/messagingapp/msgappfw/plugins/msgplugin/src/ccsmsghandler.cpp Tue Jul 06 14:12:40 2010 +0300 +++ b/messagingapp/msgappfw/plugins/msgplugin/src/ccsmsghandler.cpp Wed Aug 18 09:45:25 2010 +0300 @@ -306,8 +306,26 @@ { error = iSession->GetEntry(aSelection->At(i),service,entry); - if ( entry.Visible() == EFalse ) - { + if (aParent == KMsvGlobalInBoxIndexEntryIdValue && KSenduiMtmSmsUidValue == entry.iMtm.iUid) + { + iSmsMtm->SwitchCurrentEntryL(entry.Id()); + iSmsMtm->LoadMessageL(); + + CSmsHeader& header = static_cast (iSmsMtm)->SmsHeader(); + CSmsPDU& pdu = header.Message().SmsPDU(); + TSmsDataCodingScheme::TSmsClass smsClass; + + if (pdu.Class(smsClass) && smsClass == TSmsDataCodingScheme::ESmsClass0 + && entry.ReadOnly()) + { + iSmsMtm->SwitchCurrentEntryL(entry.iServiceId); + // for class 0 sms dont create conversation entry.. + continue; + } + + } + if (entry.Visible() == EFalse) + { // Do a delete if entry becomes invisible. // e.g) My Nokia registration messages. RPointerArray* hiddenEntries = @@ -630,7 +648,27 @@ CMsvEntry* msvEntry= iSession-> GetEntryL(iMessageArray->operator[](0)); CleanupStack::PushL(msvEntry); + TBool isNotClass0 = ETrue; + + if (msvEntry->Entry().iMtm.iUid == KSenduiMtmSmsUidValue && msvEntry->Entry().Parent() + == KMsvGlobalInBoxIndexEntryIdValue) + { + iSmsMtm->SwitchCurrentEntryL(msvEntry->Entry().Id()); + iSmsMtm->LoadMessageL(); + + CSmsHeader& header = static_cast (iSmsMtm)->SmsHeader(); + CSmsPDU& pdu = header.Message().SmsPDU(); + TSmsDataCodingScheme::TSmsClass smsClass; + + if (pdu.Class(smsClass) && smsClass == TSmsDataCodingScheme::ESmsClass0) + { + isNotClass0 = EFalse; + } + } + if (isNotClass0) + { ProcessResultsL(msvEntry->Entry()); + } CleanupStack::PopAndDestroy(msvEntry); iMessageArray->Remove(0); } @@ -737,6 +775,18 @@ break; case KSenduiMtmBioUidValue: { + if (aEntry.iMtmData1 == KSenduiMtmBtUidValue) + { + if (aEntry.iBioType == KMsgBioUidVCard.iUid) + { + type = ECsBlueTooth_VCard; + } + else if (aEntry.iBioType == KMsgBioUidVCalendar.iUid) + { + type = ECsBlueTooth_VCal; + } + break; + } type = ECsBioMsg; // based on the biotype uid set message type