# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1270059902 -10800 # Node ID c6838af47512a943d7e782bbf1c14b897663c53c # Parent a9c7e5670d1775e734a5370330cc19c262ceaf29 Revision: 201011 Kit: 201013 diff -r a9c7e5670d17 -r c6838af47512 email/imap4mtm/group/messaging_email_imap.history.xml --- a/email/imap4mtm/group/messaging_email_imap.history.xml Mon Mar 15 12:40:06 2010 +0200 +++ b/email/imap4mtm/group/messaging_email_imap.history.xml Wed Mar 31 21:25:02 2010 +0300 @@ -3,10 +3,18 @@ Message Type Module (MTM) plugin to Messaging Framework supporting send/receive/edit of IMAP4 email messages. - - - MarkOnOrOfflineL() moved down. - + + + added CMsgActive::DoCancel() in CImapUpsResponseWaiter::DoCancel() + + + + Moved MarkOnOrOfflineL() API down + + + + Parsing the server response without [ ]. + Included missing header file. diff -r a9c7e5670d17 -r c6838af47512 email/imap4mtm/imapservermtm/src/cimapupsresponsewaiter.cpp --- a/email/imap4mtm/imapservermtm/src/cimapupsresponsewaiter.cpp Mon Mar 15 12:40:06 2010 +0200 +++ b/email/imap4mtm/imapservermtm/src/cimapupsresponsewaiter.cpp Wed Mar 31 21:25:02 2010 +0300 @@ -138,4 +138,5 @@ { iUpsSubsession.CancelPrompt(); iImapProtocolController.CancelAndCleanup(); + CMsgActive::DoCancel(); } diff -r a9c7e5670d17 -r c6838af47512 email/imap4mtm/imapsyncmanager/src/cimapfolder.cpp --- a/email/imap4mtm/imapsyncmanager/src/cimapfolder.cpp Mon Mar 15 12:40:06 2010 +0200 +++ b/email/imap4mtm/imapsyncmanager/src/cimapfolder.cpp Wed Mar 31 21:25:02 2010 +0300 @@ -688,7 +688,7 @@ // * If the remote message is no longer there: // (1) Then the local message is orphaned (always). // * If the remote message is still there and it is not one of the N most recent: - // (2) If the local message has body parts do nothing. + // (2) If the local message has body parts do nothing. - This Check has been removed as per new CMail UI. // (3) If the local message does not have body parts, then it is orphaned // unless is is a message we have selected for download. // * If the remote message is still there and it is one of the N most recent: @@ -734,16 +734,12 @@ SetEntryL((*iFolderIndex)[localloop].iMsvId); TMsvEmailEntry message(iServerEntry.Entry()); // Does message have any downloaded parts? - if(!message.Complete() && - !message.BodyTextComplete()) - { - // The local message does not have any body parts and - // is not selected for download, so it is orphaned. - // See case (3) above. - __LOG_FORMAT((iSavedSession->LogId(), "ImapFolder: Local message (%d) is only header and not selected for download, deleting", (*iFolderIndex)[localloop].iMsvId)); - removeThis = ETrue; - iOrphanedMessages++; - } + // The local message does not have any body parts and + // is not selected for download, so it is orphaned. + // See case (3) above. + __LOG_FORMAT((iSavedSession->LogId(), "ImapFolder: Local message (%d) is only header and not selected for download, deleting", (*iFolderIndex)[localloop].iMsvId)); + removeThis = ETrue; + iOrphanedMessages++; } break; } diff -r a9c7e5670d17 -r c6838af47512 email/pop3andsmtpmtm/clientmtms/inc/MIUTMSG.H --- a/email/pop3andsmtpmtm/clientmtms/inc/MIUTMSG.H Mon Mar 15 12:40:06 2010 +0200 +++ b/email/pop3andsmtpmtm/clientmtms/inc/MIUTMSG.H Wed Mar 31 21:25:02 2010 +0300 @@ -1,4 +1,4 @@ -// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies). +// Copyright (c) 2003-2010 Nokia Corporation and/or its subsidiary(-ies). // All rights reserved. // This component and the accompanying materials are made available // under the terms of "Eclipse Public License v1.0" diff -r a9c7e5670d17 -r c6838af47512 email/pop3andsmtpmtm/clientmtms/src/MIUTMSG.CPP --- a/email/pop3andsmtpmtm/clientmtms/src/MIUTMSG.CPP Mon Mar 15 12:40:06 2010 +0200 +++ b/email/pop3andsmtpmtm/clientmtms/src/MIUTMSG.CPP Wed Mar 31 21:25:02 2010 +0300 @@ -1,4 +1,4 @@ -// Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies). +// Copyright (c) 1998-2010 Nokia Corporation and/or its subsidiary(-ies). // All rights reserved. // This component and the accompanying materials are made available // under the terms of "Eclipse Public License v1.0" diff -r a9c7e5670d17 -r c6838af47512 email/pop3andsmtpmtm/group/messaging_email.history.xml --- a/email/pop3andsmtpmtm/group/messaging_email.history.xml Mon Mar 15 12:40:06 2010 +0200 +++ b/email/pop3andsmtpmtm/group/messaging_email.history.xml Wed Mar 31 21:25:02 2010 +0300 @@ -3,7 +3,17 @@ Message Type Module (MTM) plugin to Messaging Framework supporting send/receive/edit of POP3 email messages. - + + Modified IMAP/POP server MTM API to delete the old messages for new CMail UI. + + + Modified APIs to include embedded images. + + + + Handling cancel in CAPA command + + Restricting the field size of the header to 5000, to avoid DOS condition. diff -r a9c7e5670d17 -r c6838af47512 email/pop3andsmtpmtm/popservermtm/src/POPS.CPP --- a/email/pop3andsmtpmtm/popservermtm/src/POPS.CPP Mon Mar 15 12:40:06 2010 +0200 +++ b/email/pop3andsmtpmtm/popservermtm/src/POPS.CPP Wed Mar 31 21:25:02 2010 +0300 @@ -208,7 +208,17 @@ iSocket->Disconnect(); iSocketConnected=EFalse; } - iSocket->Cancel(); // clear a pending socket call + + if(iState == EPopCapabilities || iState == EWaitingForReply) + { + if(iPopCapabilities) + { + iPopCapabilities->Cancel(); + } + } + + iSocket->Cancel(); // clear a pending socket call + CMsgActive::DoCancel(); } diff -r a9c7e5670d17 -r c6838af47512 email/pop3andsmtpmtm/popservermtm/src/POPSRFSH.CPP --- a/email/pop3andsmtpmtm/popservermtm/src/POPSRFSH.CPP Mon Mar 15 12:40:06 2010 +0200 +++ b/email/pop3andsmtpmtm/popservermtm/src/POPSRFSH.CPP Wed Mar 31 21:25:02 2010 +0300 @@ -1536,10 +1536,6 @@ // Don't delete email if body exists or if it is an email that is being opened immediately after // the inbox refreshing (See defect PEN-5ESAWM) { - if (aEntry.BodyTextComplete()) - { - return EFalse; - } // iMessagesToKeep may be Null if (iMessagesToKeep && iMessagesToKeep->Find(aEntry.Id()) != KErrNotFound) { diff -r a9c7e5670d17 -r c6838af47512 messagingappbase/mce/inc/MceMessageListItemArray.h --- a/messagingappbase/mce/inc/MceMessageListItemArray.h Mon Mar 15 12:40:06 2010 +0200 +++ b/messagingappbase/mce/inc/MceMessageListItemArray.h Wed Mar 31 21:25:02 2010 +0300 @@ -498,6 +498,14 @@ //FS Email stuff TInt CreateEntryIndexL() const; TInt GetEntryIndex( TInt aIndex ) const; + + /** + * Check the MTM technology type for Mail Technology + * @param aMtm: Mtm Uid + * @return : ETrue if Mtm Technology is Mail + * otherwsie EFalse + */ + TBool IsMailMtmTechnology(TUid aMtm ) const ; private: // Data CMsvSessionPtr iSession; diff -r a9c7e5670d17 -r c6838af47512 messagingappbase/mce/inc/MceOneRowMessageListContainer.h --- a/messagingappbase/mce/inc/MceOneRowMessageListContainer.h Mon Mar 15 12:40:06 2010 +0200 +++ b/messagingappbase/mce/inc/MceOneRowMessageListContainer.h Wed Mar 31 21:25:02 2010 +0300 @@ -38,7 +38,7 @@ class CAknsBasicBackgroundControlContext; class CPtiEngine; class CAknTreeList; - +class CMtmUiDataRegistry; // CLASS DECLARATION @@ -548,6 +548,14 @@ */ void HandleOperationCompletedL(); + /** + * Check the MTM technology type for Mail Technology + * @param aMtm: Mtm Uid + * @return : ETrue if Mtm Technology is Mail + * otherwsie EFalse + */ + TBool IsMailMtmTechnology( TUid aMtm )const; + private: CAknSingleColumnStyleTreeList* iTreeListBox; @@ -579,6 +587,7 @@ * KFeatureIdFfEmailFramework is enabled */ TBool iEmailFramework; + CMtmUiDataRegistry* iUiRegistry; }; #endif diff -r a9c7e5670d17 -r c6838af47512 messagingappbase/mce/src/MceMainViewListItemArray.cpp --- a/messagingappbase/mce/src/MceMainViewListItemArray.cpp Mon Mar 15 12:40:06 2010 +0200 +++ b/messagingappbase/mce/src/MceMainViewListItemArray.cpp Wed Mar 31 21:25:02 2010 +0300 @@ -1053,13 +1053,14 @@ _LIT(KDirAndMceExtraItemsResFileName,"mceextraitems.rsc"); TFileName fileName; + fileName.Insert( 0,KDC_APP_RESOURCE_DIR ); + fileName.Append( KDirAndMceExtraItemsResFileName ); TFindFile finder( iCoeEnv->FsSession() ); //Search Y->A then Z: - TInt err = finder.FindByDir( KDirAndMceExtraItemsResFileName, KDC_APP_RESOURCE_DIR ); + BaflUtils::NearestLanguageFile(iCoeEnv->FsSession(),fileName); + TInt err = finder.FindByDir(fileName , KDC_APP_RESOURCE_DIR ); if(err == KErrNone) - { - fileName = finder.File(); - BaflUtils::NearestLanguageFile(iCoeEnv->FsSession(),fileName); + { RConeResourceLoader resources( *iCoeEnv ); TInt err = KErrNone; diff -r a9c7e5670d17 -r c6838af47512 messagingappbase/mce/src/MceMessageListItemArray.cpp --- a/messagingappbase/mce/src/MceMessageListItemArray.cpp Mon Mar 15 12:40:06 2010 +0200 +++ b/messagingappbase/mce/src/MceMessageListItemArray.cpp Wed Mar 31 21:25:02 2010 +0300 @@ -99,6 +99,8 @@ //cmail update #define KUidMsgTypeFsMtmVal 0x2001F406 +const TUid KMailTechnologyTypeUid = { 0x10001671 }; + // ================= MEMBER FUNCTIONS ======================= // C++ default constructor can NOT contain any code that @@ -416,8 +418,9 @@ aBuffer.Append( KColumnListSeparator ); - if ( aEntry.iMtm != KSenduiMtmMmsUid && - aEntry.Attachment() ) + + if ( aEntry.Attachment()&& aEntry.iMtm != KSenduiMtmMmsUid + && IsMailMtmTechnology(aEntry.iMtm)) { aBuffer.AppendNum( (TInt) EMceBitmapIndexAttachment ); aBuffer.Append( KColumnListSeparator ); @@ -1596,5 +1599,19 @@ return tmpindex; } - +// ---------------------------------------------------- +// CMceMessageListItemArray::IsMailMtmTechnology +// ---------------------------------------------------- +TBool CMceMessageListItemArray::IsMailMtmTechnology(TUid aMtm )const + { + TBool isMailMtm = EFalse; + if ( aMtm.iUid != 0 && aMtm != KUidMsvLocalServiceMtm && + iUiRegistry->IsPresent( aMtm) ) + { + // get MTM technology type + TUid technologyType = iUiRegistry->TechnologyTypeUid( aMtm); + isMailMtm = ( KMailTechnologyTypeUid == technologyType ); + } + return isMailMtm; + } // End of File diff -r a9c7e5670d17 -r c6838af47512 messagingappbase/mce/src/MceMessageListView.cpp --- a/messagingappbase/mce/src/MceMessageListView.cpp Mon Mar 15 12:40:06 2010 +0200 +++ b/messagingappbase/mce/src/MceMessageListView.cpp Wed Mar 31 21:25:02 2010 +0300 @@ -228,15 +228,7 @@ // Reset the sort order iFolderItemArray->Reset(); } - if ( iMsgListContainer && - iCurrentListType != GetFolderListBoxType()) - { - ListboxTypeChangedL(); - } - else - { - CreateListboxL(); - } + if ( iMsgListContainer ) { iMsgListContainer->SetSortTypeL( iSortOrder, iOrdering ); @@ -245,7 +237,6 @@ TMsvId id = 0; TBool editorLaunched = EFalse; TBool launchingFromOutside = EFalse; - TInt msgMtmUid = 0; TMsvId service = KMsvLocalServiceIndexEntryId; TMsvEntry entry; @@ -273,18 +264,19 @@ { // Set the folder based on the given ID iFolderId = aCustomMessageId.iUid; - // this is performance optimization, start to launch viewer before container creation - if ( !iMsgListContainer && entry.Id() == KMsvGlobalInBoxIndexEntryId ) - { - if ( LaunchViewerWhenOneUnreadL( msgMtmUid ) > KErrNotFound ) - { - editorLaunched = ETrue; - } - } + } iMceUi->SetDontExitOnNextOperationComplete(); } - + if ( iMsgListContainer && + iCurrentListType != GetFolderListBoxType()) + { + ListboxTypeChangedL(); + } + else + { + CreateListboxL(); + } if ( iMsgListContainer && aPrevViewId == TDRVIEWID ) @@ -1222,7 +1214,7 @@ switch ( currentEntry.iType.iUid ) { case KUidMsvMessageEntryValue: - if ( currentEntry.Parent() != KMsvGlobalOutBoxIndexEntryId ) + if (( currentEntry.Parent() != KMsvGlobalOutBoxIndexEntryId) && (iFolderId != KMsvGlobalOutBoxIndexEntryId)) { EditEntryL(); } diff -r a9c7e5670d17 -r c6838af47512 messagingappbase/mce/src/MceOneRowMessageListContainer.cpp --- a/messagingappbase/mce/src/MceOneRowMessageListContainer.cpp Mon Mar 15 12:40:06 2010 +0200 +++ b/messagingappbase/mce/src/MceOneRowMessageListContainer.cpp Wed Mar 31 21:25:02 2010 +0300 @@ -59,7 +59,7 @@ #include #include - +#include // CONSTANTS const TInt KMceListContainerGranuality = 4; @@ -79,7 +79,7 @@ //cmail update #define KUidMsgTypeCmailMtmVal 0x2001F406 - +const TUid KMailTechnologyTypeUid = { 0x10001671 }; // ================= MEMBER FUNCTIONS ======================= // ---------------------------------------------------- @@ -106,6 +106,7 @@ delete iBgContext; delete iSelectedEntries; delete iTreeListBox; + delete iUiRegistry; } @@ -207,6 +208,7 @@ TLocale locale; iStartOfWeek = locale.StartOfWeek(); iDialerEvent = EFalse ; + iUiRegistry = CMtmUiDataRegistry::NewL(*aSession); } @@ -570,7 +572,9 @@ EFalse ); TBool attachmentIcon = EFalse; - if ( entry.Attachment() && entry.iMtm != KSenduiMtmMmsUid ) + + if ( entry.Attachment() && entry.iMtm != KSenduiMtmMmsUid + && IsMailMtmTechnology(entry.iMtm )) { iTreeListBox->SetIcon( itemId, @@ -2075,7 +2079,9 @@ foundIcon, EFalse ); TBool attachmentIcon = EFalse; - if ( entry.Attachment() && entry.iMtm != KSenduiMtmMmsUid ) + + if ( entry.Attachment() && entry.iMtm != KSenduiMtmMmsUid + && IsMailMtmTechnology(entry.iMtm )) { iTreeListBox->SetIcon( treeItemId, @@ -2534,4 +2540,19 @@ } } +// ---------------------------------------------------- +// CMceOneRowMessageListContainer::IsMailMtmTechnology +// ---------------------------------------------------- +TBool CMceOneRowMessageListContainer::IsMailMtmTechnology( TUid aMtm )const + { + TBool isMailMtm = EFalse; + if ( aMtm.iUid != 0 && aMtm != KUidMsvLocalServiceMtm && + iUiRegistry->IsPresent( aMtm) ) + { + // get MTM technology type + TUid technologyType = iUiRegistry->TechnologyTypeUid( aMtm); + isMailMtm = ( KMailTechnologyTypeUid == technologyType ); + } + return isMailMtm; + } // End of File diff -r a9c7e5670d17 -r c6838af47512 messagingappbase/mceextraitems/group/bld.inf --- a/messagingappbase/mceextraitems/group/bld.inf Mon Mar 15 12:40:06 2010 +0200 +++ b/messagingappbase/mceextraitems/group/bld.inf Wed Mar 31 21:25:02 2010 +0300 @@ -35,6 +35,8 @@ ../rom/mceextraitems.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(mceextraitems.iby) ../rom/mceextraitems_resource.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(mceextraitems_resource.iby) +../rom/mceextraitems.iby CORE_APP_LAYER_IBY_EXPORT_PATH(mceextraitems.iby) +../rom/mceextraitems_resource.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(mceextraitems_resource.iby) ../loc/mceextraitems.loc APP_LAYER_LOC_EXPORT_PATH(mceextraitems.loc) PRJ_EXTENSIONS diff -r a9c7e5670d17 -r c6838af47512 messagingappbase/msgavkon/msgindicatorplugin/group/ABLD.BAT --- a/messagingappbase/msgavkon/msgindicatorplugin/group/ABLD.BAT Mon Mar 15 12:40:06 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,30 +0,0 @@ -rem -rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -rem All rights reserved. -rem This component and the accompanying materials are made available -rem under the terms of the License "Eclipse Public License v1.0" -rem which accompanies this distribution, and is available -rem at the URL "http://www.eclipse.org/legal/epl-v10.html". -rem -rem Initial Contributors: -rem Nokia Corporation - initial contribution. -rem -rem Contributors: -rem -rem Description: ABLD.BATrem - -@ECHO OFF - -REM Bldmake-generated batch file - ABLD.BAT -REM ** DO NOT EDIT ** - -perl -S ABLD.PL "\s60\app\messaging\messaginguis\msgavkon\msgindicatorplugin\group\\" %1 %2 %3 %4 %5 %6 %7 %8 %9 -if errorlevel==1 goto CheckPerl -goto End - -:CheckPerl -perl -v >NUL -if errorlevel==1 echo Is Perl, version 5.003_07 or later, installed? -goto End - -:End diff -r a9c7e5670d17 -r c6838af47512 messagingappbase/msgeditor/appuisrc/MsgEditorShutter.cpp --- a/messagingappbase/msgeditor/appuisrc/MsgEditorShutter.cpp Mon Mar 15 12:40:06 2010 +0200 +++ b/messagingappbase/msgeditor/appuisrc/MsgEditorShutter.cpp Wed Mar 31 21:25:02 2010 +0300 @@ -152,6 +152,16 @@ openEditors--; iOpenAppProperty.Set( openEditors ); } + + TInt standAloneEditorCnt = 0; // since only one stand alone editor can be launched + iOpenAppStandAloneProperty.Get(KPSUidMsgEditor, KMuiuStandAloneOpenMsgEditors, standAloneEditorCnt); + + if(standAloneEditorCnt > 0) + { + standAloneEditorCnt--; + iOpenAppStandAloneProperty.Set(KPSUidMsgEditor, KMuiuStandAloneOpenMsgEditors, standAloneEditorCnt); + } + iOpenAppProperty.Close(); iOpenAppStandAloneProperty.Close(); } @@ -185,9 +195,7 @@ if((launchtype & EMsgLaunchEditorStandAlone ) && StandAloneEditorCnt > 1 ) { - StandAloneEditorCnt = 1; - err = iOpenAppStandAloneProperty.Set(KPSUidMsgEditor, KMuiuStandAloneOpenMsgEditors, StandAloneEditorCnt); - // Run appshutter + // Run appshutter CAknEnv::RunAppShutter(); } else if ( openEditors ) diff -r a9c7e5670d17 -r c6838af47512 messagingappbase/msgeditor/viewsrc/MsgAddressControlEditor.cpp --- a/messagingappbase/msgeditor/viewsrc/MsgAddressControlEditor.cpp Mon Mar 15 12:40:06 2010 +0200 +++ b/messagingappbase/msgeditor/viewsrc/MsgAddressControlEditor.cpp Wed Mar 31 21:25:02 2010 +0300 @@ -224,9 +224,18 @@ if( numOfEntries > 0 && numOfEntries != aEntryNumber && !setcursorpos) { TInt txtlen = TextLength(); - TInt curpos = CursorPos(); - entryStart = iRichText->CharPosOfParagraph( entryLength, aEntryNumber ); - curpos+= --entryLength; + TInt curpos = CursorPos(); + if ( aEntryNumber ) + { + entryStart = iRichText->CharPosOfParagraph( entryLength, aEntryNumber - 1 ); + curpos = entryStart + --entryLength ; + } + else + { + entryStart = iRichText->CharPosOfParagraph( entryLength, aEntryNumber ); + curpos+= --entryLength; + } + if ( TextView() ) { if(curpos < txtlen) diff -r a9c7e5670d17 -r c6838af47512 messagingappbase/ncnlist/src/CNcnNotifApiObserver.cpp --- a/messagingappbase/ncnlist/src/CNcnNotifApiObserver.cpp Mon Mar 15 12:40:06 2010 +0200 +++ b/messagingappbase/ncnlist/src/CNcnNotifApiObserver.cpp Wed Mar 31 21:25:02 2010 +0300 @@ -38,7 +38,9 @@ #include #include // Messaging utilites #include +#include +const TUid KUidMsgTypeCmailMtmVal = {0x2001F406}; // ================= LOCAL CONSTANTS ======================= namespace @@ -1045,42 +1047,45 @@ const TUid& aMtmType, const TUid& aTechnologyType) { - TNcnMailBoxStatus mailbox( aMsvId ); + if((aMtmType != KUidMsgTypeCmailMtmVal) && (aMtmType != KUidMsgTypeIMAP4) && (aMtmType != KUidMsgTypeSMTP) && (aMtmType != KUidMsgTypePOP3)) + { + TNcnMailBoxStatus mailbox( aMsvId ); - // if mail box is not already in status array - if ( iMailBoxStatusArray.Find( mailbox, - TNcnMailBoxStatus::Match ) == KErrNotFound ) - { - // set mailbox fields - mailbox.iMTMType = aMtmType; - mailbox.iMailBoxTechnologyType = aTechnologyType; + // if mail box is not already in status array + if ( iMailBoxStatusArray.Find( mailbox, + TNcnMailBoxStatus::Match ) == KErrNotFound ) + { + // set mailbox fields + mailbox.iMTMType = aMtmType; + mailbox.iMailBoxTechnologyType = aTechnologyType; - // set the mailboxes 'highest' values - FindHighest_MsvId_ImapId_LatestTime(mailbox.iMailBox, - mailbox.iHighestEMailMsvId , - mailbox.iHighestIMAPId, - mailbox.iLatestMessageArrival); + // set the mailboxes 'highest' values + FindHighest_MsvId_ImapId_LatestTime(mailbox.iMailBox, + mailbox.iHighestEMailMsvId , + mailbox.iHighestIMAPId, + mailbox.iLatestMessageArrival); - // set the rest of the values - mailbox.iUnreadCheckpointMsvId = mailbox.iHighestEMailMsvId; - mailbox.iPublishedCheckpointMsvId = mailbox.iHighestEMailMsvId; - mailbox.iPublishedCheckpointIMAPId = mailbox.iHighestIMAPId; - mailbox.iPublishedCheckpointTimeStamp = mailbox.iLatestMessageArrival; - mailbox.iPublishedNewEmailCount = 0; - mailbox.iShowIcon = ETrue; - //In case the mailbox is IMAP/POP/SyncMl update the notifcation - //parameters. 3rd party box's will give these in API - if( mailbox.iMTMType.iUid == KSenduiMtmImap4UidValue || - mailbox.iMTMType.iUid == KSenduiMtmPop3UidValue || - mailbox.iMTMType.iUid == KSenduiMtmSyncMLEmailUidValue ) - { - //This should work, but just in case it does not - //use default parameters - TRAP_IGNORE(UpdateS60MailBoxNotificationAttributesL(mailbox)); - } + // set the rest of the values + mailbox.iUnreadCheckpointMsvId = mailbox.iHighestEMailMsvId; + mailbox.iPublishedCheckpointMsvId = mailbox.iHighestEMailMsvId; + mailbox.iPublishedCheckpointIMAPId = mailbox.iHighestIMAPId; + mailbox.iPublishedCheckpointTimeStamp = mailbox.iLatestMessageArrival; + mailbox.iPublishedNewEmailCount = 0; + mailbox.iShowIcon = ETrue; + //In case the mailbox is IMAP/POP/SyncMl update the notifcation + //parameters. 3rd party box's will give these in API + if( mailbox.iMTMType.iUid == KSenduiMtmImap4UidValue || + mailbox.iMTMType.iUid == KSenduiMtmPop3UidValue || + mailbox.iMTMType.iUid == KSenduiMtmSyncMLEmailUidValue ) + { + //This should work, but just in case it does not + //use default parameters + TRAP_IGNORE(UpdateS60MailBoxNotificationAttributesL(mailbox)); + } - // and finally append mailbox status - iMailBoxStatusArray.AppendL( mailbox ); + // and finally append mailbox status + iMailBoxStatusArray.AppendL( mailbox ); + } } } diff -r a9c7e5670d17 -r c6838af47512 messagingappbase/ncnlist/src/NcnOutboxObserver.cpp --- a/messagingappbase/ncnlist/src/NcnOutboxObserver.cpp Mon Mar 15 12:40:06 2010 +0200 +++ b/messagingappbase/ncnlist/src/NcnOutboxObserver.cpp Wed Mar 31 21:25:02 2010 +0300 @@ -33,7 +33,9 @@ #include "NcnModelBase.h" #include "CNcnMsvSessionHandler.h" #include "CNcnMobileSignalStrengthHandler.h" +#include +const TUid KUidMsgTypeCmailMtmVal = {0x2001F406}; // ================= MEMBER FUNCTIONS ======================= // --------------------------------------------------------- @@ -117,6 +119,30 @@ // Check messagecount in outbox TInt msgCount = iOutboxFolder->Count(); + CMsvEntrySelection *smtpselection = NULL ; + CMsvEntrySelection *pop3selection = NULL; + CMsvEntrySelection *imapselection = NULL ; + CMsvEntrySelection *cmailselection = NULL ; + + smtpselection = iOutboxFolder ->ChildrenWithMtmL( KUidMsgTypeSMTP ); + CleanupStack::PushL( smtpselection ); + TInt smtpCount= smtpselection ->Count(); + + pop3selection = iOutboxFolder ->ChildrenWithMtmL( KUidMsgTypePOP3 ); + CleanupStack::PushL( pop3selection ); + TInt pop3Count= pop3selection ->Count(); + + imapselection = iOutboxFolder ->ChildrenWithMtmL( KUidMsgTypeIMAP4 ); + CleanupStack::PushL( imapselection ); + TInt imapCount= imapselection ->Count(); + + cmailselection = iOutboxFolder ->ChildrenWithMtmL( KUidMsgTypeCmailMtmVal); + CleanupStack::PushL( cmailselection ); + TInt cmailCount= cmailselection ->Count(); + + CleanupStack::Pop( 4 ); + // Check messagecount in outbox + msgCount = msgCount - (smtpCount+pop3Count+ imapCount+cmailCount); // Set msg count to the CR key NCN_RDEBUG_INT( _L("CNcnOutboxObserver::CheckOutboxAndNotifyL SetCRInt(KNcnMessageCountInOutbox) %d" ), msgCount ); User::LeaveIfError( iModel->SetCRInt( diff -r a9c7e5670d17 -r c6838af47512 messagingappbase/sendui/genericmtmplugin/src/genericmtmplugin.cpp --- a/messagingappbase/sendui/genericmtmplugin/src/genericmtmplugin.cpp Mon Mar 15 12:40:06 2010 +0200 +++ b/messagingappbase/sendui/genericmtmplugin/src/genericmtmplugin.cpp Wed Mar 31 21:25:02 2010 +0300 @@ -80,6 +80,7 @@ const TUint KSeconds = 1000000; const TUid KMailTechnologyTypeUid = { 0x10001671 }; +const TUid KUidMsgTypeCmailMtmVal = { 0x2001f406 }; //CMail mtmuid // ======== LOCAL FUNCTIONS ======== @@ -324,7 +325,8 @@ if ( success && ( aMtmUid == KSenduiMtmSmtpUid || aMtmUid == KSenduiMtmMmsUid || - aMtmUid == KSenduiMtmUniMessageUid )) + aMtmUid == KSenduiMtmUniMessageUid || + aMtmUid == KUidMsgTypeCmailMtmVal )) { HBufC* subject = aMessageData->Subject().AllocLC(); cleanupItems++; diff -r a9c7e5670d17 -r c6838af47512 mobilemessaging/audiomsg/src/audiomessageappui.cpp --- a/mobilemessaging/audiomsg/src/audiomessageappui.cpp Mon Mar 15 12:40:06 2010 +0200 +++ b/mobilemessaging/audiomsg/src/audiomessageappui.cpp Wed Mar 31 21:25:02 2010 +0300 @@ -276,7 +276,7 @@ iCoeEnv->RootWin().EnableFocusChangeEvents(); // ignore error - iScreenClearer = CAknLocalScreenClearer::NewLC( EFalse ); + iScreenClearer = CAknLocalScreenClearer::NewLC( ETrue ); CleanupStack::Pop( iScreenClearer ); AMSLOGGER_WRITE( "CAudioMessageAppUi::ConstructL ends" ); } diff -r a9c7e5670d17 -r c6838af47512 mobilemessaging/smsmtm/clientmtm/inc/SMSCLNT.H --- a/mobilemessaging/smsmtm/clientmtm/inc/SMSCLNT.H Mon Mar 15 12:40:06 2010 +0200 +++ b/mobilemessaging/smsmtm/clientmtm/inc/SMSCLNT.H Wed Mar 31 21:25:02 2010 +0300 @@ -1,4 +1,4 @@ -// Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies). +// Copyright (c) 1999-2010 Nokia Corporation and/or its subsidiary(-ies). // All rights reserved. // This component and the accompanying materials are made available // under the terms of "Eclipse Public License v1.0" diff -r a9c7e5670d17 -r c6838af47512 mobilemessaging/smsmtm/clientmtm/src/SMSCLNT.CPP --- a/mobilemessaging/smsmtm/clientmtm/src/SMSCLNT.CPP Mon Mar 15 12:40:06 2010 +0200 +++ b/mobilemessaging/smsmtm/clientmtm/src/SMSCLNT.CPP Wed Mar 31 21:25:02 2010 +0300 @@ -1,4 +1,4 @@ -// Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies). +// Copyright (c) 1999-2010 Nokia Corporation and/or its subsidiary(-ies). // All rights reserved. // This component and the accompanying materials are made available // under the terms of "Eclipse Public License v1.0" @@ -238,8 +238,18 @@ { User::Leave(err); } - - iServiceId = 0; + TMsvEntry entry; + entry.iMtm = KUidMsgTypeSMS; + entry.iType = KUidMsvServiceEntry; + entry.SetReadOnly(EFalse); + entry.SetVisible(EFalse); + entry.iDate.UniversalTime(); + entry.iDetails.Set(_L("Default SMS Message")); + + CMsvEntry* root = Session().GetEntryL(KMsvRootIndexEntryId); + root->CreateL(entry); + iServiceId = entry.Id(); + delete root; } //Initialise iRealAddressOpen and iRealAddressClose from the SMS resouce file @@ -1539,7 +1549,6 @@ /** Creates a new outgoing SMS message entry as a child of the current context. - Used by CSendAs::CreateMessageL to create an outgoing SMS message. @param diff -r a9c7e5670d17 -r c6838af47512 mobilemessaging/smsmtm/group/messaging_sms.history.xml --- a/mobilemessaging/smsmtm/group/messaging_sms.history.xml Mon Mar 15 12:40:06 2010 +0200 +++ b/mobilemessaging/smsmtm/group/messaging_sms.history.xml Wed Mar 31 21:25:02 2010 +0300 @@ -4,6 +4,14 @@ Message Type Module (MTM) plugin to Messaging Framework, supporting sending/receiving/editing of SMS messages. + + Logical error in last code submission in smsclnt.cpp in void CMsvServer::ConstructL(). Updated those changes accordingly. + + + + Checking for the error codes to avoid sending messages to invlaid numbers. + + declared classes as non sharable classes diff -r a9c7e5670d17 -r c6838af47512 mobilemessaging/smsmtm/servermtm/src/SMSSERV.CPP --- a/mobilemessaging/smsmtm/servermtm/src/SMSSERV.CPP Mon Mar 15 12:40:06 2010 +0200 +++ b/mobilemessaging/smsmtm/servermtm/src/SMSSERV.CPP Wed Mar 31 21:25:02 2010 +0300 @@ -1,4 +1,4 @@ -// Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies). +// Copyright (c) 1999-2010 Nokia Corporation and/or its subsidiary(-ies). // All rights reserved. // This component and the accompanying materials are made available // under the terms of "Eclipse Public License v1.0" @@ -19,6 +19,7 @@ #include "SMSSPAN.H" #include "SMSSOUTB.H" +#include #include #include #include diff -r a9c7e5670d17 -r c6838af47512 mobilemessaging/smsmtm/servermtm/src/SMSSOUTB.CPP --- a/mobilemessaging/smsmtm/servermtm/src/SMSSOUTB.CPP Mon Mar 15 12:40:06 2010 +0200 +++ b/mobilemessaging/smsmtm/servermtm/src/SMSSOUTB.CPP Wed Mar 31 21:25:02 2010 +0300 @@ -1,4 +1,4 @@ -// Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies). +// Copyright (c) 1999-2010 Nokia Corporation and/or its subsidiary(-ies). // All rights reserved. // This component and the accompanying materials are made available // under the terms of "Eclipse Public License v1.0" @@ -23,6 +23,7 @@ #include #include #include +#include #include "SMSSendSession.h" #include "SMSSPAN.H" @@ -210,7 +211,15 @@ { if (iCurrentMessage) { - ReScheduleFailedMessageL(); + if( (iProgress.iError == KErrGsmSMSShortMessageTransferRejected) || (iProgress.iError == KErrGsmSMSInvalidMandatoryInformation) || (iProgress.iError == KErrGsmSMSUnidentifiedSubscriber) || + (iProgress.iError == KErrGsmSMSUnknownSubscriber) || (iProgress.iError == KErrGsmSMSNetworkOutOfOrder) ) + { + DoComplete(iProgress.iError); + } + else + { + ReScheduleFailedMessageL(); + } } else { diff -r a9c7e5670d17 -r c6838af47512 mobilemessaging/smsui/viewersrc/MsgSmsViewerAppUi.cpp --- a/mobilemessaging/smsui/viewersrc/MsgSmsViewerAppUi.cpp Mon Mar 15 12:40:06 2010 +0200 +++ b/mobilemessaging/smsui/viewersrc/MsgSmsViewerAppUi.cpp Wed Mar 31 21:25:02 2010 +0300 @@ -246,7 +246,7 @@ EMbmMuiuQgn_prop_mce_sms_title_mask ); - iScreenClearer = CAknLocalScreenClearer::NewLC( EFalse ); + iScreenClearer = CAknLocalScreenClearer::NewLC( ETrue ); CleanupStack::Pop( iScreenClearer ); iTypeMsg = CSmsPDU::ESmsDeliver; //for successful launch save the PDU Type. diff -r a9c7e5670d17 -r c6838af47512 mobilemessaging/unieditor/application/src/UniEditorAppUi.cpp --- a/mobilemessaging/unieditor/application/src/UniEditorAppUi.cpp Mon Mar 15 12:40:06 2010 +0200 +++ b/mobilemessaging/unieditor/application/src/UniEditorAppUi.cpp Wed Mar 31 21:25:02 2010 +0300 @@ -2846,6 +2846,16 @@ } TUniState currentState = Document()->UniState(); + if(currentState == EUniMms) + { + TInt PrevSlidecount = iSmilModel->SlideCount(); + iSmilModel->RemoveEmptySlides(); + if( PrevSlidecount != iSmilModel->SlideCount() ) + { + Document()->SetBodyModified( ETrue ); + CheckBodyForMessageTypeL(); + } + } TBool modified( EFalse ); if ( !VerifyAddressesL( modified ) ) @@ -7455,6 +7465,11 @@ } CleanupStack::PopAndDestroy( queryText ); + if(!ObjectsAvailable() && Document()->CurrentSlide()) + { + DoRemoveSlideL(); + Document()->SetBodyModified( ETrue ); + } CheckBodyForMessageTypeL(); MsgLengthToNavipaneL(); } @@ -7477,8 +7492,12 @@ Document()->SetBodyModified( ETrue ); UpdateSmilTextAttaL(); - } - + } + if((Document()->UniState() == EUniMms) &&(!ObjectsAvailable() && Document()->CurrentSlide())) + { + DoRemoveSlideL(); + Document()->SetBodyModified( ETrue ); + } CheckBodyForMessageTypeL(); MsgLengthToNavipaneL(); SetOrRemoveMaxSizeInEdwin();