messagingapp/msgappfw/plugins/msgplugin/src/ccsmsghandler.cpp
changeset 52 12db4185673b
parent 44 36f374c67aa8
--- 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<CSmsClientMtm*> (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<CCsConversationEntry>* 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<CSmsClientMtm*> (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