# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1276065446 -10800 # Node ID 94cccd85bd25bf18d1a4feb3a812118c9ad02f62 # Parent 7e4e4bcc75b6bd44357b7618a0f998d98a2484e0 Revision: 201021 Kit: 2010123 diff -r 7e4e4bcc75b6 -r 94cccd85bd25 email/imap4mtm/imapmailstore/src/cstoreutilities.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); diff -r 7e4e4bcc75b6 -r 94cccd85bd25 email/imap4mtm/imapprotocolcontroller/src/cimapopfetchbody.cpp --- 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"); } diff -r 7e4e4bcc75b6 -r 94cccd85bd25 email/imap4mtm/imapservermtm/inc/cimapupsresponsewaiter.h --- 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; diff -r 7e4e4bcc75b6 -r 94cccd85bd25 email/imap4mtm/imapservermtm/src/cimapupsresponsewaiter.cpp --- 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 + } diff -r 7e4e4bcc75b6 -r 94cccd85bd25 email/imap4mtm/imapsession/src/cimapbodystructurebuilder.cpp --- 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); } /** diff -r 7e4e4bcc75b6 -r 94cccd85bd25 email/imap4mtm/imapsession/src/cimapsession.cpp --- 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) diff -r 7e4e4bcc75b6 -r 94cccd85bd25 email/pop3andsmtpmtm/clientmtms/group/IMCM.rss --- 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; } diff -r 7e4e4bcc75b6 -r 94cccd85bd25 messagingappbase/mce/logengsrc/MceLogPbkMatcher.cpp --- 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; } diff -r 7e4e4bcc75b6 -r 94cccd85bd25 messagingappbase/mce/src/MceDeliveryReportView.cpp --- 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 ); } } diff -r 7e4e4bcc75b6 -r 94cccd85bd25 messagingappbase/msgeditor/viewinc/MsgBodyControlEditor.h --- 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 diff -r 7e4e4bcc75b6 -r 94cccd85bd25 messagingappbase/msgeditor/viewsrc/MsgBodyControlEditor.cpp --- 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 diff -r 7e4e4bcc75b6 -r 94cccd85bd25 messagingappbase/ncnlist/src/CNcnSession.cpp --- 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 ( 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 ); } diff -r 7e4e4bcc75b6 -r 94cccd85bd25 mobilemessaging/mmsui/viewersrc/UniMmsViewerAppUi.cpp --- 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, diff -r 7e4e4bcc75b6 -r 94cccd85bd25 mobilemessaging/smsui/viewersrc/MsgSmsViewerAppUi.cpp --- 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 ); + } } } diff -r 7e4e4bcc75b6 -r 94cccd85bd25 mobilemessaging/unieditor/application/src/UniEditorAppUi.cpp --- 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;