diff -r b5fbb9b25d57 -r 67369d1b217f emailservices/emailserver/cmailhandlerplugin/src/cmailcpshandler.cpp --- a/emailservices/emailserver/cmailhandlerplugin/src/cmailcpshandler.cpp Tue May 11 15:57:15 2010 +0300 +++ b/emailservices/emailserver/cmailhandlerplugin/src/cmailcpshandler.cpp Tue May 25 12:23:16 2010 +0300 @@ -26,7 +26,8 @@ #include #include #include - +#include +#include #include // CleanupResetAndDestroyPushL #include "emailtrace.h" @@ -334,7 +335,11 @@ { TBuf cid; iSettings->GetContentId( aMailbox.Id(), i + 1, cid ); - iLiwIf->SetUpdateNeeded( iLiwIf->GetWidgetInstanceId( cid ), ETrue ); + TInt widgetInstance = iLiwIf->GetWidgetInstanceId( cid ); + if ( widgetInstance != KErrNotFound ) + { + iLiwIf->SetUpdateNeeded( widgetInstance, ETrue ); + } } } @@ -839,7 +844,12 @@ { FUNC_LOG; - // Is the mailbox in our list + // If backup or restore is ongoing ignore all events + if ( BackupOrRestoreMode() ) + { + return; + } + switch ( aEvent ) { case TFSEventNewMailbox: @@ -1943,4 +1953,42 @@ iQuery->ShowNoteL(EAknGlobalConfirmationNote, str->Des()); CleanupStack::PopAndDestroy( str ); } + +// ---------------------------------------------------------------------------- +// CMailCpsHandler::BackupOrRestoreMode() +// Check if phone is in backup/restore mode +// ---------------------------------------------------------------------------- +// +TBool CMailCpsHandler::BackupOrRestoreMode() + { + FUNC_LOG; + TBool backupOrRestore = EFalse; + + // Get the back-up restore key, return EFalse if we can't get the key + TInt keyVal = 0; + const TInt error = RProperty::Get( KUidSystemCategory, conn::KUidBackupRestoreKey, keyVal ); + if( error == KErrNone ) + { + const conn::TBURPartType partType = + static_cast< conn::TBURPartType >( keyVal & conn::KBURPartTypeMask ); + + if ( keyVal != 0 ) + { + switch( partType ) + { + case conn::EBURBackupFull: + case conn::EBURBackupPartial: + case conn::EBURRestoreFull: + case conn::EBURRestorePartial: + backupOrRestore = ETrue; + break; + case conn::EBURUnset: + case conn::EBURNormal: + default: + break; + } + } + } + return backupOrRestore; + }