Revision: 201021 RCL_3
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Wed, 09 Jun 2010 09:37:26 +0300
branchRCL_3
changeset 20 94cccd85bd25
parent 19 7e4e4bcc75b6
child 22 1367103c24e2
Revision: 201021 Kit: 2010123
email/imap4mtm/imapmailstore/src/cstoreutilities.cpp
email/imap4mtm/imapprotocolcontroller/src/cimapopfetchbody.cpp
email/imap4mtm/imapservermtm/inc/cimapupsresponsewaiter.h
email/imap4mtm/imapservermtm/src/cimapupsresponsewaiter.cpp
email/imap4mtm/imapsession/src/cimapbodystructurebuilder.cpp
email/imap4mtm/imapsession/src/cimapsession.cpp
email/pop3andsmtpmtm/clientmtms/group/IMCM.rss
messagingappbase/mce/logengsrc/MceLogPbkMatcher.cpp
messagingappbase/mce/src/MceDeliveryReportView.cpp
messagingappbase/msgeditor/viewinc/MsgBodyControlEditor.h
messagingappbase/msgeditor/viewsrc/MsgBodyControlEditor.cpp
messagingappbase/ncnlist/src/CNcnSession.cpp
mobilemessaging/mmsui/viewersrc/UniMmsViewerAppUi.cpp
mobilemessaging/smsui/viewersrc/MsgSmsViewerAppUi.cpp
mobilemessaging/unieditor/application/src/UniEditorAppUi.cpp
--- a/email/imap4mtm/imapmailstore/src/cstoreutilities.cpp	Tue May 25 12:38:02 2010 +0300
+++ b/email/imap4mtm/imapmailstore/src/cstoreutilities.cpp	Wed Jun 09 09:37:26 2010 +0300
@@ -48,7 +48,6 @@
 	
 void CStoreUtilities::ConstructL()
 	{
-	User::LeaveIfError(iFs.Connect());
 	// Create converter objects
 	iCharacterConverter=CCnvCharacterSetConverter::NewL();
 	iCharConv=CImConvertCharconv::NewL(*iCharacterConverter, iFs);	
--- a/email/imap4mtm/imapprotocolcontroller/src/cimapopfetchbody.cpp	Tue May 25 12:38:02 2010 +0300
+++ b/email/imap4mtm/imapprotocolcontroller/src/cimapopfetchbody.cpp	Wed Jun 09 09:37:26 2010 +0300
@@ -1565,6 +1565,11 @@
 	CImHeader *messageheader=CImHeader::NewLC();
 	ProcessEnvelopeL(messageheader, aMessage, aBodyStructure->GetRfc822EnvelopeStructureL());
 
+	if(aBodyStructure->EmbeddedBodyStructureList().Count() == 0)
+	    {
+        aMessage.iType=KUidMsvAttachmentEntry;
+	    }
+	
 	// Create message
 	User::LeaveIfError(iServerEntry.CreateEntryBulk(aMessage)); // bulk op completed at the end of ProcessBodyStructureL()
 	SetEntryL(aMessage.Id());
@@ -1583,9 +1588,17 @@
 	TInt attachments=0;
 	TInt relatedAttachments;
 	TBool isMHTML=EFalse;
+	CImapBodyStructure* bodystructure = NULL;
 	
-	CImapBodyStructure* bodystructure = aBodyStructure->EmbeddedBodyStructureList()[0];
-	BuildTreeL(aMessage.Id(), bodystructure, aPath, aMessage.Id(), attachments, isMHTML, relatedAttachments);
+	if(aBodyStructure->EmbeddedBodyStructureList().Count() > 0)
+	    {
+	    bodystructure = aBodyStructure->EmbeddedBodyStructureList()[0];
+        }	
+	if (bodystructure)
+	    {
+        BuildTreeL(aMessage.Id(), bodystructure, aPath, aMessage.Id(), attachments, isMHTML, relatedAttachments);
+	    }
+	
 	__LOG_FORMAT((iSession->LogId(), "  Built embedded message id %x attachments %d MHTML %d", aMessage.Id(), attachments, isMHTML));
 
 	// Save attachment and MHTML flags
@@ -1870,10 +1883,15 @@
 	iHeaderConverter->DecodeAllHeaderFieldsL(*aHeader);
 
 	// Set from line in TMsvEntry
-	aEntry.iDetails.Set(aHeader->From());
-
-	// Set subject in TMsvEntry
-	aEntry.iDescription.Set(aHeader->Subject());
+	if(aHeader->From().Length() > 0)
+	    {
+        aEntry.iDetails.Set(aHeader->From());
+	    }
+	if(aHeader->Subject().Length() > 0)
+	    {
+	    // Set subject in TMsvEntry
+	    aEntry.iDescription.Set(aHeader->Subject());
+	    }
 
 	__LOG_TEXT(iSession->LogId(), "   Finished processing envelope information");
 	}
--- a/email/imap4mtm/imapservermtm/inc/cimapupsresponsewaiter.h	Tue May 25 12:38:02 2010 +0300
+++ b/email/imap4mtm/imapservermtm/inc/cimapupsresponsewaiter.h	Wed Jun 09 09:37:26 2010 +0300
@@ -50,6 +50,7 @@
 	void DoRunL();
 	void DoCancel();
 private:
+	CImapSettings*              iImapSettings;
 	CMsvServerEntry& 			iServerEntry;
 	CImapProtocolController& 	iImapProtocolController;
 	CMsvEntrySelection* 		iEntrySelection;
--- a/email/imap4mtm/imapservermtm/src/cimapupsresponsewaiter.cpp	Tue May 25 12:38:02 2010 +0300
+++ b/email/imap4mtm/imapservermtm/src/cimapupsresponsewaiter.cpp	Wed Jun 09 09:37:26 2010 +0300
@@ -37,7 +37,8 @@
 CImapUpsResponseWaiter::CImapUpsResponseWaiter(CMsvServerEntry& aServerEntry, CImapProtocolController& aImapProtocolController)
 	:CMsgActive(EPriorityStandard), iServerEntry(aServerEntry), iImapProtocolController(aImapProtocolController)
 	{
-	CActiveScheduler::Add(this);
+    iImapSettings = CImapSettings::NewL(iServerEntry);
+    CActiveScheduler::Add(this);
 	}
 
 /**
@@ -46,6 +47,7 @@
 CImapUpsResponseWaiter::~CImapUpsResponseWaiter()
 	{
 	Cancel();
+	delete iImapSettings;
 	iUpsSubsession.Close();
 	iUpsSession.Close(); 
 	}
@@ -73,28 +75,32 @@
 		{
 		iState = EIMAP4MTMConnectAndSynchronise;
 		}
-	iEntrySelection = &aEntrySelection;
+	
+    iEntrySelection = &aEntrySelection;
 	
 	iDecision = EUpsDecNo;
 	
-	CImapSettings* imapSettings = CImapSettings::NewL(iServerEntry);
-	CleanupStack::PushL(imapSettings);
-	imapSettings->LoadSettingsL(iServerEntry.Entry().Id());
+	if( iImapSettings->SettingsLoaded() == EFalse)
+	    {
+	    iImapSettings->LoadSettingsL(iServerEntry.Entry().Id());
+	    }
 
 	// Connect to UPS service.....
 	User::LeaveIfError(iUpsSession.Connect());
+
 	RThread clientThread;
  	User::LeaveIfError(clientThread.Open(aClientThreadId));
 	CleanupClosePushL(clientThread);
- 	User::LeaveIfError(iUpsSubsession.Initialise(iUpsSession, clientThread));
+
+    User::LeaveIfError(iUpsSubsession.Initialise(iUpsSession, clientThread));
 	CleanupStack::PopAndDestroy(&clientThread);
 	
-	
 	iStatus=KRequestPending;
-	iUpsSubsession.Authorise(aHasCapability, KUidIMAPService, imapSettings->ServerAddress(), iDecision, iStatus);
+	iUpsSubsession.Authorise(aHasCapability, KUidIMAPService, iImapSettings->ServerAddress(), iDecision, iStatus);
+
 	Queue(aStatus);
 	SetActive();
-	CleanupStack::PopAndDestroy();// imapSettings
+    	
 	}
 
 
--- a/email/imap4mtm/imapsession/src/cimapbodystructurebuilder.cpp	Tue May 25 12:38:02 2010 +0300
+++ b/email/imap4mtm/imapsession/src/cimapbodystructurebuilder.cpp	Wed Jun 09 09:37:26 2010 +0300
@@ -216,8 +216,16 @@
 				// Found a "MESSAGE/RFC822" body structure.
 				// This contains an embedded bodystructure, so parse up to the structure,
 				// and then allow the loop to parse the embedded structure.
-				ParseBodyTypeMessageRfc822L();
-				parseStep = EParseNewBodyStructure;
+				TRAPD(err, ParseBodyTypeMessageRfc822L());
+				if(err == KErrImapCorrupt)
+				    {
+				parseStep =EParseRemainderMessageRfc822;
+				    }
+				else
+				    {
+                    parseStep = EParseNewBodyStructure;
+				    }
+				
 				}
 				break;
 			case EParseRemainderMessageRfc822:
@@ -520,13 +528,14 @@
 	{
 	// body-fields SP SP body SP body-fld-lines
 	ParseBodyFieldsL();
-	
-	// envelope
-	ParseEnvelopeL();
-	
-	// Expect a body substructure next.
-	// Position iAtomWalker at the opening bracket, ready for ParseBodyStructureTypeL
-	iAtomWalker->WalkAcrossL(ETrue);
+	//Sometime RFCb22  message has empty evvelopel, in that case we are traping this and  processed.
+    TRAPD(err, ParseEnvelopeL());
+   
+    // Expect a body substructure next.
+    // Position iAtomWalker at the opening bracket, ready for ParseBodyStructureTypeL
+    iAtomWalker->WalkAcrossL(ETrue);
+    if(err == KErrImapCorrupt)
+        CImapCommand::CorruptDataL(iLogId);
 	}
 
 /**
--- a/email/imap4mtm/imapsession/src/cimapsession.cpp	Tue May 25 12:38:02 2010 +0300
+++ b/email/imap4mtm/imapsession/src/cimapsession.cpp	Wed Jun 09 09:37:26 2010 +0300
@@ -1412,21 +1412,14 @@
 				
 			if (err != KErrNone)
 				{
-                if(err == KErrImapCorrupt)
-                    {
-                    continueReadingData = ETrue;
-                    }
-                else
-                    {
-                    // As well as completing, destroy the command to help free up resources.
-                    CompleteAndDestroyCommand(err, ETrue);
+				// As well as completing, destroy the command to help free up resources.
+				CompleteAndDestroyCommand(err, ETrue);
 
-                    // Don't allow the session to be called again.
-                    SetSessionState(ESessionUnrecoverable);
-                    
-                    return;
-                    }
-				}// end of  if (err != KErrNone)
+				// Don't allow the session to be called again.
+				SetSessionState(ESessionUnrecoverable);
+				
+				return;
+				}
 				
 			// If a literal block is expected next, then find out how big it is expected to be.
 			switch (commandParseState)
--- a/email/pop3andsmtpmtm/clientmtms/group/IMCM.rss	Tue May 25 12:38:02 2010 +0300
+++ b/email/pop3andsmtpmtm/clientmtms/group/IMCM.rss	Wed Jun 09 09:37:26 2010 +0300
@@ -203,5 +203,5 @@
 
 RESOURCE INT8 store_plain_body_text
 	{
-	value = 0;
+	value = 1;
 	}
--- a/messagingappbase/mce/logengsrc/MceLogPbkMatcher.cpp	Tue May 25 12:38:02 2010 +0300
+++ b/messagingappbase/mce/logengsrc/MceLogPbkMatcher.cpp	Wed Jun 09 09:37:26 2010 +0300
@@ -255,7 +255,7 @@
 
 TInt CMceLogPbkMatcher::RunError(TInt aError)
     {
-    if( aError == KErrAccessDenied ) // backup active
+    if( aError == KErrAccessDenied || aError == KErrInUse ) // backup active
         {
         return KErrNone;
         }
--- a/messagingappbase/mce/src/MceDeliveryReportView.cpp	Tue May 25 12:38:02 2010 +0300
+++ b/messagingappbase/mce/src/MceDeliveryReportView.cpp	Wed Jun 09 09:37:26 2010 +0300
@@ -125,7 +125,7 @@
             	{
             	TPhCltNameBuffer recipientstring( KNullDesC );
             	iAvkonAppUi->SetKeyEventFlags( CAknAppUiBase::EDisableSendKeyShort | CAknAppUiBase::EDisableSendKeyLong );
-			        MsvUiServiceUtilitiesInternal::CallToSenderQueryL( tel, recipientstring, EFalse );
+			        MsvUiServiceUtilitiesInternal::CallToSenderQueryL( tel, recipientstring, ETrue );
 			        iAvkonAppUi->SetKeyEventFlags( 0x00 );
               }
             }
--- a/messagingappbase/msgeditor/viewinc/MsgBodyControlEditor.h	Tue May 25 12:38:02 2010 +0300
+++ b/messagingappbase/msgeditor/viewinc/MsgBodyControlEditor.h	Wed Jun 09 09:37:26 2010 +0300
@@ -121,6 +121,11 @@
          * For handling dynamic layout switch.
          */
          void HandleResourceChange( TInt aType );
+         
+         /**
+         * Preparing for readonly/ viewers
+         */
+         void PrepareForReadOnlyL( TBool aReadOnly );
         
     public:  // from CEikRichTextEditor
 
--- a/messagingappbase/msgeditor/viewsrc/MsgBodyControlEditor.cpp	Tue May 25 12:38:02 2010 +0300
+++ b/messagingappbase/msgeditor/viewsrc/MsgBodyControlEditor.cpp	Wed Jun 09 09:37:26 2010 +0300
@@ -119,7 +119,6 @@
                                       CItemFinder::EUriScheme );
 
     iItemFinder->AddObserver( *this );
-    iItemFinder->SetItemFinderObserverL( this );  
     
     iFocusChangedBeforeParseFinish = EFalse;
 
@@ -738,5 +737,29 @@
          MsgEditorCustomDraw()->SkinChanged();;    
     	}
     }
+// ---------------------------------------------------------
+// CMsgBodyControlEditor::PrepareForReadOnlyL
+//
+// Sets SetItemFinderObserverL for viewers
+// ---------------------------------------------------------
+//
+
+void CMsgBodyControlEditor::PrepareForReadOnlyL( TBool aReadOnly )
+   {
+   if ( iItemFinder )
+       {
+       if ( aReadOnly )
+           {
+           iItemFinder->SetItemFinderObserverL( this ); 
+           }
+       else
+           {
+           iItemFinder->SetItemFinderObserverL( NULL );
+           }
+       } 
+
+   CMsgExpandableControlEditor::PrepareForReadOnlyL( aReadOnly );
+   }
+
 
 //  End of File
--- a/messagingappbase/ncnlist/src/CNcnSession.cpp	Tue May 25 12:38:02 2010 +0300
+++ b/messagingappbase/ncnlist/src/CNcnSession.cpp	Wed Jun 09 09:37:26 2010 +0300
@@ -254,7 +254,8 @@
     MNcnNotification::TIndicationType indicationType =
         static_cast <MNcnNotification::TIndicationType> ( aMessage.Int1() );
     CNcnUnpackDescrArray* packedInfo = CNcnUnpackDescrArray::NewLC();
-    packedInfo->UnpackL( aMessage, 2 );
+    //Code is commented as a fix for JLEG-843DKF.Since third argument is not used, we don't process it.
+    //packedInfo->UnpackL( aMessage, 2 );
     iObserver.HandleNewMessagesL( mailBox, indicationType, *packedInfo );
     CleanupStack::PopAndDestroy( packedInfo );
     }
--- a/mobilemessaging/mmsui/viewersrc/UniMmsViewerAppUi.cpp	Tue May 25 12:38:02 2010 +0300
+++ b/mobilemessaging/mmsui/viewersrc/UniMmsViewerAppUi.cpp	Wed Jun 09 09:37:26 2010 +0300
@@ -1190,7 +1190,7 @@
                 }
             
             iFindItemMenu->AddItemFindMenuL( 
-                ( iView->ItemFinder()->CurrentSelection().Length() ) 
+                ( iView->ItemFinder() && iView->ItemFinder()->CurrentSelection().Length() ) 
                 ? iView->ItemFinder( ) : 0,
                 aMenuPane, 
                 EFindItemMenuPlaceHolder,
--- a/mobilemessaging/smsui/viewersrc/MsgSmsViewerAppUi.cpp	Tue May 25 12:38:02 2010 +0300
+++ b/mobilemessaging/smsui/viewersrc/MsgSmsViewerAppUi.cpp	Wed Jun 09 09:37:26 2010 +0300
@@ -1130,11 +1130,11 @@
         //Added to remove Copy-option when sender number is not valid (for example it has alphabets)    
         if ( iFlags.iValidSenderNumber || IsBodyFocused() )
         	{
+            iFindItemMenu->SetSenderHighlightStatus( ( senderHighlighted && 
+                            iView->ControlById( EMsgComponentIdFrom ) == iView->FocusedControl() ) );
+            iFindItemMenu->SetSenderDisplayText( senderNumber );
 	        if( !iFlags.iVoIPNumber )
 	            {
-	            iFindItemMenu->SetSenderHighlightStatus( 
-	                iView->ControlById( EMsgComponentIdFrom ) == iView->FocusedControl() );
-	            iFindItemMenu->SetSenderDisplayText( senderNumber );
 	            iFindItemMenu->AddItemFindMenuL( 
 	                FindItemHighlighted() ? iView->ItemFinder() : 0,
 	                aMenuPane, EFindItemMenuPlaceHolder,
@@ -1143,9 +1143,6 @@
 	            }
 	        else
 	            {
-	            iFindItemMenu->SetSenderHighlightStatus( 
-	                iView->ControlById( EMsgComponentIdFrom ) == iView->FocusedControl() );
-	            iFindItemMenu->SetSenderDisplayText( senderNumber );
 	            iFindItemMenu->AddItemFindMenuL( 
 	                FindItemHighlighted() ? iView->ItemFinder() : 0,
 	                aMenuPane, EFindItemMenuPlaceHolder,
@@ -2059,7 +2056,10 @@
     //to reduce flickering after sending a message.
 	if (!(iEditorBaseFeatures & EStayInViewerAfterReply ))
         {
-        iToolbar->SetToolbarVisibility( EFalse );
+			if(iToolbar)
+			{
+        		iToolbar->SetToolbarVisibility( EFalse );
+			}
         iView->MakeVisible( EFalse );
         iNaviDecorator->MakeVisible( EFalse );
         }
@@ -2069,7 +2069,10 @@
         {
         iNaviDecorator->MakeVisible( ETrue );
         iView->MakeVisible( ETrue );
-        iToolbar->SetToolbarVisibility( ETrue );
+			if(iToolbar)
+			{
+        		iToolbar->SetToolbarVisibility( ETrue );
+			}
         }    
     
     }
--- a/mobilemessaging/unieditor/application/src/UniEditorAppUi.cpp	Tue May 25 12:38:02 2010 +0300
+++ b/mobilemessaging/unieditor/application/src/UniEditorAppUi.cpp	Wed Jun 09 09:37:26 2010 +0300
@@ -3565,11 +3565,15 @@
     CleanupStack::PushL( TCleanupItem( DisableSendKey, this ) );
     // add to current control or To control
     TBool addressesAdded(EFalse);
-    TRAP_IGNORE( addressesAdded = iHeader->AddRecipientL(  iView->FocusedControl(), 
+    TRAPD( err, addressesAdded = iHeader->AddRecipientL(  iView->FocusedControl(), 
                                                     iView, 
                                                     AcceptEmailAddresses(),
-                                                    invalid ));
-    
+                                                    invalid ) );
+    if( err == KLeaveExit )
+        {
+        CAknEnv::RunAppShutter();
+        }
+
     CleanupStack::PopAndDestroy(2);//DisableSendKey,UpdateFixedToolbar
     iEditorFlags &= ~EMsgEditInProgress;