diff -r 2a272ef608c4 -r 3507212d340e messagingapp/msgappfw/plugins/msgplugin/src/ccsmsghandler.cpp --- a/messagingapp/msgappfw/plugins/msgplugin/src/ccsmsghandler.cpp Tue Aug 03 21:34:40 2010 +0530 +++ b/messagingapp/msgappfw/plugins/msgplugin/src/ccsmsghandler.cpp Fri Aug 06 23:19:50 2010 +0530 @@ -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); }