diff -r f5907b1a1053 -r 0396474f30f5 emailservices/emailstore/base_plugin/src/basepluginnotifications.cpp --- a/emailservices/emailstore/base_plugin/src/basepluginnotifications.cpp Fri Mar 12 15:41:14 2010 +0200 +++ b/emailservices/emailstore/base_plugin/src/basepluginnotifications.cpp Mon Mar 15 12:39:10 2010 +0200 @@ -126,23 +126,32 @@ { switch ( aEvent ) { - // A backup or restore is in progress. The message store is unavailable. - case EMsgStoreBackupOrRestoreInProgress: - // The message store has been wiped, including the password. - case EMsgStoreDatabaseWiped: - // The message store has transitioned from an authenticated state to an unauthenticated state. - case EMsgStoreNotAuthenticated: + // The message store is unavailable. This may be due to + // a backup or restore being in progress, a Pointsec lock being issued, + // the disk drive being unavailable, etc. + case EMsgStoreUnavailable: { - NotifyGlobalEventL( TFSMailboxUnavailable ); + // since the store is unavailabe we are unable to get + // list of mailboxes, setting plugin id only + TFSMailMsgId id; + id.SetPluginId( TUid::Uid( GetPluginId() ) ); + NotifyGlobalEventL( TFSMailboxUnavailable, id ); } break; - // The backup or restore completed. The message store is available again. - case EMsgStoreBackupOrRestoreCompleted: - // The message store has transitioned from an unauthenticated state to an authenticated state. - case EMsgStoreAuthenticated: + // The message store is available again. + case EMsgStoreAvailable: { - NotifyGlobalEventL( TFSMailboxAvailable ); + RArray mailboxes; + CleanupClosePushL( mailboxes ); + ListMailBoxesL( mailboxes ); + + for ( TInt i( 0 ); i < mailboxes.Count(); i++ ) + { + NotifyGlobalEventL( TFSMailboxAvailable, mailboxes[i] ); + } + + CleanupStack::PopAndDestroy( &mailboxes ); } break; @@ -151,6 +160,7 @@ // which many message store operations have occurred. case EObserverEventQueueOverflow: //don't see anything meaningful to do here. + default: break; }; }