emailservices/emailclientapi/src/emailtextcontent.cpp
branchRCL_3
changeset 11 0396474f30f5
parent 0 8466d47a6819
child 12 4ce476e64c59
--- a/emailservices/emailclientapi/src/emailtextcontent.cpp	Fri Mar 12 15:41:14 2010 +0200
+++ b/emailservices/emailclientapi/src/emailtextcontent.cpp	Mon Mar 15 12:39:10 2010 +0200
@@ -48,12 +48,14 @@
         CFSMailMessagePart* aPart )
     {
     iEmailMsgContent = CEmailMessageContent::NewL( aPluginData, aMsgContentId, aPart );
-    if (!aPart->GetContentType().Compare(KFSMailContentTypeTextHtml))
+
+    if (!CheckParameterFormatL( aPart->GetContentType() ).Compare(KFSMailContentTypeTextHtml))
         {
         iTextType = EHtmlText;        
         }
     }
 
+
 // -----------------------------------------------------------------------------
 // 
 // -----------------------------------------------------------------------------
@@ -316,6 +318,47 @@
 // 
 // -----------------------------------------------------------------------------
 //
+const TDesC& CEmailTextContent::CheckParameterFormatL( const TDesC& aParam )
+    {    
+    _LIT( KSeparator, ";" );
+    _LIT( KSlash, "/" );
+    // Check for a type separator in the string
+    TInt endPos = aParam.Find( KSeparator );
+    // Construct the compare string
+    TPtrC extractString( aParam.Left( endPos ) );
+    HBufC* compareBuf = extractString.AllocLC();
+    TPtr compareString = compareBuf->Des();
+    TInt slashPos = aParam.Find( KSlash );
+    TInt stringLen = compareString.Length();
+         
+    const TDesC& leftPart = extractString.Left( slashPos );
+    HBufC* leftPartBuf = leftPart.AllocLC();
+    TPtr leftPartString = leftPartBuf->Des();
+    leftPartString.Trim();
+         
+    const TDesC& rightPart = extractString.Right( stringLen - ( slashPos + 1 ) );
+    HBufC* rightPartBuf = rightPart.AllocLC();
+    TPtr rightPartString = rightPartBuf->Des();
+    rightPartString.Trim();
+         
+    compareString.Delete( 0, endPos );
+    compareString.Append( leftPartString );
+    compareString.Append( KSlash );
+    compareString.Append( rightPartString );
+    compareString.LowerCase();   
+    CleanupStack::PopAndDestroy( rightPartBuf );
+    CleanupStack::PopAndDestroy( leftPartBuf );
+    
+    const TDesC& retParam = compareString;
+    CleanupStack::PopAndDestroy( compareBuf );
+    
+    return retParam;
+    }
+
+// -----------------------------------------------------------------------------
+// 
+// -----------------------------------------------------------------------------
+//
 void CEmailTextContent::SetOwner( const TDataOwner aOwner )
     {
     iOwner = aOwner;