diff -r da5135c61bad -r cd2816114bd1 emailservices/emailserver/cmailhandlerplugin/src/cmailcpshandler.cpp --- a/emailservices/emailserver/cmailhandlerplugin/src/cmailcpshandler.cpp Wed Mar 31 21:08:33 2010 +0300 +++ b/emailservices/emailserver/cmailhandlerplugin/src/cmailcpshandler.cpp Wed Apr 14 15:42:15 2010 +0300 @@ -50,9 +50,12 @@ // CMailCpsHandler::CMailCpsHandler( MFSNotificationHandlerMgr& aOwner ): CFSNotificationHandlerBase( aOwner ), - iWaitingForNewMailbox(NULL) + iWaitingForNewMailbox( NULL ), + iWaitingForNewWidget() { FUNC_LOG; + iWaitingForNewWidget.SetPluginId( KNullUid ); + iWaitingForNewWidget.SetId( 0 ); } // --------------------------------------------------------- @@ -140,14 +143,7 @@ { mailboxId = mailbox->GetId().Id(); } - if ( !mailboxId ) - { - // Remove box from settings - iSettings->RemoveMailboxL( ii ); - // Array indexing changes now since one item was deleted - ii--; - } - else + if ( mailboxId ) { CleanupStack::PushL( mailbox ); CMailMailboxDetails* mailboxDetails = CreateMailboxDetailsL( *mailbox ); @@ -863,6 +859,10 @@ { iSettings->AssociateWidgetToSetting( iWaitingForNewMailbox->Des(), aMailbox ); } + else + { + iLiwIf->AddWidgetToHomescreenL( aMailbox ); + } } // --------------------------------------------------------- @@ -1828,3 +1828,76 @@ iWaitingForNewMailbox = NULL; } } + +// ----------------------------------------------------------------------------- +// CMailCpsHandler::SetWaitingForNewWidget() +// ----------------------------------------------------------------------------- +// +void CMailCpsHandler::SetWaitingForNewWidget( const TFSMailMsgId aMailbox ) + { + FUNC_LOG; + iWaitingForNewWidget.SetPluginId( aMailbox.PluginId() ); + iWaitingForNewWidget.SetId( aMailbox.Id() ); + } + +// ----------------------------------------------------------------------------- +// CMailCpsHandler::CleanWaitingForNewWidget() +// ----------------------------------------------------------------------------- +// +void CMailCpsHandler::CleanWaitingForNewWidget() + { + FUNC_LOG; + iWaitingForNewWidget.SetPluginId( KNullUid ); + iWaitingForNewWidget.SetId( 0 ); + } + +// ----------------------------------------------------------------------------- +// CMailCpsHandler::WaitingForNewWidget() +// ----------------------------------------------------------------------------- +// +TFSMailMsgId CMailCpsHandler::WaitingForNewWidget() + { + FUNC_LOG; + return iWaitingForNewWidget; + } + +// --------------------------------------------------------------------------- +// CMailCpsSettings::AssociateWidgetToSetting +// --------------------------------------------------------------------------- +// +void CMailCpsHandler::AssociateWidgetToSetting( const TDesC& aContentId, + const TFSMailMsgId aMailbox ) + { + FUNC_LOG; + iSettings->AssociateWidgetToSetting( aContentId, aMailbox ); + } + + +// --------------------------------------------------------------------------- +// CMailCpsHandler::Associated +// --------------------------------------------------------------------------- +// +TBool CMailCpsHandler::Associated( const TDesC& aContentId ) + { + FUNC_LOG; + return iSettings->Associated( aContentId ); + } + +// --------------------------------------------------------------------------- +// CMailCpsSettings::DisplayHSPageFullNoteL +// --------------------------------------------------------------------------- +// +void CMailCpsHandler::DisplayHSPageFullNoteL() + { + FUNC_LOG; + if (!iQuery) + { + iQuery = CAknGlobalNote::NewL(); + iQuery->SetSoftkeys(R_AVKON_SOFTKEYS_OK_EMPTY); + } + HBufC* str( NULL ); + str = StringLoader::LoadLC( R_EMAILWIDGET_TEXT_HS_PAGE_FULL ); + iQuery->ShowNoteL(EAknGlobalConfirmationNote, str->Des()); + CleanupStack::PopAndDestroy( str ); + } +