--- a/email_plat/email_client_api/inc/emailclientapi.hrh Fri Feb 19 22:37:30 2010 +0200
+++ b/email_plat/email_client_api/inc/emailclientapi.hrh Fri Mar 12 15:41:14 2010 +0200
@@ -11,7 +11,7 @@
*
* Contributors:
*
-* Description:
+* Description: Interface IDs for sub interfaces
*
*/
@@ -24,9 +24,9 @@
// Interface ids (not ECom) for accessing "sub interfaces" via
// MEmailInterface* CEmailInterfaceFactory::InterfaceL( const TInt aInterfaceId )
- // to be checked if all should be published to clients (some are not
- // meant to be instantiated via factory method but by other means, e.g.
- // user never instantiates mailbox from scratch but asks it from MEmailClientApi
+// to be checked if all should be published to clients (some are not
+// meant to be instantiated via factory method but by other means, e.g.
+// user never instantiates mailbox from scratch but asks it from MEmailClientApi
#define KEmailClientApiInterface 0x20022D63
#define KEmailIFUidMailbox 0x20022D64
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/email_plat/email_crkeys_api/group/bld.inf Fri Mar 12 15:41:14 2010 +0200
@@ -0,0 +1,27 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Build information file for email crkeys interface
+*
+*/
+
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+../inc/commonemailcrkeys.h APP_LAYER_PLATFORM_EXPORT_PATH(commonemailcrkeys.h)
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/email_plat/email_crkeys_api/inc/commonemailcrkeys.h Fri Mar 12 15:41:14 2010 +0200
@@ -0,0 +1,28 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* repository keys to track which mailbox has the latest new email
+*
+*/
+
+#ifndef _COMMONEMAILCRKEYS_H_
+#define _COMMONEMAILCRKEYS_H_
+
+// central repository key for email data
+const TUid KCmailDataRepository = { 0x20029F4A };
+
+// key for display text (mailbox name?) of email indicator popup
+const TUint32 KCmailNewEmailDisplayText = 0x00000001 ;
+
+#endif // _COMMONEMAILCRKEYS_H_
--- a/email_plat/group/bld.inf Fri Feb 19 22:37:30 2010 +0200
+++ b/email_plat/group/bld.inf Fri Mar 12 15:41:14 2010 +0200
@@ -17,5 +17,6 @@
#include "../email_client_api/group/bld.inf"
#include "../email_setup_plugin_api/group/bld.inf"
+#include "../email_crkeys_api/group/bld.inf"
// End of File
--- a/email_pub/email_widget_api/tsrc/3rdpartyapitestplugin2/data/2002C324.rss Fri Feb 19 22:37:30 2010 +0200
+++ b/email_pub/email_widget_api/tsrc/3rdpartyapitestplugin2/data/2002C324.rss Fri Mar 12 15:41:14 2010 +0200
@@ -17,7 +17,7 @@
#include <emailobserverinterface.hrh>
#include <ecom/registryinfo.rh>
-#include "t_testpluginconst.hrh"
+#include "../inc/t_testpluginconst.hrh"
RESOURCE REGISTRY_INFO theInfo
{
--- a/email_pub/email_widget_api/tsrc/3rdpartyapitestplugin2/rom/3rdpartyapitestplugin2.iby Fri Feb 19 22:37:30 2010 +0200
+++ b/email_pub/email_widget_api/tsrc/3rdpartyapitestplugin2/rom/3rdpartyapitestplugin2.iby Fri Mar 12 15:41:14 2010 +0200
@@ -15,10 +15,10 @@
*
*/
-#ifndef THIRDPARTYAPITESTPLUGIN_IBY
-#define THIRDPARTYAPITESTPLUGIN_IBY
+#ifndef THIRDPARTYAPITESTPLUGIN2_IBY
+#define THIRDPARTYAPITESTPLUGIN2_IBY
#include <data_caging_paths_for_iby.hrh>
ECOM_PLUGIN( testplugin2.dll, testplugin2.rsc )
-#endif // THIRDPARTYAPITESTPLUGIN_IBY
+#endif // THIRDPARTYAPITESTPLUGIN2_IBY
--- a/emailcontacts/contactactionservice/group/fsccontactactionservice.mmp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailcontacts/contactactionservice/group/fsccontactactionservice.mmp Fri Mar 12 15:41:14 2010 +0200
@@ -90,7 +90,7 @@
LIBRARY numbergrouping.lib
LIBRARY apgrfx.lib
LIBRARY apparc.lib
-
+LIBRARY rcse.lib
// Dependencies to Phonebook
LIBRARY Pbk2Presentation.lib
LIBRARY Pbk2CommonUi.lib
--- a/emailcontacts/contactactionservice/src/cfscactionutils.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailcontacts/contactactionservice/src/cfscactionutils.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -32,7 +32,7 @@
#include <CoreApplicationUIsSDKCRKeys.h>
#include <settingsinternalcrkeys.h>
//<cmail> Header neither in Cmail nor in the platform
-//#include <crcseprofileregistry.h>
+#include <crcseprofileregistry.h>
//</cmail>
#include <NetworkHandlingDomainPSKeys.h>
#include <MVPbkStoreContact.h>
@@ -136,7 +136,7 @@
if ( iRCSEProfileRegistry != NULL )
{
//<cmail>
- //delete iRCSEProfileRegistry;
+ delete iRCSEProfileRegistry;
//</cmail>
}
}
@@ -1155,7 +1155,7 @@
RArray<TUint32> ids;
CleanupClosePushL( ids );
//<cmail>
- //iRCSEProfileRegistry->GetAllIdsL( ids );
+ iRCSEProfileRegistry->GetAllIdsL( ids );
//</cmail>
configured = ids.Count() > 0;
CleanupStack::PopAndDestroy( &ids );
@@ -1252,12 +1252,12 @@
if ( FeatureManager::FeatureSupported( KFeatureIdCommonVoip ) )
{
//<cmail>
- //TRAP_IGNORE( iRCSEProfileRegistry = CRCSEProfileRegistry::NewL() );
+ TRAP_IGNORE( iRCSEProfileRegistry = CRCSEProfileRegistry::NewL() );
//</cmail>
}
//<cmail>
- iRCSEProfileRegistry = NULL;
+ //iRCSEProfileRegistry = NULL;
//</cmail>
}
--- a/emailcontacts/group/bld.inf Fri Feb 19 22:37:30 2010 +0200
+++ b/emailcontacts/group/bld.inf Fri Mar 12 15:41:14 2010 +0200
@@ -22,9 +22,9 @@
//<cmail>
#include "../contactactionservice/group/bld.inf"
#include "../contactactionmenu/group/bld.inf"
-#include "../remotecontactlookup/group/bld.inf"
//</cmail>
//<cmail> not needed in cmail
+//#include "../remotecontactlookup/group/bld.inf"
//#include "../fscuicontrols/group/bld.inf"
//#include "../fsccombinedviewui/group/bld.inf"
//</cmail>
--- a/emailservices/emailclientapi/group/emailclientapi.mmp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailclientapi/group/emailclientapi.mmp Fri Mar 12 15:41:14 2010 +0200
@@ -63,6 +63,7 @@
LIBRARY bafl.lib
+LIBRARY cone.lib
LIBRARY euser.lib
LIBRARY ECom.lib
LIBRARY FSFWCommonLib.lib
@@ -70,7 +71,7 @@
LIBRARY efsrv.lib
LIBRARY viewcli.lib
LIBRARY estor.lib
-
+LIBRARY centralrepository.lib
#ifdef TRACE_INTO_FILE
LIBRARY flogger.lib
#endif // TRACE_INTO_FILE
--- a/emailservices/emailclientapi/inc/emailclientpluginmanager.h Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailclientapi/inc/emailclientpluginmanager.h Fri Mar 12 15:41:14 2010 +0200
@@ -9,7 +9,7 @@
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
-* Contributors:
+* Contributors: Definition for plugin manager interface
*
* Description:
*
--- a/emailservices/emailclientapi/inc/emailmailboxcache.h Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailclientapi/inc/emailmailboxcache.h Fri Mar 12 15:41:14 2010 +0200
@@ -11,7 +11,7 @@
*
* Contributors:
*
-* Description:
+* Description: Definition for mailbox cache
*
*/
--- a/emailservices/emailclientapi/src/emailclientapiimpl.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailclientapi/src/emailclientapiimpl.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -24,7 +24,9 @@
#include <viewcli.h>
#include <vwsdef.h>
#endif // SYMBIAN_ENABLE_SPLIT_HEADERS
-
+#include <coemain.h> // CCoeEnv
+#include <coeaui.h> // CCoeAppUi
+#include <centralrepository.h>
#include "emailclientapiimpl.h"
#include "emailapiutils.h"
#include "emailmailbox.h"
@@ -35,6 +37,8 @@
#include "emailmailboxcache.h"
#include "FreestyleEmailUiConstants.h"
#include "emailclientapi.hrh"
+#include "FreestyleEmailCenRepKeys.h"
+#include "FreestyleEmailUiConstants.h"
// ---------------------------------------------------------------------------
// CEmailClientApi::MailboxL
// ---------------------------------------------------------------------------
@@ -136,17 +140,47 @@
// -----------------------------------------------------------------------------
void CEmailClientApi::LaunchEmailL( const TLaunchPolicy aPolicy )
{
- if ( aPolicy != EDefault )
+ if ( aPolicy == EShowLastUnseenMailbox)
{
- // no other launch policies supported
- User::Leave( KErrNotSupported );
+ CRepository* emailRepository = CRepository::NewL( KFreestyleEmailCenRep );
+ CleanupStack::PushL(emailRepository);
+ TInt numberOfMailboxes(0);
+ TInt inboxId(0);
+ TInt pluginId(0);
+ emailRepository->Get(KNumberOfMailboxesWithNewEmails,numberOfMailboxes);
+ if(numberOfMailboxes > 0)
+ {
+ emailRepository->Get(KNumberOfMailboxesWithNewEmails+(numberOfMailboxes*2-1),pluginId);
+ emailRepository->Get(KNumberOfMailboxesWithNewEmails+(numberOfMailboxes*2),inboxId);
+
+ TUid pluginUid = {pluginId};
+ TMailListActivationData activationData;
+
+ activationData.iMailBoxId.SetId(inboxId);
+ activationData.iMailBoxId.SetPluginId(pluginUid);
+ activationData.iFolderId.SetPluginId(pluginUid);
+ TPckgBuf<TMailListActivationData> pkgBuf(activationData);
+
+ CCoeEnv::Static()->AppUi()->CreateActivateViewEventL(
+ TVwsViewId(KFSEmailUiUid, MailListId), KStartListWithFolderId,
+ pkgBuf );
+ }
+ else
+ {
+ // We should never come here since the mailbox count should be more than 0 if launchemailL is called
+ // but just to be safe launch the email in launchergrid if something went wrong with the repository
+ const TUid dummy = {0};
+ CCoeEnv::Static()->AppUi()->CreateActivateViewEventL(TVwsViewId(KFSEmailUiUid, AppGridId),
+ dummy, KNullDesC8() );
+ }
+ CleanupStack::PopAndDestroy();//emailRepository
}
- const TUid dummy = {0};
-
- CVwsSessionWrapper* viewSrvSession = CVwsSessionWrapper::NewLC();
- viewSrvSession->ActivateView(TVwsViewId(KFSEmailUiUid, AppGridId),
+ else if ( aPolicy == EDefault )
+ {
+ const TUid dummy = {0};
+ CCoeEnv::Static()->AppUi()->CreateActivateViewEventL(TVwsViewId(KFSEmailUiUid, AppGridId),
dummy, KNullDesC8() );
- CleanupStack::PopAndDestroy();
+ }
}
// -----------------------------------------------------------------------------
--- a/emailservices/emailclientapi/src/emailmailbox.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailclientapi/src/emailmailbox.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009 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"
@@ -15,7 +15,7 @@
*
*/
-#include <e32cmn.h>
+#include <e32cmn.h>
#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
#include <viewclipartner.h>
#include <vwsdefpartner.h>
@@ -39,10 +39,14 @@
#include "emailclientapi.hrh"
#include "FreestyleEmailUiConstants.h"
+// Constants
+
+_LIT( KNewLine, "\n" );
+
// -----------------------------------------------------------------------------
-//
+//
// -----------------------------------------------------------------------------
-CEmailMailbox* CEmailMailbox::NewL(
+CEmailMailbox* CEmailMailbox::NewL(
CPluginData& aPluginData,
const TMailboxId& aMailboxId )
{
@@ -54,30 +58,30 @@
}
// -----------------------------------------------------------------------------
-//
+//
// -----------------------------------------------------------------------------
-CEmailMailbox::CEmailMailbox(
+CEmailMailbox::CEmailMailbox(
CPluginData& aPluginData,
const TMailboxId& aMailboxId )
: iPluginData( aPluginData ),
iMailboxId( aMailboxId.iId )
- {
+ {
}
// -----------------------------------------------------------------------------
-//
+//
// -----------------------------------------------------------------------------
void CEmailMailbox::ConstructL()
{
iPlugin = iPluginData.ClaimInstanceL();
- iEventMapper = new ( ELeave ) TObserverEventMapper(
+ iEventMapper = new ( ELeave ) TObserverEventMapper(
iPlugin, iPluginData.Uid(), iMailboxId );
iFsMailbox = iPlugin->GetMailBoxByUidL( FsMailboxId() );
- iSyncObserver = new (ELeave) CEmailMailbox::CEmailRequestObserver();
+ iSyncObserver = new (ELeave) CEmailMailbox::CEmailRequestObserver();
}
// -----------------------------------------------------------------------------
-//
+//
// -----------------------------------------------------------------------------
CEmailMailbox::~CEmailMailbox()
{
@@ -89,7 +93,7 @@
}
// -----------------------------------------------------------------------------
-//
+//
// -----------------------------------------------------------------------------
TEmailTypeId CEmailMailbox::InterfaceId() const
{
@@ -97,7 +101,7 @@
}
// -----------------------------------------------------------------------------
-//
+//
// -----------------------------------------------------------------------------
void CEmailMailbox::Release()
{
@@ -105,20 +109,20 @@
}
// -----------------------------------------------------------------------------
-//
+//
// -----------------------------------------------------------------------------
TMailboxId CEmailMailbox::MailboxId() const
{
return iMailboxId;
}
-
+
// -----------------------------------------------------------------------------
-//
+//
// -----------------------------------------------------------------------------
MEmailAddress* CEmailMailbox::AddressL() const
{
if ( !iAddress )
- {
+ {
iAddress = CEmailAddress::NewL(
MEmailAddress::ESender, EAPIOwns );
iAddress->SetDisplayNameL( iFsMailbox->GetName() );
@@ -128,7 +132,7 @@
}
// -----------------------------------------------------------------------------
-//
+//
// -----------------------------------------------------------------------------
TPtrC CEmailMailbox::MailboxName() const
{
@@ -141,24 +145,24 @@
TFSMailMsgId CEmailMailbox::FsMailboxId() const
{
return FsMsgId( iPluginData, iMailboxId );
- }
+ }
// -----------------------------------------------------------------------------
-//
+//
// -----------------------------------------------------------------------------
TInt CEmailMailbox::GetFoldersL( RFolderArray& aFolders ) const
{
TFSMailMsgId rootId = TFSMailMsgId();
RPointerArray<CFSMailFolder> folders;
- CleanupResetAndDestroyPushL( folders );
- iPlugin->ListFoldersL( FsMailboxId(), rootId, folders );
+ CleanupResetAndDestroyPushL( folders );
+ iPlugin->ListFoldersL( FsMailboxId(), rootId, folders );
TInt res( folders.Count() );
for ( TInt i = 0; i < res; i++ )
{
- const CFSMailFolder* fsfolder = folders[i];
+ const CFSMailFolder* fsfolder = folders[i];
const TEntryId id = fsfolder->GetFolderId().Id();
const TFolderId folderId( id, iMailboxId );
- CEmailFolder* folder = CEmailFolder::NewLC( iPluginData, folderId, folders[i] );
+ CEmailFolder* folder = CEmailFolder::NewLC( iPluginData, folderId, folders[i] );
aFolders.AppendL( folder );
CleanupStack::Pop(); // folder
}
@@ -169,7 +173,7 @@
}
// -----------------------------------------------------------------------------
-//
+//
// -----------------------------------------------------------------------------
MEmailFolder* CEmailMailbox::FolderL( const TFolderId& aFolderId ) const
{
@@ -177,94 +181,82 @@
FsMsgId( iPluginData, iMailboxId ),
FsMsgId( iPluginData, aFolderId ) );
CleanupStack::PushL( fsFolder );
-
- CEmailFolder* folder = CEmailFolder::NewL( iPluginData,
- aFolderId, fsFolder);
+
+ CEmailFolder* folder = CEmailFolder::NewL( iPluginData,
+ aFolderId, fsFolder);
CleanupStack::Pop(); // folder
-
- return folder;
+
+ return folder;
}
-
+
// -----------------------------------------------------------------------------
-//
+//
// -----------------------------------------------------------------------------
-MEmailFolder* CEmailMailbox::FolderByTypeL(
+MEmailFolder* CEmailMailbox::FolderByTypeL(
const TFolderType aFolderType ) const
- {
+ {
TFSMailMsgId fsFolderId;
-
+
switch ( aFolderType )
- {
+ {
case EInbox:
- fsFolderId = iPlugin->GetStandardFolderIdL( FsMailboxId(), EFSInbox );
+ fsFolderId = iPlugin->GetStandardFolderIdL( FsMailboxId(), EFSInbox );
case EOutbox:
- fsFolderId = iPlugin->GetStandardFolderIdL( FsMailboxId(), EFSOutbox );
+ fsFolderId = iPlugin->GetStandardFolderIdL( FsMailboxId(), EFSOutbox );
case EDrafts:
- fsFolderId = iPlugin->GetStandardFolderIdL( FsMailboxId(), EFSDraftsFolder );
+ fsFolderId = iPlugin->GetStandardFolderIdL( FsMailboxId(), EFSDraftsFolder );
case EDeleted:
- fsFolderId = iPlugin->GetStandardFolderIdL( FsMailboxId(), EFSDeleted );
+ fsFolderId = iPlugin->GetStandardFolderIdL( FsMailboxId(), EFSDeleted );
case ESent:
- fsFolderId = iPlugin->GetStandardFolderIdL( FsMailboxId(), EFSSentFolder );
+ fsFolderId = iPlugin->GetStandardFolderIdL( FsMailboxId(), EFSSentFolder );
case EOther:
default:
User::Leave( KErrNotFound );
break;
}
-
+
const TFolderId folderId( fsFolderId.Id(), iMailboxId );
-
+
CFSMailFolder* fsFolder = iPlugin->GetFolderByUidL(
FsMsgId( iPluginData, iMailboxId ),
fsFolderId );
CleanupStack::PushL( fsFolder );
-
+
CEmailFolder* folder = CEmailFolder::NewL( iPluginData,
- folderId,
+ folderId,
fsFolder );
-
+
CleanupStack::Pop();
-
- return folder;
+
+ return folder;
}
// -----------------------------------------------------------------------------
-//
+//
// -----------------------------------------------------------------------------
MEmailMessage* CEmailMailbox::MessageL( const TMessageId& aMessageId )
- {
- CFSMailMessage *fsMessage = iPlugin->GetMessageByUidL(
- FsMsgId( iPluginData, aMessageId.iFolderId.iMailboxId ),
- FsMsgId( iPluginData, aMessageId.iFolderId ),
- FsMsgId( iPluginData, aMessageId ),
+ {
+ CFSMailMessage *fsMessage = iPlugin->GetMessageByUidL(
+ FsMsgId( iPluginData, aMessageId.iFolderId.iMailboxId ),
+ FsMsgId( iPluginData, aMessageId.iFolderId ),
+ FsMsgId( iPluginData, aMessageId ),
EFSMsgDataEnvelope);
- CleanupStack::PushL( fsMessage );
+ CleanupStack::PushL( fsMessage );
CEmailMessage* message = CEmailMessage::NewL( iPluginData, fsMessage, EClientOwns );
CleanupStack::Pop(); // fsMessage
-
+
return message;
}
// -----------------------------------------------------------------------------
-//
+//
// -----------------------------------------------------------------------------
MEmailMessage* CEmailMailbox::CreateDraftMessageL() const
{
CFSMailMessage* fsMessage = iFsMailbox->CreateMessageToSend();
- CleanupStack::PushL( fsMessage );
- MEmailMessage* message = CEmailMessage::NewL( iPluginData, fsMessage, EClientOwns );
- CleanupStack::Pop(); // fsMessage
-
- return message;
- }
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-MEmailMessage* CEmailMailbox::CreateReplyMessageL( const TMessageId& aMessageId, const TBool aReplyToAll ) const
- {
- CFSMailMessage* fsMessage = iFsMailbox->CreateReplyMessage( FsMsgId( iPluginData, aMessageId ), aReplyToAll );
- CleanupStack::PushL( fsMessage );
+ User::LeaveIfNull( fsMessage );
+ CleanupStack::PushL( fsMessage );
MEmailMessage* message = CEmailMessage::NewL( iPluginData, fsMessage, EClientOwns );
CleanupStack::Pop(); // fsMessage
@@ -272,12 +264,13 @@
}
// -----------------------------------------------------------------------------
-//
+//
// -----------------------------------------------------------------------------
-MEmailMessage* CEmailMailbox::CreateForwardMessageL( const TMessageId& aMessageId ) const
- {
- CFSMailMessage* fsMessage = iFsMailbox->CreateForwardMessage( FsMsgId( iPluginData, aMessageId ) );
- CleanupStack::PushL( fsMessage );
+MEmailMessage* CEmailMailbox::CreateReplyMessageL( const TMessageId& aMessageId, const TBool aReplyToAll ) const
+ {
+ CFSMailMessage* fsMessage = iFsMailbox->CreateReplyMessage( FsMsgId( iPluginData, aMessageId ), aReplyToAll );
+ User::LeaveIfNull( fsMessage );
+ CleanupStack::PushL( fsMessage );
MEmailMessage* message = CEmailMessage::NewL( iPluginData, fsMessage, EClientOwns );
CleanupStack::Pop(); // fsMessage
@@ -285,16 +278,31 @@
}
// -----------------------------------------------------------------------------
-//
+//
+// -----------------------------------------------------------------------------
+MEmailMessage* CEmailMailbox::CreateForwardMessageL( const TMessageId& aMessageId ) const
+ {
+ CFSMailMessage* fsMessage = iFsMailbox->CreateForwardMessage(
+ FsMsgId( iPluginData, aMessageId ), KNewLine() );
+ User::LeaveIfNull( fsMessage );
+ CleanupStack::PushL( fsMessage );
+ MEmailMessage* message = CEmailMessage::NewL( iPluginData, fsMessage, EClientOwns );
+ CleanupStack::Pop(); // fsMessage
+
+ return message;
+ }
+
+// -----------------------------------------------------------------------------
+//
// -----------------------------------------------------------------------------
void CEmailMailbox::SynchroniseL( MMailboxSyncObserver& aObserver )
{
iSyncObserver->SetObserverL( &aObserver );
- iRequestId = iFsMailbox->RefreshNowL( *iSyncObserver );
+ iRequestId = iFsMailbox->RefreshNowL( *iSyncObserver );
}
-
+
// -----------------------------------------------------------------------------
-//
+//
// -----------------------------------------------------------------------------
void CEmailMailbox::CancelSynchronise()
{
@@ -302,15 +310,15 @@
}
// -----------------------------------------------------------------------------
-//
+//
// -----------------------------------------------------------------------------
void CEmailMailbox::RegisterObserverL( MMailboxContentObserver& aObserver )
{
iEventMapper->AddObserverL( aObserver );
}
-
+
// -----------------------------------------------------------------------------
-//
+//
// -----------------------------------------------------------------------------
void CEmailMailbox::UnregisterObserver( MMailboxContentObserver& aObserver )
{
@@ -318,32 +326,32 @@
}
// -----------------------------------------------------------------------------
-//
+//
// -----------------------------------------------------------------------------
MEmailMessageSearchAsync* CEmailMailbox::MessageSearchL()
{
MEmailMessageSearchAsync* searchAPI = CEmailMessageSearchAsync::NewL( iPluginData, iMailboxId );
return searchAPI;
}
-
+
void CEmailMailbox::ShowInboxL()
{
TMailListActivationData mailListData;
-
+
mailListData.iMailBoxId = FsMsgId(iPluginData, iMailboxId);
-
+
TPckgBuf<TMailListActivationData> pkgOut( mailListData );
CVwsSessionWrapper* viewSrvSession = CVwsSessionWrapper::NewLC();
viewSrvSession->ActivateView(TVwsViewId(KFSEmailUiUid, MailListId), KStartListWithFolderId, pkgOut);
- CleanupStack::PopAndDestroy();
+ CleanupStack::PopAndDestroy();
}
void CEmailMailbox::EditNewMessageL()
{
TEditorLaunchParams editorLaunchData;
editorLaunchData.iMailboxId = FsMsgId(iPluginData, iMailboxId);
- editorLaunchData.iActivatedExternally = ETrue;
-
+ editorLaunchData.iActivatedExternally = ETrue;
+
TPckgBuf<TEditorLaunchParams> pckgData( editorLaunchData );
CVwsSessionWrapper* viewSrvSession = CVwsSessionWrapper::NewLC();
TUid command = TUid::Uid(KEditorCmdCreateNew);
@@ -355,22 +363,22 @@
{
CFSMailFolder* fsFolder = NULL;
TFSMailMsgId fsFolderId = iPlugin->GetStandardFolderIdL( FsMailboxId(), EFSInbox );
-
+
}
*/
// -----------------------------------------------------------------------------
-//
+//
// -----------------------------------------------------------------------------
-CEmailMailbox::TObserverEventMapper::TObserverEventMapper(
- CFSMailPlugin* aPlugin,
+CEmailMailbox::TObserverEventMapper::TObserverEventMapper(
+ CFSMailPlugin* aPlugin,
TUid aPluginUid, const TMailboxId& aMailboxId )
- : iPlugin( aPlugin ),
+ : iPlugin( aPlugin ),
iFsMailboxId( aPluginUid.iUid, aMailboxId.iId )
{
}
// -----------------------------------------------------------------------------
-//
+//
// -----------------------------------------------------------------------------
CEmailMailbox::TObserverEventMapper::~TObserverEventMapper()
{
@@ -418,29 +426,29 @@
// Maps protocol a plugin event to client event
// -----------------------------------------------------------------------------
void CEmailMailbox::TObserverEventMapper::EventL(
- TFSMailEvent aEvent,
- TFSMailMsgId aMailbox,
- TAny* aParam1,
- TAny* aParam2,
+ TFSMailEvent aEvent,
+ TFSMailMsgId aMailbox,
+ TAny* aParam1,
+ TAny* aParam2,
TAny* aParam3 )
{
const TEventMapFunc KMailboxEventHandlers[] = {
CEmailMailbox::TObserverEventMapper::IgnoreEventL,
- CEmailMailbox::TObserverEventMapper::IgnoreEventL,
- CEmailMailbox::TObserverEventMapper::IgnoreEventL,
- CEmailMailbox::TObserverEventMapper::IgnoreEventL,
CEmailMailbox::TObserverEventMapper::IgnoreEventL,
CEmailMailbox::TObserverEventMapper::IgnoreEventL,
CEmailMailbox::TObserverEventMapper::IgnoreEventL,
CEmailMailbox::TObserverEventMapper::IgnoreEventL,
CEmailMailbox::TObserverEventMapper::IgnoreEventL,
CEmailMailbox::TObserverEventMapper::IgnoreEventL,
- CEmailMailbox::TObserverEventMapper::NewMessageL,
+ CEmailMailbox::TObserverEventMapper::IgnoreEventL,
+ CEmailMailbox::TObserverEventMapper::IgnoreEventL,
+ CEmailMailbox::TObserverEventMapper::IgnoreEventL,
+ CEmailMailbox::TObserverEventMapper::NewMessageL,
CEmailMailbox::TObserverEventMapper::MessageChangedL,
CEmailMailbox::TObserverEventMapper::MessageDeletedL,
CEmailMailbox::TObserverEventMapper::MessageMoved,
CEmailMailbox::TObserverEventMapper::MessageCopiedL,
- CEmailMailbox::TObserverEventMapper::NewFolderL,
+ CEmailMailbox::TObserverEventMapper::NewFolderL,
CEmailMailbox::TObserverEventMapper::FolderChangeL,
CEmailMailbox::TObserverEventMapper::FoldersDeletedL,
CEmailMailbox::TObserverEventMapper::FoldersMovedL,
@@ -453,69 +461,69 @@
if ( index < sizeof( KMailboxEventHandlers ) / sizeof( KMailboxEventHandlers[ index ] ) )
{
// call event handler function
- TEventMapFunc method = KMailboxEventHandlers[ index ];
+ TEventMapFunc method = KMailboxEventHandlers[ index ];
(this->*method)(id, aParam1,aParam2,aParam3 );
}
}
-void CEmailMailbox::TObserverEventMapper::IgnoreEventL(
+void CEmailMailbox::TObserverEventMapper::IgnoreEventL(
TMailboxId /*aMailbox*/, TAny* /*aParam1*/, TAny* /*aParam2*/, TAny* /*aParam3*/ )
{
}
-
-void CEmailMailbox::TObserverEventMapper::NewMessageL(
+
+void CEmailMailbox::TObserverEventMapper::NewMessageL(
TMailboxId /*aMailbox*/, TAny* /*aParam1*/, TAny* /*aParam2*/, TAny* /*aParam3*/ )
{
}
-
-void CEmailMailbox::TObserverEventMapper::MessageChangedL(
+
+void CEmailMailbox::TObserverEventMapper::MessageChangedL(
TMailboxId /*aMailbox*/, TAny* /*aParam1*/, TAny* /*aParam2*/, TAny* /*aParam3*/ )
{
}
-
-void CEmailMailbox::TObserverEventMapper::MessageDeletedL(
+
+void CEmailMailbox::TObserverEventMapper::MessageDeletedL(
TMailboxId /*aMailbox*/, TAny* /*aParam1*/, TAny* /*aParam2*/, TAny* /*aParam3*/ )
{
}
-
-void CEmailMailbox::TObserverEventMapper::MessageMoved(
+
+void CEmailMailbox::TObserverEventMapper::MessageMoved(
TMailboxId /*aMailbox*/, TAny* /*aParam1*/, TAny* /*aParam2*/, TAny* /*aParam3*/ )
{
}
-
-void CEmailMailbox::TObserverEventMapper::MessageCopiedL(
+
+void CEmailMailbox::TObserverEventMapper::MessageCopiedL(
TMailboxId /*aMailbox*/, TAny* /*aParam1*/, TAny* /*aParam2*/, TAny* /*aParam3*/ )
{
}
-
-void CEmailMailbox::TObserverEventMapper::NewFolderL(
+
+void CEmailMailbox::TObserverEventMapper::NewFolderL(
TMailboxId /*aMailbox*/, TAny* /*aParam1*/, TAny* /*aParam2*/, TAny* /*aParam3*/ )
{
}
-
-void CEmailMailbox::TObserverEventMapper::FolderChangeL(
+
+void CEmailMailbox::TObserverEventMapper::FolderChangeL(
TMailboxId /*aMailbox*/, TAny* /*aParam1*/, TAny* /*aParam2*/, TAny* /*aParam3*/ )
{
}
-
-void CEmailMailbox::TObserverEventMapper::FoldersDeletedL(
+
+void CEmailMailbox::TObserverEventMapper::FoldersDeletedL(
TMailboxId /*aMailbox*/, TAny* /*aParam1*/, TAny* /*aParam2*/, TAny* /*aParam3*/ )
{
}
-
-void CEmailMailbox::TObserverEventMapper::FoldersMovedL(
+
+void CEmailMailbox::TObserverEventMapper::FoldersMovedL(
TMailboxId /*aMailbox*/, TAny* /*aParam1*/, TAny* /*aParam2*/, TAny* /*aParam3*/ )
{
}
-
-void CEmailMailbox::TObserverEventMapper::ExceptionL(
+
+void CEmailMailbox::TObserverEventMapper::ExceptionL(
TMailboxId /*aMailbox*/, TAny* /*aParam1*/, TAny* /*aParam2*/, TAny* /*aParam3*/ )
{
}
-
+
// -----------------------------------------------------------------------------
-//
+//
// -----------------------------------------------------------------------------
TBool CEmailMailbox::TObserverEventMapper::Equals( const MMailboxContentObserver& a1, const MMailboxContentObserver& a2 )
{
@@ -524,7 +532,7 @@
CEmailMailbox::CEmailRequestObserver::CEmailRequestObserver() : iObserver( NULL )
- {
+ {
}
@@ -532,7 +540,7 @@
{
if (aEvent.iProgressStatus == TFSProgress::EFSStatus_RequestComplete)
{
- iObserver->MailboxSynchronisedL(aEvent.iError);
+ iObserver->MailboxSynchronisedL(aEvent.iError);
}
}
--- a/emailservices/emaildebug/inc/emailtraceconfig.hrh Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emaildebug/inc/emailtraceconfig.hrh Fri Mar 12 15:41:14 2010 +0200
@@ -47,7 +47,7 @@
#endif // ENABLE_TRACES
-#ifdef ENABLE_TIMESTAMP_TRACES
+#ifdef __ENABLE_TIMESTAMP_TRACES
#ifndef _DEBUG
// Undefine error traces
#undef ERROR_TRACE
--- a/emailservices/emailframework/commonlib/group/bld.inf Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailframework/commonlib/group/bld.inf Fri Mar 12 15:41:14 2010 +0200
@@ -30,6 +30,7 @@
../inc/cemailextensionbase.h |../../../../inc/cemailextensionbase.h
../inc/cmrcalendarinfo.h |../../../../inc/cmrcalendarinfo.h
../inc/cmailmessageext.h |../../../../inc/cmailmessageext.h
+../inc/cmailboxstateext.h |../../../../inc/cmailboxstateext.h
../inc/mmrattachment.h |../../../../inc/mmrattachment.h
../inc/mmrattendee.h |../../../../inc/mmrattendee.h
--- a/emailservices/emailframework/commonlib/inc/CFSMailMessagePart.h Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailframework/commonlib/inc/CFSMailMessagePart.h Fri Mar 12 15:41:14 2010 +0200
@@ -24,7 +24,7 @@
#include <badesca.h>
//<cmail>
-#include "CFSMailMessageBase.h"
+#include "cfsmailmessagebase.h"
#include "mmrinfoobject.h"
//</cmail>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/emailservices/emailframework/commonlib/inc/cmailboxstateext.h Fri Mar 12 15:41:14 2010 +0200
@@ -0,0 +1,70 @@
+/*
+* Copyright (c) 2009 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Message extension interface
+*
+*/
+
+#ifndef CMAILBOXSTATEEXT_H
+#define CMAILBOXSTATEEXT_H
+
+#include "cemailextensionbase.h"
+#include "CFSMailCommon.h"
+
+// interface UID value passed to CFSMailClient::ExtensionL
+const TUid KEmailMailboxStateExtensionUid = { 0x2001E28B };
+
+/**
+* Data providider interface.
+*/
+class MEmailMailboxState
+{
+public:
+ /**
+ * Returns currently active folder and related mailbox that
+ * is currently being used.
+ * @param aActiveMailboxId id of currently active mailbox
+ * @param aActiveFolderId id of currently active mail folder
+ * @return Symbian OS error code
+ */
+ virtual TInt GetActiveFolderId(
+ TFSMailMsgId& aActiveMailboxId,
+ TFSMailMsgId& aActiveFolderId ) const = 0;
+};
+
+/**
+ * Extension interface for passing UI context data to protocol plugins.
+ */
+class CMailboxStateExtension : public CEmailExtension
+{
+public:
+
+ /**
+ * Sets data provider interface
+ * @param aDataProvider data provider
+ */
+ virtual void SetStateDataProvider( MEmailMailboxState* aDataProvider ) = 0;
+
+protected:
+ inline CMailboxStateExtension();
+
+protected:
+ MEmailMailboxState* iDataProvider;
+};
+
+inline CMailboxStateExtension::CMailboxStateExtension() :
+ CEmailExtension( KEmailMailboxStateExtensionUid )
+ {
+ }
+
+#endif // CMAILBOXSTATEEXT_H
--- a/emailservices/emailframework/commonlib/src/CFSMailBox.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailframework/commonlib/src/CFSMailBox.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -25,6 +25,8 @@
#include "cfsmailbox.h"
#include "cfsmailrequestobserver.h"
+#include "cmailboxstateext.h"
+
const TInt KMaxMruEntries( 150 );
// ================= MEMBER FUNCTIONS ==========================================
@@ -844,6 +846,19 @@
CleanupStack::Pop(); // calInfo
}
}
+ else if ( aInterfaceUid == KEmailMailboxStateExtensionUid )
+ {
+ if ( !extension )
+ {
+ // check that plugin supports requested extension.
+ if ( CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid( GetId() ) )
+ {
+ // request extension from plugin, leaves if not supported
+ extension = plugin->ExtensionL( aInterfaceUid );
+ }
+
+ }
+ }
else
{
User::Leave( KErrNotSupported );
--- a/emailservices/emailframework/data/microsoft.svg Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailframework/data/microsoft.svg Fri Mar 12 15:41:14 2010 +0200
@@ -1,429 +1,44 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24">
-<rect fill="none" height="24" width="24"/>
-<path fill="#FFFFFF" d="M20.024,19.734c0,0.297-0.238,0.489-0.497,0.489c-0.262,0-0.49-0.185-0.49-0.483c0-0.258,0.197-0.491,0.494-0.491C19.797,19.249,20.024,19.439,20.024,19.734z M19.964,19.738c0-0.248-0.188-0.435-0.433-0.435c-0.252,0-0.438,0.187-0.438,0.435c0,0.252,0.205,0.438,0.438,0.438C19.783,20.176,19.964,19.975,19.964,19.738z M19.769,20.045h-0.106l-0.069-0.151c-0.033-0.074-0.07-0.112-0.11-0.112h-0.06v0.264h-0.088v-0.626h0.177c0.119,0,0.229,0.044,0.229,0.171c0,0.074-0.05,0.146-0.158,0.171v0.002c0.033,0.009,0.07,0.048,0.104,0.117L19.769,20.045z M19.647,19.6c0-0.066-0.034-0.106-0.145-0.106h-0.079v0.213h0.094C19.604,19.706,19.647,19.672,19.647,19.6z"/>
-<radialGradient id="SVGID_1" gradientUnits="userSpaceOnUse" cx="12.33" cy="13.53" r="9.43">
-<stop stop-color="#FFFFFF" offset="0.25"/>
-<stop stop-color="#000000" offset="1"/>
-</radialGradient>
-<path opacity="0.2" fill="url(#SVGID_1)" enable-background="new " d="M3.988,12.398c-0.017,0.01-0.026,0.008-0.038,0.04l-1.926,6.53c-0.011,0.033,0.008,0.068,0.031,0.09c0,0,0.131,0.096,0.133,0.097c0.041,0.028,0.065,0.019,0.078,0.017c3.298-1.234,5.002-0.924,7.124,0.389l0.004,0.006l0,0c0.01,0.005,0.042,0.02,0.071,0.007c0,0,0.084-0.05,0.109-0.064l0,0l0.009-0.007c0.018-0.012,0.042-0.028,0.048-0.058l0.002-0.007l0,0c0.004-0.011,1.983-6.575,1.983-6.575c0.007-0.03-0.006-0.063-0.03-0.082C9.031,11.105,6.954,11.21,3.988,12.398z M12.394,13.491c-0.038,0.026-0.135,0.091-0.152,0.141L10.313,20.1c-0.035,0.098,0.055,0.151,0.066,0.156c2.595,1.692,5.201,1.686,8.082,0.491c0.002,0,0.049-0.029,0.064-0.061c0-0.002,1.885-6.365,1.885-6.367c0.01-0.052-0.004-0.085-0.031-0.114l-0.158-0.123c-0.01-0.011-0.037-0.028-0.105-0.019c-3.7,1.216-5.648,0.668-7.571-0.587C12.505,13.455,12.458,13.447,12.394,13.491z M14.678,5.58c-0.074,0.054-0.139,0.096-0.156,0.156l-1.936,6.485c-0.017,0.067-0.006,0.105,0.06,0.149c2.486,1.691,5.264,1.702,8.062,0.487c0.027-0.009,0.053-0.034,0.066-0.062c0-0.001,1.967-6.543,1.967-6.543c0.021-0.074-0.03-0.124-0.09-0.175c-0.026-0.024-0.063-0.057-0.088-0.067c-0.055-0.024-0.108-0.017-0.124-0.007c-0.001,0-0.002,0-0.002,0l0,0c-3.356,1.343-5.374,1.029-7.61-0.439C14.768,5.54,14.74,5.542,14.678,5.58z M6.245,4.441L6.245,4.441C6.239,4.443,6.217,4.451,6.209,4.48l-1.955,6.549c-0.009,0.032,0.002,0.083,0.026,0.101c0.002,0.002,0.147,0.109,0.15,0.111c0.036,0.014,0.028,0.011,0.098-0.012c3.296-1.268,5.097-0.888,7.107,0.354c0.039,0.021,0.064,0.025,0.089,0.019l0.123-0.053c0.016-0.009,0.037-0.021,0.053-0.063l1.952-6.53c0.006-0.024,0.003-0.058-0.025-0.079C11.438,3.206,9.207,3.261,6.245,4.441z"/>
-<path fill="#FFFFFF" d="M17.984,20.216c0.02-0.011,0.051-0.038,0.061-0.063c0,0,1.875-6.541,1.877-6.543l-0.002-0.003l0,0c0.002-0.011,0.002-0.021,0.002-0.028c0-0.054-0.031-0.086-0.033-0.086c0.002,0-0.154-0.126-0.154-0.126l0,0l0,0c-0.012-0.012-0.039-0.028-0.108-0.021C19.359,13.453,16.719,20.688,17.984,20.216z M20.226,12.327c0.014-0.009,0.052-0.028,0.066-0.063l1.957-6.724c0.021-0.074-0.034-0.135-0.089-0.183c-0.092-0.093-0.152-0.097-0.215-0.074C21.873,5.362,18.964,12.428,20.226,12.327z"/>
-<radialGradient id="SVGID_2" gradientUnits="userSpaceOnUse" cx="11.6" cy="11.99" r="10.38">
-<stop stop-color="#D1E7ED" offset="0"/>
-<stop stop-color="#CDE4EC" offset="0.1"/>
-<stop stop-color="#C0DCE7" offset="0.2"/>
-<stop stop-color="#ADD0E1" offset="0.3"/>
-<stop stop-color="#3982B1" offset="0.65"/>
-<stop stop-color="#3474AA" offset="0.72"/>
-<stop stop-color="#285699" offset="0.9"/>
-<stop stop-color="#244B93" offset="1"/>
-</radialGradient>
-<path fill="url(#SVGID_2)" d="M3.534,11.72c3.933-1.621,5.839-0.756,7.543,0.403l-1.969,6.769c-1.712-1.15-3.574-2.097-7.522-0.465l1.925-6.697L3.534,11.72z"/>
-<radialGradient id="SVGID_3" gradientUnits="userSpaceOnUse" cx="11.79" cy="11.82" r="10.63">
-<stop stop-color="#D8EEED" offset="0"/>
-<stop stop-color="#98D8D7" offset="0.17"/>
-<stop stop-color="#8ED3D3" offset="0.22"/>
-<stop stop-color="#74C6CA" offset="0.31"/>
-<stop stop-color="#49B1BA" offset="0.42"/>
-<stop stop-color="#3BAAB5" offset="0.45"/>
-<stop stop-color="#2D81A4" offset="0.56"/>
-<stop stop-color="#215B94" offset="0.68"/>
-<stop stop-color="#19448B" offset="0.78"/>
-<stop stop-color="#163B87" offset="0.84"/>
-<stop stop-color="#0B317D" offset="1"/>
-</radialGradient>
-<path fill="url(#SVGID_3)" d="M1.729,18.626c0.012,0.003,0.037-0.012,0.037-0.012c0.026,0.021,0.05,0.033,0.05,0.033S1.772,18.656,1.729,18.626z"/>
-<path fill="#152469" d="M9.04,18.969c0,0,0.027,0.022,0.057,0.017l-0.118,0.069c-0.037,0.019-0.077-0.01-0.077-0.01L9.04,18.969z"/>
-<radialGradient id="SVGID_4" gradientUnits="userSpaceOnUse" cx="11.61" cy="12.07" r="10.38">
-<stop stop-color="#D8EEED" offset="0"/>
-<stop stop-color="#98D8D7" offset="0.17"/>
-<stop stop-color="#8ED3D3" offset="0.22"/>
-<stop stop-color="#74C6CA" offset="0.31"/>
-<stop stop-color="#49B1BA" offset="0.42"/>
-<stop stop-color="#3BAAB5" offset="0.45"/>
-<stop stop-color="#2D81A4" offset="0.56"/>
-<stop stop-color="#215B94" offset="0.68"/>
-<stop stop-color="#19448B" offset="0.78"/>
-<stop stop-color="#163B87" offset="0.84"/>
-<stop stop-color="#152469" offset="1"/>
-</radialGradient>
-<path fill="url(#SVGID_4)" d="M1.769,18.616c0,0-0.022,0.011-0.036,0.011l-0.129-0.101l-0.003-0.001c0.021,0.004,0.041,0.001,0.048,0.001L1.769,18.616z"/>
-<path fill="#152469" d="M9.106,18.873c0.014,0.01,0.028,0.021,0.04,0.048c-0.006,0.035-0.034,0.052-0.052,0.066c-0.024,0.005-0.058-0.019-0.058-0.019C9.054,18.954,9.086,18.931,9.106,18.873z"/>
-<path fill="#172E65" d="M1.603,18.527c-0.026-0.021-0.042-0.059-0.032-0.094l0.023-0.009c-0.009,0.05,0.028,0.086,0.052,0.102C1.646,18.527,1.626,18.535,1.603,18.527z"/>
-<radialGradient id="SVGID_5" gradientUnits="userSpaceOnUse" cx="11.6" cy="11.96" r="10.42">
-<stop stop-color="#D8EEED" offset="0"/>
-<stop stop-color="#98D8D7" offset="0.17"/>
-<stop stop-color="#8ED3D3" offset="0.22"/>
-<stop stop-color="#74C6CA" offset="0.31"/>
-<stop stop-color="#49B1BA" offset="0.42"/>
-<stop stop-color="#3BAAB5" offset="0.45"/>
-<stop stop-color="#2D81A4" offset="0.56"/>
-<stop stop-color="#215B94" offset="0.68"/>
-<stop stop-color="#19448B" offset="0.78"/>
-<stop stop-color="#163B87" offset="0.84"/>
-<stop stop-color="#0B317D" offset="1"/>
+<svg baseProfile="tiny" height="44px" version="1.1" viewBox="0 0 44 44" width="44px" x="0px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
+<g>
+<path d="M37.778,10.364c-4.158,1.571-7.277,2.283-11.252-0.597 c-0.313-0.222-0.77-0.281-1.186-0.092c0.031-0.379-0.156-0.803-0.51-1.053c-1.781-1.102-5.235-4.021-13.006-0.786 c-0.274,0.114-0.54,0.411-0.621,0.696L8.063,19.427c-0.047,0.229-0.039,0.582,0.263,0.96c0.03,0.037,0.073,0.086,0.127,0.141 c-0.099,0.039-0.198,0.079-0.296,0.121c-0.137,0.059-0.483,0.246-0.631,0.709L4.427,32.214c-0.062,0.307-0.002,0.743,0.41,1.111 l0.207,0.162c0.325,0.258,0.786,0.284,1.078,0.174c4.319-1.614,6.833-1.822,10.51,0.549c0.298,0.188,0.665,0.249,1.093,0.058 c-0.002,0.463,0.269,0.851,0.555,1.007c4.27,2.857,8.704,3.091,13.845,0.901c0.355-0.179,0.578-0.429,0.666-0.735l3.029-10.604 c0.133-0.729-0.289-1.026-0.465-1.183c0.584-0.235,0.895-0.384,1.043-0.881l3.143-10.785C39.862,10.954,38.63,10.058,37.778,10.364 z" fill-opacity="0.2" stroke-opacity="0.2"/>
+<path d="M20.73,22.326c0.004-0.031-0.01-0.106-0.047-0.134 c-2.603-1.686-5.517-3.396-12.201-0.63L5.385,32.406l0,0c-0.001,0.009-0.011,0.09,0.051,0.145c-0.002,0-0.002,0-0.002,0 l0.004,0.003l0.209,0.162c0,0,0-0.001,0,0c0.069,0.044,0.092,0.026,0.135,0.031c5.3-1.982,7.922-1.588,11.382,0.64l-0.002,0.001 c0,0,0.021,0.011,0.047,0.018l0,0c0.09,0.024,0.331-0.151,0.345-0.214c0,0,0.002,0,0.002,0.002l0.002-0.002v0.002L20.73,22.326z M34.812,24.471l-0.254-0.2c-0.021-0.024-14.95,6.821-14.952,6.846L18.715,34.2v0.001c-0.057,0.17,0.109,0.263,0.109,0.263v-0.001 c2.744,1.841,6.72,3.457,12.913,0.813c0,0,0.004-0.002,0.01-0.002c0.018-0.011,0.074-0.044,0.102-0.101L34.86,24.66 c0-0.002,0-0.002-0.002-0.004C34.878,24.561,34.856,24.521,34.812,24.471z M9.365,19.978L9.365,19.978c0.002,0,0,0.007,0.006,0.006 c0.025-0.004,0.09-0.032,0.09-0.032c7.083-2.807,9.955-0.169,11.38,0.596c0.001,0,0.001,0.002,0.002,0.002 c0.003,0.001,0.003,0.002,0.005,0.002l0,0l0,0c0.07,0.043,0.365-0.054,0.396-0.172l0.001,0.002l0.001-0.007 c0.001-0.001,0.001-0.001,0.001-0.001l0,0l3.121-10.776l0,0V9.595c0.006-0.023-0.029-0.124-0.045-0.131l0,0l0,0 c-2.114-1.278-5.175-3.579-12.132-0.728c-0.045,0.019-3.176,10.882-3.176,10.882l0,0C8.997,19.729,9.262,19.975,9.365,19.978z M38.604,11.697c0,0.001,0,0.002,0,0.002c0.041-0.121-0.264-0.518-0.48-0.42c-3.604,1.362-15.287,8.693-15.328,8.777l-0.431,1.49 c-0.057,0.169,0.096,0.252,0.096,0.252h0.002c2.858,1.915,6.606,3.415,12.884,0.804c0,0,0.002,0,0.006-0.002 c0.02-0.009,0.076-0.042,0.105-0.101L38.604,11.697L38.604,11.697L38.604,11.697z" fill-opacity="0.5" stroke-opacity="0.5"/>
+<radialGradient cx="22.0581" cy="22.0171" gradientUnits="userSpaceOnUse" id="SVGID_1_" r="20.4721">
+<stop offset="0" style="stop-color:#D1E7EE"/>
+<stop offset="0.0051" style="stop-color:#D1E7EE"/>
+<stop offset="0.7411" style="stop-color:#3474AA"/>
+<stop offset="1" style="stop-color:#244B93"/>
</radialGradient>
-<path fill="url(#SVGID_5)" d="M1.761,18.609c3.757-1.468,5.44-0.668,7.152,0.433c-1.025-0.659-2.079-1.185-3.534-1.195c-0.975-0.007-2.125,0.24-3.566,0.801C1.813,18.647,1.783,18.635,1.761,18.609z"/>
-<path fill="#094B8F" d="M9.039,18.973c-1.712-1.151-3.485-2.031-7.389-0.445c-0.025-0.016-0.068-0.056-0.057-0.104c3.962-1.688,5.804-0.703,7.517,0.448C9.093,18.937,9.058,18.957,9.039,18.973z"/>
-<path fill="#094B8F" d="M9.041,18.973l-0.139,0.071c-1.711-1.1-3.443-1.862-7.133-0.429l-0.123-0.089C5.551,16.94,7.328,17.822,9.041,18.973z"/>
-<linearGradient id="SVGID_6" gradientUnits="userSpaceOnUse" x1="11.03" y1="12.31" x2="9.4" y2="18.02">
-<stop stop-color="#98D8D7" offset="0"/>
-<stop stop-color="#152469" offset="1"/>
-</linearGradient>
-<path fill="url(#SVGID_6)" d="M9.106,18.876l1.971-6.754c0.022,0.015,0.034,0.024,0.044,0.038l-1.975,6.764C9.136,18.892,9.106,18.876,9.106,18.876z"/>
-<radialGradient id="SVGID_7" gradientUnits="userSpaceOnUse" cx="11.61" cy="11.96" r="10.6">
-<stop stop-color="#D8EEED" offset="0"/>
-<stop stop-color="#98D8D7" offset="0.17"/>
-<stop stop-color="#8ED3D3" offset="0.22"/>
-<stop stop-color="#74C6CA" offset="0.31"/>
-<stop stop-color="#49B1BA" offset="0.42"/>
-<stop stop-color="#3BAAB5" offset="0.45"/>
-<stop stop-color="#2D81A4" offset="0.56"/>
-<stop stop-color="#215B94" offset="0.68"/>
-<stop stop-color="#19448B" offset="0.78"/>
-<stop stop-color="#163B87" offset="0.84"/>
-<stop stop-color="#152469" offset="1"/>
-</radialGradient>
-<path fill="url(#SVGID_7)" d="M11.09,12.075h0.003c0.024,0.017,0.035,0.052,0.028,0.085v0.003c-0.012-0.011-0.021-0.024-0.044-0.04L11.09,12.075z"/>
-<polygon opacity="0.66" fill="#063367" enable-background="new " points="3.489,11.724 3.511,11.729 1.593,18.425 1.57,18.434 "/>
-<linearGradient id="SVGID_8" gradientUnits="userSpaceOnUse" x1="1.57" y1="15.19" x2="3.72" y2="15.19">
-<stop stop-color="#DEF3F1" offset="0"/>
-<stop stop-color="#5085BC" offset="1"/>
-</linearGradient>
-<path opacity="0.42" fill="url(#SVGID_8)" enable-background="new " d="M3.489,11.724l-0.09,0.321l-1.826,6.389c-0.011,0.034,0.006,0.072,0.031,0.093l0.129,0.103c0,0,0-0.003,0,0c0.017,0.01,0.034,0.015,0.047,0.018l1.943-6.735L3.72,11.906L3.511,11.73L3.489,11.724z M1.597,18.423v-0.002c0.009-0.004,0.017-0.006,0.027-0.01C1.614,18.415,1.605,18.417,1.597,18.423z M1.646,18.527c-0.013-0.01-0.028-0.021-0.04-0.037C1.618,18.506,1.634,18.518,1.646,18.527C1.646,18.526,1.646,18.526,1.646,18.527z"/>
-<linearGradient id="SVGID_9" gradientUnits="userSpaceOnUse" x1="8.93" y1="15.58" x2="11.12" y2="15.58">
-<stop stop-color="#DEF3F1" offset="0"/>
-<stop stop-color="#5085BC" offset="1"/>
-</linearGradient>
-<path opacity="0.42" fill="url(#SVGID_9)" enable-background="new " d="M11.116,12.104l-0.041,0.021l-0.163,0.161c0.001,0,0.001,0,0.001,0.001c-0.267,0.909-1.757,6.004-1.984,6.768c0.015,0.004,0.032,0.006,0.048-0.002l0.119-0.07H9.094c0.017-0.013,0.044-0.03,0.052-0.063c0,0.002,0,0.002,0,0.002l1.91-6.541l0.066-0.224c0.002-0.013,0.002-0.023,0-0.035C11.122,12.117,11.12,12.111,11.116,12.104z"/>
-<linearGradient id="SVGID_10" gradientUnits="userSpaceOnUse" x1="3.51" y1="11.53" x2="11.09" y2="11.53">
-<stop stop-color="#094992" offset="0"/>
-<stop stop-color="#8ACDE1" offset="0.67"/>
-<stop stop-color="#E6F6F9" offset="1"/>
-</linearGradient>
-<path fill="url(#SVGID_10)" d="M11.077,12.124l-0.164,0.163c-0.566-0.378-2.131-1.349-3.896-1.204C5.583,11.2,4.32,11.661,3.722,11.91l-0.211-0.182l0.015-0.046c3.952-1.634,5.856-0.766,7.566,0.393H11.09h0.003L11.077,12.124z"/>
-<linearGradient id="SVGID_11" gradientUnits="userSpaceOnUse" x1="3.53" y1="11.68" x2="3.53" y2="11.68">
-<stop stop-color="#7D9EC4" offset="0"/>
-<stop stop-color="#151D89" offset="1"/>
-</linearGradient>
-<path fill="url(#SVGID_11)" d="M3.526,11.682"/>
-<linearGradient id="SVGID_12" gradientUnits="userSpaceOnUse" x1="3.69" y1="11.66" x2="10.94" y2="11.66">
-<stop stop-color="#BAC7E1" offset="0.01"/>
-<stop stop-color="#7090C3" offset="0.22"/>
-<stop stop-color="#C8EAEF" offset="0.54"/>
-<stop stop-color="#FFFFFF" offset="1"/>
-</linearGradient>
-<path opacity="0.33" fill="url(#SVGID_12)" enable-background="new " d="M3.694,11.886c3.953-1.633,5.716-0.554,7.25,0.372l-0.03,0.029c-1.578-0.978-3.257-1.937-7.192-0.375L3.694,11.886z"/>
-<linearGradient id="SVGID_13" gradientUnits="userSpaceOnUse" x1="3.51" y1="11.45" x2="11.09" y2="11.45">
-<stop stop-color="#7090C3" offset="0.01"/>
-<stop stop-color="#C0E7ED" offset="0.54"/>
-<stop stop-color="#FFFFFF" offset="1"/>
-</linearGradient>
-<path opacity="0.33" fill="url(#SVGID_13)" enable-background="new " d="M3.526,11.682c3.952-1.634,5.779-0.8,7.567,0.394l-0.016,0.048c-1.877-1.218-3.633-2-7.566-0.395L3.526,11.682z"/>
-<radialGradient id="SVGID_14" gradientUnits="userSpaceOnUse" cx="3.5" cy="11.7" r="0.02">
-<stop stop-color="#7D9EC4" offset="0"/>
-<stop stop-color="#0A50A1" offset="1"/>
-</radialGradient>
-<path fill="url(#SVGID_14)" d="M3.511,11.729l-0.022-0.005c0.008-0.028,0.028-0.038,0.034-0.04l0.004-0.001C3.526,11.682,3.522,11.695,3.511,11.729z"/>
-<radialGradient id="SVGID_15" gradientUnits="userSpaceOnUse" cx="-1.49" cy="18.16" r="12.8">
-<stop stop-color="#D8EEED" offset="0"/>
-<stop stop-color="#98D8D7" offset="0.17"/>
-<stop stop-color="#8ED3D3" offset="0.22"/>
-<stop stop-color="#74C6CA" offset="0.31"/>
-<stop stop-color="#49B1BA" offset="0.42"/>
-<stop stop-color="#3BAAB5" offset="0.45"/>
-<stop stop-color="#359FB5" offset="0.5"/>
-<stop stop-color="#2988B4" offset="0.63"/>
-<stop stop-color="#257FB4" offset="0.71"/>
-<stop stop-color="#4161AA" offset="1"/>
-</radialGradient>
-<path opacity="0.5" fill="url(#SVGID_15)" enable-background="new " d="M9.043,18.971c-1.713-1.15-3.485-2.03-7.389-0.445c-0.026-0.015-0.068-0.054-0.058-0.105c3.963-1.688,5.804-0.702,7.518,0.449C9.096,18.935,9.062,18.956,9.043,18.971z"/>
-<radialGradient id="SVGID_16" gradientUnits="userSpaceOnUse" cx="11.59" cy="12.21" r="9.66">
-<stop stop-color="#FCF5B0" offset="0"/>
-<stop stop-color="#F7EDA0" offset="0.17"/>
-<stop stop-color="#F3E591" offset="0.28"/>
-<stop stop-color="#FCD118" offset="0.65"/>
-<stop stop-color="#F7A50C" offset="0.8"/>
-<stop stop-color="#F38603" offset="0.93"/>
-<stop stop-color="#F27B00" offset="1"/>
+<path d="M20.684,21.216c-2.604-1.686-5.47-3.405-12.154-0.642c0,0-0.051,0.03-0.064,0.074l-3.081,10.78l0,0 l0,0l0,0c-0.001,0.009-0.011,0.09,0.05,0.144l0,0l0.002,0.003l0.209,0.163c0,0,0.002-0.002,0.002,0 c0.068,0.044,0.09,0.026,0.135,0.031c5.299-1.983,7.921-1.587,11.381,0.639L17.16,32.41c0,0,0.02,0.011,0.047,0.018l0,0 c0.09,0.024,0.331-0.151,0.345-0.215l0,0c0,0.001,0.001,0.001,0.003,0.002v-0.002c0,0.001,0,0.001,0,0.002l3.174-10.865 C20.734,21.316,20.721,21.242,20.684,21.216z" fill="url(#SVGID_1_)"/>
+<radialGradient cx="22.0356" cy="21.9517" gradientTransform="matrix(1 0 0 -1 -0.0225 43.8779)" gradientUnits="userSpaceOnUse" id="SVGID_2_" r="17.3888">
+<stop offset="0" style="stop-color:#FFE23D"/>
+<stop offset="0.2386" style="stop-color:#FFE23D"/>
+<stop offset="0.3435" style="stop-color:#FDDB3A"/>
+<stop offset="0.494" style="stop-color:#F7C832"/>
+<stop offset="0.671" style="stop-color:#EEA925"/>
+<stop offset="0.8325" style="stop-color:#E48717"/>
+<stop offset="1" style="stop-color:#E48717"/>
</radialGradient>
-<path fill="url(#SVGID_16)" d="M12.108,12.777c1.712,1.149,3.46,1.994,7.481,0.617l-1.877,6.528c-3.945,1.633-5.839,0.71-7.548-0.449L12.108,12.777z"/>
-<linearGradient id="SVGID_17" gradientUnits="userSpaceOnUse" x1="18.01" y1="20.07" x2="17.97" y2="20.22">
-<stop stop-color="#DD980D" offset="0"/>
-<stop stop-color="#A75D0F" offset="1"/>
-</linearGradient>
-<path fill="url(#SVGID_17)" d="M18.047,20.155c-0.02,0.037-0.053,0.058-0.063,0.063c-0.004,0-0.004,0.002-0.004,0.002s-0.035,0.002-0.064-0.021c0.076-0.043,0.1-0.127,0.1-0.127S18.061,20.113,18.047,20.155z"/>
-<linearGradient id="SVGID_18" gradientUnits="userSpaceOnUse" x1="18.01" y1="16.86" x2="19.92" y2="16.86">
-<stop stop-color="#DEB150" offset="0"/>
-<stop stop-color="#FFF8B2" offset="1"/>
-</linearGradient>
-<path fill="url(#SVGID_18)" d="M18.047,20.155c0.008-0.037-0.035-0.069-0.035-0.069l1.871-6.522c0,0,0.03,0.027,0.041,0.05L18.047,20.155z"/>
-<linearGradient id="SVGID_19" gradientUnits="userSpaceOnUse" x1="19.9" y1="13.49" x2="19.9" y2="13.62">
-<stop stop-color="#C67C0C" offset="0.01"/>
-<stop stop-color="#DD980D" offset="1"/>
-</linearGradient>
-<path fill="url(#SVGID_19)" d="M19.922,13.614c0,0-0.008-0.02-0.041-0.046c0.018-0.064,0.006-0.076,0.006-0.076l0.005,0.002C19.891,13.494,19.939,13.539,19.922,13.614z"/>
-<linearGradient id="SVGID_20" gradientUnits="userSpaceOnUse" x1="19.63" y1="13.34" x2="19.7" y2="13.47">
-<stop stop-color="#FED30E" offset="0.01"/>
-<stop stop-color="#A75D0F" offset="1"/>
-</linearGradient>
-<path fill="url(#SVGID_20)" d="M19.734,13.458c0,0-0.051-0.063-0.156-0.045c0.004-0.023,0.014-0.052,0.047-0.064c0.064-0.011,0.094,0.006,0.107,0.021c0.008,0.008,0.012,0.014,0.012,0.014C19.752,13.42,19.734,13.458,19.734,13.458z"/>
-<linearGradient id="SVGID_21" gradientUnits="userSpaceOnUse" x1="19.83" y1="13.45" x2="19.78" y2="13.5">
-<stop stop-color="#FED30E" offset="0.01"/>
-<stop stop-color="#A75D0F" offset="1"/>
-</linearGradient>
-<path fill="url(#SVGID_21)" d="M19.732,13.368l0.156,0.126c0.01,0.041-0.008,0.083-0.008,0.083l-0.154-0.123C19.729,13.454,19.744,13.405,19.732,13.368z"/>
-<polygon opacity="0.66" fill="#B37E00" enable-background="new " points="17.844,19.965 19.727,13.444 19.885,13.569 18.016,20.09 18.01,20.107 "/>
-<linearGradient id="SVGID_22" gradientUnits="userSpaceOnUse" x1="12.09" y1="13.44" x2="19.63" y2="13.44">
-<stop stop-color="#FFF8FB" offset="0"/>
-<stop stop-color="#FEC236" offset="1"/>
-</linearGradient>
-<path fill="url(#SVGID_22)" d="M19.584,13.42c-3.961,1.353-5.776,0.549-7.485-0.604c0.004-0.012,0.01-0.042-0.008-0.07c1.71,1.149,3.603,1.935,7.535,0.604C19.596,13.368,19.592,13.396,19.584,13.42z"/>
-<polygon fill="#D9A200" points="11.791,12.896 11.923,12.808 10.019,19.45 9.869,19.567 9.869,19.552 "/>
-<linearGradient id="SVGID_23" gradientUnits="userSpaceOnUse" x1="18.8" y1="16.71" x2="18.63" y2="16.66">
-<stop stop-color="#B37E00" offset="0"/>
-<stop stop-color="#FF9E00" offset="1"/>
-</linearGradient>
-<path opacity="0.66" fill="url(#SVGID_23)" enable-background="new " d="M17.693,19.929l1.886-6.518c0.003,0,0.007-0.006,0.011-0.006c0.098-0.011,0.145,0.042,0.145,0.042l-1.875,6.51C17.857,19.957,17.779,19.895,17.693,19.929z"/>
-<path fill="#A75D0F" d="M17.982,20.219c-3.867,1.654-6.351,0.635-8.061-0.516l0.018-0.014c1.71,1.15,4.342,2.109,7.977,0.505C17.943,20.217,17.982,20.219,17.982,20.219z"/>
-<linearGradient id="SVGID_24" gradientUnits="userSpaceOnUse" x1="17.92" y1="19.99" x2="17.84" y2="20.17">
-<stop stop-color="#FFD100" offset="0.01"/>
-<stop stop-color="#A8710A" offset="1"/>
-</linearGradient>
-<path opacity="0.66" fill="url(#SVGID_24)" enable-background="new " d="M17.857,19.955l0.158,0.136c0,0-0.021,0.077-0.109,0.112l-0.161-0.134C17.832,20.033,17.857,19.955,17.857,19.955z"/>
-<linearGradient id="SVGID_25" gradientUnits="userSpaceOnUse" x1="10.1" y1="20.18" x2="17.78" y2="20.18">
-<stop stop-color="#DD980D" offset="0"/>
-<stop stop-color="#FDDA10" offset="0.4"/>
-<stop stop-color="#DD980D" offset="1"/>
-</linearGradient>
-<path fill="url(#SVGID_25)" d="M17.697,19.925c-0.016,0.1,0.082,0.163,0.082,0.163c-4.068,1.515-5.859,0.596-7.681-0.501c0.031-0.022,0.048-0.041,0.064-0.111c0.004,0.002,0.012,0.004,0.016,0.007C11.941,20.567,13.988,21.459,17.697,19.925z"/>
-<path fill="#C67C0C" d="M9.94,19.697l0.158-0.114c1.566,0.978,3.763,2.045,7.657,0.482l0.159,0.136C14.297,21.806,11.649,20.847,9.94,19.697z"/>
-<path fill="#DD980D" d="M9.954,19.701l-0.019,0.014c0,0-0.103-0.058-0.067-0.163C9.877,19.655,9.954,19.701,9.954,19.701z"/>
-<linearGradient id="SVGID_26" gradientUnits="userSpaceOnUse" x1="10.05" y1="19.64" x2="9.92" y2="19.5">
-<stop stop-color="#DD980D" offset="0.1"/>
-<stop stop-color="#FDDA10" offset="0.7"/>
-<stop stop-color="#DD980D" offset="1"/>
-</linearGradient>
-<path fill="url(#SVGID_26)" d="M9.869,19.552l0.149-0.123c-0.008,0.11,0.096,0.149,0.096,0.149l-0.163,0.125C9.952,19.703,9.861,19.659,9.869,19.552z"/>
-<linearGradient id="SVGID_27" gradientUnits="userSpaceOnUse" x1="10.05" y1="19.41" x2="10.14" y2="19.57">
-<stop stop-color="#DD980D" offset="0"/>
-<stop stop-color="#FEBF0F" offset="0.4"/>
-<stop stop-color="#FED30E" offset="0.8"/>
-<stop stop-color="#DD980D" offset="1"/>
-</linearGradient>
-<path fill="url(#SVGID_27)" d="M10.006,19.434c0.053-0.021,0.103,0.004,0.159,0.037c-0.02,0.069-0.032,0.094-0.062,0.115C10.068,19.567,9.999,19.522,10.006,19.434z"/>
-<path fill="#DD980D" d="M11.948,12.751l-0.029,0.057l-0.132,0.094c0.009-0.044,0.118-0.123,0.152-0.145C11.943,12.754,11.948,12.751,11.948,12.751z"/>
-<radialGradient id="SVGID_28" gradientUnits="userSpaceOnUse" cx="11.99" cy="12.72" r="0.09">
-<stop stop-color="#FEEB71" offset="0"/>
-<stop stop-color="#DD980D" offset="1"/>
-</radialGradient>
-<path fill="url(#SVGID_28)" d="M12.096,12.815c-0.079-0.044-0.149-0.022-0.177-0.008c0.004-0.015,0.022-0.052,0.022-0.052c0.063-0.04,0.09-0.04,0.15-0.013C12.108,12.773,12.103,12.798,12.096,12.815z"/>
-<linearGradient id="SVGID_29" gradientUnits="userSpaceOnUse" x1="11.14" y1="16.15" x2="10.96" y2="16.1">
-<stop stop-color="#FEEFBB" offset="0.01"/>
-<stop stop-color="#FFBF00" offset="1"/>
-</linearGradient>
-<path fill="url(#SVGID_29)" d="M10.179,19.482c-0.056-0.034-0.12-0.06-0.173-0.036l1.917-6.638c0.029-0.014,0.097-0.037,0.176,0.009L10.179,19.482z"/>
-<linearGradient id="SVGID_30" gradientUnits="userSpaceOnUse" x1="11.72" y1="13.52" x2="19.91" y2="13.52">
-<stop stop-color="#FCA859" offset="0.01"/>
-<stop stop-color="#FDC30F" offset="0.21"/>
-<stop stop-color="#B51C00" offset="1"/>
-</linearGradient>
-<path opacity="0.33" fill="url(#SVGID_30)" enable-background="new " d="M11.824,12.852c0.586,0.509,3.127,2.585,8.066,0.643l-0.156-0.126c-0.016-0.015-0.045-0.03-0.107-0.021c-3.932,1.333-5.824,0.548-7.534-0.604c0,0.002,0,0.002,0,0.002c-0.058-0.03-0.086-0.029-0.149,0.012C11.863,12.812,11.863,12.812,11.824,12.852z"/>
-<linearGradient id="SVGID_31" gradientUnits="userSpaceOnUse" x1="11.79" y1="13.62" x2="19.92" y2="13.62">
-<stop stop-color="#FFF6D8" offset="0.01"/>
-<stop stop-color="#FDDA10" offset="0.53"/>
-<stop stop-color="#F9BD0C" offset="1"/>
-</linearGradient>
-<path opacity="0.33" fill="url(#SVGID_31)" enable-background="new " d="M19.891,13.494L19.891,13.494c-4.941,1.942-7.48-0.135-8.066-0.643c-0.016,0.017-0.026,0.03-0.033,0.043v0.001l-0.002,0.007c0,0,0,0,0,0.002v-0.002v0.004c0.511,0.447,3.063,2.67,8.135,0.66C19.916,13.521,19.891,13.494,19.891,13.494z"/>
-<linearGradient id="SVGID_32" gradientUnits="userSpaceOnUse" x1="17.79" y1="20" x2="17.68" y2="19.9">
-<stop stop-color="#EAB849" offset="0"/>
-<stop stop-color="#EDC15A" offset="0.07"/>
-<stop stop-color="#F3D783" offset="0.28"/>
-<stop stop-color="#F8E8A4" offset="0.48"/>
-<stop stop-color="#FCF5BC" offset="0.67"/>
-<stop stop-color="#FEFCCA" offset="0.85"/>
-<stop stop-color="#FFFFCF" offset="1"/>
-</linearGradient>
-<path fill="url(#SVGID_32)" d="M17.756,20.066c0,0-0.072-0.046-0.059-0.146c0.1-0.026,0.16,0.036,0.16,0.036S17.842,20.028,17.756,20.066z"/>
-<radialGradient id="SVGID_33" gradientUnits="userSpaceOnUse" cx="11.3" cy="10.89" r="9.17">
-<stop stop-color="#EFD815" offset="0"/>
-<stop stop-color="#EFD415" offset="0.11"/>
-<stop stop-color="#EDC614" offset="0.22"/>
-<stop stop-color="#EBB112" offset="0.33"/>
-<stop stop-color="#E89211" offset="0.45"/>
-<stop stop-color="#E36C0E" offset="0.57"/>
-<stop stop-color="#E04C0C" offset="0.65"/>
-<stop stop-color="#CE2907" offset="0.78"/>
-<stop stop-color="#BF0B02" offset="0.92"/>
-<stop stop-color="#B90000" offset="1"/>
+<path d="M34.812,23.492l-0.254-0.201c-0.021-0.022-0.07-0.049-0.17-0.032l0,0l0,0 c-6.318,2.14-9.357,0.88-12.103-0.971c-0.246-0.119-0.484,0.23-0.487,0.257l0.003-0.002l-0.002,0.002h0.002l-0.003,0.004 l-3.082,10.674v0.001c-0.057,0.17,0.109,0.261,0.109,0.261l0,0c2.743,1.841,6.721,3.458,12.914,0.814l0,0 c0,0,0.004-0.003,0.008-0.003c0.018-0.013,0.074-0.044,0.104-0.103l3.012-10.51c0-0.002-0.002-0.002-0.002-0.004 C34.878,23.584,34.856,23.545,34.812,23.492z" fill="url(#SVGID_2_)"/>
+<radialGradient cx="21.9673" cy="22.0635" gradientUnits="userSpaceOnUse" id="SVGID_3_" r="17.6608">
+<stop offset="0" style="stop-color:#FFE23D"/>
+<stop offset="0.0152" style="stop-color:#FFE23D"/>
+<stop offset="0.6701" style="stop-color:#E48717"/>
+<stop offset="0.821" style="stop-color:#E7521F"/>
+<stop offset="0.9373" style="stop-color:#E92F25"/>
+<stop offset="1" style="stop-color:#EA2227"/>
</radialGradient>
-<path fill="url(#SVGID_33)" d="M11.406,10.901C10.377,10.208,9.27,9.56,7.695,9.548c-1.037-0.007-2.273,0.288-3.844,0.936l1.945-6.74c3.946-1.631,5.843-0.706,7.555,0.452L11.406,10.901z"/>
-<path fill="#BC1B00" d="M11.402,10.898l1.948-6.702c0.021,0.013,0.028,0.023,0.04,0.038l-1.946,6.713C11.436,10.919,11.402,10.898,11.402,10.898z"/>
-<path fill="#BC1B00" d="M4.039,10.679c0.622-0.255,1.198-0.445,1.732-0.574c0.13-0.031,0.245-0.06,0.383-0.085C6.281,9.995,6.405,9.97,6.525,9.95C6.715,9.924,6.9,9.898,7.083,9.884c0.153-0.012,0.302-0.021,0.45-0.021c0.142,0,0.281,0,0.417,0.008C8.07,9.877,8.187,9.886,8.304,9.9C8.402,9.91,8.499,9.923,8.593,9.94c0.199,0.033,0.394,0.077,0.58,0.129c0.757,0.214,1.429,0.579,2.046,0.989c-0.005,0.002-0.019-0.004-0.025-0.007c-0.006-0.002-0.009-0.002-0.014-0.006c-0.835-0.529-1.731-0.99-2.838-1.126c-1.133-0.14-2.454,0.056-4.231,0.762c0,0-0.042,0.019-0.059,0.02C4.039,10.704,4.041,10.693,4.039,10.679z"/>
-<path fill="#BC1B00" d="M11.337,10.999c0,0,0.024,0.017,0.056,0.011l-0.123,0.056c-0.033,0.008-0.072-0.012-0.072-0.012L11.337,10.999z"/>
-<path fill="#B81A00" d="M4.039,10.679c0,0,0.008,0.015,0.014,0.022c-0.011,0.001-0.014,0.005-0.043-0.008c-0.005-0.002-0.01-0.006-0.015-0.01l-0.128-0.099l-0.012-0.01c0.018-0.001,0.03,0.006,0.038,0.006L4.039,10.679z"/>
-<path fill="#E82E00" d="M11.406,10.901c0.012,0.008,0.031,0.014,0.042,0.042c-0.007,0.036-0.038,0.054-0.056,0.066c-0.03,0.008-0.059-0.014-0.059-0.014C11.353,10.981,11.385,10.957,11.406,10.901z"/>
-<path fill="#E32D00" d="M3.856,10.577c-0.019-0.013-0.036-0.069-0.025-0.105l0.025-0.006c-0.011,0.048,0.02,0.104,0.047,0.121C3.904,10.586,3.885,10.597,3.856,10.577z"/>
-<linearGradient id="SVGID_34" gradientUnits="userSpaceOnUse" x1="5.78" y1="3.72" x2="5.82" y2="3.72">
-<stop stop-color="#FD7E36" offset="0"/>
-<stop stop-color="#BD6F4F" offset="1"/>
-</linearGradient>
-<path id="SVGID_37" fill="url(#SVGID_34)" d="M5.796,3.746L5.778,3.742c0.008-0.03,0.028-0.04,0.035-0.042l0.002-0.001C5.815,3.699,5.808,3.715,5.796,3.746z"/>
-<path fill="#E82E00" d="M11.339,11c-1.838-1.277-4.093-2.079-7.44-0.416l0.137,0.097c3.658-1.494,5.564-0.688,7.168,0.372L11.339,11z"/>
-<path fill="#E82E00" d="M11.337,10.999c-1.054-0.688-2.039-1.257-3.6-1.302c-1.14,0.022-2.017,0.17-3.836,0.89c-0.025-0.014-0.061-0.053-0.051-0.103c1.575-0.67,2.826-0.96,3.864-0.951c1.571,0.015,2.66,0.673,3.689,1.365C11.388,10.961,11.354,10.983,11.337,10.999z"/>
-<path fill="#E32D00" d="M5.778,3.742l0.018,0.005l-1.94,6.734c-0.004-0.003-0.023-0.007-0.023-0.007L5.778,3.742z"/>
-<linearGradient id="SVGID_35" gradientUnits="userSpaceOnUse" x1="5.79" y1="3.51" x2="13.36" y2="3.51">
-<stop stop-color="#FC2B20" offset="0"/>
-<stop stop-color="#FF590A" offset="0.24"/>
-<stop stop-color="#FB570B" offset="0.25"/>
-<stop stop-color="#E74C0E" offset="0.33"/>
-<stop stop-color="#D84511" offset="0.42"/>
-<stop stop-color="#D04013" offset="0.52"/>
-<stop stop-color="#CD3F13" offset="0.7"/>
-<stop stop-color="#D04213" offset="0.8"/>
-<stop stop-color="#D84B14" offset="0.87"/>
-<stop stop-color="#E65B16" offset="0.93"/>
-<stop stop-color="#F97219" offset="0.99"/>
-<stop stop-color="#FC7519" offset="1"/>
-</linearGradient>
-<path opacity="0.66" fill="url(#SVGID_35)" enable-background="new " d="M13.351,4.194C11.639,3.036,9.725,2.14,5.796,3.746c0.008-0.033,0.017-0.045,0.017-0.045c3.95-1.632,5.839-0.709,7.549,0.449L13.351,4.194z"/>
-<path opacity="0.33" fill="#FE8411" enable-background="new " d="M13.123,4.417c-1.394-0.904-3.236-2.04-7.164-0.435c0.008-0.033,0.019-0.05,0.019-0.05c3.948-1.633,5.807-0.389,7.159,0.435L13.123,4.417z"/>
-<g opacity="0.6">
-<linearGradient id="SVGID_36" gradientUnits="userSpaceOnUse" x1="3.86" y1="7.25" x2="5.97" y2="7.25">
-<stop stop-color="#FD7E36" offset="0"/>
-<stop stop-color="#BD6F4F" offset="1"/>
-</linearGradient>
-<path opacity="0.6" fill="url(#SVGID_36)" enable-background="new " d="M5.86,3.79c-0.011,0.004-0.05,0-0.05,0l-1.955,6.778l0.139,0.113C4,10.686,4.005,10.689,4.01,10.692c0.024,0.011,0.031,0.011,0.038,0.009l1.921-6.748l0.006-0.021L5.86,3.79z"/>
-</g>
-<linearGradient id="SVGID_38" gradientUnits="userSpaceOnUse" x1="14" y1="4.57" x2="4.22" y2="2.39">
-<stop stop-color="#FE550D" offset="0"/>
-<stop stop-color="#8C1501" offset="1"/>
-</linearGradient>
-<path opacity="0.5" fill="url(#SVGID_38)" enable-background="new " d="M13.135,4.373c0.002,0.002,0.002,0.002,0.002,0.002c0-0.002,0.002-0.002,0.002-0.004L13.135,4.373z"/>
-<linearGradient id="SVGID_39" gradientUnits="userSpaceOnUse" x1="9.57" y1="4.43" x2="9.49" y2="2.08">
-<stop stop-color="#FE550D" offset="0"/>
-<stop stop-color="#8C1501" offset="1"/>
-</linearGradient>
-<path opacity="0.5" fill="url(#SVGID_39)" enable-background="new " d="M13.182,4.219c-0.649-0.435-1.73-1.14-3.309-1.25C8.196,2.85,6.072,3.704,5.86,3.791l0.114,0.143L5.969,3.955C5.975,3.954,5.98,3.95,5.987,3.948c3.913-1.684,6.325-0.163,7.146,0.428l0.004-0.003l0.123-0.101C13.234,4.253,13.209,4.236,13.182,4.219z"/>
-<path opacity="0.5" fill="#FFF4C5" enable-background="new " d="M5.86,3.79c0.211-0.088,2.336-0.941,4.013-0.822c1.579,0.111,2.66,0.816,3.309,1.25c0.027,0.019,0.053,0.034,0.076,0.052l0.121-0.099c-0.006-0.008-0.009-0.018-0.018-0.022c-1.672-1.133-3.519-2.041-7.292-0.554C5.984,3.63,5.901,3.663,5.813,3.699l0,0L5.86,3.79z"/>
-<linearGradient id="SVGID_40" gradientUnits="userSpaceOnUse" x1="11.18" y1="7.61" x2="13.39" y2="7.61">
-<stop stop-color="#FD7E36" offset="0"/>
-<stop stop-color="#FC895B" offset="1"/>
-</linearGradient>
-<path opacity="0.6" fill="url(#SVGID_40)" enable-background="new " d="M13.361,4.151l-0.011,0.042l-0.093,0.077l-0.121,0.101c0,0.002-0.002,0.002-0.002,0.005c-0.407,1.398-1.679,5.761-1.95,6.67c0.003,0.001,0.005,0.002,0.008,0.003c0.002,0.001,0.004,0.002,0.004,0.002l0,0c0,0,0.041,0.021,0.072,0.012l0.123-0.057c-0.001,0.001-0.001,0-0.004,0.001c0.001-0.001,0.002,0,0.003-0.001c0.015-0.012,0.046-0.03,0.053-0.063l0,0v-0.001c0,0,0.001,0,0.001-0.002l0,0l1.864-6.439l0,0l0.049-0.159V4.336l0.029-0.106C13.395,4.211,13.393,4.166,13.361,4.151z"/>
-<linearGradient id="SVGID_41" gradientUnits="userSpaceOnUse" x1="3.85" y1="10.26" x2="11.41" y2="10.26">
-<stop stop-color="#FD9B20" offset="0.25"/>
-<stop stop-color="#FDB830" offset="0.34"/>
-<stop stop-color="#FDD23E" offset="0.43"/>
-<stop stop-color="#FDDB43" offset="0.49"/>
-<stop stop-color="#FE8411" offset="0.75"/>
-<stop stop-color="#FE550D" offset="1"/>
-</linearGradient>
-<path opacity="0.5" fill="url(#SVGID_41)" enable-background="new " d="M11.342,10.996c-1.053-0.688-2.038-1.258-3.6-1.303c-1.141,0.023-2.017,0.169-3.834,0.89c-0.027-0.014-0.061-0.053-0.052-0.102C5.431,9.81,6.683,9.52,7.72,9.529c1.572,0.016,2.662,0.675,3.693,1.367C11.393,10.957,11.358,10.981,11.342,10.996z"/>
-<path fill="#F83503" d="M13.361,4.149h0.002c0.027,0.018,0.033,0.051,0.029,0.083l-0.004,0.004c-0.01-0.013-0.019-0.024-0.037-0.043L13.361,4.149z"/>
-<path id="SVGID_46" fill="url(#SVGID_34)" d="M5.796,3.746L5.778,3.742c0.008-0.03,0.028-0.04,0.035-0.042l0.003-0.001C5.815,3.699,5.808,3.715,5.796,3.746z"/>
-<path opacity="0.66" fill="url(#SVGID_35)" enable-background="new " d="M13.351,4.194C11.639,3.036,9.725,2.14,5.796,3.746c0.008-0.033,0.017-0.045,0.017-0.045c3.95-1.632,5.839-0.709,7.549,0.449L13.351,4.194z"/>
-<radialGradient id="SVGID_44" gradientUnits="userSpaceOnUse" cx="11.55" cy="11.9" r="10.5">
-<stop stop-color="#D1E787" offset="0.01"/>
-<stop stop-color="#CEE583" offset="0.12"/>
-<stop stop-color="#C4DE76" offset="0.25"/>
-<stop stop-color="#B3D361" offset="0.38"/>
-<stop stop-color="#9CC443" offset="0.51"/>
-<stop stop-color="#7FB01D" offset="0.64"/>
-<stop stop-color="#7BAE19" offset="0.65"/>
-<stop stop-color="#578D19" offset="0.78"/>
-<stop stop-color="#366E1A" offset="0.92"/>
-<stop stop-color="#29621A" offset="1"/>
+<path d="M21.25,19.395l3.12-10.775l0,0l0,0l0,0V8.617c0.008-0.023-0.029-0.124-0.043-0.132l0,0l0,0l0,0 c-2.13-1.286-5.074-3.659-12.126-0.722c-0.006,0.006-0.053,0.048-0.059,0.064L9.018,18.641l0,0 c-0.021,0.109,0.246,0.354,0.35,0.357l0,0c0.001,0,0,0.008,0.004,0.007c0.027-0.004,0.091-0.032,0.091-0.032 c7.083-2.807,9.955-0.17,11.38,0.596c0.001,0,0.001,0.002,0.002,0.002c0.002,0.001,0.004,0.002,0.006,0.002l0,0v0.001 c0.069,0.041,0.364-0.055,0.396-0.173l0,0l0.001,0.002l0.001-0.007C21.25,19.396,21.25,19.396,21.25,19.395 C21.25,19.396,21.25,19.396,21.25,19.395z" fill="url(#SVGID_3_)"/>
+<radialGradient cx="22.0356" cy="21.9521" gradientTransform="matrix(1 0 0 -1 -0.0225 43.8779)" gradientUnits="userSpaceOnUse" id="SVGID_4_" r="19.9665">
+<stop offset="0" style="stop-color:#D1E787"/>
+<stop offset="0.0152" style="stop-color:#D1E787"/>
+<stop offset="0.1256" style="stop-color:#C4DD7F"/>
+<stop offset="0.33" style="stop-color:#A2C268"/>
+<stop offset="0.5635" style="stop-color:#739D4A"/>
+<stop offset="1" style="stop-color:#29621A"/>
</radialGradient>
-<path fill="url(#SVGID_44)" d="M21.92,5.337c-3.941,1.63-5.838,0.712-7.545-0.437l-1.943,6.744c1.705,1.155,3.766,2.104,7.545,0.414L21.92,5.337z"/>
-<linearGradient id="SVGID_45" gradientUnits="userSpaceOnUse" x1="14.38" y1="5.53" x2="21.96" y2="5.53">
-<stop stop-color="#D3ED89" offset="0"/>
-<stop stop-color="#5F811B" offset="1"/>
-</linearGradient>
-<path fill="url(#SVGID_45)" d="M21.912,5.343c-3.943,1.63-5.83,0.713-7.537-0.437c0.004-0.016,0.012-0.044,0-0.072c1.707,1.148,3.641,2.074,7.58,0.445C21.924,5.298,21.92,5.319,21.912,5.343z"/>
-<polygon fill="#8CAC42" points="14.074,4.987 14.215,4.887 12.291,11.571 12.143,11.688 12.143,11.674 "/>
-<linearGradient id="SVGID_47" gradientUnits="userSpaceOnUse" x1="13.42" y1="8.27" x2="13.24" y2="8.22">
-<stop stop-color="#D3ED89" offset="0.4"/>
-<stop stop-color="#5F811B" offset="1"/>
-</linearGradient>
-<path fill="url(#SVGID_47)" d="M12.436,11.646c-0.06-0.034-0.104-0.102-0.156-0.081l1.929-6.678c0.029-0.012,0.104-0.037,0.176,0.018L12.436,11.646z"/>
-<path fill="#5F811B" d="M14.232,4.844l-0.02,0.047l-0.141,0.103c0.012-0.045,0.119-0.121,0.151-0.145C14.23,4.844,14.232,4.844,14.232,4.844z"/>
-<linearGradient id="SVGID_48" gradientUnits="userSpaceOnUse" x1="14.38" y1="4.86" x2="14.21" y2="4.85">
-<stop stop-color="#7AA922" offset="0"/>
-<stop stop-color="#D3ED89" offset="0.2"/>
-<stop stop-color="#D3ED89" offset="0.53"/>
-<stop stop-color="#7AA922" offset="1"/>
-</linearGradient>
-<path fill="url(#SVGID_48)" d="M14.375,4.901c-0.072-0.044-0.139-0.021-0.168-0.009c0.006-0.014,0.018-0.044,0.018-0.044c0.064-0.04,0.09-0.041,0.15-0.012C14.385,4.857,14.387,4.881,14.375,4.901z"/>
-<linearGradient id="SVGID_49" gradientUnits="userSpaceOnUse" x1="20.11" y1="8.8" x2="22.22" y2="8.8">
-<stop stop-color="#7AA922" offset="0.01"/>
-<stop stop-color="#1D4A20" offset="0.17"/>
-<stop stop-color="#26551B" offset="0.38"/>
-<stop stop-color="#7AA922" offset="1"/>
-</linearGradient>
-<polygon opacity="0.81" fill="url(#SVGID_49)" enable-background="new " points="20.107,12.089 22.057,5.375 22.217,5.502 20.256,12.219 "/>
-<path fill="#476E32" d="M20.293,12.268c0.006-0.038-0.033-0.069-0.033-0.069l1.953-6.702c0,0,0.031,0.028,0.039,0.046L20.293,12.268z"/>
-<path fill="#1D3419" d="M20.229,12.33c-1.053,0.479-2.049,0.725-2.975,0.805c-1.6,0.18-2.893-0.166-3.947-0.686c-0.411-0.188-0.781-0.401-1.112-0.624l0.017-0.013c0.334,0.224,0.697,0.443,1.095,0.638c1.072,0.491,2.412,0.817,3.947,0.685c0.873-0.099,1.838-0.356,2.906-0.829C20.191,12.329,20.229,12.33,20.229,12.33z"/>
-<linearGradient id="SVGID_50" gradientUnits="userSpaceOnUse" x1="20.13" y1="12.13" x2="19.96" y2="12.12">
-<stop stop-color="#7AA922" offset="0"/>
-<stop stop-color="#D3ED89" offset="1"/>
-</linearGradient>
-<path fill="url(#SVGID_50)" d="M20.025,12.208c0,0-0.076-0.067-0.064-0.166c0.105-0.025,0.17,0.037,0.17,0.037S20.109,12.173,20.025,12.208z"/>
-<linearGradient id="SVGID_51" gradientUnits="userSpaceOnUse" x1="20.2" y1="12.14" x2="20.09" y2="12.26">
-<stop stop-color="#5F811B" offset="0"/>
-<stop stop-color="#26551B" offset="1"/>
-</linearGradient>
-<path fill="url(#SVGID_51)" d="M20.121,12.076l0.139,0.125c0,0-0.02,0.077-0.105,0.115l-0.146-0.125C20.096,12.155,20.121,12.076,20.121,12.076z"/>
-<linearGradient id="SVGID_52" gradientUnits="userSpaceOnUse" x1="12.36" y1="12.35" x2="20.04" y2="12.35">
-<stop stop-color="#7AA922" offset="0"/>
-<stop stop-color="#D3ED89" offset="0.4"/>
-<stop stop-color="#7AA922" offset="1"/>
-</linearGradient>
-<path fill="url(#SVGID_52)" d="M19.977,12.036c-0.014,0.099,0.061,0.171,0.061,0.171c-3.939,1.631-5.971,0.673-7.679-0.484c0.031-0.021,0.037-0.021,0.055-0.093C14.117,12.787,16.697,13.597,19.977,12.036z"/>
-<path fill="#26551B" d="M12.212,11.819l0.147-0.099c1.707,1.102,3.723,2.05,7.66,0.467l0.141,0.125C16.381,13.979,13.965,13.051,12.212,11.819z"/>
-<path fill="#5F811B" d="M20.293,12.268c-0.018,0.036-0.053,0.058-0.064,0.063c-0.004,0.001-0.004,0.001-0.004,0.001s-0.027,0.005-0.064-0.021c0.078-0.041,0.1-0.127,0.1-0.127S20.305,12.224,20.293,12.268z"/>
-<path fill="#26551B" d="M12.218,11.818l-0.018,0.013c0,0-0.096-0.052-0.06-0.157C12.15,11.778,12.218,11.818,12.218,11.818z"/>
-<linearGradient id="SVGID_53" gradientUnits="userSpaceOnUse" x1="12.31" y1="11.77" x2="12.19" y2="11.63">
-<stop stop-color="#1D3A19" offset="0"/>
-<stop stop-color="#26551B" offset="0.1"/>
-<stop stop-color="#7AA922" offset="0.65"/>
-<stop stop-color="#D3ED89" offset="1"/>
-</linearGradient>
-<path fill="url(#SVGID_53)" d="M12.143,11.674l0.142-0.112c-0.008,0.107,0.084,0.152,0.084,0.152l-0.143,0.11C12.225,11.826,12.134,11.781,12.143,11.674z"/>
-<linearGradient id="SVGID_54" gradientUnits="userSpaceOnUse" x1="12.31" y1="11.55" x2="12.4" y2="11.71">
-<stop stop-color="#5F811B" offset="0"/>
-<stop stop-color="#7AA922" offset="0.4"/>
-<stop stop-color="#5F811B" offset="0.8"/>
-</linearGradient>
-<path fill="url(#SVGID_54)" d="M12.28,11.562c0.048-0.017,0.092,0.035,0.152,0.083c-0.021,0.069-0.035,0.058-0.068,0.078C12.332,11.704,12.271,11.651,12.28,11.562z"/>
-<linearGradient id="SVGID_55" gradientUnits="userSpaceOnUse" x1="22.13" y1="5.44" x2="22.15" y2="5.36">
-<stop stop-color="#5B7F30" offset="0"/>
-<stop stop-color="#D3ED89" offset="1"/>
-</linearGradient>
-<path opacity="0.72" fill="url(#SVGID_55)" enable-background="new " d="M22.229,5.432c0.002,0.026-0.016,0.067-0.016,0.067l-0.152-0.123c0,0,0.021-0.05,0.01-0.087C22.123,5.312,22.221,5.417,22.229,5.432z"/>
-<linearGradient id="SVGID_56" gradientUnits="userSpaceOnUse" x1="21.97" y1="6.52" x2="14.26" y2="4.3">
-<stop stop-color="#1D3419" offset="0"/>
-<stop stop-color="#26551B" offset="0.23"/>
-<stop stop-color="#7AA922" offset="1"/>
-</linearGradient>
-<path opacity="0.33" fill="url(#SVGID_56)" enable-background="new " d="M22.225,5.426c-0.029-0.041-0.074-0.074-0.109-0.109c-0.068-0.06-0.15-0.046-0.17-0.035l-0.002,0.001c-3.932,1.623-5.862,0.698-7.568-0.449c0.004,0.006,0.004,0.016,0.004,0.023c0-0.007,0-0.017-0.004-0.023c-0.062-0.028-0.086-0.027-0.15,0.012C14.199,4.863,14.137,4.91,14.1,4.95C14.76,5.503,17.545,7.688,22.225,5.426z M14.375,4.901L14.375,4.901L14.375,4.901C14.375,4.901,14.375,4.901,14.375,4.901L14.375,4.901c0.004-0.009,0.004-0.017,0.008-0.025C14.379,4.885,14.379,4.895,14.375,4.901z"/>
-<linearGradient id="SVGID_57" gradientUnits="userSpaceOnUse" x1="21.1" y1="8.73" x2="20.93" y2="8.68">
-<stop stop-color="#5F811B" offset="0"/>
-<stop stop-color="#75C145" offset="1"/>
-</linearGradient>
-<path opacity="0.72" fill="url(#SVGID_57)" enable-background="new " d="M19.959,12.052l1.949-6.711c0.105-0.019,0.156,0.042,0.156,0.042l-1.944,6.695C20.121,12.076,20.041,12.017,19.959,12.052z"/>
-<linearGradient id="SVGID_58" gradientUnits="userSpaceOnUse" x1="21.91" y1="5.41" x2="22.26" y2="5.41">
-<stop stop-color="#D3ED89" offset="0"/>
-<stop stop-color="#5F811B" offset="1"/>
-</linearGradient>
-<path opacity="0.6" fill="url(#SVGID_58)" enable-background="new " d="M21.912,5.343c0.006-0.025,0.01-0.037,0.033-0.061c0.02-0.011,0.102-0.025,0.17,0.035c0.064,0.062,0.166,0.131,0.137,0.225c-0.01-0.019-0.039-0.043-0.039-0.043l-0.148-0.118C22.064,5.381,22.016,5.324,21.912,5.343z"/>
-<linearGradient id="SVGID_59" gradientUnits="userSpaceOnUse" x1="21.94" y1="6.6" x2="14.24" y2="4.39">
-<stop stop-color="#93BF81" offset="0"/>
-<stop stop-color="#26551B" offset="0.23"/>
-<stop stop-color="#BDE256" offset="1"/>
-</linearGradient>
-<path opacity="0.3" fill="url(#SVGID_59)" enable-background="new " d="M14.101,4.952c-0.011,0.013-0.021,0.023-0.022,0.034l-0.002,0.002l-0.01,0.023c0.594,0.501,3.408,2.813,8.189,0.486c-0.003-0.025-0.014-0.049-0.031-0.071C17.545,7.688,14.76,5.503,14.101,4.952z"/>
-<path opacity="0.72" fill="url(#SVGID_55)" enable-background="new " d="M22.229,5.432c0.002,0.026-0.016,0.067-0.016,0.067l-0.152-0.123c0,0,0.021-0.05,0.01-0.087C22.123,5.312,22.221,5.417,22.229,5.432z"/>
-<path opacity="0.6" fill="url(#SVGID_58)" enable-background="new " d="M21.912,5.343c0.006-0.025,0.01-0.037,0.033-0.061c0.02-0.011,0.104-0.025,0.17,0.035c0.064,0.062,0.17,0.129,0.138,0.226c-0.011-0.02-0.038-0.044-0.038-0.044l-0.15-0.118C22.064,5.381,22.016,5.324,21.912,5.343z"/>
-</svg>
\ No newline at end of file
+<path d="M38.604,10.724c0.041-0.122-0.264-0.52-0.48-0.42c-3.604,1.36-7.473,2.683-12.17-0.719 c-0.063-0.028-0.143-0.036-0.23,0.016V9.6c0.004-0.006-0.211,0.142-0.252,0.228l-3.106,10.744 c-0.057,0.169,0.097,0.252,0.097,0.252h0.002c2.859,1.916,6.605,3.414,12.883,0.805l0,0c0,0,0.004,0,0.008-0.003 c0.02-0.01,0.074-0.042,0.104-0.101L38.604,10.724L38.604,10.724v-0.003C38.604,10.723,38.604,10.724,38.604,10.724z" fill="url(#SVGID_4_)"/>
+<rect fill="none" height="44" width="43.999"/>
+</g>
+</svg>
--- a/emailservices/emailframework/inc/CFSMailBrandManagerImpl.h Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailframework/inc/CFSMailBrandManagerImpl.h Fri Mar 12 15:41:14 2010 +0200
@@ -104,6 +104,13 @@
const TFSMailMsgId& aMailboxId,
TDes& aIconIds );
+ /**
+ * @see MFSMailBrandManager::GetGraphicIdsL
+ */
+ TInt GetGraphicIdsL( TFSBrandElement aElement,
+ const TDesC& aBrandId,
+ TDes& aIconIds );
+
private:
/**
--- a/emailservices/emailframework/inc/MFSMailBrandManager.h Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailframework/inc/MFSMailBrandManager.h Fri Mar 12 15:41:14 2010 +0200
@@ -142,7 +142,19 @@
virtual TInt GetGraphicIdsL( TFSBrandElement aElement,
const TFSMailMsgId& aMailboxId,
TDes& aIconIds ) = 0;
-
+
+ /**
+ * Returns branded graphic element of given type.
+ *
+ * @param aElementId brand element
+ * @param aBrandId Domain of email address.
+ * @param aIconIds Icon path and ids
+ *
+ * @return Error code
+ */
+ virtual TInt GetGraphicIdsL( TFSBrandElement aElement,
+ const TDesC& aBrandId,
+ TDes& aIconIds ) = 0;
};
--- a/emailservices/emailframework/inc/emailversionnumbers.hrh Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailframework/inc/emailversionnumbers.hrh Fri Mar 12 15:41:14 2010 +0200
@@ -12,7 +12,7 @@
* Contributors:
*
* Description : Common email version number definitions
-* Version : %version: 10.1.2 %
+* Version : %version: 10.1.3 %
*
*/
@@ -25,14 +25,14 @@
* version number both major and minor version are stored in separate 32 bit
* location.
*/
-#define KEmailBinaryVersionNumber 10.4
+#define KEmailBinaryVersionNumber 10.5
/** ECom version number to be used in Cmail related ECom registeration
* resource files.
* NOTE: Version number in ECom registeration resource file is saved as one
* byte, so 255 is the maximum version number.
*/
-#define KEmailEcomVersionNumber 4
+#define KEmailEcomVersionNumber 5
/** Binary paging setting (paged/non-paged)
*/
--- a/emailservices/emailframework/src/CFSMailBrandManagerImpl.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailframework/src/CFSMailBrandManagerImpl.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -288,6 +288,24 @@
}
// -----------------------------------------------------------------------------
+// CFSMailBrandManagerImpl::GetGraphicIdsL
+// -----------------------------------------------------------------------------
+TInt CFSMailBrandManagerImpl::GetGraphicIdsL(
+ TFSBrandElement aElement,
+ const TDesC& aBrandId,
+ TDes& aIconIds )
+ {
+ FUNC_LOG;
+
+ CFSMailBrand* brand = FindMatchingBrandL( aBrandId );
+ if ( brand == NULL )
+ {
+ return KErrNotFound;
+ }
+ return brand->GetGraphicIdsL( aElement, aIconIds );
+ }
+
+// -----------------------------------------------------------------------------
// CFSMailBrandManagerImpl::GetTextL
// -----------------------------------------------------------------------------
TPtrC CFSMailBrandManagerImpl::GetTextL(
--- a/emailservices/emailinstallationinitiator/sis/makeEmailInstallationInitiatorSisx.bat Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailinstallationinitiator/sis/makeEmailInstallationInitiatorSisx.bat Fri Mar 12 15:41:14 2010 +0200
@@ -12,8 +12,7 @@
REM *
REM * Contributors:
REM *
-REM * Description:
-REM * Script that creates and signs Email installation initiator sisx packages
+REM * Description: Script that creates and signs Email installation initiator sisx packages
REM *
@echo #########################################################
Binary file emailservices/emailserver/cmailhandlerplugin/conf/20029F4A.txt has changed
Binary file emailservices/emailserver/cmailhandlerplugin/conf/CommonemailCRKeys.confml has changed
Binary file emailservices/emailserver/cmailhandlerplugin/conf/CommonemailCRKeys_20029F4A.crml has changed
--- a/emailservices/emailserver/cmailhandlerplugin/group/bld.inf Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailserver/cmailhandlerplugin/group/bld.inf Fri Mar 12 15:41:14 2010 +0200
@@ -36,5 +36,15 @@
../rom/cmailhandlerplugin.iby CORE_APP_LAYER_IBY_EXPORT_PATH(cmailhandlerplugin.iby)
../rom/cmailhandlerpluginresources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(cmailhandlerpluginresources.iby)
+// CONFML_EXPORT_PATH defined in platform_paths.hrh APP_LAYER_CONFML
+../conf/CommonemailCRKeys.confml CONFML_EXPORT_PATH(CommonemailCRKeys.confml,s60)
+../conf/CommonemailCRKeys_20029F4A.crml CRML_EXPORT_PATH(CommonemailCRKeys_20029F4A.crml,s60)
+../inc/commonemailcrkeys.h |../../../../inc/commonemailcrkeys.h
+// TEMP fiz for wk05/10 SDK, please remvve after wk07
+../conf/20029F4A.txt /epoc32/winscw/c/private/10202be9/20029F4A.txt
+../conf/20029F4A.txt /epoc32/release/winscw/UDEB/Z/private/10202be9/20029F4A.txt
+../conf/20029F4A.txt /epoc32/release/winscw/UREL/Z/private/10202be9/20029F4A.txt
+../conf/20029F4A.txt /epoc32/data/Z/private/10202BE9/20029F4A.txt
+
--- a/emailservices/emailserver/cmailhandlerplugin/inc/PSSubscriber.h Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailserver/cmailhandlerplugin/inc/PSSubscriber.h Fri Mar 12 15:41:14 2010 +0200
@@ -11,8 +11,7 @@
*
* Contributors:
*
-* Description:
-* Subscriber class for Publish & Subsribe events
+* Description: Subscriber class for Publish & Subsribe events
*
*/
--- a/emailservices/emailserver/cmailhandlerplugin/inc/cmailcpshandler.h Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailserver/cmailhandlerplugin/inc/cmailcpshandler.h Fri Mar 12 15:41:14 2010 +0200
@@ -78,12 +78,6 @@
void UpdateMailboxesL(TInt aInstance, const TDesC& aContentId);
/**
- * Updates external (3rd party) account based on contentId
- * @param aContentId specifies the widget and account related to it
- */
- void UpdateExtAccountL( const TDesC& aContentId );
-
- /**
*
*/
void LaunchWidgetSettingsL( const TDesC& aContentId );
@@ -96,7 +90,7 @@
/**
*
*/
- void LaunchEmailWizardL();
+ void LaunchEmailWizardL( const TDesC& aContentId );
/**
* Launches an application based on the given contentId
* This method is for external (3rd party) accounts
@@ -106,11 +100,6 @@
/**
*
- */
- TBool AssociateWidgetToSetting( const TDesC& aContentId );
-
- /**
- *
*/
void DissociateWidgetFromSettingL( const TDesC& aContentId );
@@ -128,11 +117,6 @@
* Return total number of 3rd party mailboxes in the system
*/
TInt TotalExtMailboxCountL();
-
- /**
- *
- */
- void ManualAccountSelectionL( const TDesC& aContentId );
/**
* Gets correct localised format for time (or date) string
@@ -142,6 +126,16 @@
// From MEmailObserverListener
void EmailObserverEvent( EmailInterface::MEmailData& aData );
+ /**
+ *
+ */
+ void SetWaitingForNewMailbox( const TDesC& aContentId );
+
+ /**
+ *
+ */
+ void CleanWaitingForNewMailbox();
+
protected:
/**
* From CFSNotificationHandlerBase
@@ -228,11 +222,6 @@
const TInt aFirstRow );
/**
- * Handles publishing of connection state icon
- */
- void UpdateConnectStateL( const TInt aMailBoxNumber, const TInt aRowNumber );
-
- /**
* Handles publishing of mailbox icon
*/
void UpdateMailBoxIconL( const TInt aMailBoxNumber,
@@ -245,11 +234,6 @@
void UpdateIndicatorIconL( const TInt aMailBoxNumber,
const TInt aWidgetInstance,
const TInt aRowNumber );
-
- /**
- * Handles publishing of empty message time string
- */
-// void ClearMessageTimeL( const TInt aRowNumber );
// Event handling subroutines
/**
@@ -287,22 +271,6 @@
void HandleMailDeletedEventL( TFSMailMsgId aMailbox, TAny* aParam1, TAny* aParam2 );
/**
- * handles mail changed event
- * @param aMailbox mailbox id
- * @param aParam1 contains event specific parameters
- * @param aParam2 contains event specific parameters
- */
- void HandleMailChangedEventL( TFSMailMsgId aMailbox, TAny* aParam1, TAny* aParam2 );
-
- /**
- * handles new folder event
- * @param aMailbox mailbox id
- * @param aParam1 contains event specific parameters
- * @param aParam2 contains event specific parameters
- */
- void HandleNewFolderEventL( TFSMailMsgId aMailbox, TAny* aParam1, TAny* aParam2 );
-
- /**
* get count of unread messages in inbox
* @param aMailbox mailbox id
*/
@@ -366,7 +334,9 @@
*
*/
void PublishMessageL( TInt aWidgetInstance, CFSMailMessage& aMessage,
- const TDesC& aSenderName, const TDesC& aTime, TInt aFirstRow);
+ const TDesC& aSenderName,
+ const TDesC& aSubject,
+ const TDesC& aTime, TInt aFirstRow);
/**
* Checks if the given message is already know/published
@@ -403,8 +373,6 @@
*/
void SelectAndUpdateExtAccountsL( RPointerArray<CMailExternalAccount>& aAccounts );
- TBool FirstBootL();
-
/**
* Checks whether aAccounts array has entries relating to plugin with id aPluginId
* @param aPluginId 3rd party plugin identifier (implementation uid)
@@ -438,7 +406,10 @@
// local cache of mailbox details
RPointerArray<CMailMailboxDetails> iAccountsArray;
// array of plugin proxies. One plugin proxy handles one 3rd party plugin and its accounts
- RPointerArray<CMailPluginProxy> iExternalPlugins;
+ RPointerArray<CMailPluginProxy> iExternalPlugins;
+ // tells if email wizard is started from widget and it is still running
+ // and to which widget next added account is added.
+ HBufC* iWaitingForNewMailbox;
};
#endif //__CMAILCPSHANDLER_H__
--- a/emailservices/emailserver/cmailhandlerplugin/inc/cmailcpsif.h Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailserver/cmailhandlerplugin/inc/cmailcpsif.h Fri Mar 12 15:41:14 2010 +0200
@@ -61,10 +61,7 @@
*/
void PublishActiveMailboxNameL( const TInt aInstance,
const TInt aRowNumber,
- const TDesC& aMailboxName,
- const TInt aMailBoxCount,
- TFSMailMsgId aMailBoxId,
- TFSMailMsgId aFolderId );
+ const TDesC& aMailboxName);
/**
* Publishes mailbox name to widget and action related to widget
@@ -173,7 +170,7 @@
*
*/
TInt GetWidgetInstanceCount();
-
+
private:
CMailCpsIf( CMailCpsHandler* aMailCpsHandler );
@@ -214,10 +211,7 @@
const TDesC& aContentId,
const TDesC& aTextToAdd,
const TDesC& aKey,
- const TDesC8& aTrigger,
- const TInt aMailBoxCount,
- TFSMailMsgId aMailBoxId,
- TFSMailMsgId aFolderId );
+ const TDesC8& aTrigger);
/**
* Publishes image
@@ -234,7 +228,8 @@
const TDesC8& aKey,
TInt aBitmapId,
TInt aBitmapMaskId,
- TFSMailMsgId aMailBoxId );
+ TFSMailMsgId aMailBoxId,
+ const TDesC& aBrandId );
/**
* Removes a published entity from Content Publishing Service
@@ -246,7 +241,7 @@
*
*/
TInt FindWidgetInstanceId(const TDesC& aContentId);
-
+
/**
* Resets all the published content values on HomeScreen database
*/
@@ -275,8 +270,6 @@
TUint iSetupUid;
// is content allowed to publish
TBool iAllowedToPublish[KMaxMailboxCount];
- // is widget inactive
- TBool iInactive[KMaxMailboxCount];
// From configuration: are homescreen notifications observed or ignored
TBool iIgnoreHsNotifications;
};
--- a/emailservices/emailserver/cmailhandlerplugin/inc/cmailcpsifconsts.h Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailserver/cmailhandlerplugin/inc/cmailcpsifconsts.h Fri Mar 12 15:41:14 2010 +0200
@@ -58,9 +58,26 @@
_LIT(KContTypeSetupIcon, "ct_setup_icon");
_LIT8(KKeySetupIcon, "key_setup_icon");
+_LIT(KContTypeSetupBrandIcon1, "ct_setup_brand_icon_1");
+_LIT8(KKeySetupBrandIcon1, "key_setup_brand_icon_1");
+_LIT(KContTypeSetupBrandIcon2, "ct_setup_brand_icon_2");
+_LIT8(KKeySetupBrandIcon2, "key_setup_brand_icon_2");
+_LIT(KContTypeSetupBrandIcon3, "ct_setup_brand_icon_3");
+_LIT8(KKeySetupBrandIcon3, "key_setup_brand_icon_3");
+_LIT(KContTypeSetupBrandIcon4, "ct_setup_brand_icon_4");
+_LIT8(KKeySetupBrandIcon4, "key_setup_brand_icon_4");
+
+_LIT(KSetupBrand1, "ovi.com");
+_LIT(KSetupBrand2, "yahoo.com");
+_LIT(KSetupBrand3, "hotmail.com");
+_LIT(KSetupBrand4, "gmail.com");
+
_LIT(KContTypeBodyText, "ct_body_text_");
_LIT(KKeyBodyText, "key_body_text_");
+_LIT(KContTypeSubjectText, "ct_subject_text_");
+_LIT(KKeySubjectText, "key_subject_text_");
+
_LIT(KContTypeIndicatorIcon, "ct_indicator_icon_");
_LIT8(KKeyIndicatorIcon, "key_indicator_icon_");
@@ -120,16 +137,14 @@
// constants for requesting notification
_LIT( KPubData, "publisher");
_LIT( KActionName,"notify");
-_LIT8( KDeActive, "deactive");
-_LIT8( KActive, "active");
+_LIT8( KPluginStartup, "pluginstartup");
+_LIT8( KPluginShutdown, "pluginshutdown");
_LIT8( KSuspend , "suspend");
_LIT8( KResume, "resume");
-_LIT8( KInactive, "inactive");
-_LIT( KDeActive16, "deactive");
-_LIT( KActive16, "active");
+_LIT( KPluginStartup16, "pluginstartup");
+_LIT( KPluginShutdown16, "pluginshutdown");
_LIT( KSuspend16, "suspend");
_LIT( KResume16, "resume");
-_LIT( KInactive16, "inactive");
_LIT( KSettings16, "settings");
_LIT( KCPAll, "all");
_LIT8( KExecute, "execute" );
--- a/emailservices/emailserver/cmailhandlerplugin/inc/cmailcpssettings.h Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailserver/cmailhandlerplugin/inc/cmailcpssettings.h Fri Mar 12 15:41:14 2010 +0200
@@ -124,7 +124,8 @@
*
* @return
*/
- TBool AssociateWidgetToSetting( const TDesC& aContentId );
+ void AssociateWidgetToSetting( const TDesC& aContentId,
+ const TFSMailMsgId aMailbox );
/**
*
@@ -256,16 +257,14 @@
void GetExtMailboxNonZeroKeysL( RArray<TUint32>& aKeys );
/**
- *
- * @param aContentId
+ * Find next free CenRep key to store setting.
+ * @param aContentId Id of widget instance
+ */
+ TInt GetSettingToAssociate( const TDesC& aContentId );
+
+ /**
+ * @param aKey
*/
- TBool IsAlreadyAssociated( const TDesC& aContentId );
-
- /**
- *
- */
- TUint32 GetSettingToAssociate();
-
CMailExternalAccount* GetExtMailboxL( TInt aKey );
private: // data
--- a/emailservices/emailserver/cmailhandlerplugin/inc/cmailwidgetcenrepkeysinternal.h Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailserver/cmailhandlerplugin/inc/cmailwidgetcenrepkeysinternal.h Fri Mar 12 15:41:14 2010 +0200
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008 - 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"
@@ -26,9 +26,6 @@
// (see also constants below)
const TUint32 KCmailCPConfiguration = 0x10000001;
-// Key to store content ids of added email widgets
-const TUint32 KCMailContentIdList = 0x10000002;
-
// 1st bit: whether email content publisher listens to commands/events sent by Homescreen framework
// value == 0: default behaviour, events are handled as normal
// value != 0: publisher ignores HS events
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/emailservices/emailserver/cmailhandlerplugin/inc/commonemailcrkeys.h Fri Mar 12 15:41:14 2010 +0200
@@ -0,0 +1,28 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* repository keys to track which mailbox has the latest new email
+*
+*/
+
+#ifndef _COMMONEMAILCRKEYS_H_
+#define _COMMONEMAILCRKEYS_H_
+
+// central repository key for email data
+const TUid KCmailDataRepository = { 0x20029F4A };
+
+// key for display text (mailbox name?) of email indicator popup
+const TUint32 KCmailNewEmailDisplayText = 0x00000001 ;
+
+#endif // _COMMONEMAILCRKEYS_H_
--- a/emailservices/emailserver/cmailhandlerplugin/rom/cmailhandlerplugin.iby Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailserver/cmailhandlerplugin/rom/cmailhandlerplugin.iby Fri Mar 12 15:41:14 2010 +0200
@@ -28,6 +28,8 @@
ECOM_PLUGIN( cmailhandlerplugin.dll, cmailhandlerplugin.rsc )
SCALABLE_IMAGE(APP_BITMAP_DIR,APP_BITMAP_DIR,cmailhandlerplugin)
+data=EPOCROOT##epoc32\data\Z\private\10202BE9\20029F4A.txt private\10202BE9\20029F4A.txt
+
#endif //FF_EMAIL_FRAMEWORK
--- a/emailservices/emailserver/cmailhandlerplugin/src/PSSubscriber.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailserver/cmailhandlerplugin/src/PSSubscriber.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -11,8 +11,7 @@
*
* Contributors:
*
-* Description:
-* Subscriber class for Publish & Subsribe events
+* Description: Subscriber class for Publish & Subsribe events
*/
#include <e32svr.h>
--- a/emailservices/emailserver/cmailhandlerplugin/src/cmailcpshandler.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailserver/cmailhandlerplugin/src/cmailcpshandler.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2008 - 2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008 - 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"
@@ -22,8 +22,6 @@
#include <AknUtils.h>
#include <apgcli.h>
#include <centralrepository.h>
-#include <starterdomaincrkeys.h>
-#include <startupdomainpskeys.h>
#include <emailobserverinterface.hrh>
#include <emailobserverplugin.h>
#include <memaildata.h>
@@ -50,7 +48,9 @@
// CMailCpsHandler::CMailCpsHandler
// ---------------------------------------------------------
//
-CMailCpsHandler::CMailCpsHandler( MFSNotificationHandlerMgr& aOwner ) : CFSNotificationHandlerBase( aOwner )
+CMailCpsHandler::CMailCpsHandler( MFSNotificationHandlerMgr& aOwner ):
+ CFSNotificationHandlerBase( aOwner ),
+ iWaitingForNewMailbox(NULL)
{
FUNC_LOG;
}
@@ -78,9 +78,9 @@
FUNC_LOG;
CFSNotificationHandlerBase::ConstructL();
-
+
iEnv = CEikonEnv::Static( );
-
+
SetObserving( ETrue );
// Instantiate helper classes
@@ -128,7 +128,7 @@
// Get current configuration from settings interface,
// and pass it on to actual publisher interface
iLiwIf->SetConfiguration( iSettings->Configuration() );
-
+
TInt iiMax( iSettings->Mailboxes().Count() );
for ( TInt ii = 0; ii < iiMax; ii++ )
{
@@ -152,24 +152,24 @@
CleanupStack::PushL( mailbox );
CMailMailboxDetails* mailboxDetails = CreateMailboxDetailsL( *mailbox );
CleanupStack::PushL( mailboxDetails );
-
+
TBuf<KMaxDescLen> cid;
TInt next(1);
// Check if same mailbox is already in iAccountsArray once or more
for ( TInt i = 0; i < iAccountsArray.Count(); i++ )
- {
+ {
TInt id = (TInt)iAccountsArray[i]->iMailboxId.Id();
if (id == mailboxId)
{
next++;
}
}
- iSettings->GetContentId(mailboxId, next, cid);
+ iSettings->GetContentId(mailboxId, next, cid);
mailboxDetails->SetWidgetInstance(cid);
iAccountsArray.AppendL( mailboxDetails );
- CleanupStack::Pop( mailboxDetails );
- CleanupStack::PopAndDestroy( mailbox );
+ CleanupStack::Pop( mailboxDetails );
+ CleanupStack::PopAndDestroy( mailbox );
}
}
}
@@ -296,7 +296,7 @@
{
FUNC_LOG;
// Create instance to return
- CMailMailboxDetails* details =
+ CMailMailboxDetails* details =
CMailMailboxDetails::NewL( aMailbox.GetId(), aMailbox.GetName() );
return details;
}
@@ -314,6 +314,7 @@
TRAP_IGNORE( InitializeExternalAccountsL() );
// Update widget contents after settings change
TRAP_IGNORE( UpdateFullL() );
+ CleanWaitingForNewMailbox();
}
// ---------------------------------------------------------
@@ -339,31 +340,54 @@
void CMailCpsHandler::UpdateMailboxesL(TInt aInstance, const TDesC& aContentId)
{
FUNC_LOG;
- TInt row(1); // start from first row
- TInt mailbox(0);
- TBool found( EFalse );
- // try to find mailbox with matching contentId
- for ( mailbox = 0; mailbox < iAccountsArray.Count(); mailbox++ )
+ // Look up 3rd party plugin that handles this account
+ CMailPluginProxy* plugin = GetExtPluginL( aContentId );
+ if ( plugin ) // handle external 3rd party accounts
{
- if ( !aContentId.Compare( *iAccountsArray[mailbox]->iWidgetInstance ) )
- {
- INFO_1("iAccountsArray.Count() == %d", iAccountsArray.Count());
- found = ETrue;
- break;
- }
+ // Publish its data
+ plugin->UpdateAccountL( aContentId );
}
+ else // handle internal accounts
+ {
+ TInt row(1); // start from first row
+ TInt mailbox(0);
+ TBool found( EFalse );
+ // try to find mailbox with matching contentId
+ for ( mailbox = 0; mailbox < iAccountsArray.Count(); mailbox++ )
+ {
+ if ( !aContentId.Compare( *iAccountsArray[mailbox]->iWidgetInstance ) )
+ {
+ INFO_1("iAccountsArray.Count() == %d", iAccountsArray.Count());
+ found = ETrue;
+ break;
+ }
+ }
- // if contentId found from array, update the mailbox
- if ( found )
- {
- // Update fields from left to right
- UpdateMailBoxIconL( mailbox, aInstance, row );
- UpdateMailboxNameL( mailbox, aInstance, row );
- UpdateIndicatorIconL( mailbox, aInstance, row );
- row++;
- UpdateMessagesL( mailbox, aInstance, 1, row);
- row++;
- UpdateMessagesL( mailbox, aInstance, 2, row);
+ // if contentId found from array, update the mailbox
+ if ( found )
+ {
+ // Update fields from left to right
+ UpdateMailBoxIconL( mailbox, aInstance, row );
+ UpdateMailboxNameL( mailbox, aInstance, row );
+ UpdateIndicatorIconL( mailbox, aInstance, row );
+ row++;
+ UpdateMessagesL( mailbox, aInstance, 1, row);
+ row++;
+ UpdateMessagesL( mailbox, aInstance, 2, row);
+ }
+ else
+ {
+ // Clean mailbox name
+ iLiwIf->PublishActiveMailboxNameL( aInstance, 1, KNullDesC );
+ // Clean mailbox icon
+ TFSMailMsgId mailBoxId; // id not essential here
+ iLiwIf->PublishMailboxIconL( aInstance, 1, KNullIcon, mailBoxId);
+ // Clean indicator icon
+ iLiwIf->PublishIndicatorIconL( aInstance, 1, KNullIcon);
+ // Clean message rows
+ UpdateEmptyMessagesL( aInstance, 2 );
+ UpdateEmptyMessagesL( aInstance, 3 );
+ }
}
}
@@ -384,7 +408,7 @@
mailBoxId = iAccountsArray[aMailBoxNumber]->iMailboxId;
CFSMailBox* mailbox( NULL );
mailbox = MailClient().GetMailBoxByUidL( mailBoxId );
-
+
if(mailbox)
{
mailBoxFound = ETrue;
@@ -393,7 +417,7 @@
TBuf<KMaxDescLen> accountName;
accountName.Append(*iAccountsArray[aMailBoxNumber]->iMailboxName);
-
+
TInt unreadCount(GetUnreadCountL(iAccountsArray[aMailBoxNumber]->iMailboxId));
if ( unreadCount > 0 )
{
@@ -403,21 +427,19 @@
CDesCArrayFlat* strings = new CDesCArrayFlat( 1 );
CleanupStack::PushL( strings );
strings->AppendL( accountName ); // replace "%0U" with mailbox name
-
+
CArrayFix<TInt>* ints = new(ELeave) CArrayFixFlat<TInt>( 1 );
CleanupStack::PushL( ints );
ints->AppendL( unreadCount ); // replace "%1N" with number of unread messages
-
- HBufC* mailboxAndCount = StringLoader::LoadLC( R_EMAILWIDGET_TEXT_MAILBOX_AND_MAILCOUNT,
+
+ HBufC* mailboxAndCount = StringLoader::LoadLC( R_EMAILWIDGET_TEXT_MAILBOX_AND_MAILCOUNT,
*strings,
*ints );
-
+
iLiwIf->PublishActiveMailboxNameL(
aWidgetInstance,
- aRowNumber, *mailboxAndCount,
- iAccountsArray.Count(),
- mailBoxId, folderId);
-
+ aRowNumber, *mailboxAndCount);
+
CleanupStack::PopAndDestroy(mailboxAndCount);
CleanupStack::PopAndDestroy(ints);
CleanupStack::PopAndDestroy(strings);
@@ -425,12 +447,10 @@
else
{
// show only mailbox name
-
+
iLiwIf->PublishActiveMailboxNameL(
aWidgetInstance,
- aRowNumber, accountName,
- iAccountsArray.Count(),
- mailBoxId, folderId);
+ aRowNumber, accountName);
}
}
}
@@ -438,12 +458,9 @@
{
// Publishing empty descriptor for rows that should not contain
// anything on widget UI.
- iLiwIf->PublishActiveMailboxNameL( aWidgetInstance,
+ iLiwIf->PublishActiveMailboxNameL( aWidgetInstance,
aRowNumber,
- KNullDesC,
- NULL,
- mailBoxId,
- folderId );
+ KNullDesC);
}
}
@@ -457,7 +474,7 @@
const TInt aMessageNumber,
const TInt aRow )
{
- FUNC_LOG;
+ FUNC_LOG;
if ( aMailBoxNumber < iAccountsArray.Count() )
{
@@ -479,7 +496,7 @@
CleanupStack::PushL( folder );
TInt msgCount = folder->GetMessageCount();
-
+
if(msgCount<1 || (msgCount == 1 && aRow == 3))
{
UpdateEmptyMessagesL( aWidgetInstance, aRow );
@@ -496,22 +513,22 @@
TFSMailDetails details( EFSMsgDataEnvelope );
RArray<TFSMailSortCriteria> sorting;
CleanupClosePushL( sorting );
-
+
TFSMailSortCriteria sortCriteria;
sortCriteria.iField = EFSMailSortByDate;
sortCriteria.iOrder = EFSMailDescending;
sorting.Append( sortCriteria );
- // List all or maximum number of messages
+ // List all or maximum number of messages
MFSMailIterator* iterator = folder->ListMessagesL( details, sorting );
- CleanupDeletePushL( iterator ); // standard CleanupStack::PushL does not work with non-C-class pointer
-
+ CleanupDeletePushL( iterator ); // standard CleanupStack::PushL does not work with non-C-class pointer
+
TFSMailMsgId dummy;
iterator->NextL( dummy, aMessageNumber, folderMessages);
TInt count (folderMessages.Count());
if(!count || (count == 1 && aRow == 3))
{
UpdateEmptyMessagesL( aWidgetInstance, aRow );
-
+
CleanupStack::PopAndDestroy( iterator );
CleanupStack::PopAndDestroy( &sorting );
CleanupStack::PopAndDestroy( &folderMessages );
@@ -527,6 +544,8 @@
// Get sender information
TBuf<KMaxDescLen> sender( NULL );
+ TBuf<KMaxDescLen> subject( NULL );
+ subject.Append(msg->GetSubject());
CFSMailAddress* fromAddress = msg->GetSender();
if ( fromAddress )
{
@@ -539,20 +558,21 @@
sender.Append(fromAddress->GetEmailAddress());
}
}
-
- // Get message time and format it correctly
+
+ // Get message time and format it correctly
TTime msgTime = msg->GetDate();
HBufC* timeString( NULL );
timeString = GetMessageTimeStringL( msgTime );
- CleanupDeletePushL( timeString );
-
- // Publish message details
- PublishMessageL( aWidgetInstance,
+ CleanupDeletePushL( timeString );
+
+ // Publish message details
+ PublishMessageL( aWidgetInstance,
*msg,
sender,
+ subject,
*timeString,
aRow );
-
+
CleanupStack::PopAndDestroy( timeString );
CleanupStack::PopAndDestroy( msg );
CleanupStack::PopAndDestroy( iterator );
@@ -575,43 +595,43 @@
// Get current local time
TTime currentTime;
currentTime.HomeTime();
-
+
// Get universal time offset and add it to message time
- TLocale locale;
+ TLocale locale;
TTimeIntervalSeconds universalTimeOffset( locale.UniversalTimeOffset() );
- aMessageTime += universalTimeOffset;
-
+ aMessageTime += universalTimeOffset;
+
// If daylight saving is on, add one hour offset to message time
if ( locale.QueryHomeHasDaylightSavingOn() )
{
TTimeIntervalHours daylightSaving( 1 );
aMessageTime += daylightSaving;
}
-
+
// Get datetime objects and compare dates
TDateTime currentDate = currentTime.DateTime();
TDateTime messageDate = aMessageTime.DateTime();
HBufC* formatString( NULL );
-
- if ( currentDate.Year() == messageDate.Year()
- && currentDate.Month() == messageDate.Month()
+
+ if ( currentDate.Year() == messageDate.Year()
+ && currentDate.Month() == messageDate.Month()
&& currentDate.Day() == messageDate.Day())
{
// Message arrived today
- formatString = StringLoader::LoadLC( R_QTN_TIME_USUAL_WITH_ZERO );
+ formatString = StringLoader::LoadLC( R_QTN_TIME_USUAL_WITH_ZERO );
}
else
{
// Message arrived earlier than today
formatString = StringLoader::LoadLC( R_QTN_DATE_WITHOUT_YEAR_WITH_ZERO );
}
-
+
// Format time string using chosen time or date formatString
TBuf<KMaxShortDateFormatSpec*2> timeString;
TRAP_IGNORE( aMessageTime.FormatL( timeString, formatString->Des() ) );
CleanupStack::PopAndDestroy( formatString );
// If format fails, result is empty
-
+
HBufC* result = timeString.Alloc();
TPtr ptr = result->Des();
AknTextUtils::DisplayTextLanguageSpecificNumberConversion( ptr );
@@ -625,7 +645,8 @@
// ---------------------------------------------------------
//
void CMailCpsHandler::PublishMessageL( TInt aWidgetInstance, CFSMailMessage& aMessage,
- const TDesC& aSenderName, const TDesC& aTime, TInt aRow )
+ const TDesC& aSenderName, const TDesC& aSubject,
+ const TDesC& aTime, TInt aRow )
{
FUNC_LOG;
@@ -633,6 +654,7 @@
iLiwIf->PublishMailboxIconL( aWidgetInstance, aRow, GetMailIcon( &aMessage ), msgId );
iLiwIf->PublishMailDetailL( aWidgetInstance, aRow, aSenderName, ESender );
+ iLiwIf->PublishMailDetailL( aWidgetInstance, aRow, aSubject, ESubject );
iLiwIf->PublishMailDetailL( aWidgetInstance, aRow, aTime, ETime );
}
@@ -644,16 +666,22 @@
void CMailCpsHandler::UpdateEmptyMessagesL( const TInt aWidgetInstance,
const TInt aRow )
{
- FUNC_LOG;
-
+ FUNC_LOG;
+
TFSMailMsgId mailBoxId; // id not essential here
-
+
iLiwIf->PublishMailDetailL(
aWidgetInstance,
aRow,
KNullDes,
ESender);
+ iLiwIf->PublishMailDetailL(
+ aWidgetInstance,
+ aRow,
+ KNullDes,
+ ESubject);
+
iLiwIf->PublishMailboxIconL(
aWidgetInstance,
aRow,
@@ -662,66 +690,42 @@
iLiwIf->PublishMailDetailL(
aWidgetInstance,
- aRow,
+ aRow,
KNullDes,
ETime);
}
-/*
-// ---------------------------------------------------------
-// CMailCpsHandler::UpdateConnectStateL
-// ---------------------------------------------------------
-//
-void CMailCpsHandler::UpdateConnectStateL( const TInt aMailBoxNumber, const TInt aRowNumber )
- {
- FUNC_LOG;
- if ( aMailBoxNumber < iAccountsArray.Count() )
- {
- TFSMailMsgId mailBoxId;
- mailBoxId = iAccountsArray[aMailBoxNumber]->iMailboxId;
- CFSMailBox* mailbox( NULL );
- mailbox = MailClient().GetMailBoxByUidL( mailBoxId );
- if(mailbox)
- {
- iLiwIf->PublishConnectIconL(mailbox->GetMailBoxStatus(), aRowNumber);
- }
- }
- else
- {
- iLiwIf->PublishConnectIconL( EFSMailBoxOffline, aRowNumber );
- }
- }
-*/
+
// ---------------------------------------------------------
// CMailCpsHandler::UpdateMailBoxIconL
// ---------------------------------------------------------
//
-void CMailCpsHandler::UpdateMailBoxIconL( const TInt aMailBoxNumber,
+void CMailCpsHandler::UpdateMailBoxIconL( const TInt aMailBoxNumber,
const TInt aWidgetInstance,
const TInt aRowNumber )
{
FUNC_LOG;
-
+
TFSMailMsgId mailBoxId; // id required only for getting branded mailbox icon
-
+
if ( aMailBoxNumber < iAccountsArray.Count() )
{
mailBoxId = iAccountsArray[aMailBoxNumber]->iMailboxId;
- iLiwIf->PublishMailboxIconL( aWidgetInstance,
+ iLiwIf->PublishMailboxIconL( aWidgetInstance,
aRowNumber,
EMbmCmailhandlerpluginQgn_indi_cmail_drop_email_account,
mailBoxId);
}
else
- {
+ {
iLiwIf->PublishMailboxIconL( aWidgetInstance, aRowNumber, KNullIcon, mailBoxId);
}
}
-
+
// ---------------------------------------------------------
// CMailCpsHandler::UpdateIndicatorIconL
// ---------------------------------------------------------
//
-void CMailCpsHandler::UpdateIndicatorIconL( const TInt aMailBoxNumber,
+void CMailCpsHandler::UpdateIndicatorIconL( const TInt aMailBoxNumber,
const TInt aWidgetInstance,
const TInt aRowNumber )
@@ -731,51 +735,35 @@
if ( aMailBoxNumber < iAccountsArray.Count() )
{
TFSMailMsgId mailBoxId;
- mailBoxId = iAccountsArray[aMailBoxNumber]->iMailboxId;
-
+ mailBoxId = iAccountsArray[aMailBoxNumber]->iMailboxId;
+
if ( iSettings->GetNewMailState( mailBoxId ) )
{
iLiwIf->PublishIndicatorIconL( aWidgetInstance,
aRowNumber,
EMbmCmailhandlerpluginQgn_stat_message_mail_uni );
}
-
+
else if( !IsOutboxEmptyL(mailBoxId) )
{
iLiwIf->PublishIndicatorIconL( aWidgetInstance,
- aRowNumber,
+ aRowNumber,
EMbmCmailhandlerpluginQgn_indi_cmail_outbox_msg);
}
else
- {
+ {
iLiwIf->PublishIndicatorIconL( aWidgetInstance,
aRowNumber,
KNullIcon);
}
}
else
- {
+ {
iLiwIf->PublishIndicatorIconL( aWidgetInstance,
aRowNumber,
KNullIcon);
- }
+ }
}
-
-/*
-// ---------------------------------------------------------
-// CMailCpsHandler::ClearMessageTimeL
-// ---------------------------------------------------------
-//
-void CMailCpsHandler::ClearMessageTimeL( const TInt aRowNumber )
- {
- FUNC_LOG;
-
- iLiwIf->PublishMailDetailL(
- aRowNumber,
- KNullDes,
- ETime);
- }
-*/
// ---------------------------------------------------------
// CMailCpsHandler::CapabilitiesToContinueL
@@ -830,7 +818,7 @@
{
case TFSEventNewMailbox:
{
-// HandleNewMailboxEventL( aMailbox );
+ HandleNewMailboxEventL( aMailbox );
break;
}
case TFSEventMailboxRenamed:
@@ -845,12 +833,6 @@
UpdateFullL();
break;
}
- case TFSEventMailboxSettingsChanged:
- {
-// HandleMailboxDeletedEventL( aMailbox );
-// HandleNewMailboxEventL( aMailbox );
- break;
- }
case TFSEventNewMail:
{
HandleNewMailEventL( aMailbox, aParam1, aParam2 );
@@ -863,20 +845,10 @@
UpdateFullL();
break;
}
- case TFSEventMailChanged:
- {
- HandleMailChangedEventL( aMailbox, aParam1, aParam2 );
- break;
- }
- case TFSEventNewFolder:
- {
- HandleNewFolderEventL( aMailbox, aParam1, aParam2 );
- break;
- }
default:
{
break;
- }
+ }
}
}
@@ -887,40 +859,10 @@
void CMailCpsHandler::HandleNewMailboxEventL( const TFSMailMsgId aMailbox )
{
FUNC_LOG;
-
- // Check that max mailbox count is not already reached
- const TInt iiMax( iAccountsArray.Count() );
- if( iiMax >= iSettings->MaxMailboxCount() )
+ if (iWaitingForNewMailbox)
{
- return;
- }
-
- // Check that mailbox is not already in widget
- for ( TInt ii = 0; ii < iiMax; ii++ )
- {
- if( iAccountsArray[ii]->iMailboxId.Id() == aMailbox.Id() )
- {
- return;
- }
+ iSettings->AssociateWidgetToSetting( iWaitingForNewMailbox->Des(), aMailbox );
}
-
- CFSMailBox* mailbox( NULL );
- mailbox = MailClient().GetMailBoxByUidL( aMailbox );
- if ( !mailbox )
- {
- return; // nothing that could be done
- }
- else
- {
- CleanupStack::PushL( mailbox );
- CMailMailboxDetails* mailboxDetails = CreateMailboxDetailsL( *mailbox );
- CleanupStack::PushL( mailboxDetails );
- iAccountsArray.AppendL( mailboxDetails );
- CleanupStack::Pop( mailboxDetails );
- CleanupStack::PopAndDestroy( mailbox );
- }
-
- iSettings->AddMailboxL( aMailbox );
}
// ---------------------------------------------------------
@@ -980,15 +922,15 @@
TFSMailMsgId aMailbox, TAny* aParam1, TAny* aParam2 )
{
FUNC_LOG;
-
+
iSettings->ToggleWidgetNewMailIconL( ETrue, aMailbox );
-
+
// Basic assertions
if ( !aParam1 || !aParam2 )
{
User::Leave( KErrArgument );
}
-
+
// Find mailbox instance from array
CMailMailboxDetails* mailbox = FindMailboxDetails( aMailbox );
if ( !mailbox )
@@ -1030,7 +972,7 @@
{
msgId = (*newEntries)[ii];
- msg = MailClient().GetMessageByUidL(
+ msg = MailClient().GetMessageByUidL(
aMailbox, *parentFolder, (*newEntries)[ii], EFSMsgDataEnvelope );
if ( !msg )
{
@@ -1053,7 +995,7 @@
CleanupStack::PopAndDestroy( msg );
continue;
}
-
+
CMailMessageDetails* messageDetails = CMailMessageDetails::NewL(
msg->GetMessageId(),
mailbox,
@@ -1091,17 +1033,17 @@
{
User::Leave( KErrArgument );
}
-
+
// Find correct mailbox
CMailMailboxDetails* mailbox = FindMailboxDetails( aMailbox );
if ( !mailbox )
{
- //<Cmail>
+ //<Cmail>
CleanupStack::PopAndDestroy( entries );
//<Cmail>
return;
}
-
+
const TInt iiMax( entries->Count() );
const TInt jjMax( mailbox->iMessageDetailsArray.Count() );
// Loop through entries in the array
@@ -1129,26 +1071,6 @@
}
// ---------------------------------------------------------
-// CMailCpsHandler::HandleMailChangedEventL
-// ---------------------------------------------------------
-//
-void CMailCpsHandler::HandleMailChangedEventL(
- TFSMailMsgId /*aMailbox*/, TAny* /*aParam1*/, TAny* /*aParam2*/ )
- {
- FUNC_LOG;
- }
-
-// ---------------------------------------------------------
-// CMailCpsHandler::HandleNewFolderEventL
-// ---------------------------------------------------------
-//
-void CMailCpsHandler::HandleNewFolderEventL(
- TFSMailMsgId /*aMailbox*/, TAny* /*aParam1*/, TAny* /*aParam2*/ )
- {
- FUNC_LOG;
- }
-
-// ---------------------------------------------------------
// CMailCpsHandler::GetUnreadCountL
// ---------------------------------------------------------
//
@@ -1159,7 +1081,7 @@
TInt unread (0);
mailbox = MailClient().GetMailBoxByUidL( aMailbox );
if(mailbox)
- {
+ {
TFSMailMsgId folderId( mailbox->GetStandardFolderId( EFSInbox ) );
// Check that folder is correct
CFSMailFolder* folder = MailClient().GetFolderByUidL( aMailbox, folderId );
@@ -1168,11 +1090,11 @@
return KErrNotFound;
}
CleanupStack::PushL( folder );
-
+
unread = folder->GetUnreadCount();
CleanupStack::PopAndDestroy( folder );
-
+
if (unread > KMaxUnreadCount)
{
unread = KMaxUnreadCount;
@@ -1193,7 +1115,7 @@
TInt unseen (0);
mailbox = MailClient().GetMailBoxByUidL( aMailbox );
if(mailbox)
- {
+ {
TFSMailMsgId folderId( mailbox->GetStandardFolderId( EFSInbox ) );
// Check that folder is correct
CFSMailFolder* folder = MailClient().GetFolderByUidL( aMailbox, folderId );
@@ -1202,11 +1124,11 @@
return KErrNotFound;
}
CleanupStack::PushL( folder );
-
+
unseen = folder->GetUnseenCount();
CleanupStack::PopAndDestroy( folder );
-
+
if (unseen > KMaxUnreadCount)
{
unseen = KMaxUnreadCount;
@@ -1228,7 +1150,7 @@
TInt msgCount(0);
mailbox = MailClient().GetMailBoxByUidL( aMailbox );
if(mailbox)
- {
+ {
TFSMailMsgId folderId( mailbox->GetStandardFolderId( EFSOutbox ) );
// Check that folder is correct
CFSMailFolder* folder = MailClient().GetFolderByUidL( aMailbox, folderId );
@@ -1237,7 +1159,7 @@
return KErrNotFound;
}
CleanupStack::PushL( folder );
-
+
msgCount = folder->GetMessageCount();
if ( msgCount<1 )
@@ -1245,37 +1167,40 @@
CleanupStack::PopAndDestroy( folder );
return ret;
}
-
+
TFSMailDetails details( EFSMsgDataEnvelope );
RArray<TFSMailSortCriteria> sorting;
CleanupClosePushL( sorting );
TFSMailSortCriteria sortCriteria;
sortCriteria.iField = EFSMailDontCare;
sortCriteria.iOrder = EFSMailDescending;
- sorting.Append( sortCriteria );
+ sorting.Append( sortCriteria );
// List all or maximum number of messages
MFSMailIterator* iterator = folder->ListMessagesL( details, sorting );
- CleanupStack::PopAndDestroy( &sorting );
+ CleanupStack::PopAndDestroy( &sorting );
CleanupDeletePushL( iterator );
-
+
RPointerArray<CFSMailMessage> messages;
CleanupClosePushL( messages );
- TInt amount( msgCount );
- iterator->NextL( TFSMailMsgId(), amount, messages );
-
- for (TInt i = 0; i < msgCount; i++)
+ iterator->NextL( TFSMailMsgId(), msgCount, messages );
+
+ TInt arrayCount(messages.Count());
+ for (TInt i = 0; i < arrayCount; i++)
{
- TFSMailMsgId msgId = messages[0]->GetMessageId();
+ TFSMailMsgId msgId = messages[i]->GetMessageId();
CFSMailMessage* msg( NULL );
msg = MailClient().GetMessageByUidL( aMailbox, folderId, msgId, EFSMsgDataEnvelope );
- CleanupDeletePushL( msg );
- TFSMailMsgId mailboxId = msg->GetMailBoxId();
- CleanupStack::PopAndDestroy( msg );
-
- if (mailboxId == aMailbox)
+ if (msg)
{
- ret = EFalse;
- break;
+ CleanupDeletePushL( msg );
+ TFSMailMsgId mailboxId = msg->GetMailBoxId();
+ CleanupStack::PopAndDestroy( msg );
+
+ if (mailboxId == aMailbox)
+ {
+ ret = EFalse;
+ break;
+ }
}
}
@@ -1330,14 +1255,14 @@
// -----------------------------------------------------------------------------
TInt CMailCpsHandler::GetUnreadMsgIcon( CFSMailMessage* aMsg )
{
- FUNC_LOG;
+ FUNC_LOG;
TInt icon(EMbmCmailhandlerpluginQgn_indi_cmail_unread);
// Unread calendar invitation
if ( aMsg->IsFlagSet( EFSMsgFlag_CalendarMsg ))
{
icon = GetUnreadCalMsgIcon( aMsg );
- }
+ }
else // Normal message icons
{
// Check whether msg has attachment or not
@@ -1371,10 +1296,10 @@
else
{
icon = EMbmCmailhandlerpluginQgn_indi_cmail_unread_attach_low_prio;
- }
+ }
}
else // Normal priority, has attachments
- {
+ {
if ( aMsg->IsFlagSet( EFSMsgFlag_Answered ) )
{
icon = EMbmCmailhandlerpluginQgn_indi_cmail_unread_replied_attach;
@@ -1389,7 +1314,7 @@
}
}
}
-
+
else // No attachments
{
if ( aMsg->IsFlagSet( EFSMsgFlag_Important )) // High priority, no attachments
@@ -1405,7 +1330,7 @@
else
{
icon = EMbmCmailhandlerpluginQgn_indi_cmail_unread_high_prio;
- }
+ }
}
else if ( aMsg->IsFlagSet( EFSMsgFlag_Low ) ) // Low priority, no attachments
{
@@ -1420,10 +1345,10 @@
else
{
icon = EMbmCmailhandlerpluginQgn_indi_cmail_unread_low_prio;
- }
+ }
}
else // Normal priority, no attachments
- {
+ {
if ( aMsg->IsFlagSet( EFSMsgFlag_Answered ) )
{
icon = EMbmCmailhandlerpluginQgn_indi_cmail_unread_replied;
@@ -1433,7 +1358,7 @@
icon = EMbmCmailhandlerpluginQgn_indi_cmail_unread_forwarded;
}
}
- }
+ }
}
return icon;
}
@@ -1443,7 +1368,7 @@
// -----------------------------------------------------------------------------
TInt CMailCpsHandler::GetReadMsgIcon( CFSMailMessage* aMsg )
{
- FUNC_LOG;
+ FUNC_LOG;
TInt icon(EMbmCmailhandlerpluginQgn_indi_cmail_read);
if ( aMsg->IsFlagSet( EFSMsgFlag_CalendarMsg ))
@@ -1468,7 +1393,7 @@
else
{
icon = EMbmCmailhandlerpluginQgn_indi_cmail_read_attach_high_prio;
- }
+ }
}
else if ( aMsg->IsFlagSet( EFSMsgFlag_Low ) ) // Low priority, has attachments
{
@@ -1483,10 +1408,10 @@
else
{
icon = EMbmCmailhandlerpluginQgn_indi_cmail_read_attach_low_prio;
- }
+ }
}
else // Normal priority, has attachments
- {
+ {
if ( aMsg->IsFlagSet( EFSMsgFlag_Answered ) )
{
icon = EMbmCmailhandlerpluginQgn_indi_cmail_read_replied_attach;
@@ -1498,8 +1423,8 @@
else
{
icon = EMbmCmailhandlerpluginQgn_indi_cmail_read_attach;
- }
- }
+ }
+ }
}
else // No attachments
{
@@ -1516,7 +1441,7 @@
else
{
icon = EMbmCmailhandlerpluginQgn_indi_cmail_read_high_prio;
- }
+ }
}
else if ( aMsg->IsFlagSet( EFSMsgFlag_Low ) ) // Low priority, no attachments
{
@@ -1531,10 +1456,10 @@
else
{
icon = EMbmCmailhandlerpluginQgn_indi_cmail_read_low_prio;
- }
+ }
}
else // Normal priority, no attachments
- {
+ {
if ( aMsg->IsFlagSet( EFSMsgFlag_Answered ) )
{
icon = EMbmCmailhandlerpluginQgn_indi_cmail_read_replied;
@@ -1554,42 +1479,42 @@
// -----------------------------------------------------------------------------
TInt CMailCpsHandler::GetUnreadCalMsgIcon( CFSMailMessage* aMsg )
{
- FUNC_LOG;
+ FUNC_LOG;
TInt icon(0);
if ( aMsg->IsFlagSet( EFSMsgFlag_Important ) )
{
if ( aMsg->IsFlagSet( EFSMsgFlag_Attachments ) )
{
- icon = EMbmCmailhandlerpluginQgn_indi_cmail_calendar_event_unread_attachments_high_prio ;
+ icon = EMbmCmailhandlerpluginQgn_indi_cmail_calendar_event_unread_attachments_high_prio ;
}
- else
+ else
{
- icon = EMbmCmailhandlerpluginQgn_indi_cmail_calendar_event_unread_high_prio;
- }
+ icon = EMbmCmailhandlerpluginQgn_indi_cmail_calendar_event_unread_high_prio;
+ }
}
else if ( aMsg->IsFlagSet( EFSMsgFlag_Low ) )
{
if ( aMsg->IsFlagSet( EFSMsgFlag_Attachments ) )
{
- icon = EMbmCmailhandlerpluginQgn_indi_cmail_calendar_event_unread_attachments_low_prio;
+ icon = EMbmCmailhandlerpluginQgn_indi_cmail_calendar_event_unread_attachments_low_prio;
}
else
{
- icon = EMbmCmailhandlerpluginQgn_indi_cmail_calendar_event_unread_low_prio;
- }
+ icon = EMbmCmailhandlerpluginQgn_indi_cmail_calendar_event_unread_low_prio;
+ }
}
else
{
if ( aMsg->IsFlagSet( EFSMsgFlag_Attachments ) )
{
- icon = EMbmCmailhandlerpluginQgn_indi_cmail_calendar_event_unread_attachments;
+ icon = EMbmCmailhandlerpluginQgn_indi_cmail_calendar_event_unread_attachments;
}
else
{
- icon = EMbmCmailhandlerpluginQgn_indi_cmail_calendar_event_unread;
- }
- }
+ icon = EMbmCmailhandlerpluginQgn_indi_cmail_calendar_event_unread;
+ }
+ }
return icon;
}
@@ -1599,42 +1524,42 @@
// -----------------------------------------------------------------------------
TInt CMailCpsHandler::GetReadCalMsgIcon( CFSMailMessage* aMsg )
{
- FUNC_LOG;
+ FUNC_LOG;
TInt icon(0);
if ( aMsg->IsFlagSet( EFSMsgFlag_Important ) )
{
if ( aMsg->IsFlagSet( EFSMsgFlag_Attachments ) )
{
- icon = EMbmCmailhandlerpluginQgn_indi_cmail_calendar_event_read_attachments_high_prio ;
+ icon = EMbmCmailhandlerpluginQgn_indi_cmail_calendar_event_read_attachments_high_prio ;
}
- else
+ else
{
- icon = EMbmCmailhandlerpluginQgn_indi_cmail_calendar_event_read_high_prio;
- }
+ icon = EMbmCmailhandlerpluginQgn_indi_cmail_calendar_event_read_high_prio;
+ }
}
else if ( aMsg->IsFlagSet( EFSMsgFlag_Low ) )
{
if ( aMsg->IsFlagSet( EFSMsgFlag_Attachments ) )
{
- icon = EMbmCmailhandlerpluginQgn_indi_cmail_calendar_event_read_attachments_low_prio;
+ icon = EMbmCmailhandlerpluginQgn_indi_cmail_calendar_event_read_attachments_low_prio;
}
else
{
- icon = EMbmCmailhandlerpluginQgn_indi_cmail_calendar_event_read_low_prio;
- }
+ icon = EMbmCmailhandlerpluginQgn_indi_cmail_calendar_event_read_low_prio;
+ }
}
else
{
if ( aMsg->IsFlagSet( EFSMsgFlag_Attachments ) )
{
- icon = EMbmCmailhandlerpluginQgn_indi_cmail_calendar_event_read_attachments;
+ icon = EMbmCmailhandlerpluginQgn_indi_cmail_calendar_event_read_attachments;
}
else
{
- icon = EMbmCmailhandlerpluginQgn_indi_cmail_calendar_event_read;
- }
- }
+ icon = EMbmCmailhandlerpluginQgn_indi_cmail_calendar_event_read;
+ }
+ }
return icon;
}
@@ -1660,7 +1585,7 @@
{
return EFalse;
}
-
+
return ETrue;
}
@@ -1688,7 +1613,7 @@
//
void CMailCpsHandler::LaunchWidgetSettingsL( const TDesC& aContentId )
{
- FUNC_LOG;
+ FUNC_LOG;
RApaLsSession appArcSession;
CleanupClosePushL( appArcSession );
@@ -1713,11 +1638,12 @@
commandLine->SetCommandL( EApaCommandRun );
commandLine->SetProcessEnvironmentL(process);
CleanupStack::PopAndDestroy(commandLine);
-
+
process.Resume();
- process.Close();
-
- CleanupStack::PopAndDestroy(&appArcSession);
+ process.Close();
+
+ CleanupStack::PopAndDestroy(&appArcSession);
+ SetWaitingForNewMailbox( aContentId );
}
// -----------------------------------------------------------------------------
@@ -1734,7 +1660,7 @@
{
TUid mailBoxUid;
mailBoxUid.iUid = nativeMailboxId;
-
+
TFSMailMsgId mailBoxId;
mailBoxId.SetId(mailBoxUid.iUid);
TUid pluginUid;
@@ -1745,14 +1671,14 @@
if ( mailBox )
{
TFSMailMsgId inboxFolderId = mailBox->GetStandardFolderId( EFSInbox );
-
+
TMailListActivationData tmp;
tmp.iFolderId = inboxFolderId;
tmp.iMailBoxId = mailBoxId;
const TPckgBuf<TMailListActivationData> pkgOut( tmp );
- iEnv->EikAppUi()->ActivateViewL( TVwsViewId(KUidEmailUi, KMailListId),
- KStartListWithFolderId,
- pkgOut);
+ iEnv->EikAppUi()->ActivateViewL(
+ TVwsViewId(KUidEmailUi, KMailListId),
+ KStartListWithFolderIdFromHomeScreen, pkgOut);
}
CleanupStack::PopAndDestroy( mailBox );
}
@@ -1763,16 +1689,17 @@
}
// -----------------------------------------------------------------------------
-// CMailCpsHandler::LaunchEmailUIL()
+// CMailCpsHandler::LaunchEmailWizardL()
// -----------------------------------------------------------------------------
//
-void CMailCpsHandler::LaunchEmailWizardL()
+void CMailCpsHandler::LaunchEmailWizardL( const TDesC& aContentId )
{
FUNC_LOG;
TUid viewUid(KNullUid);
- iEnv->EikAppUi()->ActivateViewL( TVwsViewId(KUidWizardApp, KUidEmailWizardView),
- viewUid,
+ iEnv->EikAppUi()->ActivateViewL( TVwsViewId(KUidWizardApp, KUidEmailWizardView),
+ viewUid,
KNullDesC8);
+ SetWaitingForNewMailbox( aContentId );
}
// -----------------------------------------------------------------------------
@@ -1807,32 +1734,6 @@
return plugin;
}
-// -----------------------------------------------------------------------------
-// CMailCpsHandler::UpdateExtAccountL
-// -----------------------------------------------------------------------------
-//
-void CMailCpsHandler::UpdateExtAccountL( const TDesC& aContentId )
- {
- FUNC_LOG;
- // Look up plugin that handles this account
- CMailPluginProxy* plugin = GetExtPluginL( aContentId );
- if ( plugin )
- {
- // Publish its data
- plugin->UpdateAccountL( aContentId );
- }
- }
-
-// ---------------------------------------------------------------------------
-// CMailCpsHandler::AssociateWidget
-// ---------------------------------------------------------------------------
-//
-TBool CMailCpsHandler::AssociateWidgetToSetting( const TDesC& aContentId )
- {
- FUNC_LOG;
- return iSettings->AssociateWidgetToSetting( aContentId );
- }
-
// ---------------------------------------------------------------------------
// CMailCpsHandler::DissociateWidget
// ---------------------------------------------------------------------------
@@ -1840,13 +1741,7 @@
void CMailCpsHandler::DissociateWidgetFromSettingL( const TDesC& aContentId )
{
FUNC_LOG;
- //Do not dissociate if device is shutting down
- TInt status( 0 );
- RProperty::Get( KPSUidStartup, KPSGlobalSystemState, status );
- if (status != ESwStateShuttingDown)
- {
- iSettings->DissociateWidgetFromSettingL( aContentId );
- }
+ iSettings->DissociateWidgetFromSettingL( aContentId );
}
// ---------------------------------------------------------------------------
@@ -1886,78 +1781,50 @@
{
TUid implUid = plugins[i]->ImplementationUid();
INFO_1("Instantiating plugin %d", implUid.iUid);
- EmailInterface::CEmailObserverPlugin* plugin =
+ EmailInterface::CEmailObserverPlugin* plugin =
EmailInterface::CEmailObserverPlugin::NewL( implUid, this );
MEmailData& data( plugin->EmailDataL() );
totalMailboxCount += data.MailboxesL().Count();
}
-
+
CleanupStack::PopAndDestroy(); // plugins
return totalMailboxCount;
}
// ---------------------------------------------------------------------------
-// CMailCpsHandler::ManualAccountSelectionL
-// ---------------------------------------------------------------------------
-//
-void CMailCpsHandler::ManualAccountSelectionL( const TDesC& aContentId )
- {
- FUNC_LOG;
-
- if ( FirstBootL() )
- {
- if (!iSettings->FindFromContentIdListL(aContentId))
- {
- iSettings->AddToContentIdListL(aContentId);
- }
- }
- else
- {
- if (!iSettings->FindFromContentIdListL(aContentId))
- {
- iSettings->AddToContentIdListL(aContentId);
- if ( TotalMailboxCountL() )
- {
- LaunchWidgetSettingsL(aContentId);
- }
- else
- {
- LaunchEmailWizardL();
- }
- }
- }
- }
-
-// ---------------------------------------------------------------------------
-// CMailCpsHandler::FirstBootL
-// ---------------------------------------------------------------------------
-TBool CMailCpsHandler::FirstBootL()
- {
- FUNC_LOG;
- TInt value( 0 );
- TBool ret(EFalse);
-
- CRepository* repository(NULL);
-
- TRAPD( err, repository = CRepository::NewL( KCRUidStartup ) );
- if ( err == KErrNone )
- {
- err = repository->Get( KStartupFirstBoot, value );
- }
- delete repository;
-
- if (!value)
- {
- ret = ETrue;
- }
-
- return ret;
- }
-
-// ---------------------------------------------------------------------------
// CMailCpsHandler::EmailObserverEvent
// ---------------------------------------------------------------------------
void CMailCpsHandler::EmailObserverEvent( EmailInterface::MEmailData& /*aData*/ )
{
+ FUNC_LOG;
// Nothing to do
}
+
+// -----------------------------------------------------------------------------
+// CMailCpsHandler::SetWaitingForNewMailbox()
+// -----------------------------------------------------------------------------
+//
+void CMailCpsHandler::SetWaitingForNewMailbox( const TDesC& aContentId )
+ {
+ FUNC_LOG;
+ HBufC* newCid = aContentId.Alloc();
+ if ( newCid )
+ {
+ delete iWaitingForNewMailbox;
+ iWaitingForNewMailbox = newCid;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CMailCpsHandler::CleanWaitingForNewMailbox()
+// -----------------------------------------------------------------------------
+//
+void CMailCpsHandler::CleanWaitingForNewMailbox()
+ {
+ FUNC_LOG;
+ if (iWaitingForNewMailbox)
+ {
+ delete iWaitingForNewMailbox;
+ iWaitingForNewMailbox = NULL;
+ }
+ }
--- a/emailservices/emailserver/cmailhandlerplugin/src/cmailcpsif.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailserver/cmailhandlerplugin/src/cmailcpsif.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -67,7 +67,6 @@
for (TInt i=0; i<KMaxMailboxCount; i++)
{
iAllowedToPublish[i] = EFalse;
- iInactive[i] = EFalse;
}
AllocateResourcesL();
@@ -187,15 +186,52 @@
KPubId, KContTypeSetupText,
iInstIdList[instance]->Des(),
*setupEmail,
- KKeySetupText, KTriggerWizard8, NULL, mailBoxId, folderId);
-
+ KKeySetupText, KTriggerWizard8);
+
PublishImageL(
iInstIdList[instance]->Des(),
KContTypeSetupIcon,
KKeySetupIcon,
EMbmCmailhandlerpluginQgn_prop_cmail_new_mailbox,
EMbmCmailhandlerpluginQgn_prop_cmail_new_mailbox_mask,
- mailBoxId);
+ mailBoxId,
+ KNullDes);
+
+ PublishImageL(
+ iInstIdList[instance]->Des(),
+ KContTypeSetupBrandIcon1,
+ KKeySetupBrandIcon1,
+ EMbmCmailhandlerpluginQgn_indi_cmail_drop_email_account,
+ EMbmCmailhandlerpluginQgn_indi_cmail_drop_email_account_mask,
+ mailBoxId,
+ KSetupBrand1);
+
+ PublishImageL(
+ iInstIdList[instance]->Des(),
+ KContTypeSetupBrandIcon2,
+ KKeySetupBrandIcon2,
+ EMbmCmailhandlerpluginQgn_indi_cmail_drop_email_account,
+ EMbmCmailhandlerpluginQgn_indi_cmail_drop_email_account_mask,
+ mailBoxId,
+ KSetupBrand2);
+
+ PublishImageL(
+ iInstIdList[instance]->Des(),
+ KContTypeSetupBrandIcon3,
+ KKeySetupBrandIcon3,
+ EMbmCmailhandlerpluginQgn_indi_cmail_drop_email_account,
+ EMbmCmailhandlerpluginQgn_indi_cmail_drop_email_account_mask,
+ mailBoxId,
+ KSetupBrand3);
+
+ PublishImageL(
+ iInstIdList[instance]->Des(),
+ KContTypeSetupBrandIcon4,
+ KKeySetupBrandIcon4,
+ EMbmCmailhandlerpluginQgn_indi_cmail_drop_email_account,
+ EMbmCmailhandlerpluginQgn_indi_cmail_drop_email_account_mask,
+ mailBoxId,
+ KSetupBrand4);
CleanupStack::PopAndDestroy(setupEmail);
}
@@ -207,10 +243,7 @@
void CMailCpsIf::PublishActiveMailboxNameL(
const TInt aInstance,
const TInt aRowNumber,
- const TDesC& aMailboxName,
- const TInt aMailBoxCount,
- TFSMailMsgId aMailBoxId,
- TFSMailMsgId aFolderId)
+ const TDesC& aMailboxName)
{
FUNC_LOG;
@@ -229,8 +262,7 @@
KPubId, contentType,
iInstIdList[aInstance]->Des(),
aMailboxName,
- textKey, KTriggerEmailUi8, aMailBoxCount,
- aMailBoxId, aFolderId);
+ textKey, KTriggerEmailUi8);
}
// ---------------------------------------------------------------------------
@@ -255,7 +287,7 @@
TFSMailMsgId dummy;
PublishDescriptorL( KPubId, contentType, iInstIdList[aInstance]->Des(),
- aMailboxName, textKey, aAction, 0, dummy, dummy );
+ aMailboxName, textKey, aAction);
}
// ---------------------------------------------------------------------------
@@ -289,7 +321,8 @@
key,
aIcon,
aIcon + 1,
- mailBoxId);
+ mailBoxId,
+ KNullDes);
}
// ---------------------------------------------------------------------------
@@ -323,7 +356,8 @@
key,
aIcon,
aIcon + 1,
- aMailBoxId);
+ aMailBoxId,
+ KNullDes);
}
// ---------------------------------------------------------------------------
@@ -410,7 +444,11 @@
{
contentType.Copy(KContTypeTime);
}
- else
+ else if (aDetail == ESubject)
+ {
+ contentType.Copy(KContTypeSubjectText);
+ }
+ else //aDetail == ESender
{
contentType.Copy(KContTypeBodyText);
}
@@ -421,6 +459,10 @@
{
textKey.Copy(KKeyTime);
}
+ else if (aDetail == ESubject)
+ {
+ textKey.Copy(KKeySubjectText);
+ }
else
{
textKey.Copy(KKeyBodyText);
@@ -434,8 +476,7 @@
KPubId, contentType,
iInstIdList[aInstance]->Des(),
aText,
- textKey, KNullDes8, NULL,
- mailBoxId, folderId);
+ textKey, KNullDes8);
}
// ---------------------------------------------------------------------------
@@ -478,10 +519,7 @@
const TDesC& aContentId,
const TDesC& aTextToAdd,
const TDesC& aKey,
- const TDesC8& aTrigger,
- const TInt /*aMailBoxCount*/,
- TFSMailMsgId /*aMailBoxId*/,
- TFSMailMsgId /*aFolderId*/ )
+ const TDesC8& aTrigger)
{
FUNC_LOG;
@@ -545,7 +583,8 @@
const TDesC8& aKey,
TInt aBitmapId,
TInt aBitmapMaskId,
- TFSMailMsgId aMailBoxId )
+ TFSMailMsgId aMailBoxId,
+ const TDesC& aBrandId )
{
FUNC_LOG;
@@ -558,9 +597,19 @@
TBuf<KMaxDescLen> brandedIconIds(KNullDesC);
MFSMailBrandManager& brandManager = iMailCpsHandler->MailClient().GetBrandManagerL();
- TRAPD( err, error = brandManager.GetGraphicIdsL( EFSMailboxIcon, aMailBoxId, brandedIconIds ) );
+ TInt err2(KErrNone);
+ if (aBrandId.Length() > 0)
+ {
+ TRAPD( err, error = brandManager.GetGraphicIdsL( EFSMailboxIcon, aBrandId, brandedIconIds ) );
+ err2 = err;
+ }
+ else
+ {
+ TRAPD( err, error = brandManager.GetGraphicIdsL( EFSMailboxIcon, aMailBoxId, brandedIconIds ) );
+ err2 = err;
+ }
- if ( err == KErrNone && error == KErrNone )
+ if ( err2 == KErrNone && error == KErrNone )
{
iconIds.Copy(KMifPrefix);
iconIds.Append(brandedIconIds);
@@ -677,11 +726,10 @@
// Create the action map for publisher registry
CLiwDefaultMap* mapAction = CLiwDefaultMap::NewLC();
- mapAction->InsertL(KActive, TLiwVariant( KData ));
- mapAction->InsertL(KDeActive, TLiwVariant( KData ));
+ mapAction->InsertL(KPluginStartup, TLiwVariant( KData ));
+ mapAction->InsertL(KPluginShutdown, TLiwVariant( KData ));
mapAction->InsertL(KSuspend, TLiwVariant( KData ));
mapAction->InsertL(KResume, TLiwVariant( KData ));
- mapAction->InsertL(KInactive, TLiwVariant( KData ));
publishermap->InsertL( KActionMap, TLiwVariant(mapAction));
CleanupStack::PopAndDestroy(mapAction);
@@ -798,7 +846,7 @@
TInt mapslistcount (changeMapsList->Count());
- for (TInt i = 0; i < changeMapsList->Count(); ++i)
+ for (TInt i = 0; i < mapslistcount; ++i)
{
if ( changeMapsList->AtL(i, variant) )
{
@@ -817,16 +865,7 @@
{
variant.Get(trigger );
}
- if (trigger.Compare(KInactive16) == 0)
- {
- // Homescreen page is about to change.
- // Ignore next deactivate event of this particular widget instance.
- HBufC* cid = contentid.AllocLC();
- TInt widgetInstance = FindWidgetInstanceId(cid->Des());
- iInactive[widgetInstance] = ETrue;
- CleanupStack::PopAndDestroy( cid );
- }
- else if (trigger.Compare(KSuspend16) == 0)
+ if (trigger.Compare(KSuspend16) == 0)
{
// Publishing to homescreen suspended.
HBufC* cid = contentid.AllocLC();
@@ -844,43 +883,36 @@
TInt widgetInstance = FindWidgetInstanceId(cid->Des());
PublishSetupWizardL(widgetInstance);
iMailCpsHandler->UpdateMailboxesL(widgetInstance, cid->Des());
- iMailCpsHandler->UpdateExtAccountL( cid->Des() );
// Widget visible on the homescreen. Publishing allowed.
iAllowedToPublish[widgetInstance] = ETrue;
- iInactive[widgetInstance] = EFalse;
CleanupStack::PopAndDestroy( cid );
}
- else if (trigger.Compare(KActive16) == 0)
+ else if (trigger.Compare(KPluginStartup16) == 0)
{
- // Widget added to homescreen (or already on the screen when boot completes).
+ // Widget added to homescreen
HBufC* cid = contentid.AllocLC();
- TInt widgetInstance = FindWidgetInstanceId(cid->Des());
- if (iInactive[widgetInstance])
+ iInstIdList.AppendL( contentid.AllocL() );
+ if ( iMailCpsHandler->TotalMailboxCountL() )
{
- iInactive[widgetInstance] = EFalse;
+ iMailCpsHandler->LaunchWidgetSettingsL(cid->Des());
}
else
{
- iInstIdList.AppendL( contentid.AllocL() );
- iMailCpsHandler->ManualAccountSelectionL(cid->Des());
+ iMailCpsHandler->LaunchEmailWizardL(cid->Des());
}
CleanupStack::PopAndDestroy( cid );
}
- else if (trigger.Compare(KDeActive16) == 0)
+ else if (trigger.Compare(KPluginShutdown16) == 0)
{
// Widget removed from homescreen.
- HBufC* cid = contentid.AllocLC();
- ResetPublishedDataL( cid->Des() );
- TInt widgetInstance = FindWidgetInstanceId(cid->Des());
+ HBufC* cid = contentid.AllocLC();
+ ResetPublishedDataL( cid->Des() );
+ iMailCpsHandler->DissociateWidgetFromSettingL( cid->Des() );
+ TInt widgetInstance = FindWidgetInstanceId( cid->Des() );
if (widgetInstance != KErrNotFound )
- {
- if (!iInactive[widgetInstance])
- {
- iMailCpsHandler->DissociateWidgetFromSettingL( cid->Des() );
- iInstIdList.Remove(widgetInstance);
- }
- iAllowedToPublish[widgetInstance] = EFalse;
- }
+ {
+ iInstIdList.Remove(widgetInstance);
+ }
CleanupStack::PopAndDestroy( cid );
}
else if (trigger.Compare(KTriggerEmailUi) == 0)
@@ -893,17 +925,17 @@
( trigger.Compare(KSettings16) == 0))
{
// If no accounts are created launch email wizard
- // otherwice launch widget settings app
+ // otherwice launch widget settings app
+ HBufC* cid = contentid.AllocLC();
if ( iMailCpsHandler->TotalMailboxCountL() )
{
- HBufC* cid = contentid.AllocLC();
iMailCpsHandler->LaunchWidgetSettingsL(cid->Des());
- CleanupStack::PopAndDestroy( cid );
}
else
{
- iMailCpsHandler->LaunchEmailWizardL();
+ iMailCpsHandler->LaunchEmailWizardL(cid->Des());
}
+ CleanupStack::PopAndDestroy( cid );
}
}
}
--- a/emailservices/emailserver/cmailhandlerplugin/src/cmailcpssettings.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailserver/cmailhandlerplugin/src/cmailcpssettings.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -443,18 +443,20 @@
// CMailCpsSettings::AssociateWidgetToSetting
// ---------------------------------------------------------------------------
//
-TBool CMailCpsSettings::AssociateWidgetToSetting( const TDesC& aContentId )
+void CMailCpsSettings::AssociateWidgetToSetting( const TDesC& aContentId,
+ const TFSMailMsgId aMailbox )
{
FUNC_LOG;
- TBool alreadyAssociated(ETrue);
-
- if (!IsAlreadyAssociated(aContentId))
+ TInt setId (GetSettingToAssociate(aContentId));
+ if (setId>=0)
{
- TUint32 key (GetSettingToAssociate());
- iCenRep->Set( key, aContentId );
- alreadyAssociated = EFalse;
+ TInt id = aMailbox.Id();
+ TUid pluginId = aMailbox.PluginId();
+ TInt pId(pluginId.iUid);
+ iCenRep->Set( KCMailMailboxIdBase+setId, id );
+ iCenRep->Set( KCMailPluginIdBase+setId, pId );
+ iCenRep->Set( KCMailWidgetContentIdBase+setId, aContentId );
}
- return alreadyAssociated;
}
// ---------------------------------------------------------------------------
@@ -467,8 +469,6 @@
TUint32 key(0);
TUint32 mailboxKey(0);
- RemoveFromContentIdListL( aContentId );
-
for (TInt i = 0; i < KMaxMailboxCount; i++)
{
TBuf<KMaxDescLen> value;
@@ -487,6 +487,45 @@
}
// ---------------------------------------------------------------------------
+// CMailCpsSettings::GetSettingToAssociate
+// ---------------------------------------------------------------------------
+//
+TInt CMailCpsSettings::GetSettingToAssociate( const TDesC& aContentId )
+ {
+ FUNC_LOG;
+ TInt ret(KErrNotFound);
+
+ for (TInt i = 0; i < KMaxMailboxCount; i++)
+ {
+ TBuf<KMaxDescLen> value;
+ TUint32 key(KCMailWidgetContentIdBase+i);
+ iCenRep->Get( key, value );
+ TInt result = value.Compare(aContentId);
+ if (!result)
+ {
+ ret = i;
+ break;
+ }
+ }
+ if (ret < 0 )
+ {
+ for (TInt i = 0; i < KMaxMailboxCount; i++)
+ {
+ TBuf<KMaxDescLen> value;
+ TUint32 key(KCMailWidgetContentIdBase+i);
+ iCenRep->Get( key, value );
+ TInt result = value.Compare(KDissociated);
+ if (!result)
+ {
+ ret = i;
+ break;
+ }
+ }
+ }
+ return ret;
+ }
+
+// ---------------------------------------------------------------------------
// CMailCpsSettings::GetContentId
// ---------------------------------------------------------------------------
//
@@ -582,52 +621,6 @@
}
// ---------------------------------------------------------------------------
-// CMailCpsSettings::IsAlreadyAssociated
-// ---------------------------------------------------------------------------
-//
-TBool CMailCpsSettings::IsAlreadyAssociated( const TDesC& aContentId )
- {
- FUNC_LOG;
- TBool ret(EFalse);
- for (TInt i = 0; i < KMaxMailboxCount; i++)
- {
- TBuf<KMaxDescLen> value;
- TUint32 key(KCMailWidgetContentIdBase+i);
- iCenRep->Get( key, value );
- TInt result = value.Compare(aContentId);
- if (!result)
- {
- ret = ETrue;
- break;
- }
- }
- return ret;
- }
-
-// ---------------------------------------------------------------------------
-// CMailCpsSettings::GetSettingToAssociate
-// ---------------------------------------------------------------------------
-//
-TUint32 CMailCpsSettings::GetSettingToAssociate()
- {
- FUNC_LOG;
- TUint32 ret(KErrNone);
- for (TInt i = 0; i < KMaxMailboxCount; i++)
- {
- TBuf<KMaxDescLen> value;
- TUint32 key(KCMailWidgetContentIdBase+i);
- iCenRep->Get( key, value );
- TInt result = value.Compare(KDissociated);
- if (!result)
- {
- ret = KCMailWidgetContentIdBase + i;
- break;
- }
- }
- return ret;
- }
-
-// ---------------------------------------------------------------------------
// CMailCpsSettings::Configuration
// ---------------------------------------------------------------------------
//
@@ -650,77 +643,6 @@
return ret;
}
-// ---------------------------------------------------------------------------
-// CMailCpsSettings::FindFromContentIdListL
-// ---------------------------------------------------------------------------
-//
-TBool CMailCpsSettings::FindFromContentIdListL( const TDesC& aContentId )
- {
- FUNC_LOG;
- TBool ret(EFalse);
-
- TBuf<KMaxDescLen> cid;
- cid.Copy(KStartSeparator);
- cid.Append(aContentId);
- cid.Append(KEndSeparator);
-
- TBuf<KMaxDescLen> value;
- TUint32 key(KCMailContentIdList);
- iCenRep->Get( key, value );
-
- TInt result = value.Find(cid);
-
- if (result >= 0)
- {
- ret = ETrue;
- }
-
- return ret;
- }
-
-// ---------------------------------------------------------------------------
-// CMailCpsSettings::AddToContentIdListL
-// ---------------------------------------------------------------------------
-//
-void CMailCpsSettings::AddToContentIdListL( const TDesC& aContentId )
- {
- FUNC_LOG;
- TBuf<KMaxDescLen> value;
-
- TUint32 key(KCMailContentIdList);
- iCenRep->Get( key, value );
-
- value.Append(KStartSeparator);
- value.Append(aContentId);
- value.Append(KEndSeparator);
-
- iCenRep->Set( key, value );
- }
-
-// ---------------------------------------------------------------------------
-// CMailCpsSettings::RemoveFromContentIdListL
-// ---------------------------------------------------------------------------
-//
-void CMailCpsSettings::RemoveFromContentIdListL( const TDesC& aContentId )
- {
- FUNC_LOG;
- TBuf<KMaxDescLen> cid;
- cid.Copy(KStartSeparator);
- cid.Append(aContentId);
- cid.Append(KEndSeparator);
-
- TBuf<KMaxDescLen> value;
- TUint32 key(KCMailContentIdList);
- iCenRep->Get( key, value );
-
- TInt result = value.Find(cid);
- if (result >= 0)
- {
- value.Delete(result, cid.Length());
- iCenRep->Set( key, value );
- }
- }
-
// -----------------------------------------------------------------------------
// CMailCpsSettings::ToggleWidgetNewMailIconL
// -----------------------------------------------------------------------------
--- a/emailservices/emailserver/cmailhandlerplugin/src/cmailpluginproxy.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailserver/cmailhandlerplugin/src/cmailpluginproxy.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -113,7 +113,6 @@
FUNC_LOG;
while ( iAccounts.Count() )
{
- ResetAccountL( iAccounts[0]->ContentId() );
delete iAccounts[0];
iAccounts.Remove(0);
}
@@ -131,7 +130,7 @@
{
TFSMailMsgId dummy;
iPublisher.PublishMailboxIconL( instId, KNullDesC );
- iPublisher.PublishActiveMailboxNameL( instId, 1, KNullDesC, 0, dummy, dummy );
+ iPublisher.PublishActiveMailboxNameL( instId, 1, KNullDesC);
iPublisher.PublishIndicatorIconL( instId, 1, KNullIcon );
ResetMessageRowL( instId, 2 ); // 1st message row
@@ -238,6 +237,7 @@
TFSMailMsgId dummy;
iPublisher.PublishMailboxIconL( aWidgetInstanceId, i+2, KNullIcon, dummy );
iPublisher.PublishMailDetailL( aWidgetInstanceId, i+2, KNullDesC, ESender );
+ iPublisher.PublishMailDetailL( aWidgetInstanceId, i+2, KNullDesC, ESubject );
iPublisher.PublishMailDetailL( aWidgetInstanceId, i+2, KNullDesC, ETime );
}
}
@@ -261,6 +261,7 @@
iPublisher.PublishMailboxIconL( aWidgetInstanceId, aRow, iconId, dummy );
iPublisher.PublishMailDetailL( aWidgetInstanceId, aRow, aMessageData.Sender(), ESender );
+ iPublisher.PublishMailDetailL( aWidgetInstanceId, aRow, aMessageData.Subject(), ESubject );
HBufC* timeString = CMailCpsHandler::GetMessageTimeStringL( aMessageData.TimeStamp() );
CleanupStack::PushL( timeString );
iPublisher.PublishMailDetailL( aWidgetInstanceId, aRow, *timeString, ETime );
--- a/emailservices/emailserver/cmailhandlerplugin/src/fsnotificationhandlerbaseimpl.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailserver/cmailhandlerplugin/src/fsnotificationhandlerbaseimpl.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -15,7 +15,7 @@
*
*/
-
+#include <centralrepository.h>
//<cmail>
#include "emailtrace.h"
#include "cfsmailclient.h"
@@ -24,6 +24,9 @@
#include "fsnotificationhandlermgr.h"
#include "fsnotificationhandlerbase.h"
#include "cmailhandlerpluginpanic.h"
+#include "commonemailcrkeys.h"
+#include "FreestyleEmailCenRepKeys.h"
+#include "FreestyleEmailuiConstants.h"
// ======== MEMBER FUNCTIONS ========
@@ -236,7 +239,9 @@
*parentFolder,
*newEntries ) )
{
- TurnNotificationOn();
+ // it doesn't matter if the mailindicator won't get updated
+ // its better have it not updated compared to a leave
+ TRAP_IGNORE(MailIndicatorHandlingL(aMailbox));
}
}
else
@@ -254,7 +259,74 @@
}
}
-
+void CFSNotificationHandlerBase::MailIndicatorHandlingL(TFSMailMsgId aMailbox)
+ {
+ /**
+ * There is always a pair of keys for one mailbox
+ * 1st keys is the plugin id (numberOfMailboxes*2-1)
+ * 2nd is the mailboxId (numberOfMailboxes*2)
+ */
+ TInt numberOfMailboxes(0);
+ CRepository* emailRepository = CRepository::NewL( KFreestyleEmailCenRep );
+ CleanupStack::PushL(emailRepository);
+ emailRepository->Get(KNumberOfMailboxesWithNewEmails, numberOfMailboxes);
+ CRepository* commonEmailRepository = CRepository::NewL( KCmailDataRepository );
+ CleanupStack::PushL(commonEmailRepository);
+ if(numberOfMailboxes != 0)
+ {
+ RArray<TInt> repositoryIds;
+ CleanupClosePushL(repositoryIds);
+ TInt tmp(0);
+ for(TInt i = 1 ; i <= numberOfMailboxes * 2; i++ )
+ {
+ emailRepository->Get(KNumberOfMailboxesWithNewEmails+i, tmp);
+ repositoryIds.Append(tmp);
+ }
+ TInt index = repositoryIds.Find(static_cast<TInt>(aMailbox.Id()));
+ // If it is we delete it from the array
+ if(index != KErrNotFound )
+ {
+ //unless it is the last item, then we don't have to do anything
+ if(index != (repositoryIds.Count()-1))
+ {
+ repositoryIds.Remove(index);
+ repositoryIds.Remove(index-1);
+ // Rearrange the mailbox/mailplugin ids
+ // in the repository
+ for(TInt j = 0; j < repositoryIds.Count(); j++)
+ {
+ emailRepository->Set(KNumberOfMailboxesWithNewEmails + 1 + j, repositoryIds.operator [](j));
+ }
+ // And write the current mailbox/plugin ids back to repository as the last items
+ emailRepository->Set(KNumberOfMailboxesWithNewEmails + ( numberOfMailboxes * 2 - 1 ), static_cast<TInt>(aMailbox.PluginId().iUid));
+ emailRepository->Set(KNumberOfMailboxesWithNewEmails + ( numberOfMailboxes * 2 ),static_cast<TInt>(aMailbox.Id()) );
+ commonEmailRepository->Set(KCmailNewEmailDisplayText,MailClient().GetMailBoxByUidL(aMailbox)->GetName());
+ }
+ }
+ else
+ {
+ //Create keys with right values and update the number of mailboxes
+ numberOfMailboxes += 1;
+ emailRepository->Set(KNumberOfMailboxesWithNewEmails, numberOfMailboxes);
+ emailRepository->Create(KNumberOfMailboxesWithNewEmails + (numberOfMailboxes * 2 - 1), static_cast<TInt>(aMailbox.PluginId().iUid));
+ emailRepository->Create(KNumberOfMailboxesWithNewEmails + (numberOfMailboxes * 2), static_cast<TInt>(aMailbox.Id()));
+ commonEmailRepository->Set(KCmailNewEmailDisplayText,MailClient().GetMailBoxByUidL(aMailbox)->GetName());
+ }
+ repositoryIds.Reset();
+ CleanupStack::PopAndDestroy();//repositoryIds
+ }
+ else
+ {
+ //Create keys with right values and pudate the number of mailboxes
+ numberOfMailboxes += 1;
+ emailRepository->Set(KNumberOfMailboxesWithNewEmails, numberOfMailboxes);
+ emailRepository->Create(KNumberOfMailboxesWithNewEmails + (numberOfMailboxes * 2 - 1), static_cast<TInt>(aMailbox.PluginId().iUid));
+ emailRepository->Create(KNumberOfMailboxesWithNewEmails + (numberOfMailboxes * 2), static_cast<TInt>(aMailbox.Id()));
+ commonEmailRepository->Set(KCmailNewEmailDisplayText,MailClient().GetMailBoxByUidL(aMailbox)->GetName());
+ }
+ CleanupStack::PopAndDestroy(2);// emailRepository, CommonEmailRepository
+ TurnNotificationOn();
+ }
CFSMailMessage* CFSNotificationHandlerBase::NewestMsgInFolderL(
/*const*/ CFSMailFolder& aFolder ) const
--- a/emailservices/emailserver/inc/FsEmailGlobalDialogsAppUi.h Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailserver/inc/FsEmailGlobalDialogsAppUi.h Fri Mar 12 15:41:14 2010 +0200
@@ -39,6 +39,8 @@
void BringToForeground();
public: // From base class CAknAppUi
+ void HandleWsEventL( const TWsEvent& aEvent, CCoeControl* aDestination );
+ void HandleForegroundEventL(TBool aForeground);
void Exit();
private:
@@ -60,6 +62,10 @@
* Own.
*/
CEmailServerShutdownObserver* iShutdownObserver;
+
+ TBool iForeground;
+
+ TBool iForegroundNotTopmost;
};
--- a/emailservices/emailserver/inc/fsnotificationhandlerbase.h Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailserver/inc/fsnotificationhandlerbase.h Fri Mar 12 15:41:14 2010 +0200
@@ -216,7 +216,13 @@
*/
CFSMailMessage* NewestMsgInFolderL(
/*const*/ CFSMailFolder& aFolder ) const;
-
+
+
+ /*
+ * function that handles the mailindicator
+ */
+ void MailIndicatorHandlingL(TFSMailMsgId aMailbox);
+
private:
/**
--- a/emailservices/emailserver/src/FsEmailGlobalDialogsAppUi.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailserver/src/FsEmailGlobalDialogsAppUi.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -1,10 +1,10 @@
/*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009 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"
+* under the terms of the License "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
@@ -27,17 +27,20 @@
// displayable content. We need to keep FSMailServer always on top, because it
// is hided from task list so it's not possible switch FSMailServer back to
// foreground if user switches to Idle before dismissing the note.
-const TCoeWinPriority KFsEmailDialogsWinPriorityActive = ECoeWinPriorityAlwaysAtFront;
+// '- 1' is needed for the VKB to work correctly
+const TInt KFsEmailDialogsWinPriorityActive = ECoeWinPriorityAlwaysAtFront - 1;
// To be used as FSMailServer window group priority when there is no displayable
// content.
-const TCoeWinPriority KFsEmailDialogsWinPriorityInactive = ECoeWinPriorityNeverAtFront;
+const TInt KFsEmailDialogsWinPriorityInactive = ECoeWinPriorityNeverAtFront;
const TInt KPosBringToFront = 0;
const TInt KPosSendToBack = -1;
const TUid KFSMailServerUidAsTUid = { KFSMailServerUid };
+const TInt KDefaultArrayGranularity = 5;
+
// ---------------------------------------------------------------------------
// Constructor
@@ -62,11 +65,72 @@
}
// ---------------------------------------------------------------------------
+// Overriden CAknAppUi::HandleWsEventL
+// ---------------------------------------------------------------------------
+//
+void CFsEmailGlobalDialogsAppUi::HandleWsEventL( const TWsEvent& aEvent,
+ CCoeControl* aDestination )
+ {
+ FUNC_LOG;
+ // Updates the foreground flag
+ CAknAppUi::HandleWsEventL( aEvent, aDestination );
+
+ RWindowGroup& rwin = iEikonEnv->RootWin();
+
+ TBool isActive =
+ ( rwin.OrdinalPriority() == KFsEmailDialogsWinPriorityActive );
+
+ if ( aEvent.Type() == EEventWindowGroupListChanged && isActive )
+ {
+ RWsSession& ws = iEikonEnv->WsSession();
+
+ CArrayFixFlat<TInt>* wgList =
+ new (ELeave) CArrayFixFlat<TInt>( KDefaultArrayGranularity );
+
+ TInt err = ws.WindowGroupList(
+ KFsEmailDialogsWinPriorityActive, wgList );
+
+ if ( err == KErrNone )
+ {
+ TBool topmost = ( wgList->Count() > 0 ) &&
+ ( wgList->At( 0 ) == rwin.Identifier() );
+
+ if ( iForeground && topmost && iForegroundNotTopmost )
+ {
+ // This hack ensures the screen is refreshed when going back
+ // from the VKB window
+ SendToBackground();
+ BringToForeground();
+ }
+
+ // Update this flag all the time when we are active
+ // The flag is true when VKB window is shown for the password
+ // query.
+ iForegroundNotTopmost = ( iForeground && !topmost );
+ }
+
+ delete wgList;
+ wgList = NULL;
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// Overriden CAknAppUi::Exit
+// ---------------------------------------------------------------------------
+//
+void CFsEmailGlobalDialogsAppUi::HandleForegroundEventL( TBool aForeground )
+ {
+ FUNC_LOG;
+ iForeground = aForeground;
+ }
+
+// ---------------------------------------------------------------------------
// Overriden CAknAppUi::Exit
// ---------------------------------------------------------------------------
//
void CFsEmailGlobalDialogsAppUi::Exit()
{
+ FUNC_LOG;
// Cancel shutdown observer as we are already shutting down
if( iShutdownObserver )
{
@@ -130,8 +194,7 @@
void CFsEmailGlobalDialogsAppUi::BringToForeground()
{
FUNC_LOG;
- // Enable keyboard focus when showing some content
- iEikonEnv->RootWin().EnableReceiptOfFocus( ETrue );
+
// Bring own application to foreground
TApaTaskList taskList( iEikonEnv->WsSession() );
@@ -146,6 +209,11 @@
iEikonEnv->RootWin().SetOrdinalPosition(
KPosBringToFront,
KFsEmailDialogsWinPriorityActive );
+
+ iEikonEnv->RootWin().EnableGroupListChangeEvents();
+
+ // Enable keyboard focus when showing some content
+ iEikonEnv->RootWin().EnableReceiptOfFocus( ETrue );
}
// ---------------------------------------------------------------------------
@@ -155,6 +223,7 @@
void CFsEmailGlobalDialogsAppUi::SendToBackground()
{
FUNC_LOG;
+
// Send own application to background
TApaTaskList taskList( iEikonEnv->WsSession() );
TApaTask task = taskList.FindApp( KFSMailServerUidAsTUid );
@@ -170,6 +239,8 @@
// Disable keyboard focus when not showing any content
iEikonEnv->RootWin().EnableReceiptOfFocus( EFalse );
+
+ iEikonEnv->RootWin().DisableGroupListChangeEvents();
}
#ifdef _DEBUG
--- a/emailservices/emailservermonitor/inc/emailservermonitor.h Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailservermonitor/inc/emailservermonitor.h Fri Mar 12 15:41:14 2010 +0200
@@ -27,13 +27,17 @@
#include "emailservermonitorconst.h"
+/////////////////////////////////////////////////////////////////////////////
+// FORWARD DECLARATIONS
+class CEmailShutter;
+
/**
* Class CEmailServerMonitor implements functionality that starts up
* EmailServer and monitors it. If EmailServer crashes, then
* CEmailServerMonitor restarts it. CEmailServerMonitor also starts up needed
* email related 3rd party services after IAD update.
*/
-NONSHARABLE_CLASS( CEmailServerMonitor ) : public CActive
+NONSHARABLE_CLASS( CEmailServerMonitor ) : public CActive, public MEmailServerMonitorTimerCallback
{
public: // Public construcor and destructor
@@ -58,6 +62,21 @@
* Start email server monitoring.
*/
void Start();
+
+ /**
+ * Set pointer to Shutter object
+ */
+ void SetShutter( CEmailShutter* aShutter );
+
+ /**
+ * If Restart External Services flag is set to true, then external
+ * services will be restarted after Email Server is up and running
+ */
+ void SetRestartExternalServicesFlag( TBool aRestartFlag = ETrue );
+
+public: // From base class MEmailServerMonitorTimerCallback
+
+ void TimerEventL( CEmailServerMonitorTimer* aTriggeredTimer );
private: // Private constructors
/**
@@ -123,6 +142,14 @@
EEsmStateRestarting
};
+ enum TExternalServiceRestartState
+ {
+ EEsmEsrStateRestartNotNeeded,
+ EEsmEsrStateRestartNeeded,
+ EEsmEsrStateRestartInitiated,
+ EEsmEsrStateFirstServiceRestarted,
+ };
+
private: // Member variables
// A session with the application architecture server
@@ -144,6 +171,23 @@
// server has been running succesfully long enough
TTime iLastRestartTime;
+ /**
+ * Pointer to Shutter
+ * Not owned
+ */
+ CEmailShutter* iShutter;
+
+ /**
+ * Should we restart external services after Email Server is up and running
+ */
+ TExternalServiceRestartState iExternalServicesRestartState;
+
+ /**
+ * Generic timer used to make delayed restart of the external services
+ * Owned
+ */
+ CEmailServerMonitorTimer* iExternalServiceRestartTimer;
+
};
--- a/emailservices/emailservermonitor/inc/emailservermonitor.hrh Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailservermonitor/inc/emailservermonitor.hrh Fri Mar 12 15:41:14 2010 +0200
@@ -37,5 +37,9 @@
*/
#define KAlwaysOnlineEmailPluginUidAsTInt 0x200100BA
+/** General Settings application UID
+ */
+#define KGeneralSettingsAppUidAsTInt 0x100058EC
+
#endif // EMAILSERVERMONITOR_HRH
--- a/emailservices/emailservermonitor/inc/emailservermonitorutilities.h Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailservermonitor/inc/emailservermonitorutilities.h Fri Mar 12 15:41:14 2010 +0200
@@ -23,6 +23,9 @@
#include <e32base.h>
#include <e32cmn.h> // TSecureId
+// Forward declarations
+class CEmailServerMonitorTimer;
+
const TInt KDefaultTimeToWaitInSeconds = 3;
/////////////////////////////////////////////////////////////////////////////
@@ -52,4 +55,93 @@
TBool IsProcessRunning( TSecureId aUid, RProcess* aProcess = NULL );
+/**
+* Generic timer's callback
+*
+* Classes inherited from this one can be used as a callback for the generic
+* timer. TimerEvent() is called when the timer elapses.
+*
+*/
+class MEmailServerMonitorTimerCallback
+ {
+public:
+ /**
+ * @param aTriggeredTimer The timer which launched this event.
+ */
+ virtual void TimerEventL( CEmailServerMonitorTimer* aTriggeredTimer ) = 0;
+ };
+
+/**
+* Generic timer
+*
+* Caller gives MEmailServerMonitorTimerCallback inherited pointer as a
+* parameter, and that pointer is used as a callback when the timer elapses.
+* Timer interval is given as a parameter for the Start function.
+*
+*/
+class CEmailServerMonitorTimer : public CTimer
+ {
+public:
+
+ /**
+ * Symbian two-pahse constructor.
+ *
+ * @param aCallback Callback class
+ * @param aPriority Timers priority, EPriorityStandard by default
+ */
+ static CEmailServerMonitorTimer* NewL(
+ MEmailServerMonitorTimerCallback* aCallback,
+ const TInt aPriority = CActive::EPriorityStandard );
+
+ /**
+ * Symbian two-pahse constructor.
+ *
+ * @param aCallback Callback class
+ * @param aPriority Timers priority, EPriorityStandard by default
+ */
+ static CEmailServerMonitorTimer* NewLC(
+ MEmailServerMonitorTimerCallback* aCallback,
+ const TInt aPriority = CActive::EPriorityStandard );
+
+ /**
+ * Destructor.
+ */
+ ~CEmailServerMonitorTimer();
+
+ /**
+ * Starts the timer with specified interval, or with the default value.
+ *
+ * @param aInterval Timer interval as microseconds
+ */
+ void Start( TInt aInterval );
+
+ /**
+ * Stops the timer.
+ */
+ void Stop();
+
+ /**
+ * CActive object's RunL
+ */
+ void RunL();
+
+protected:
+ /**
+ * Constructor.
+ */
+ CEmailServerMonitorTimer( MEmailServerMonitorTimerCallback* aCallback,
+ const TInt aPriority );
+
+private:
+ /**
+ * 2nd phase constructor.
+ */
+ void ConstructL();
+
+private:
+ /* Pointer to callback class */
+ MEmailServerMonitorTimerCallback* iCallback;
+ };
+
+
#endif // EMAILSERVERMONITORUTILITIES_H
--- a/emailservices/emailservermonitor/inc/emailshutter.h Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailservermonitor/inc/emailshutter.h Fri Mar 12 15:41:14 2010 +0200
@@ -258,7 +258,7 @@
* Not owned
*/
CEmailServerMonitor* iMonitor;
-
+
};
--- a/emailservices/emailservermonitor/sis/makeEmailServerMonitorSisx.bat Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailservermonitor/sis/makeEmailServerMonitorSisx.bat Fri Mar 12 15:41:14 2010 +0200
@@ -12,8 +12,7 @@
REM *
REM * Contributors:
REM *
-REM * Description:
-REM * Script that creates and signs commonemail sisx packages
+REM * Description: Script that creates and signs commonemail sisx packages
REM *
@echo #################################################
--- a/emailservices/emailservermonitor/src/emailservermonitor.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailservermonitor/src/emailservermonitor.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -30,9 +30,12 @@
#include "emailservermonitorutilities.h"
#include "emailservermonitor.h"
#include "emailservermonitorconst.h"
+#include "emailshutter.h"
const TUint KOneSecondInMicroSeconds = 1000000;
+const TInt KExternalServiceRestartDelay = 5 * KOneSecondInMicroSeconds;
+const TInt KInstallatioFinishedFlagSettingDelay = 2 * KOneSecondInMicroSeconds;
// ======== MEMBER FUNCTION DEFINITIONS ========
@@ -68,6 +71,11 @@
iApaLsSession.Close();
iProcess.Close();
iDelayTimer.Close();
+ if( iExternalServiceRestartTimer )
+ {
+ delete iExternalServiceRestartTimer;
+ iExternalServiceRestartTimer = NULL;
+ }
}
/**
@@ -75,7 +83,11 @@
* Only NewL can be called
*/
CEmailServerMonitor::CEmailServerMonitor()
- : CActive( EPriorityStandard ), iState( EEsmStateIdle ), iRestarts( 0 )
+ : CActive( EPriorityStandard ),
+ iState( EEsmStateIdle ),
+ iRestarts( 0 ),
+ iShutter( NULL ),
+ iExternalServicesRestartState( EEsmEsrStateRestartNotNeeded )
{
FUNC_LOG;
}
@@ -100,12 +112,70 @@
FUNC_LOG;
iLastRestartTime.UniversalTime();
- // Set initializing state and complete self
- // -> functionality will continue in RunL
+ // Initiate delayed restart and set correct state
+ InitiateDelayedRestart();
iState = EEsmStateInitializing;
- TRequestStatus* status = &iStatus;
- SetActive();
- User::RequestComplete( status, KErrNone );
+ }
+
+/**
+ * Set pointer to shutter.
+ */
+void CEmailServerMonitor::SetShutter( CEmailShutter* aShutter )
+ {
+ iShutter = aShutter;
+ }
+
+/**
+ * Set Restart External Services flag.
+ */
+void CEmailServerMonitor::SetRestartExternalServicesFlag( TBool aRestartFlag /*= ETrue*/ )
+ {
+ if( aRestartFlag )
+ {
+ iExternalServicesRestartState = EEsmEsrStateRestartNeeded;
+ }
+ else
+ {
+ iExternalServicesRestartState = EEsmEsrStateRestartNotNeeded;
+ }
+ }
+
+/**
+ * Called when external service restart timer has expired, so it's time to do
+ * some starting
+ */
+void CEmailServerMonitor::TimerEventL( CEmailServerMonitorTimer* /*aTriggeredTimer*/ )
+ {
+ // Shutter is used in all cases, so verify it exists at the beginning
+ if( iShutter )
+ {
+ switch( iExternalServicesRestartState )
+ {
+ case EEsmEsrStateRestartInitiated:
+ {
+ // Restart external services and change state
+ iShutter->RestartServicesAfterInstallation();
+ iExternalServicesRestartState = EEsmEsrStateFirstServiceRestarted;
+
+ // Restart the timer to set the installation finished flag
+ // with some more delay
+ iExternalServiceRestartTimer->Start( KInstallatioFinishedFlagSettingDelay );
+ }
+ break;
+
+ case EEsmEsrStateFirstServiceRestarted:
+ {
+ // Set the installation finished flag and clear state variable
+ iShutter->SetPsKeyInstallationFinished();
+ iExternalServicesRestartState = EEsmEsrStateRestartNotNeeded;
+ }
+ break;
+
+ default:
+ // Do nothing, shouldn't happen
+ break;
+ }
+ }
}
/**
@@ -208,6 +278,10 @@
iState = EEsmStateIdle;
iProcess.LogonCancel( iStatus );
iDelayTimer.Cancel();
+ if( iExternalServiceRestartTimer )
+ {
+ iExternalServiceRestartTimer->Cancel();
+ }
}
/**
@@ -241,6 +315,24 @@
INFO( "Initiating new delayed restart" );
InitiateDelayedRestart();
}
+ // If Email server is up and running and iExternalServicesRestartState
+ // flag is set, initiate delayed restart of external services
+ else if( iExternalServicesRestartState == EEsmEsrStateRestartNeeded )
+ {
+ // Once restart is initiated, update the state
+ iExternalServicesRestartState = EEsmEsrStateRestartInitiated;
+
+ // Create the timer and start it
+ TInt timerError = KErrNone;
+ if( !iExternalServiceRestartTimer )
+ {
+ TRAP( timerError, iExternalServiceRestartTimer = CEmailServerMonitorTimer::NewL( this ) );
+ }
+ if( timerError == KErrNone )
+ {
+ iExternalServiceRestartTimer->Start( KExternalServiceRestartDelay );
+ }
+ }
}
break;
--- a/emailservices/emailservermonitor/src/emailservermonitorutilities.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailservermonitor/src/emailservermonitorutilities.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -105,3 +105,113 @@
return EFalse;
}
+
+
+/////////////////////////////////////////////////////////////////////////////////
+// GENERIC TIMER
+//
+
+// -----------------------------------------------------------------------------
+// CEmailServerMonitorTimer::NewL
+// NewL function. Returns timer object.
+// -----------------------------------------------------------------------------
+//
+CEmailServerMonitorTimer* CEmailServerMonitorTimer::NewL(
+ MEmailServerMonitorTimerCallback* aCallback,
+ const TInt aPriority )
+ {
+ FUNC_LOG;
+ CEmailServerMonitorTimer* self = NewLC( aCallback, aPriority );
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+// -----------------------------------------------------------------------------
+// CEmailServerMonitorTimer::NewL
+// NewL function. Returns timer object.
+// -----------------------------------------------------------------------------
+//
+CEmailServerMonitorTimer* CEmailServerMonitorTimer::NewLC(
+ MEmailServerMonitorTimerCallback* aCallback,
+ const TInt aPriority )
+ {
+ FUNC_LOG;
+ CEmailServerMonitorTimer* self = new (ELeave) CEmailServerMonitorTimer( aCallback, aPriority );
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ return self;
+ }
+
+// -----------------------------------------------------------------------------
+// CEmailServerMonitorTimer::NewL
+// NewL function. Returns timer object.
+// -----------------------------------------------------------------------------
+//
+void CEmailServerMonitorTimer::ConstructL()
+ {
+ FUNC_LOG;
+ CTimer::ConstructL();
+ CActiveScheduler::Add( this );
+ }
+
+// -----------------------------------------------------------------------------
+// CEmailServerMonitorTimer::~CEmailServerMonitorTimer
+// D'tor
+// -----------------------------------------------------------------------------
+//
+CEmailServerMonitorTimer::~CEmailServerMonitorTimer()
+ {
+ FUNC_LOG;
+ Cancel();
+ iCallback = NULL;
+ }
+
+// -----------------------------------------------------------------------------
+// CEmailServerMonitorTimer::CEmailServerMonitorTimer
+// C'tor
+// -----------------------------------------------------------------------------
+//
+CEmailServerMonitorTimer::CEmailServerMonitorTimer(
+ MEmailServerMonitorTimerCallback* aCallback,
+ const TInt aPriority )
+ : CTimer( aPriority ),
+ iCallback( aCallback )
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CEmailServerMonitorTimer::RunL
+// Timer trigger function.
+// -----------------------------------------------------------------------------
+//
+void CEmailServerMonitorTimer::RunL()
+ {
+ FUNC_LOG;
+ if ( iCallback )
+ {
+ iCallback->TimerEventL( this );
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CEmailServerMonitorTimer::Start
+// Timer starting function.
+// -----------------------------------------------------------------------------
+//
+void CEmailServerMonitorTimer::Start( TInt aInterval )
+ {
+ FUNC_LOG;
+ Cancel();
+ After( TTimeIntervalMicroSeconds32( aInterval ) );
+ }
+
+// -----------------------------------------------------------------------------
+// CEmailServerMonitorTimer::Stop
+// Timer stopping function
+// -----------------------------------------------------------------------------
+//
+void CEmailServerMonitorTimer::Stop()
+ {
+ FUNC_LOG;
+ Cancel();
+ }
--- a/emailservices/emailservermonitor/src/emailshutter.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailservermonitor/src/emailshutter.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -46,46 +46,47 @@
// UI Applications to be closed
const TUid KApplicationsToClose[] =
{
- KFSEmailUiUid, // Freestyle Email UI
- { SettingWizardUidAsTInt }, // TP Wizard
- { KMceAppUid }, // MCE
- { KPhoneBookUid }, // Phonebook 1 & 2
- { KCalendarAppUid1 } // Calendar
+ KFSEmailUiUid, // Freestyle Email UI
+ { SettingWizardUidAsTInt }, // TP Wizard
+ { KMceAppUid }, // MCE
+ { KPhoneBookUid }, // Phonebook 1 & 2
+ { KCalendarAppUid1 }, // Calendar
+ { KGeneralSettingsAppUidAsTInt }, // General settings
};
// Applications that should not be closed. Should include only system
// applications that free the email resources by some other means.
const TUid KApplicationsNotToBeClosed[] =
{
- { AI_SID_AIFW_EXE }, // HomeScreen
- { AI_UID3_AIFW_COMMON }, // HomeScreen
+ { AI_SID_AIFW_EXE }, // HomeScreen
+ { AI_UID3_AIFW_COMMON }, // HomeScreen
};
// Non-UI clients that need to be closed
const TUid KOtherClientsToClose[] =
{
- { KPcsServerProcessUidAsTInt }, // PCS server
- { FSMailServerUidAsTInt }, // FSMailServer
+ { KPcsServerProcessUidAsTInt }, // PCS server
+ { FSMailServerUidAsTInt }, // FSMailServer
};
// Plugin processes that need to be closed
const TUid KPluginProcessesToClose[] =
{
// MfE plugin
- { 0x20012BEE }, // KUidEasStartup
- { 0x20012BEC }, // KUidEasTarmAccess
- { 0x20012BD4 }, // KEasLogSenderServer
- { 0x20012BE6 }, // KUidEasServer
+ { 0x20012BEE }, // KUidEasStartup
+ { 0x20012BEC }, // KUidEasTarmAccess
+ { 0x20012BD4 }, // KEasLogSenderServer
+ { 0x20012BE6 }, // KUidEasServer
// Oz plugin
- { 0x2002136A }, // monitor
- { 0x20021367 }, // server
+ { 0x2002136A }, // monitor
+ { 0x20021367 }, // server
};
// Message store processes that need to be closed
const TUid KMsgStoreProcessesToClose[] =
{
- { KUidMessageStoreExe }, // MessageStoreExe.exe
- { KUidEmailStorePreInstallExe } // MessageStorePreInstallExe
+ { KUidMessageStoreExe }, // MessageStoreExe.exe
+ { KUidEmailStorePreInstallExe } // MessageStorePreInstallExe
};
const TInt KEmailUidExtraBuffer = 2 * KEmailPlatformApiUidItemSize;
--- a/emailservices/emailservermonitor/src/main.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailservermonitor/src/main.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -76,11 +76,6 @@
// Start email shutter functionality
CEmailShutter* shutter = CEmailShutter::NewLC();
- if( mode == EEsmModeRestartAfterInstallation )
- {
- shutter->SetPsKeyInstallationFinished();
- shutter->RestartServicesAfterInstallation();
- }
shutter->StartObservingShutdownEvent();
CEmailServerMonitor* monitor = NULL;
@@ -88,6 +83,11 @@
{
// Start email server observing functionality
monitor = CEmailServerMonitor::NewLC();
+ monitor->SetShutter( shutter );
+ if( mode == EEsmModeRestartAfterInstallation )
+ {
+ monitor->SetRestartExternalServicesFlag();
+ }
monitor->Start();
shutter->SetMonitor( monitor );
}
--- a/emailservices/emailstore/message_store/MsgStoreRfsPlugin/inc/RfsMsgStorePlugin.h Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailstore/message_store/MsgStoreRfsPlugin/inc/RfsMsgStorePlugin.h Fri Mar 12 15:41:14 2010 +0200
@@ -56,7 +56,6 @@
* @return None
*/
void ExecuteCustomCommandL( const TRfsReason aType, TDesC& aCommand );
- TInt GetDriveL( TDriveNumber& aDrive );
private:
CRfsMsgStorePlugin();
--- a/emailservices/emailstore/message_store/MsgStoreRfsPlugin/src/RfsMsgStorePlugin.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailstore/message_store/MsgStoreRfsPlugin/src/RfsMsgStorePlugin.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -55,8 +55,8 @@
if ( aType == ENormalRfs || aType == EDeepRfs || aType == EInitRfs )
{
TUint driveStatus( 0 );
- TDriveNumber drive( EDriveC );
- GetDriveL( drive );
+ TDriveNumber drive( EDriveC );
+
if ( DriveInfo::GetDriveStatus( iFs, drive, driveStatus ) == KErrNone )
{
_LIT( KPrivate, ":\\Private\\" );
@@ -70,9 +70,7 @@
msgStorePath.AppendNum( KUidMessageStoreExe, EHex );
msgStorePath.Append( KPathDelimiter );
CFileMan* fileManager = CFileMan::NewL( iFs );
- // this will recursively delete all files in all directories under the msgStorePath
- // but directories under the msgStorePath are not deleted
- fileManager->Delete( msgStorePath, CFileMan::ERecurse );
+ fileManager->RmDir( msgStorePath );
delete fileManager;
}
}
@@ -116,46 +114,5 @@
User::LeaveIfError( iFs.Connect() );
}
-// -----------------------------------------------------------------------------
-// CRfsMsgStorePlugin::GetDriveL(TDriveNumber&)
-// -----------------------------------------------------------------------------
-//
-TInt CRfsMsgStorePlugin::GetDriveL( TDriveNumber& aDrive )
- {
- _LIT16( KDriveToUseFile, "db_drive.cfg" );
- TInt ret( KErrNotFound );
- RFs fs;
- if( fs.Connect() == KErrNone )
- {
- CleanupClosePushL( fs ); //+fs
- TFileName fileName;
- _LIT( KCDrive, "C:" );
- _LIT( KPrivate, "Private" );
- fileName.Append(KCDrive());
- fileName.Append( KPathDelimiter );
- fileName.Append(KPrivate);
- fileName.Append( KPathDelimiter );
- fileName.AppendNum( KUidMessageStoreExe, EHex );
- fileName.Append( KPathDelimiter );
- fileName.Append( KDriveToUseFile );
- if( BaflUtils::FileExists( fs, fileName ) )
- {
- RFileReadStream reader;
- if ( reader.Open( fs, fileName, EFileRead ) == KErrNone )
- {
- CleanupClosePushL( reader ); //+reader
- TUint drive = reader.ReadUint32L();
- CleanupStack::PopAndDestroy( &reader ); //-reader
- if(drive <=EDriveZ)
- {
- aDrive = static_cast<TDriveNumber>( drive );
- ret = KErrNone;
- }
- }
- }
- CleanupStack::PopAndDestroy( &fs ); //-fs
- } // end if
- return ret;
- }
// END FILE RfsMsgStorePlugin.cpp
--- a/emailservices/emailstore/message_store/debuglog/group/bld.inf Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailstore/message_store/debuglog/group/bld.inf Fri Mar 12 15:41:14 2010 +0200
@@ -24,7 +24,7 @@
../inc/debuglogmacros.h |../../../../../inc/debuglogmacros.h
../inc/debuglogconst.h |../../../../../inc/debuglogconst.h
../inc/debuglog.h |../../../../../inc/debuglog.h
-../inc/GlobalDebugLoggingOptions.h |../../../../../inc/GlobalDebugLoggingOptions.h
+../inc/globaldebugloggingoptions.h |../../../../../inc/globaldebugloggingoptions.h
PRJ_MMPFILES
DebugLog.mmp
--- a/emailservices/emailstore/message_store/debuglog/inc/DebugLogConst.h Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailstore/message_store/debuglog/inc/DebugLogConst.h Fri Mar 12 15:41:14 2010 +0200
@@ -162,7 +162,7 @@
#endif // __DEBUG_LOGGING_OPTIONS
// Finally, allow the logging options to be overriden at the global level.
- #include "GlobalDebugLoggingOptions.h"
+ #include "globaldebugloggingoptions.h"
#endif // DEBUG_USE_PROJECT_LOGGING_OPTIONS
--- a/emailservices/emailstore/message_store/server/group/MessageStoreServer.mmp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailstore/message_store/server/group/MessageStoreServer.mmp Fri Mar 12 15:41:14 2010 +0200
@@ -56,7 +56,6 @@
SOURCE MessageStoreSession.cpp
SOURCE BackupRestoreObserver.cpp
SOURCE ShutdownServer.cpp
-SOURCE StoreDriveMonitor.cpp
SOURCE ContainerStore.cpp
SOURCE ContainerStoreContainersTable.cpp
@@ -71,7 +70,7 @@
SOURCE MsgStoreSortResultRowSet.cpp
SOURCE MsgStoreStringSortResultRowSet.cpp
SOURCE ContainerStoreSortingTable.cpp
-SOURCE ContainerStoreSearchResultTable.cpp
+SOURCE ContainerStoreSearchResultTable.cpp
SOURCE MessageStoreEncryptHandler.cpp
SOURCE ContainerStoreMRUAddressTable.cpp
SOURCE MsgStoreInMemorySortRowSet.cpp
--- a/emailservices/emailstore/message_store/server/inc/MessageStoreServer.h Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailstore/message_store/server/inc/MessageStoreServer.h Fri Mar 12 15:41:14 2010 +0200
@@ -115,7 +115,6 @@
private MCustomBehaviorProvider,
private MBackupRestoreObserver,
private MImsPointsecObserver,
- private MStoreDriveStateObserver,
public MPSPropertyWatcherObserver
{
public:
@@ -187,17 +186,11 @@
virtual void PointSecLockStarted();
virtual void PointSecLockEnded();
-
- //from MStoreDriveStateObserver
- virtual void DriveStateChangedL( TBool aState );
void LockSystem();
void UnlockSystemL();
- void FindBiggestCapacityDriveL( TDriveNumber& aDrive );
- TInt GetDriveL( TDriveNumber& aDrive );
- void SetDriveL( const TDriveNumber aDrive );
-
+
void SendSystemLockMessage( TInt aEvent );
void TPtrC8ToRBuf16L( const TPtrC8& aPtr8, RBuf& aBuf ) const;
@@ -212,10 +205,7 @@
CImsPointsecMonitor* iPointsecMonitor;
TBool iWipeAfterBackupRestore;
- //monitor the message store drive for mount/unmount
- CStoreDriveMonitor* iStoreDriveMonitor;
- //True if the message store is locked because drive is unmount
- TBool iLockedByDriveMonitor;
+
TBool iLockedByBackupRestore;
TBool iLockedByPointSec;
--- a/emailservices/emailstore/message_store/server/inc/bufferedmessagecreator.h Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailstore/message_store/server/inc/bufferedmessagecreator.h Fri Mar 12 15:41:14 2010 +0200
@@ -11,7 +11,7 @@
*
* Contributors:
*
-* Description:
+* Description: Message creator definition
*
*/
#ifndef BUFFEREDMESSAGECREATOR_H
--- a/emailservices/emailstore/message_store/server/src/MessageStoreServer.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailstore/message_store/server/src/MessageStoreServer.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -47,8 +47,6 @@
_LIT8( KNullDescriptor8, "" );
-// To support biggest free drive, we have to get rid of hard-coded C: drive
-//const TDriveNumber KDbDriveNumber = EDriveC;
_LIT( KDbFilename, "message_store.db" );
@@ -62,8 +60,7 @@
_LIT( KUninstallParameter, "IMS_UNINSTALL" );
_LIT( KImsUninstaller, "IMS Uninstaller" );
_LIT( KUpgradeDetectionFile, "c:\\System\\EsIms\\canary.txt" );
-_LIT16( KDriveToUseFile, "db_drive.cfg" );
-//_LIT( KMsgStorePrivateDir, "c:\\Private\\200029e1\\" );
+
//const TChar KColon(':');
@@ -269,7 +266,6 @@
iLockedByBackupRestore = EFalse;
iLockedByPointSec = EFalse;
- iLockedByDriveMonitor = EFalse;
} // end constructor
@@ -295,8 +291,6 @@
//must check if PointSec has locked the system or not,
//only create the container store if PointSec is NOT locked.
- // This will be used to monitor the drive where message store db is located.
- iStoreDriveMonitor = CStoreDriveMonitor::NewL( *this );
if ( iPointsecMonitor->IsServiceAllowed() )
{
@@ -346,7 +340,6 @@
CMessageStoreServer::~CMessageStoreServer()
{
delete iUpgradePropertyWatcher;
- delete iStoreDriveMonitor;
delete iShutdown;
delete iMessageStore;
iMessageStore = NULL;
@@ -438,28 +431,12 @@
void CMessageStoreServer::CreateContainerStoreL()
{
TDriveNumber drive( EDriveC );
- if ( GetDriveL( drive ) == KErrNotFound )
- {
- FindBiggestCapacityDriveL( drive );
- }
- //set again the drive to be monitored in case is different than previous
- iStoreDriveMonitor->SetDriveL( drive );
-
- if ( iStoreDriveMonitor->IsDrivePresent() )
- {
iMessageStore = CContainerStore::NewL( KDbFilename,
drive,
*this,
*iShutdown,
Priority() - 1); // lower than server
- }
- else
- {
- iLockedByDriveMonitor = ETrue;
- }
-
- // monitor the message store drive
- iStoreDriveMonitor->WaitForChange();
+
} // end CreateContainerStoreL
@@ -865,7 +842,7 @@
// change would have been backwards incompatible.
TDriveNumber drive( EDriveC );
- if ( GetDriveL( drive ) == KErrNotFound ) drive = EDriveC;
+
TInt result = CContainerStore::WipeEverything( KDbFilename,
drive );
@@ -908,7 +885,7 @@
SendSystemLockMessage( EMsgStoreBackupOrRestoreInProgress );
- if (( !iLockedByPointSec ) && ( !iLockedByDriveMonitor ) )
+ if ( !iLockedByPointSec )
{
LockSystem();
}
@@ -925,7 +902,7 @@
SendSystemLockMessage( EMsgStoreBackupOrRestoreCompleted );
- if (( !iLockedByPointSec ) && ( !iLockedByDriveMonitor ) )
+ if ( !iLockedByPointSec )
{
TRAP_IGNORE( UnlockSystemL() );
}
@@ -943,7 +920,7 @@
{
iLockedByPointSec = ETrue;
SendSystemLockMessage( EMsgStorePointSecLockStarted );
- if (( !iLockedByBackupRestore ) && ( !iLockedByDriveMonitor ) )
+ if ( !iLockedByBackupRestore )
{
LockSystem();
}
@@ -961,7 +938,7 @@
{
iLockedByPointSec = EFalse;
SendSystemLockMessage( EMsgStorePointSecLockEnded );
- if ( ( !iLockedByBackupRestore ) && ( !iLockedByDriveMonitor ) )
+ if ( !iLockedByBackupRestore )
{
TRAP_IGNORE( UnlockSystemL() );
}
@@ -1005,7 +982,6 @@
iShutdown->ShutDownNow();
}
else if ( ( !iLockedByBackupRestore )
- && ( !iLockedByDriveMonitor )
&& ( !iLockedByPointSec ) )
{
@@ -1025,145 +1001,7 @@
__LOG_EXIT
}
-// ==========================================================================
-// FUNCTION: FindBiggestCapacityDrive
-// To locate the internal drive with the biggest available space.
-// ==========================================================================
-void CMessageStoreServer::FindBiggestCapacityDriveL( TDriveNumber& aDrive )
- {
- __LOG_ENTER( "FindBiggestCapacityDrive" );
-
- RFs fs;
- TInt driveToUse( 2 ); // set default drive to C:
-
- if( fs.Connect() == KErrNone )
- {
- CleanupClosePushL( fs ); //+fs
- TDriveList driveList;
- fs.DriveList( driveList );
- TInt64 highest( 0 );
- for (TInt i=0; i<KMaxDrives; i++)
- {
- if ( driveList[i] != 0 ) // check if drive exits
- {
- TDriveInfo driveInfo;
- fs.Drive( driveInfo, i );
- TVolumeInfo driveVolume;
- fs.Volume( driveVolume, i );
-
- TUint drvStatus( 0 );
- User::LeaveIfError( DriveInfo::GetDriveStatus( fs, i, drvStatus ) );
-
- if ( (drvStatus & DriveInfo::EDriveUserVisible) &&
- (drvStatus & DriveInfo::EDriveInternal) &&
- (drvStatus & DriveInfo::EDrivePresent) )
- {
- if (driveVolume.iFree > highest)
- {
- driveToUse = i;
- highest = driveVolume.iFree;
- }
- }
- }
- }
-
- __LOG_WRITE_FORMAT2_INFO( "Drive #%d to use, free space=%u", driveToUse, highest );
-
- CleanupStack::PopAndDestroy( &fs ); //-fs
- } // end if
-
- aDrive = static_cast<TDriveNumber>( driveToUse );
- SetDriveL( aDrive ); // save it
-
- __LOG_EXIT
- }
-// ==========================================================================
-// FUNCTION: GetDrive
-// To find the previously-defined drive to use. KErrNotFound will
-// be returned if not config file found
-//
-// Note : the config file will be loacted in C: drive
-// (C:\Private\2000c8d2\db_drive.cfg)
-// ==========================================================================
-TInt CMessageStoreServer::GetDriveL( TDriveNumber& aDrive )
- {
- __LOG_ENTER( "GetDrive" );
-
- TInt ret( KErrNotFound );
-
- RFs fs;
- if( fs.Connect() == KErrNone )
- {
- CleanupClosePushL( fs ); //+fs
- TFileName fileName;
- fs.CreatePrivatePath( EDriveC );
- User::LeaveIfError(fs.PrivatePath( fileName ));
- fileName.Append( KDriveToUseFile );
- _LIT( KCDrive, "C:" );
- fileName.Insert( 0, KCDrive() );
- __LOG_WRITE_FORMAT1_INFO( "DriveToUse file=%S", &fileName );
-
- if( BaflUtils::FileExists( fs, fileName ) )
- {
- RFileReadStream reader;
- if ( reader.Open( fs, fileName, EFileRead ) == KErrNone )
- {
- CleanupClosePushL( reader ); //+reader
- TUint drive = reader.ReadUint32L();
- __LOG_WRITE_FORMAT1_INFO( "previously-defined drive to use : %d", drive );
- CleanupStack::PopAndDestroy( &reader ); //-reader
- aDrive = static_cast<TDriveNumber>( drive );
- ret = KErrNone;
- }
- }
-
- CleanupStack::PopAndDestroy( &fs ); //-fs
- } // end if
-
- __LOG_EXIT
- return ret;
- }
-
-// ==========================================================================
-// FUNCTION: SetDrive
-// To write the chosen drive info to the config file.
-//
-// Note : the config file will be loacted in C: drive
-// (C:\Private\2000c8d2\db_drive.cfg)
-// ==========================================================================
-void CMessageStoreServer::SetDriveL( const TDriveNumber aDrive )
- {
- __LOG_ENTER( "SetDrive" );
-
- TUint drive = static_cast<TUint32>( aDrive );
-
- RFs fs;
- if( fs.Connect() == KErrNone )
- {
- CleanupClosePushL( fs ); //+fs
- TFileName fileName;
- User::LeaveIfError(fs.PrivatePath( fileName ));
- fileName.Append( KDriveToUseFile );
- _LIT( KCDrive, "C:" );
- fileName.Insert( 0, KCDrive() );
- __LOG_WRITE_FORMAT1_INFO( "DriveToUse file=%S", &fileName )
-
- RFileWriteStream writer;
- if ( writer.Replace( fs, fileName, EFileRead ) == KErrNone )
- {
- CleanupClosePushL( writer ); //+writer
- writer.WriteUint32L( drive );
- writer.CommitL();
- __LOG_WRITE_FORMAT1_INFO( "writing chosen drive #%d to file", drive );
- CleanupStack::PopAndDestroy( &writer ); //-writer
- }
-
- CleanupStack::PopAndDestroy( &fs ); //-fs
- } // end if
-
- __LOG_EXIT
- }
// ==========================================================================
// FUNCTION: SendSystemLockMessage
@@ -1243,34 +1081,5 @@
#endif
-//from MStoreDriveStateObserver
-void CMessageStoreServer::DriveStateChangedL( TBool aState )
- {
- __LOG_ENTER( "DriveStateChangedL" );
- if ( aState )
- {
- //drive mounted
- if ( iLockedByDriveMonitor )
- {
- iLockedByDriveMonitor = EFalse;
- if ( ( !iLockedByBackupRestore ) && ( !iLockedByPointSec ) )
- {
- UnlockSystemL();
- }
- }
- }
- else
- {
- //drive unmounted
- if ( !iLockedByDriveMonitor )
- {
- iLockedByDriveMonitor = ETrue;
- if ( ( !iLockedByBackupRestore ) && ( !iLockedByPointSec ) )
- {
- LockSystem();
- }
- }
- }
- __LOG_EXIT
- }
+
--- a/emailservices/emailstore/message_store/server/src/MessageStoreSession.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailstore/message_store/server/src/MessageStoreSession.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -21,8 +21,8 @@
// INCLUDES
// ========
-#include "MsgStoreTypes.h"
-#include "MsgStorePropertyKeys.h"
+#include "msgstoretypes.h"
+#include "msgstorepropertykeys.h"
#include "MessageStoreSession.h"
#include "MessageStoreServer.h"
--- a/emailservices/emailstore/message_store/server/src/bufferedmessagecreator.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailstore/message_store/server/src/bufferedmessagecreator.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -11,7 +11,7 @@
*
* Contributors:
*
-* Description:
+* Description: Message creator implementation
*
*/
--- a/emailservices/emailstore/message_store/server/src/messagestoreutils.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailstore/message_store/server/src/messagestoreutils.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -11,7 +11,7 @@
*
* Contributors:
*
-* Description:
+* Description: Message store utilities implementation
*
*/
--- a/emailuis/emailui/data/FreestyleEmailUi.rss Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/data/FreestyleEmailUi.rss Fri Mar 12 15:41:14 2010 +0200
@@ -956,6 +956,8 @@
RESOURCE TBUF r_freestyle_email_ui_viewer_completed { buf=qtn_cmail_header_completed; }
RESOURCE TBUF r_freestyle_email_ui_viewer_high_prio { buf=qtn_cmail_header_high_prio; }
RESOURCE TBUF r_freestyle_email_ui_viewer_low_prio { buf=qtn_cmail_header_low_prio; }
+RESOURCE TBUF r_freestyle_email_ui_images_are_not_displayed { buf=qtn_cmail_viewer_images_not_displayed; }
+RESOURCE TBUF r_freestyle_email_ui_display_images { buf=qtn_cmail_viewer_display_images; }
// NOTES
RESOURCE TBUF r_freestyle_email_delete_mail_note { buf=qtn_fse_delete_mail_note; }
@@ -1424,7 +1426,7 @@
//MENU_ITEM { command = EFsEmailUiCmdReadEmail; txt = qtn_fse_message_list_options_read; },
MENU_ITEM { command = EFsEmailUiCmdZoomLevel; txt = qtn_fse_zoom_level_cascade; cascade = r_fsemailui_htmlviewer_submenu_zoom_level;},
MENU_ITEM { command = EFsEmailUiCmdHelp; txt = qtn_options_help; },
- MENU_ITEM { command = EFsEmailUiCmdExit; txt = text_softkey_exit; }
+ MENU_ITEM { command = EFsEmailUiCmdExit; txt = qtn_options_exit; }
};
}
--- a/emailuis/emailui/data/FreestyleEmailUiGlobalSettings.rssi Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/data/FreestyleEmailUiGlobalSettings.rssi Fri Mar 12 15:41:14 2010 +0200
@@ -107,6 +107,13 @@
setting_page_resource = r_global_settings_title_dividers_setting_page_resource;
associated_resource = r_global_settings_title_dividers;
},
+ AVKON_SETTING_ITEM
+ {
+ name = qtn_mail_setting_download_images;
+ identifier = EGlobalSettingsDownloadHTMLImages;
+ setting_page_resource = r_global_settings_download_html_images_setting_page_resource;
+ associated_resource = r_global_settings_download_html_images;
+ },
AVKON_SETTING_ITEM
{
name = qtn_fse_settings_download_notifications;
@@ -123,13 +130,6 @@
},
AVKON_SETTING_ITEM
{
- name = qtn_fse_settings_download_html_images;
- identifier = EGlobalSettingsDownloadHTMLImages;
- setting_page_resource = r_global_settings_download_html_images_setting_page_resource;
- associated_resource = r_global_settings_download_html_images;
- },
- AVKON_SETTING_ITEM
- {
name = qtn_fse_settings_active_idle;
identifier = EGlobalSettingsActiveIdle;
}
@@ -526,7 +526,7 @@
RESOURCE AVKON_SETTING_PAGE r_global_settings_download_html_images_setting_page_resource
{
number = -16380;
- label = qtn_fse_settings_download_html_images;
+ label = qtn_mail_setting_download_images;
type = EAknCtPopupSettingList;
editor_resource_id = r_global_settings_download_html_images_editor_resource_id;
}
@@ -547,12 +547,12 @@
{
AVKON_ENUMERATED_TEXT
{
- text = qtn_fse_settings_download_html_images_always_ask;
+ text = qtn_mail_option_alternative_no;
value = 1;
},
AVKON_ENUMERATED_TEXT
{
- text = qtn_fse_settings_download_html_images_automatic;
+ text = qtn_mail_option_alternative_yes;
value = 0;
}
};
@@ -564,11 +564,11 @@
{
LBUF
{
- txt = qtn_fse_settings_download_html_images_always_ask;
+ txt = qtn_mail_option_alternative_no;
},
LBUF
{
- txt = qtn_fse_settings_download_html_images_automatic;
+ txt = qtn_mail_option_alternative_yes;
}
};
}
Binary file emailuis/emailui/data/html/btn_middle.png has changed
--- a/emailuis/emailui/data/html/email.html Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/data/html/email.html Fri Mar 12 15:41:14 2010 +0200
@@ -1,8 +1,7 @@
-<frameset rows="10%,*" border=0 id="headerBody">
-
-<frame src="header.html" >
+<html>
+<script language="javascript" src="email.js"></script>
+<frameset rows="10%,*" border=0 id="email_frameSet" onLoad="hideImages('body_frame')">
+<frame id="header_frame" src="header.html" >
<frame id="body_frame" src="temp/body.html" >
-
</frameset>
-
</html>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/emailuis/emailui/data/html/email.js Fri Mar 12 15:41:14 2010 +0200
@@ -0,0 +1,52 @@
+// Original image sources are stored in this array
+var originalImageSources = new Array();
+
+// Cid identifier string, if the image name begins with cid: it's shown
+var cid = new String("cid:");
+
+// Number of images hidden (or replaced with our placeholder image)
+var hiddenCount = 0;
+
+// Replace image sources with our placeholder (if the autoloading is disabled)
+function hideImages(frameId) {
+ if (parent.header_frame.g_autoLoadImages == 0) {
+ var doc = document.getElementById(frameId).contentDocument;
+ if (!doc) {
+ doc = document.frames[frameId].document;
+ }
+ for (i = 0; i < doc.images.length; i++) {
+ var image = doc.images[i];
+ originalImageSources.push(image.src);
+ if (image.src.length > 0 && image.src.indexOf(cid) == -1) {
+ doc.images[i].src = "../hidden.png";
+ hiddenCount++;
+ }
+ }
+ if (hiddenCount == 0) {
+ parent.header_frame.hideDisplayImagesButton();
+ } else {
+ parent.header_frame.showDisplayImagesButton();
+ }
+ } else {
+ parent.header_frame.updateHeader();
+ }
+ requestLoadImages();
+}
+
+// Restore original images sources
+function restoreImages(frameId) {
+ if (parent.header_frame.g_autoLoadImages == 0) {
+ var doc = document.getElementById(frameId).contentDocument;
+ if (!doc) {
+ doc = document.frames[frameId].document;
+ }
+ for (i = 0; i < originalImageSources.length; i++) {
+ doc.images[i].src = originalImageSources[i];
+ }
+ }
+}
+
+// Causes application to reload images
+function requestLoadImages() {
+ location.href = "cmail://loadImages/";
+}
--- a/emailuis/emailui/data/html/email_rtl.html Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/data/html/email_rtl.html Fri Mar 12 15:41:14 2010 +0200
@@ -5,16 +5,15 @@
{
var bodyFrame = document.getElementById("body_frame");
bodyFrame.contentWindow.document.body.dir = "rtl";
- bodyFrame.contentWindow.document.body.align = "right"
+ bodyFrame.contentWindow.document.body.align = "left"
}
onload=setEmailBodyDirection;
</script>
+<script language="javascript" src="email.js"></script>
</header>
-<frameset rows="10%,*" border=0>
-
-<frame src="header.html" >
+<frameset rows="10%,*" border="0" id="email_frameSet" onLoad="hideImages('body_frame')">
+<frame id="header_frame" src="header.html" >
<frame id="body_frame" src="temp/body.html" >
-
</frameset>
</html>
--- a/emailuis/emailui/data/html/header.js Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/data/html/header.js Fri Mar 12 15:41:14 2010 +0200
@@ -1,54 +1,79 @@
-function collapseHeader()
- {
- handleHeaderDisplay( "header_table", "table_initial" )
- parent.document.getElementById('headerBody').rows = '10%,*';
+var collapsed = true;
+var displayImagesHidden = false;
+var previousPageYOffset = -1;
+var setScrollPositionInterval;
+
+function collapseHeader(sendEvent) {
+ if (sendEvent) {
+ location.href = "cmail://collapseHeader/";
+ }
+ collapsed = true;
+ handleHeaderDisplay( "header_table", "table_initial" );
+ updateHeader();
}
-
-function expandHeader()
- {
+
+function expandHeader(sendEvent) {
+ if (sendEvent) {
+ location.href = "cmail://expandHeader/";
+ }
+ collapsed = false;
handleHeaderDisplay( "table_initial", "header_table" )
- parent.document.getElementById('headerBody').rows = '40%,*';
+ parent.document.getElementById('email_frameSet').rows = "40%, *";
}
-
-function handleHeaderDisplay( tableToHide, tableToShow )
- {
+
+function updateHeader() {
+ var rows = "40%, *";
+ if (collapsed) {
+ if (displayImagesHidden || (parent.header_frame.g_autoLoadImages != 0) || (parent.hiddenCount == 0)) {
+ rows = "10%, *";
+ } else {
+ rows = "17%, *";
+ }
+ }
+ parent.document.getElementById('email_frameSet').rows = rows;
+ }
+
+function handleHeaderDisplay( tableToHide, tableToShow ) {
document.getElementById(tableToShow).style.display = "";
document.getElementById(tableToHide).style.display = "none";
}
-var intervalHandler;
-function fetchMoreIfAtBottom()
- {
- var element = parent.body_frame.document.body;
+function init(scrollPos) {
+ if (document.getElementById("table_initial").style.display != "none") {
+ collapseHeader(false);
+ } else {
+ expandHeader(false);
+ }
+ window.scrollTo(0, scrollPos);
+ setScrollPositionInterval = setInterval("updateScrollPosition()", 500);
+ }
+
+function displayImagesButtonPressed() {
+ hideDisplayImagesButton();
+ parent.restoreImages("body_frame");
+ requestDisplayImages();
+}
- if ( element == null )
- {
- return;
- }
-
- var viewport = parent.pageYOffset;
- var elementHeight = element.offsetHeight;
- var elementOffsetTop = element.offsetTop;
- var screenHeight = screen.availHeight;
- if ( elementOffsetTop + elementHeight - viewport < screenHeight )
- {
- location.href = "cmail://body/" + viewport
- clearInterval(intervalHandler);
- }
+function hideDisplayImagesButton() {
+ document.getElementById("displayImagesTable").style.display = "none";
+ displayImagesHidden = true;
+ updateHeader();
+}
+
+function showDisplayImagesButton() {
+ document.getElementById("displayImagesTable").style.display = "";
+ displayImagesHidden = false;
+ updateHeader();
+}
+
+function requestDisplayImages() {
+ location.href = "cmail://displayImages/";
+}
+
+function updateScrollPosition() {
+ if (previousPageYOffset != parent.pageYOffset) {
+ previousPageYOffset = parent.pageYOffset;
+ location.href = "cmail://body/" + previousPageYOffset;
}
-
-function scrollHandler()
- {
- intervalHandler = setInterval( "fetchMoreIfAtBottom()", 500);
- }
-
-function init(scrollPos)
- {
- collapseHeader();
- window.scrollTo(0, scrollPos);
- //start a scrolling event which will trigger the check of bottom reached...
- //this will take care of short document not does not need scrolling
- scrollHandler();
- }
+}
-//onload=init;
\ No newline at end of file
--- a/emailuis/emailui/group/FreestyleEmailUi.mmp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/group/FreestyleEmailUi.mmp Fri Mar 12 15:41:14 2010 +0200
@@ -27,7 +27,7 @@
TARGETTYPE exe
VENDORID VID_DEFAULT
-CAPABILITY CAP_APPLICATION NetworkControl
+CAPABILITY CAP_APPLICATION NetworkControl SwEvent
UID 0x0 0x2001E277
EPOCHEAPSIZE 0x1000 0x800000
@@ -114,6 +114,7 @@
SOURCE cmailcustomstatuspaneindicators.cpp
SOURCE OverlayControl.cpp
SOURCE FSHtmlReloadAO.cpp
+SOURCE fsemailstatuspaneindicatorhandler.cpp
SOURCEPATH ../group
@@ -219,3 +220,4 @@
LIBRARY MsgEditorModel.lib
LIBRARY touchfeedback.lib
LIBRARY ccaclient.lib
+LIBRARY pbk2rclengine.lib
--- a/emailuis/emailui/group/bld.inf Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/group/bld.inf Fri Mar 12 15:41:14 2010 +0200
@@ -58,8 +58,10 @@
../data/html/header.js /epoc32/data/z/private/2001E277/HtmlFile/header.js
../data/html/plus.gif /epoc32/data/z/private/2001E277/HtmlFile/plus.gif
../data/html/minus.gif /epoc32/data/z/private/2001E277/HtmlFile/minus.gif
+../data/html/email.js /epoc32/data/z/private/2001E277/HtmlFile/email.js
../data/html/follow_up.png /epoc32/data/z/private/2001E277/HtmlFile/follow_up.png
../data/html/follow_up_complete.png /epoc32/data/z/private/2001E277/HtmlFile/follow_up_complete.png
+../data/html/btn_middle.png /epoc32/data/z/private/2001E277/HtmlFile/btn_middle.png
../data/html/todo_high_add.png /epoc32/data/z/private/2001E277/HtmlFile/todo_high_add.png
../data/html/todo_low_add.png /epoc32/data/z/private/2001E277/HtmlFile/todo_low_add.png
@@ -71,9 +73,11 @@
../data/html/header.js /epoc32/release/winscw/udeb/z/private/2001E277/HtmlFile/header.js
../data/html/plus.gif /epoc32/release/winscw/udeb/z/private/2001E277/HtmlFile/plus.gif
../data/html/minus.gif /epoc32/release/winscw/udeb/z/private/2001E277/HtmlFile/minus.gif
+../data/html/email.js /epoc32/release/winscw/udeb/z/private/2001E277/HtmlFile/email.js
../data/html/follow_up.png /epoc32/release/winscw/udeb/z/private/2001E277/HtmlFile/follow_up.png
../data/html/follow_up_complete.png /epoc32/release/winscw/udeb/z/private/2001E277/HtmlFile/follow_up_complete.png
../data/html/todo_high_add.png /epoc32/release/winscw/udeb/z/private/2001E277/HtmlFile/todo_high_add.png
+../data/html/btn_middle.png /epoc32/release/winscw/udeb/z/private/2001E277/HtmlFile/btn_middle.png
../data/html/todo_low_add.png /epoc32/release/winscw/udeb/z/private/2001E277/HtmlFile/todo_low_add.png
// make the files ready for urel emulator
@@ -83,9 +87,11 @@
../data/html/header.js /epoc32/release/winscw/urel/z/private/2001E277/HtmlFile/header.js
../data/html/plus.gif /epoc32/release/winscw/urel/z/private/2001E277/HtmlFile/plus.gif
../data/html/minus.gif /epoc32/release/winscw/urel/z/private/2001E277/HtmlFile/minus.gif
+../data/html/email.js /epoc32/release/winscw/urel/z/private/2001E277/HtmlFile/email.js
../data/html/follow_up.png /epoc32/release/winscw/urel/z/private/2001E277/follow_up.png
../data/html/follow_up_complete.png /epoc32/release/winscw/urel/z/private/2001E277/follow_up_complete.png
../data/html/todo_high_add.png /epoc32/release/winscw/urel/z/private/2001E277/todo_high_add.png
+../data/html/btn_middle.png /epoc32/release/winscw/urel/z/private/2001E277/HtmlFile/btn_middle.png
../data/html/todo_low_add.png /epoc32/release/winscw/urel/z/private/2001E277/todo_low_add.png
../sis/commonemailstub.sis /epoc32/data/z/system/install/commonemailstub.sis
--- a/emailuis/emailui/inc/FreestyleEmailCenRepHandler.h Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/inc/FreestyleEmailCenRepHandler.h Fri Mar 12 15:41:14 2010 +0200
@@ -100,8 +100,8 @@
/**
* Download html images
*/
- //TInt DownloadHTMLImages();
- //void SetDownloadHTMLImages( TInt aValue );
+ TInt DownloadHTMLImages();
+ void SetDownloadHTMLImages( TInt aValue );
/**
* AttachmentFileTypes enumerator returns
--- a/emailuis/emailui/inc/FreestyleEmailCenRepKeys.h Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/inc/FreestyleEmailCenRepKeys.h Fri Mar 12 15:41:14 2010 +0200
@@ -68,6 +68,11 @@
const TUint32 KFreestyleWLBMIFFilePathWithTargetFilename = {0x00000122};
const TUint32 KFreestyleWLBMailboxIconID = {0x00000123};
+// used for email indicator popup-note handling
+// First key tells how many mailboxes have new emails
+const TUint32 KNumberOfMailboxesWithNewEmails = {0x00001000};
+
+
//
// Email local variation flags. Flags are defined in emailvariant.hrh
const TUint32 KEmailLocalVariationFlags = {0x0000FFFE};
--- a/emailuis/emailui/inc/FreestyleEmailUiAknStatusIndicator.h Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/inc/FreestyleEmailUiAknStatusIndicator.h Fri Mar 12 15:41:14 2010 +0200
@@ -11,6 +11,8 @@
*
* Contributors:
*
+* Description: Definition for status indicator
+*
*/
--- a/emailuis/emailui/inc/FreestyleEmailUiAppui.h Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/inc/FreestyleEmailUiAppui.h Fri Mar 12 15:41:14 2010 +0200
@@ -119,6 +119,136 @@
class MAknNaviDecoratorObserver;
class CCustomStatuspaneIndicators;
+/**
+ * TDisplayImagesCache
+ *
+ * Non-persistant cache for display images per message. When user allows images to be downloaded
+ * for a message, that message's id will be stored into the cache. Later if the message is re-opened
+ * and it is found in cache, images are allowed to be downloaded no matter what the global setting
+ * is. Message is added to cache only when the user presses the button, it will be removed from cache
+ * if the mailbox or the message itself is deleted.
+ */
+class TDisplayImagesCache
+ {
+public:
+
+ /**
+ * Destructor
+ */
+ ~TDisplayImagesCache();
+
+ /**
+ * Add message to cache.
+ */
+ void AddMessageL( const CFSMailMessageBase& aMsg );
+
+ /**
+ * Remove message from cache.
+ */
+ void RemoveMessage( const CFSMailMessageBase& aMsg );
+
+ /**
+ * Check if the message is in cache. Returns ETrue if the message is found.
+ */
+ TBool Contains( const CFSMailMessageBase& aMsg ) const;
+
+ /**
+ * Removes message from cache.
+ */
+ void RemoveMessage( const TFSMailMsgId& aBoxId, const TFSMailMsgId& aMsgId );
+
+ /**
+ * Removes mailbox from cache.
+ */
+ void RemoveMailbox( const TFSMailMsgId& aBoxId );
+
+private: // internal methods
+
+ /**
+ * Adds message to cache.
+ */
+ void AddMessageL( const TFSMailMsgId& aBoxId, const TFSMailMsgId& aMsgId );
+
+ /**
+ * Check if the message is in cache. Returns ETrue if the message is found.
+ */
+ TBool Contains( const TFSMailMsgId& aBoxId, const TFSMailMsgId& aMsgId ) const;
+
+ /**
+ * Returns index for given mailbox in cache or KErrNotFound if the mailbox cannot
+ * be found.
+ */
+ TInt MailBoxIndex( const TFSMailMsgId& aBoxId ) const;
+
+ /**
+ * Adds new mailbox and returns index in cache.
+ */
+ void AddMailBoxL( const TFSMailMsgId& aBoxId, TInt& aCacheIndex );
+
+private:
+
+ /**
+ * Cache item.
+ */
+ class TItem
+ {
+ public:
+ /**
+ * Constructor
+ */
+ TItem( const TFSMailMsgId& aBoxId );
+
+ /**
+ * Destructor
+ */
+ ~TItem();
+
+ /**
+ * Returns ETrue if given message Id is found in this box.
+ */
+ TBool Contains( const TFSMailMsgId& aMsgId ) const;
+
+ /**
+ * Adds new message Id into box.
+ */
+ void AddMessageL( const TFSMailMsgId& aMsgId );
+
+ /**
+ * Removes message from box.
+ */
+ void RemoveMessage( const TFSMailMsgId& aMsgId );
+
+ /**
+ * Comparator for TLinearOrder, compares two items
+ */
+ static TInt CompareItem( const TItem& aItem1, const TItem& aItem2 );
+
+ private:
+
+ /**
+ * Comparator for TLinearOrder, compares two message Ids
+ */
+ static TInt CompareMsgId( const TFSMailMsgId& aId1, const TFSMailMsgId& aId2 );
+
+ /**
+ * Returns index of the message in box or KErrNotFound.
+ */
+ TInt MessageIndex( const TFSMailMsgId& aMsgId ) const;
+
+ private:
+
+ // Mailbox Id
+ TFSMailMsgId iMailBoxId;
+
+ // Message Ids
+ RArray<TFSMailMsgId> iMessageIds;
+ };
+
+ // Cache
+ RArray<TItem> iCache;
+ };
+
+
class CFreestyleEmailUiAppUi : public CAknViewAppUi,
public MAlfActionObserver,
public MFSMailRequestObserver,
@@ -341,12 +471,34 @@
TDisplayMode DisplayMode() const;
// </cmail>
- /**
+
+
+
+ /**
* Returns the current flip status.
* @return True if the flip is open, false otherwise.
*/
TBool IsFlipOpen() const;
+ TDisplayImagesCache& DisplayImagesCache();
+
+ // Set flag for judging if there is a embedded app in FSEmail.
+ void SetEmbeddedApp( TBool aEmbeddedApp );
+
+ // Return embedded app.
+ TBool EmbeddedApp() const;
+
+ // Set flag for judging if previous app is embedded.
+ void SetEmbeddedAppToPreviousApp( TBool aEmbeddedApp );
+
+ // if previous app is embedded.
+ TBool EmbeddedAppIsPreviousApp() const;
+
+ // Set flag for judging if email editor started from embedded app.
+ void SetEditorStartedFromEmbeddedApp( TBool aEmbeddedApp );
+
+ // if email editor started from embedded app.
+ TBool EditorStartedFromEmbeddedApp() const;
public: //from MFSMailEventObserver
/**
@@ -667,6 +819,8 @@
// Set true, when application is going to be switched to backgound
// after the view deactivation.
TBool iSwitchingToBackground;
+
+ TDisplayImagesCache iDisplayImagesCache;
// For handling the flip state.
CFreestyleEmailUiPropertySubscriber* iPropertySubscriber;
@@ -674,6 +828,16 @@
/// Focus visibility state
TBool iFocusVisible;
+ TBool iTouchFeedbackCreated;
+
+ // Embedded app flag.
+ TBool iHasEmbeddedApp;
+
+ // Flag for judging if previous app is embedded app.
+ TBool iPreviousAppEmbedded;
+
+ // Flag for judging if email editor started from embedded app.
+ TBool iEditorStartedFromEmbeddedApp;
};
--- a/emailuis/emailui/inc/FreestyleEmailUiConstants.h Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/inc/FreestyleEmailUiConstants.h Fri Mar 12 15:41:14 2010 +0200
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007 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"
@@ -91,7 +91,7 @@
{
FsEActionMenuDismissed = -10,
FsEActionMenuCasItemSelectedAndExecuted,
-
+
FsEActionMenuOpen = 1,
FsEActionMenuOpenCalendarEvent,
FsEActionMenuReply,
@@ -170,7 +170,7 @@
/**
* Settings launch modes
*/
- enum TMailSettingsLaunchMode
+ enum TMailSettingsLaunchMode
{
KMailSettingsOpenMainList = 0x112,
KMailSettingsOpenMailboxSettings,
@@ -182,11 +182,11 @@
KMailSettingsOpenPluginSettings
};
-
+
/**
* editor launch modes
*/
-enum TEditorLaunchMode
+enum TEditorLaunchMode
{
KEditorCmdCreateNew,
KEditorCmdReply,
@@ -240,11 +240,12 @@
/**
* List launch parameters
-* Use iRequestRefresh = ETrue to force list refresh when using
+* Use iRequestRefresh = ETrue to force list refresh when using
* KStartListReturnToPreviousFolder parameter.
*/
static const TUid KStartListWithFolderId = { 1 };
static const TUid KStartListReturnToPreviousFolder = { 2 };
+static const TUid KStartListWithFolderIdFromHomeScreen = { 3 };
class TMailListActivationData
{
@@ -254,8 +255,8 @@
{
// no implementation needed
}
-
-public: // data
+
+public: // data
TFSMailMsgId iMailBoxId;
TFSMailMsgId iFolderId;
TBool iRequestRefresh;
@@ -268,15 +269,15 @@
class TMsgViewerActivationData
{
public: // construction
- inline TMsgViewerActivationData()
- : iMailBoxId(),
- iFolderId(),
+ inline TMsgViewerActivationData()
+ : iMailBoxId(),
+ iFolderId(),
iMessageId(),
iDetails( EFSMsgDataEnvelope ),
iEmbeddedMessage( NULL )
{}
-
-public: // members
+
+public: // members
TFSMailMsgId iMailBoxId;
TFSMailMsgId iFolderId;
TFSMailMsgId iMessageId;
@@ -301,8 +302,8 @@
public: // construction
inline TSearchListActivationData()
: iMailBoxId(), iFolderId() {}
-
-public: // members
+
+public: // members
TFSMailMsgId iMailBoxId;
TFSMailMsgId iFolderId;
};
@@ -328,7 +329,7 @@
public: // methods
// default constructor
- inline THtmlViewerActivationData()
+ inline THtmlViewerActivationData()
: iActivationDataType( EMailMessage ),
iMailBoxId(),
iFolderId(),
@@ -338,7 +339,7 @@
iUrl( KNullDesC ),
iEmbeddedMessage( NULL ),
iEmbeddedMessageMode( EFalse ) {}
-
+
// substitution operator
inline THtmlViewerActivationData& operator=( const THtmlViewerActivationData& aAnother )
{
@@ -356,8 +357,8 @@
}
return *this;
}
-
-public: // members
+
+public: // members
TActivationDataType iActivationDataType;
TFSMailMsgId iMailBoxId; // Mail box ID of the message used in activation.
TFSMailMsgId iFolderId; // Folder ID of the message used in activation.
@@ -377,8 +378,8 @@
public: // construction
inline TAttachmentListActivationData()
: iMailBoxId(), iFolderId(), iMessageId(), iDetails(EFSMsgDataEnvelope), iEmbeddedMsgMode(EFalse) {}
-
-public: // members
+
+public: // members
TFSMailMsgId iMailBoxId;
TFSMailMsgId iFolderId;
TFSMailMsgId iMessageId;
@@ -421,11 +422,11 @@
public: // construction
inline TFolderListActivationData()
: iSourceFolderType( EFSOther ), iCallback( NULL ) {}
-
-public: // members
+
+public: // members
// Type of the source folder in case of move or copy
TFSFolderType iSourceFolderType;
-
+
// Call back used to inform the folder selection query result
MFSEmailUiFolderListCallback* iCallback;
};
@@ -440,31 +441,31 @@
TFSMailMsgId iFolderId;
TFSMailMsgId iMessageId;
TFSMailMsgId iMessagePartId;
-
+
public: // methods
// default constructor initializes all IDs as NULL ID
inline TPartData()
: iMailBoxId(), iFolderId(), iMessageId(), iMessagePartId()
{
}
-
+
// construction with initial data
- inline TPartData( TFSMailMsgId aMailBoxId, TFSMailMsgId aFolderId,
+ inline TPartData( TFSMailMsgId aMailBoxId, TFSMailMsgId aFolderId,
TFSMailMsgId aMessageId, TFSMailMsgId aMessagePartId )
- : iMailBoxId( aMailBoxId ), iFolderId( aFolderId ),
+ : iMailBoxId( aMailBoxId ), iFolderId( aFolderId ),
iMessageId( aMessageId ), iMessagePartId( aMessagePartId )
- {
+ {
}
-
+
// construction with initial data except messagePartId
inline TPartData( TFSMailMsgId aMailBoxId, TFSMailMsgId aFolderId, TFSMailMsgId aMessageId )
- : iMailBoxId( aMailBoxId ), iFolderId( aFolderId ),
+ : iMailBoxId( aMailBoxId ), iFolderId( aFolderId ),
iMessageId( aMessageId ), iMessagePartId()
- {
+ {
}
-
+
// equality operator
- inline TBool operator==( const TPartData& aPart ) const
+ inline TBool operator==( const TPartData& aPart ) const
{
return ( iMailBoxId==aPart.iMailBoxId && iFolderId==aPart.iFolderId &&
iMessageId==aPart.iMessageId && iMessagePartId==aPart.iMessagePartId );
@@ -493,7 +494,7 @@
static const TInt KBrowserUid = 0x10008D39;
/**
- * UID for identifying Message Reader in the taskList
+ * UID for identifying Message Reader in the taskList
*/
static const TUid KMessageReaderUid = { 0x10201B00 };
--- a/emailuis/emailui/inc/FreestyleEmailUiContactHandler.h Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/inc/FreestyleEmailUiContactHandler.h Fri Mar 12 15:41:14 2010 +0200
@@ -27,9 +27,7 @@
// CCA Launcher view
#include <mccaconnection.h>
-//<cmail>
-#include "cpbkxremotecontactlookupserviceuicontext.h"
-//</cmail>
+#include <cpbkxremotecontactlookupserviceuicontext.h>
#include "FreestyleEmailUiCLSListsObserver.h"
@@ -382,14 +380,14 @@
void ResetFieldIds();
/*
- * LaunchRemoteLookupL
* Launches remote lookup UI
* @param aQueryString Default query string in user input field
* @param aResult Structure containing exit reason and selected item
+ * @param aLookupMode The mode in which the lookup is performed.
*/
void DoRemoteLookupL( CFSMailBox& aMailBox, const TDesC& aQueryString,
CPbkxRemoteContactLookupServiceUiContext::TResult& aResult,
- CPbkxRemoteContactLookupServiceUiContext::TMode aContext =
+ CPbkxRemoteContactLookupServiceUiContext::TMode aLookupMode =
CPbkxRemoteContactLookupServiceUiContext::EModeContactSelector );
// Gets the name and email address from given contact item
--- a/emailuis/emailui/inc/FreestyleEmailUiHtmlViewerContainer.h Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/inc/FreestyleEmailUiHtmlViewerContainer.h Fri Mar 12 15:41:14 2010 +0200
@@ -25,15 +25,152 @@
#include <brctlspecialloadobserver.h>
#include <brctllinkresolver.h>
+#include "FreestyleEmailUiAknStatusIndicator.h"
#include "FreestyleEmailDownloadInformationMediator.h"
+#include "FreestyleEmailCenRepKeys.h"
#include "OverlayControl.h"
class CFSMailMessage;
class CFreestyleEmailUiAppUi;
class CFreestyleMessageHeaderURLEventHandler;
-class CFreestyleEmailUiAknStatusIndicator;
struct TAttachmentData;
+class CFsEmailUiHtmlViewerContainer;
+class MTouchFeedback;
+
+/**
+ * Single key listener
+ */
+class CEUiHtmlViewerSettingsKeyListener : public CActive
+ {
+public:
+ /**
+ * Observer interface for key value changes
+ */
+ class MObserver
+ {
+ public:
+ /**
+ * Called when key value changes
+ */
+ virtual void KeyValueChangedL( TUint32 aKey ) = 0;
+
+ /**
+ * Listener can query repository instance using this method. No need
+ * to create own repository instance OR to store repository reference.
+ */
+ virtual CRepository& Repository() = 0;
+ };
+public:
+ /**
+ * Constructor
+ */
+ CEUiHtmlViewerSettingsKeyListener( MObserver& aObserver, TUint32 aKey );
+
+ /**
+ * Destructor
+ */
+ ~CEUiHtmlViewerSettingsKeyListener();
+
+private:
+ /**
+ * Start listening value changes
+ */
+ void StartListening();
+
+private: // from CActive
+ /**
+ * @see CActive::RunL
+ */
+ void RunL();
+
+ /**
+ * @see CActive::DoCancel
+ */
+ void DoCancel();
+
+private:
+ /**
+ * Key observer
+ */
+ MObserver& iObserver;
+
+ /**
+ * Key id
+ */
+ TUint32 iKey;
+ };
+
+
+/**
+ * HTML viewer settings class.
+ */
+class CEUiHtmlViewerSettings : public CBase, public CEUiHtmlViewerSettingsKeyListener::MObserver
+ {
+
+public:
+
+ /**
+ * Settings observer interface
+ */
+ class MObserver
+ {
+ public:
+ /**
+ * Called when a setting value has changed.
+ */
+ virtual void ViewerSettingsChangedL( const TUint32 aKey ) = 0;
+ };
+
+public:
+
+ /**
+ * Static constructor
+ */
+ static CEUiHtmlViewerSettings* NewL( MObserver& aObserver );
+
+ /**
+ * Destructor
+ */
+ ~CEUiHtmlViewerSettings();
+
+ /**
+ * Boolean value for auto load image setting
+ */
+ TBool AutoLoadImages() const;
+
+private:
+
+ CEUiHtmlViewerSettings( MObserver& aObserver );
+ void ConstructL();
+ void AddKeyListenerL( TUint32 aKey );
+ void UpdateValue( TUint32 aKey );
+
+private: // from CEUiHtmlViewerSettingsKeyListener::MObserver
+
+ /**
+ * @see CEUiHtmlViewerSettingsKeyListener::MObserver::KeyValueChangedL
+ */
+ void KeyValueChangedL( TUint32 aKey );
+
+ /**
+ * @see CEUiHtmlViewerSettingsKeyListener::MObserver::Repository
+ */
+ CRepository& Repository();
+
+private:
+
+ enum TFlag
+ {
+ EAutoLoadImages = KFreestyleEmailDownloadHTMLImages
+ };
+
+ MObserver& iObserver;
+ CRepository* iRepository;
+ TBitFlags iFlags;
+ RPointerArray<CEUiHtmlViewerSettingsKeyListener> iKeyListeners;
+ };
+
/**
* Html viewer container.
*/
@@ -43,7 +180,8 @@
public MBrCtlSoftkeysObserver,
public MFSEmailDownloadInformationObserver,
public MOverlayControlObserver,
- public MBrCtlWindowObserver
+ public MBrCtlWindowObserver,
+ public CEUiHtmlViewerSettings::MObserver
{
public:
@@ -58,11 +196,12 @@
void LoadContentFromFileL( RFile& aFile );
void LoadContentFromUrlL( const TDesC& aUrl );
void LoadContentFromMailMessageL( CFSMailMessage* aMailMessage, TBool aResetScrollPos=ETrue );
- void ResetContent();
+ void ResetContent(const TBool aDisconnect = EFalse);
void CancelFetch();
void ClearCacheAndLoadEmptyContent();
// <cmail>
void PrepareForExit();
+ void PrepareForMessageNavigation();
// </cmail>
// from base class CCoeControl
@@ -116,8 +255,15 @@
void ShowAttachmentDownloadStatusL( TFSProgress::TFSProgressStatus aProgressStatus, const TAttachmentData& aAttachmentData );
TBool AttachmentDownloadStatusVisible();
void HideDownloadStatus();
- void DisplayStatusIndicatorL();
+ void DisplayStatusIndicatorL(TInt aDuration = KStatusIndicatorDefaultDuration);
+private: // from CEUiHtmlViewerSettings::MObserver
+
+ /**
+ * @see CEUiHtmlViewerSettings::MObserver::ViewerSettingsChangedL
+ */
+ void ViewerSettingsChangedL( const TUint32 aKey );
+
private:
// Second phase constructor.
@@ -172,8 +318,8 @@
void ConvertToHTML( const TDesC8& aContent,
const TDesC& aFileName, CFSMailMessagePart& aHtmlBodyPart );
HBufC8* GetCharacterSetL( CFSMailMessagePart& aHtmlBodyPart );
- TBool IsMessageBodyURL(const TDesC& aUrl);
- void CreateHyperlinksFromUrlsL( CBufBase& aSource );
+ TBool IsMessageBodyURLL(const TDesC& aUrl);
+ void CreateHyperlinksFromUrlsL( CBufBase& aSource );
//Returns ETrue of clicking on a link requires a browser to be launched
TBool NeedToLaunchBrowserL( const TDesC& aUrl );
//Launch the browser as a standalone app
@@ -186,6 +332,7 @@
void HandleWindowCommandL( const TDesC& aTargetName, TBrCtlWindowCommand aCommand );
TRect CalcAttachmentStatusRect();
+ void TouchFeedback();
private: // data
@@ -222,6 +369,11 @@
//way to keep track of the current image being displayed by the indicator
TInt iAttachmentDownloadImageHandle;
CFreestyleEmailUiAknStatusIndicator* iStatusIndicator;
+ CEUiHtmlViewerSettings* iViewerSettings;
+
+ TBool iHeaderExpanded;
+ // tactile feed back -- not owned
+ MTouchFeedback* iTouchFeedBack;
};
--- a/emailuis/emailui/inc/FreestyleEmailUiLauncherGridVisualiser.h Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/inc/FreestyleEmailUiLauncherGridVisualiser.h Fri Mar 12 15:41:14 2010 +0200
@@ -40,6 +40,7 @@
#include "FSEmailLauncherItem.h"
#include "freestyleemailuimailboxdeleter.h"
+#include "FreestyleEmailUiUtilities.h"
// FORWARD DECLARATIONS
class CBrushAnimation;
@@ -63,7 +64,8 @@
public MAlfBitmapProvider,
public MFSEmailLauncherItemObserver,
public MEikScrollBarObserver,
- public MFSEmailUiMailboxDeleteObserver
+ public MFSEmailUiMailboxDeleteObserver,
+ public MFSEmailUiGenericTimerCallback
{
public:
enum TDirection
@@ -184,6 +186,17 @@
*/
void FlipStateChangedL( TBool aKeyboardFlipOpen );
+ /**
+ * Handles application foreground events. When applcation is brought to
+ * foreground, calls the virtual HandleForegroundEventL() method, which
+ * can be implemented by subclasses.
+ */
+ virtual void HandleAppForegroundEventL( TBool aForeground );
+
+ // Fire timer callback
+ void TimerEventL( CFSEmailUiGenericTimer* aTriggeredTimer );
+
+
// <cmail> Toolbar
private: // from
@@ -404,6 +417,9 @@
TFSMailMsgId iMailboxToDelete;
CCoeControl* iCoeControl;
+
+ // Timer to postpone the Drawing
+ CFSEmailUiGenericTimer* iStartupCallbackTimer;
};
#endif // __FREESTYLEEMAILUI_MAINGRIDUIVISUALISER_H__
--- a/emailuis/emailui/inc/FreestyleEmailUiMailListModel.h Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/inc/FreestyleEmailUiMailListModel.h Fri Mar 12 15:41:14 2010 +0200
@@ -24,6 +24,7 @@
// INTERNAL INCLUDES
#include "FreestyleEmailUiListModel.h"
+#include "fstreelistconstants.h"
// FORWARD DECLARATIONS
class CFreestyleEmailUiAppUi;
@@ -152,6 +153,11 @@
*/
void Reset();
+ /**
+ * Returns ItemIds for items under specific node.
+ */
+ void GetItemIdsUnderNodeL( const TFsTreeItemId aNodeId, RFsTreeItemIdList& aMessageIds ) const;
+
protected: // construction
// C++ constructor.
--- a/emailuis/emailui/inc/FreestyleEmailUiMailListVisualiser.h Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/inc/FreestyleEmailUiMailListVisualiser.h Fri Mar 12 15:41:14 2010 +0200
@@ -31,6 +31,9 @@
//</cmail>
#include "FSEmailBuildFlags.h"
+#include <touchfeedback.h>
+#include <touchlogicalfeedback.h>
+
// INTERNAL INCLUDES
#include "FreestyleEmailUiViewBase.h"
#include "FreestyleEmailUiListVisualiser.h"
@@ -38,6 +41,7 @@
#include "FreestyleEmailUiControlBarCallback.h"
#include "FreestyleEmailUiUtilities.h"
#include "FreestyleEmailUiContactHandlerObserver.h"
+#include "cmailboxstateext.h"
// FORWARD DECLARATIONS
class CAlfTextVisual;
@@ -78,6 +82,7 @@
class CEUiEmailListTouchManager;
class MFSMailIterator;
class CAknStylusPopUpMenu;
+template <class T> struct TDeleteTask;
/**
* CMailListModelUpdater
@@ -258,7 +263,8 @@
public MFSEmailUiSortListCallback,
public MFsTreeListObserver,
public MFSEmailUiContactHandlerObserver,
- public CMailListModelUpdater::MObserver
+ public CMailListModelUpdater::MObserver,
+ public MEmailMailboxState
// </cmail>
{
friend class CMailListUpdater;
@@ -372,7 +378,7 @@
TRect SortButtonRect();
// Update theme colors
- void UpdateTheme();
+ void UpdateTheme(const TBool aSystemUpdate = ETrue);
// Navigation functions, used mainly from viewer
TBool IsNextMsgAvailable( TFSMailMsgId aCurrentMsgId, TFSMailMsgId& aFoundNextMsgId, TFSMailMsgId& aFoundNextMsgFolder ) const;
@@ -421,6 +427,11 @@
*/
void NotifyDateChangedL();
+ // Sets aActiveMailboxId and aActiveFolderId from iMailFolder if available
+ TInt GetActiveFolderId(TFSMailMsgId& aActiveMailboxId, TFSMailMsgId& aActiveFolderId) const;
+
+ // Creates CMailboxStateExtension with this class set as dataprovider
+ void CreateExtensionL();
private: // from
/**
@@ -536,7 +547,12 @@
// Message deletion internal functions
void DeleteFocusedMessageL();
void DeleteMarkedMessagesL();
- static TInt DoDeleteMarkedMessages( TAny* aSelfPtr );
+ void DeleteMessagesUnderNodeL( const TFsTreeItemId aNodeId );
+ void ConfirmAndStartDeleteTaskL( TDeleteTask<CFSEmailUiMailListVisualiser>* aTask );
+ TBool ConfirmDeleteL( const TInt aItemCount, const TFsTreeItemId aItemId ) const;
+ static TInt DoExecuteDeleteTask( TAny* aSelfPtr );
+ void HandleDeleteTaskL( const RFsTreeItemIdList& aEntries );
+ void HandleDeleteTaskLeavingCodeL( const RFsTreeItemIdList& aEntries );
// Helper functions to access model data
TFSMailMsgId MsgIdFromIndex( TInt aItemIdx ) const;
@@ -703,6 +719,8 @@
private: // Private objects
+ // Extension to support Ozone-plugin's check for active mailbox
+ CMailboxStateExtension* iExtension;
// Reference to Alf environment
CAlfEnv& iEnv;
// Mail list updater timer
@@ -780,6 +798,7 @@
TBool iShowReplyAll;
// Was focus visible in the ListView.
+ TDeleteTask<CFSEmailUiMailListVisualiser>* iDeleteTask;
TBool iLastFocus;
//used to prevent Call application execution (on keyup of call button) when call to contact required
TBool iConsumeStdKeyYes_KeyUp;
@@ -787,6 +806,8 @@
TBool iForceRefresh;
// true if message viewer/editor is open to disable background list updates
TBool iMailOpened;
+ // tactile feed back -- not owned
+ MTouchFeedback* iTouchFeedBack;
};
--- a/emailuis/emailui/inc/FreestyleEmailUiUtilities.h Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/inc/FreestyleEmailUiUtilities.h Fri Mar 12 15:41:14 2010 +0200
@@ -111,7 +111,7 @@
static void ShowGlobalErrorNoteL( TInt aResourceStringId );
static void ShowGlobalInfoNoteL( TInt aResourceStringId );
-
+ static void ShowDiscreetInfoNoteL( TInt aResourceStringId );
/**
* Creates and shows a local wait note. Caller must pass a member variable pointer
* which will hold the created wait note instance. This must NOT be an automatic variable.
--- a/emailuis/emailui/inc/FreestyleEmailUiViewBase.h Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/inc/FreestyleEmailUiViewBase.h Fri Mar 12 15:41:14 2010 +0200
@@ -72,7 +72,7 @@
* foreground, calls the virtual HandleForegroundEventL() method, which
* can be implemented by subclasses.
*/
- void HandleAppForegroundEventL( TBool aForeground );
+ virtual void HandleAppForegroundEventL( TBool aForeground );
/**
* Inherited classes should override this to react to skin or layout changes
@@ -317,6 +317,7 @@
TBool iSendToBackgroundOnDeactivation;
// View's active status
TBool iViewActive;
+protected: // to enable overridning
TBool iWasActiveControlGroup;
};
--- a/emailuis/emailui/inc/FreestyleMessageHeaderHTML.h Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/inc/FreestyleMessageHeaderHTML.h Fri Mar 12 15:41:14 2010 +0200
@@ -37,25 +37,28 @@
RWriteStream& aWriteStream,
TInt aVisibleWidth,
TInt aScrollPosition,
- TBidiText::TDirectionality aDirectionality = TBidiText::ELeftToRight);
+ const TBool aAutoLoadImages,
+ const TBool aExpanded );
IMPORT_C static void ExportL( CFSMailMessage& aMailMessage,
RFile& aFile,
TInt aVisibleWidth,
TInt aScrollPosition,
- TBidiText::TDirectionality aDirectionality = TBidiText::ELeftToRight);
+ const TBool aAutoLoadImages,
+ const TBool aExpanded );
IMPORT_C static void ExportL( CFSMailMessage& aMailMessage,
RFs& aFs,
const TPath& aFilePath,
TInt aVisibleWidth,
TInt aScrollPosition,
- TBidiText::TDirectionality aDirectionality = TBidiText::ELeftToRight);
+ const TBool aAutoLoadImages,
+ const TBool aExpanded );
IMPORT_C static CFreestyleMessageHeaderHTML* NewL( CFSMailMessage& aMailMessage,
RWriteStream& aWriteStream,
TInt aVisibleWidth,
TInt aScrollPosition,
- TBidiText::TDirectionality aDirectionality = TBidiText::ELeftToRight
- );
+ const TBool aAutoLoadImages,
+ const TBool aExpanded );
~CFreestyleMessageHeaderHTML();
@@ -66,7 +69,8 @@
RWriteStream& aWriteStream,
TInt aVisibleWidth,
TInt aScrollPosition,
- TBidiText::TDirectionality aDirectionality);
+ const TBool aAutoLoadImages,
+ const TBool aExpanded );
void ConstructL();
void HTMLStartL() const;
@@ -77,6 +81,8 @@
void HTMLMetaL() const;
void HTMLHeaderEndL() const;
+ void ExportDisplayImagesTableL() const;
+
void ExportHTMLBodyL() const;
void HTMLBodyStartL() const;
void HTMLBodyEndL() const;
@@ -152,9 +158,9 @@
RWriteStream& iWriteStream;
TInt iVisibleWidth;
TInt iScrollPosition;
- TBidiText::TDirectionality iDirectionality;
+ TBool iAutoLoadImages;
TBool iMirrorLayout;
-
+ TBool iExpanded;
RPointerArray<CFSMailMessagePart> iAttachments;
};
--- a/emailuis/emailui/inc/OverlayControl.h Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/inc/OverlayControl.h Fri Mar 12 15:41:14 2010 +0200
@@ -24,6 +24,10 @@
#include <coecntrl.h>
#include <eikenv.h>
#include <AknIconUtils.h>
+
+#include <touchfeedback.h>
+#include <touchlogicalfeedback.h>
+
#include <freestyleemailui.mbg>
#include "FreestyleEmailUiUtilities.h"
@@ -93,6 +97,8 @@
CFbsBitmap* iBitmap;
CFbsBitmap* iMask;
MOverlayControlObserver* iObserver;
+ // tactile feed back -- not owned
+ MTouchFeedback* iTouchFeedBack;
};
#endif // CTESTOVERLAYCONTROL_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/emailuis/emailui/inc/fsemailstatuspaneindicatorhandler.h Fri Mar 12 15:41:14 2010 +0200
@@ -0,0 +1,32 @@
+/*
+* Copyright (c) 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Handles mailiindicator updating
+*
+*/
+
+
+#ifndef __TFSEMAILSTATUSPANEINDICATORHANDLER_H_
+#define __TFSEMAILSTATUSPANEINDICATORHANDLER_H_
+
+#include "FreestyleEmailUiConstants.h"
+
+class TFsEmailStatusPaneIndicatorHandler
+ {
+public:
+ /*
+ * Updates the statuspane mailindicator if needed.
+ */
+ static void StatusPaneMailIndicatorHandlingL( TInt aMailBoxId );
+ };
+#endif /* __TFSEMAILSTATUSPANEINDICATORHANDLER_H */
--- a/emailuis/emailui/inc/ncscomposeviewcontainer.h Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/inc/ncscomposeviewcontainer.h Fri Mar 12 15:41:14 2010 +0200
@@ -642,6 +642,10 @@
*/
virtual TPoint ViewPosition() const;
+private:
+
+ void DoUpdateSubjectL();
+
private: // data
/**
--- a/emailuis/emailui/inc/ncsheadercontainer.h Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/inc/ncsheadercontainer.h Fri Mar 12 15:41:14 2010 +0200
@@ -21,9 +21,7 @@
#define __NCSEMAILHEADERUI_H__
#include <aknlongtapdetector.h>
-
-#include "cpbkxremotecontactlookupenv.h"
-#include "cpbkxremotecontactlookupserviceuicontext.h"
+#include <cpbkxremotecontactlookupserviceuicontext.h>
#include "FreestyleEmailUi.hrh"
#include "ncsaddressinputfield.h"
@@ -324,6 +322,8 @@
void ShowPopupMenuBarL( TBool aShow );
+ TInt GetToLineHeight() const;
+
TBool IsToFieldEmpty() const;
TBool IsCcFieldEmpty() const;
--- a/emailuis/emailui/inc/ncspopuplistbox.h Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/inc/ncspopuplistbox.h Fri Mar 12 15:41:14 2010 +0200
@@ -144,6 +144,8 @@
void SetListItemsFromArrayL();
+ TInt RoundToItemHeight(const TInt aPopupHeight) const;
+
void SetPopupHeight();
void SetScrollBarVisibilityL();
--- a/emailuis/emailui/inc/ncssubjectfield.h Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/inc/ncssubjectfield.h Fri Mar 12 15:41:14 2010 +0200
@@ -140,11 +140,6 @@
void UpdateFontSize();
-
- void HandleFocusChangedL();
-
- static TInt DoHandleFocusChanged( TAny* aSelfPtr );
-
//<cmail>
void HandlePointerEventL( const TPointerEvent& aPointerEvent );
//</cmail>
--- a/emailuis/emailui/loc/freestyleemailui.loc Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/loc/freestyleemailui.loc Fri Mar 12 15:41:14 2010 +0200
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009 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"
@@ -35,7 +35,7 @@
// r:TB9.1
//
#define qtn_fse_launcher_settings "Settings"
-
+
// <cmail> Removed exit and hide
// </cmail>
@@ -119,7 +119,7 @@
//
#define qtn_fse_message_list_sent "Sent items"
-// d:Outbox
+// d:Outbox
// l:main_sp_fs_ctrlbar_ddmenu_pane_t1
// r:TB9.1
//
@@ -132,25 +132,25 @@
#define qtn_fse_message_list_search_divider_inbox "Inbox"
// d:Sent items divider in search results screen
-// l:list_single_dyc_row_text_pane_t1
+// l:list_single_dyc_row_text_pane_t1
// r:TB9.1
//
#define qtn_fse_message_list_search_divider_sent_items "Sent items"
// d:Drafts divider in search results screen
-// l:list_single_dyc_row_text_pane_t1
+// l:list_single_dyc_row_text_pane_t1
// r:TB9.1
//
#define qtn_fse_message_list_search_divider_drafts "Drafts"
// d:Outbox divider in search results screen
-// l:list_single_dyc_row_text_pane_t1
+// l:list_single_dyc_row_text_pane_t1
// r:TB9.1
//
#define qtn_fse_message_list_search_divider_outbox "Outbox"
// d:Deleted items
-// l:main_sp_fs_ctrlbar_ddmenu_pane_t1
+// l:main_sp_fs_ctrlbar_ddmenu_pane_t1
// r:TB9.1
//
#define qtn_fse_message_list_deleted_items "Deleted items"
@@ -161,37 +161,37 @@
//
#define qtn_fse_viewer_header_subject "Subject:"
-// d:Mail viewer header item, see UI spec for more details
+// d:Mail viewer header item, see UI spec for more details
// l:list_single_cmail_header_caption_pane_t1
// r:TB9.1
//
#define qtn_fse_viewer_header_from "From:"
-// d:Mail viewer header item, see UI spec for more details
+// d:Mail viewer header item, see UI spec for more details
// l:list_single_cmail_header_caption_pane_t1
// r:TB9.1
//
#define qtn_fse_viewer_header_to "To:"
-// d:Mail viewer header item, see UI spec for more details
+// d:Mail viewer header item, see UI spec for more details
// l:list_single_cmail_header_caption_pane_t1
// r:TB9.1
//
#define qtn_fse_viewer_header_cc "Cc:"
-// d:Mail viewer header item, see UI spec for more details
+// d:Mail viewer header item, see UI spec for more details
// l:list_single_cmail_header_caption_pane_t1
// r:TB9.1
//
#define qtn_fse_viewer_header_bcc "Bcc:"
-// d:Mail viewer header item, see UI spec for more details
+// d:Mail viewer header item, see UI spec for more details
// l:list_single_cmail_header_caption_pane_t1
// r:TB9.1
//
#define qtn_fse_viewer_header_sent "Sent:"
-// d:Mail viewer header item, see UI spec for more details
+// d:Mail viewer header item, see UI spec for more details
// l:list_single_cmail_header_detail_pane_t1
// r:TB9.1
//
@@ -230,7 +230,7 @@
// d:Options menu item
// l:list_single_pane_t1_cp2
// r:TB9.1
-//
+//
#define qtn_fse_message_list_options_settings "Settings"
// d:Options menu item
@@ -334,7 +334,7 @@
//
#define qtn_fse_message_list_options_flag "Flag"
-// d:Popup list header
+// d:Popup list header
// l:heading_pane_t1
// r:TB9.1
//
@@ -562,7 +562,7 @@
//
#define qtn_fse_message_list_options_empty_deleted_items "Empty deleted items"
-// d:Submenu item in options menu
+// d:Submenu item in options menu
// l:list_single_popup_submenu_pane_t1
// r:TB9.1
//
@@ -687,200 +687,200 @@
// d:Delete multiple emails query
// l:popup_note_window/opt2
// r:TB9.1
-//
+//
#define qtn_fse_delete_mails_note "Delete %N e-mails?"
// d:Date divider text in list
// l:list_single_dyc_row_text_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_message_list_date_monday_divider "Monday"
// d:Date divider text in list
// l:list_single_dyc_row_text_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_message_list_date_tuesday_divider "Tuesday"
// d:Date divider text in list
// l:list_single_dyc_row_text_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_message_list_date_wednesday_divider "Wednesday"
// d:Date divider text in list
// l:list_single_dyc_row_text_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_message_list_date_thursday_divider "Thursday"
// d:Date divider text in list
// l:list_single_dyc_row_text_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_message_list_date_friday_divider "Friday"
// d:Date divider text in list
// l:list_single_dyc_row_text_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_message_list_date_saturday_divider "Saturday"
// d:Date divider text in list
// l:list_single_dyc_row_text_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_message_list_date_sunday_divider "Sunday"
// d:Date divider text in list
// l:list_single_dyc_row_text_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_message_list_date_today_divider "Today"
// d:Date divider text in list
// l:list_single_dyc_row_text_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_message_list_date_yesterday_divider "Yesterday"
// d:Query note for call sender functionality
// l:popup_note_window/opt2
// r:TB9.1
-//
+//
#define qtn_fse_viewer_call_sender_query "Call sender\n%U?"
// d:Message size info to list preview pane. The descriptor argument
// d:contains the number and type of the file size (e.g Message size: 2 MB)
// l:list_single_dyc_row_text_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_list_message_size "Message size: %U"
// d:"More" submenu item
// l:list_single_pane_t1_cp2/opt3
// r:TB9.1
-//
+//
#define qtn_fse_message_list_options_more "More"
// d:Menu text 'Extra Recepient fields'
// l:list_single_pane_t1_cp2/opt3
// r:TB9.2
-//
+//
#define qtn_fse_editor_options_extra_recepient_fields "Extra Recepient fields"
// d:Search selection in options menu
// l:list_single_pane_t1_cp2
// r:TB9.1
-//
+//
#define qtn_fse_message_list_options_search "Search"
-// d:"Title bar" header for searhc screen, see UI spec for details
+// d:"Title bar" header for searhc screen, see UI spec for details
// l:fse_search_header_text_1
// r:TB9.1
-//
+//
#define qtn_fse_message_list_search "Search:"
// d:"Title bar" header for searhc screen, see UI spec for details
// l:fse_search_header_text_1
// r:TB9.1
-//
+//
#define qtn_fse_message_list_search_for "Search for:"
// d:"Title bar" header for searhc screen, see UI spec for details
// l:fse_search_header_text_1
// r:TB9.1
-//
+//
#define qtn_fse_message_list_searching "Searching:"
// d:"Title bar" header for searhc screen, see UI spec for details
// l:fse_search_header_text_1
// r:TB9.1
-//
+//
#define qtn_fse_message_list_search_results "Search results:"
// d:Options menu item
// l:list_single_pane_t1_cp2
// r:TB9.1
-//
+//
#define qtn_fse_message_list_options_stop_search "Stop search"
// d:Options menu item
// l:list_single_pane_t1_cp2
// r:TB9.1
-//
+//
#define qtn_fse_message_list_options_new_search "New search"
// d:Options menu item
// l:list_single_pane_t1_cp2
// r:TB9.1
-//
+//
#define qtn_fse_message_list_options_connection_info "Connection details"
// d:Options menu item
// l:list_single_popup_submenu_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_viewer_options_copy_to_clipboard "Copy to clipboard"
// d:Options menu item
// l:list_single_popup_submenu_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_viewer_options_copy_text "Copy text"
// d:Options menu item
// l:list_single_popup_submenu_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_message_list_options_create_meeting "Create meeting"
// d:Options menu item
// l:list_single_popup_submenu_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_message_list_options_compose "New message"
// d:Options menu item
// l:list_single_popup_submenu_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_viewer_options_call "Call"
// d:Options menu item
// l:list_single_popup_submenu_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_viewer_options_create_message "Create message"
// d:Options menu item
// l:list_single_popup_submenu_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_viewer_options_create_email "Create mail"
// d:Options menu item
// l:list_single_popup_submenu_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_viewer_options_remote_lookup "Search from remote"
// d:Options menu item
// l:list_single_popup_submenu_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_viewer_options_open_web "Open in Web"
// d:Options menu item
// l:list_single_popup_submenu_pane_t1
// r:TB9.1
-//
+//
#define qtn_intra_fseoptions_open_intra "Open in intranet"
// d:Attachments line in text viewer
// l:list_single_cmail_header_caption_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_viewer_attachments_text "Attachments (%N)"
// d:Attachments line in text viewer with the attachment size info.
@@ -888,37 +888,37 @@
// d:contains the total size including the type (KB or MB).
// l:list_single_cmail_header_detail_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_viewer_header_attachments "Attachments (%N) %U"
// d:View HTML message line in text viewer
// l:list_single_cmail_header_detail_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_viewer_view_fetching_content "Fetching content"
// d:View HTML message line in text viewer
// l:list_single_cmail_header_detail_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_viewer_header_view_html_message "View HTML message"
// d:Selectable line text in popup selection list
// l:list_single_graphic_pane_t1_cp2
// r:TB9.1
-//
+//
#define qtn_fse_viewer_options_add_to_contacts_create_new "Create new"
// d:Selectable line text in popup selection list
// l:list_single_graphic_pane_t1_cp2
// r:TB9.1
-//
+//
#define qtn_fse_viewer_options_add_to_contacts_update_existing "Update existing"
// d:Confirmation query. Informs that sync status is in offline mode and asks if user wants to go online.
// l:popup_note_window
// r:TB9.1
-//
+//
#define qtn_fse_query_sync_status_go_online "Sync is in offline mode. Go online?"
// d:Information note.
@@ -989,7 +989,7 @@
// l:popup_note_window/opt2
// r:TB9.1
//
-#define qtn_fse_confirm_note_message_copied "Message copied to %U"
+#define qtn_fse_confirm_note_message_copied "Message copied to %U"
// d:Information note. Informs that messages are copied to a folder.
// d:%U is replaced with the name of the folder.
@@ -997,30 +997,30 @@
// l:popup_note_window/opt2
// r:TB9.1
//
-#define qtn_fse_confirm_note_messages_copied "%N messages copied to %U"
+#define qtn_fse_confirm_note_messages_copied "%N messages copied to %U"
// d:Confirmation query. Informs that phone number was not found and asks if search from remote should be started.
// l:popup_note_window
// r:TB9.1
-//
+//
#define qtn_fse_query_no_phone_number_found_search_server "No number found in Contacts. Search on server?"
// d:Information note.
// l:popup_note_window/opt2
// r:TB9.1
-//
+//
#define qtn_fse_error_general_no_phone_number "No phone number available"
// d:Information note.
// l:popup_note_window/opt2
// r:TB9.1
-//
+//
#define qtn_fse_error_general_no_email_address "No e-mail address available"
// d:Information note.
// l:popup_note_window/opt2
// r:TB9.1
-//
+//
#define qtn_fse_query_no_phone_number_found "No phone number found in Contacts"
// d:Information note. Informs that meeting will appear in Calendar after next sync.
@@ -1122,79 +1122,79 @@
// d:Action menu item
// l:sp_fs_action_menu_list_gene_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_action_menu_open "Open"
// d:Action menu item
// l:sp_fs_action_menu_list_gene_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_action_menu_reply "Reply"
// d:Action menu item
// l:sp_fs_action_menu_list_gene_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_action_menu_reply_all "Reply to all"
// d:Action menu item
// l:sp_fs_action_menu_list_gene_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_action_menu_forward "Forward"
// d:Action menu item
// l:sp_fs_action_menu_list_gene_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_action_menu_delete "Delete"
// d:Action menu item
// l:sp_fs_action_menu_list_gene_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_action_menu_call_sender "Call sender"
// d:Action menu item
// l:sp_fs_action_menu_list_gene_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_action_menu_move_to_drafts "Move to Drafts"
// d:Action menu item
// l:sp_fs_action_menu_list_gene_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_action_menu_remove_from_calendar "Remove from Cal."
// d:Action menu item
// l:sp_fs_action_menu_list_gene_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_action_menu_accept "Accept"
// d:Action menu item
// l:sp_fs_action_menu_list_gene_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_action_menu_tentative "Tentative"
// d:Action menu item
// l:sp_fs_action_menu_list_gene_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_action_menu_decline "Decline"
// d:Action menu item
// l:sp_fs_action_menu_list_gene_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_action_menu_mark_read "Mark as read"
// d:Action menu item
// l:sp_fs_action_menu_list_gene_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_action_menu_mark_unread "Mark as unread"
// d:Action menu item
@@ -1218,31 +1218,31 @@
// d:TO-field label text
// l:list_single_cmail_header_caption_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_editor_header_to "To:"
// d:CC-field label text
// l:list_single_cmail_header_caption_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_editor_header_cc "Cc:"
// d:BCC-field label text
// l:list_single_cmail_header_caption_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_editor_header_bcc "Bcc:"
// d:Subject-field label text
// l:list_single_cmail_header_caption_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_editor_header_subject "Subject:"
// d:attachments label text
// l:list_single_cmail_header_caption_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_editor_header_attachment_label "Attachs.:"
// d:attachments field text
@@ -1250,7 +1250,7 @@
// d:%U stands for the size of attachment files including the unit (KB or MB).
// l:list_single_cmail_header_detail_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_editor_header_attachments "%N attachments (%U)"
// d:attachments field single text
@@ -1258,211 +1258,211 @@
// d:%1U stands for the size of attachment file.
// l:list_single_cmail_header_detail_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_editor_header_single_attachment "%0U (%1U)"
// d:Menu text 'Send'
// l:list_single_pane_t1_cp2
// r:TB9.1
-//
+//
#define qtn_fse_editor_options_send "Send"
// d:Menu text 'Show Cc'
// l:list_single_popup_submenu_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_editor_options_show_cc "Show Cc field"
// d:Menu text 'Hide Cc'
// l:list_single_popup_submenu_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_editor_options_hide_cc "Hide Cc field"
// d:Menu text 'Show Bcc'
// l:list_single_popup_submenu_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_editor_options_show_bcc "Show Bcc field"
// d:Menu text 'Hide Bcc'
// l:list_single_popup_submenu_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_editor_options_hide_bcc "Hide Bcc field"
// d:Menu text 'Priority'
// l:list_single_pane_t1_cp2/opt3
// r:TB9.1
-//
+//
#define qtn_fse_editor_options_priority "Priority"
// d:Menu text priority->'High'
// l:list_single_popup_submenu_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_editor_options_priority_high "High"
// d:Menu text priority->'Normal'
// l:list_single_popup_submenu_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_editor_options_priority_normal "Normal"
// d:Menu text priority->'Low'
// l:list_single_popup_submenu_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_editor_options_priority_low "Low"
// d:Menu text 'More'
// l:list_single_pane_t1_cp2/opt3
// r:TB9.1
-//
+//
#define qtn_fse_editor_options_more "More"
// d:Menu text 'Insert from contacts'
// l:list_single_pane_t1_cp2
// r:TB9.1
-//
+//
#define qtn_fse_editor_options_insert_from_contacts "Add recipient"
// d:Menu text save as draft
// l:list_single_pane_t1_cp2
// r:TB9.1
-//
+//
#define qtn_fse_editor_options_save_as_draft "Save to Drafts"
// d:Menu text 'Add attachment'
// l:list_single_pane_t1_cp2
// r:TB9.1
-//
+//
#define qtn_fse_editor_options_add_attachment "Add attachment"
// d:Menu text 'Remove attachment'
// l:list_single_pane_t1_cp2
// r:TB9.1
-//
+//
#define qtn_fse_editor_options_remove_attachment "Remove attachment"
// d:Menu text Remove all attachments
// l:list_single_pane_t1_cp2
// r:TB9.1
-//
+//
#define qtn_fse_editor_options_remove_all_attachments "Remove all attachments"
// d:Menu text Flag
// l:list_single_pane_t1_cp2
// r:TB9.1
-//
+//
#define qtn_fse_editor_options_flag "Flag"
// d:Save to drafts dialog text
// l:popup_note_wait_window
// r:TB9.1
-//
+//
#define qtn_fse_editor_wait_note_saving_to_drafts "Saving message to Drafts"
-// d:Reply prefix.
-// l:mce_header_field_pane_t1
-// r:TB9.1
-//
+// d:Reply prefix.
+// l:mce_header_field_pane_t1
+// r:TB9.1
+//
#define qtn_ncs_engine_email_reply_prefix_text "RE: "
-// d:Forward prefix.
+// d:Forward prefix.
// l:mce_header_field_pane_t1
// r:TB9.1
-//
+//
#define qtn_ncs_engine_email_forward_prefix_text "FW: "
-// d:To prefix.
+// d:To prefix.
// l:mce_header_field_pane_t1
// r:TB9.1
-//
+//
#define qtn_ncs_engine_email_to_text "To: "
// d:Cc prefix.
// l:mce_header_field_pane_t1
// r:TB9.1
-//
+//
#define qtn_ncs_engine_email_cc_text "Cc: "
-// d:From prefix.
+// d:From prefix.
// l:mce_header_field_pane_t1
// r:TB9.1
-//
+//
#define qtn_ncs_engine_email_from_text "From: "
// d:Sent prefix.
// l:mce_header_field_pane_t1
// r:TB9.1
-//
+//
#define qtn_ncs_engine_email_sent_text "Sent: "
-// d:Subject prefix.
+// d:Subject prefix.
// l:mce_header_field_pane_t1
// r:TB9.1
-//
+//
#define qtn_ncs_engine_email_subject_text "Subject: "
-// d:Message line separator.
+// d:Message line separator.
// l:list_cmail_body_pane_t1
// r:TB9.1
-//
+//
#define qtn_ncs_engine_email_message_line_separator_text "-----Original Message-----"
// d:menu text Quick Text
// l:list_single_pane_t1_cp2
// r:TB9.1
-//
+//
#define qtn_fse_editor_options_insert_template "Insert template"
// d:default text in recipient fields
// l:list_single_cmail_header_detail_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_editor_recipient_enter "Enter recipient"
// d:default text in subject field
// l:list_single_cmail_header_detail_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_editor_subject_enter "Enter subject"
// d:follow up item text in flag dialog
// l:list_single_graphic_pane_t1_cp2
// r:TB9.1
-//
+//
#define qtn_fse_editor_list_flag_follow_up "Follow up"
// d:Clear flag item text in flag dialog
// l:list_single_graphic_pane_t1_cp2
// r:TB9.1
-//
+//
#define qtn_fse_editor_list_flag_clear "Clear flag"
// d:Flag dialog title
// l:heading_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_editor_list_flag "Flag"
// d:Draft dialog title
// l:heading_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_editor_close_message_query_prompt "Close message:"
// d:Save to drafts item text in draft dialog
// l:list_single_graphic_pane_t1_cp2
// r:TB9.1
-//
+//
#define qtn_fse_editor_close_message_quey_save_to_drafts "Save to Drafts"
// d:Delete item text in draft dialog
// l:list_single_graphic_pane_t1_cp2
// r:TB9.1
-//
+//
#define qtn_fse_editor_close_message_query_delete_message "Delete message"
// d:Upmost item in addressfield match popup list. For selecting Remote lookup server search
@@ -1475,7 +1475,7 @@
// l:control_pane_t1/opt7
// r:TB9.1
//
-#define qtn_ncs_softkey_select_text "Select"
+#define qtn_ncs_softkey_select_text "Select"
// d:Softkey Cancel
// l:control_pane_t1/opt7
@@ -1630,13 +1630,13 @@
//
#define qtn_fse_folder_list_options_folder_settings "Folder settings"
-// d:Mail viewer header item, see UI spec for more details
+// d:Mail viewer header item, see UI spec for more details
// l:none
// r:TB9.1
//
#define qtn_fse_folder_list_message_count "(%N)"
-// d:Mail viewer header item, see UI spec for more details
+// d:Mail viewer header item, see UI spec for more details
// l:none
// r:TB9.1
//
@@ -1839,7 +1839,7 @@
// r:TB9.1
//
#define qtn_fse_viewer_attachment_list_options_cancel_all "Cancel all"
-
+
// d:Save attachment menu option in attachment list
// l:list_single_pane_t1_cp2
// r:TB9.1
@@ -1994,7 +1994,7 @@
//
#define qtn_fse_viewer_attachments_text_from "From:"
-// d:Download complete popup
+// d:Download complete popup
// l:list_single_cmail_header_detail_pane_t1
// r:TB9.1
//
@@ -2003,7 +2003,7 @@
// d:Total number of complete attachments in download complete popup
// l:list_single_cmail_header_detail_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_viewer_attachments_downloaded "Attachments (%N)"
// d:Personal Information Management settings list item
@@ -2182,7 +2182,7 @@
// d:heading in body 1st row
// d:%N stands for number of attachments
-// l:list_single_cmail_header_detail_pane_t1
+// l:list_single_cmail_header_detail_pane_t1
// r:TB9.1
//
#define qtn_fse_editor_attachments_header_attachments "Attachments (%N)"
@@ -2253,7 +2253,7 @@
// d:Header in mailbox selection dialog
// l:heading_pane_t1
// r:TB9.1
-//
+//
#define qtn_fse_launcher_select_mailbox_query_prompt "Select mailbox:"
// d:Personal information manager list title
@@ -2292,7 +2292,7 @@
//
#define qtn_fse_settings_applications_contacts "Contacts"
-// d:Applications setting list item: Tasks
+// d:Applications setting list item: Tasks
// l:list_setting_pane_t1
// r:TB9.1
//
@@ -2333,13 +2333,13 @@
//
#define qtn_fse_status_email_sent "E-mail sent"
-// d:Mail list options menu settings cascade menu
+// d:Mail list options menu settings cascade menu
// l:list_single_popup_submenu_pane_t1
// r:TB9.1
//
#define qtn_fse_message_list_options_settings_mailbox "Mailbox settings"
-// d:Mail list options menu settings cascade menu
+// d:Mail list options menu settings cascade menu
// l:list_single_popup_submenu_pane_t1
// r:TB9.1
//
@@ -2358,7 +2358,7 @@
//
#define qtn_fse_general_creating_new_mailbox "Creating new mailbox"
-// d:Error note for showing that when creating a new mailbox the maximum amount
+// d:Error note for showing that when creating a new mailbox the maximum amount
// of this type of mailboxes was reached.
// l:popup_note_window/opt2
// r:TB9.1
@@ -2522,19 +2522,19 @@
//
#define qtn_fse_tb_ext_reply "Reply"
-// d:Extended toolbar button reply, creates a reply to email message sender and other recipients
+// d:Extended toolbar button reply, creates a reply to email message sender and other recipients
// l:popup_preview_text_window_t1
// r:TB9.2
//
#define qtn_fse_tb_ext_reply_all "Reply to all"
-// d:Extended toolbar button forward, creates a forward email message to the sender
+// d:Extended toolbar button forward, creates a forward email message to the sender
// l:popup_preview_text_window_t1
// r:TB9.2
//
#define qtn_fse_tb_ext_forward "Forward"
-// d:Toolbar button for add attachment in editor, opens extended toolbar for attachment selection
+// d:Toolbar button for add attachment in editor, opens extended toolbar for attachment selection
// l:popup_preview_text_window_t1
// r:TB9.2
//
@@ -2600,7 +2600,7 @@
//
#define qtn_cmail_action_menu_mark "Mark"
-// d:Displayed in stylus popup menu when activated in message list view
+// d:Displayed in stylus popup menu when activated in message list view
// l:sp_fs_action_menu_list_gene_pane_t1
// r:TB9.2
//
@@ -2632,7 +2632,7 @@
#define qtn_mail_launcher_settings_delete_multiple_mailboxes_query "Delete %N mailboxes?"
// d:Select folders item in folder list in mail list view's control bar
-// l:main_sp_fs_ctrlbar_ddmenu_pane_t1
+// l:main_sp_fs_ctrlbar_ddmenu_pane_t1
// r:TB9.2
//
#define qtn_cmail_command_area_select_folders "Select folders"
@@ -2724,42 +2724,42 @@
// d:Copy to clipboard menu item
// l:list_single_touch_menu_pane_t1
// r:TB9.2
-//
+//
#define qtn_cmail_popup_copy_address "Copy address"
-// d:Searches the contact information of the person who’s the address is.
+// d:Searches the contact information of the person who’s the address is.
// l:list_single_touch_menu_pane_t1
// r:TB9.2
-//
+//
#define qtn_cmail_popup_search_server "Search from server"
-// d:Opens the attachment
+// d:Opens the attachment
// l:list_single_touch_menu_pane_t1
// r:TB9.2
-//
+//
#define qtn_cmail_popup_open "Open"
-// d:Save the attachment
+// d:Save the attachment
// l:list_single_touch_menu_pane_t1
// r:TB9.2
-//
+//
#define qtn_cmail_popup_save "Save"
// d:Save all the attachments
// l:list_single_touch_menu_pane_t1
// r:TB9.2
-//
+//
#define qtn_cmail_popup_save_all "Save all"
-// d:Shown if the tapped attachment is being downloaded. Cancels the download.
+// d:Shown if the tapped attachment is being downloaded. Cancels the download.
// l:list_single_touch_menu_pane_t1
-// r:TB9.2
+// r:TB9.2
#define qtn_cmail_popup_cancel_download "Cancel download"
// d:Adds the web address to browser bookmarks.
// l:list_single_touch_menu_pane_t1
// r:TB9.2
-//
+//
#define qtn_cmail_popup_add_bookmark "Add to bookmarks"
// d:Open attachment in compose view
@@ -2774,9 +2774,39 @@
//
#define qtn_mail_stylus_popup_remove "Remove"
-// d:Save to Contacts
+// d:Save to Contacts
// l:list_single_touch_menu_pane_t1
// r:TB9.2
//
#define qtn_mail_stylus_popup_add_to_contacts "Save to Contacts"
+// d:Mail viewer header item, see UI spec for more details
+// l:list_single_cmail_header_detail_pane_t1
+// r:TB9.2
+//
+#define qtn_cmail_viewer_images_not_displayed "Images are not displayed"
+
+// d:Mail viewer header item, see UI spec for more details
+// l:list_single_cmail_header_detail_pane_t1
+// r:TB9.2
+//
+#define qtn_cmail_viewer_display_images "Display images"
+
+// d:Load linked HTML images
+// l:list_setting_pane_t1
+// r:TB9.2
+//
+#define qtn_mail_setting_download_images "Download images"
+
+// d:Load linked HTML images option yes
+// l:list_setting_pane_t1
+// r:TB9.2
+//
+#define qtn_mail_option_alternative_yes "Yes"
+
+// d:Load linked HTML images option no
+// l:list_setting_pane_t1
+// r:TB9.2
+//
+#define qtn_mail_option_alternative_no "No"
+
--- a/emailuis/emailui/rom/freestyleemailui.iby Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/rom/freestyleemailui.iby Fri Mar 12 15:41:14 2010 +0200
@@ -39,8 +39,10 @@
data=DATAZ_\private\2001E277\HtmlFile\header.js private\2001E277\HtmlFile\header.js
data=DATAZ_\private\2001E277\HtmlFile\plus.gif private\2001E277\HtmlFile\plus.gif
data=DATAZ_\private\2001E277\HtmlFile\minus.gif private\2001E277\HtmlFile\minus.gif
+data=DATAZ_\private\2001E277\HtmlFile\email.js private\2001E277\HtmlFile\email.js
data=DATAZ_\private\2001E277\HtmlFile\follow_up.png private\2001E277\HtmlFile\follow_up.png
data=DATAZ_\private\2001E277\HtmlFile\follow_up_complete.png private\2001E277\HtmlFile\follow_up_complete.png
+data=DATAZ_\private\2001E277\HtmlFile\btn_middle.png private\2001E277\HtmlFile\btn_middle.png
data=DATAZ_\private\2001E277\HtmlFile\todo_high_add.png private\2001E277\HtmlFile\todo_high_add.png
data=DATAZ_\private\2001E277\HtmlFile\todo_low_add.png private\2001E277\HtmlFile\todo_low_add.png
--- a/emailuis/emailui/sis/commonemail.pkg Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/sis/commonemail.pkg Fri Mar 12 15:41:14 2010 +0200
@@ -178,14 +178,6 @@
"\epoc32\data\z\resource\apps\fscsendplugin.rsc" - "c:\resource\apps\fscsendplugin.rsc"
"\epoc32\data\z\resource\apps\fscsendplugin.mif" - "c:\resource\apps\fscsendplugin.mif"
-; emailcontacts / remotecontactlookup
-"\epoc32\release\armv5\urel\pbkxrclservice.dll" - "c:\sys\bin\pbkxrclservice.dll"
-"\epoc32\data\Z\Resource\Plugins\pbkxrclservice.rsc" - "c:\resource\plugins\pbkxrclservice.rsc"
-"\epoc32\release\armv5\urel\pbkxrclengine.dll" - "c:\sys\bin\pbkxrclengine.dll"
-"\epoc32\data\z\resource\apps\pbkxrclengine.rsc" - "c:\resource\apps\pbkxrclengine.rsc"
-"\epoc32\data\z\resource\apps\pbkxrclengine.mif" - "c:\resource\apps\pbkxrclengine.mif"
-"\epoc32\data\Z\private\10202BE9\2001F3FE.txt" - "c:\private\10202be9\2001F3FE.txt"
-
; meetingrequest
"\epoc32\data\z\resource\esmrgui.rsc" - "c:\resource\esmrgui.rsc"
"\epoc32\data\z\resource\esmrtasks.rsc" - "c:\resource\esmrtasks.rsc"
--- a/emailuis/emailui/sis/commonemail_loc.pkg Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/sis/commonemail_loc.pkg Fri Mar 12 15:41:14 2010 +0200
@@ -187,15 +187,6 @@
;"\epoc32\data\z\resource\apps\fscsendplugin.rsc" - "c:\resource\apps\fscsendplugin.rsc"
"\epoc32\data\z\resource\apps\fscsendplugin.mif" - "c:\resource\apps\fscsendplugin.mif"
-; emailcontacts / remotecontactlookup
-"\epoc32\release\armv5\urel\pbkxrclservice.dll" - "c:\sys\bin\pbkxrclservice.dll"
-"\epoc32\data\Z\Resource\Plugins\pbkxrclservice.rsc" - "c:\resource\plugins\pbkxrclservice.rsc"
-"\epoc32\release\armv5\urel\pbkxrclengine.dll" - "c:\sys\bin\pbkxrclengine.dll"
-; Following line is localized, so this Engineering English line is commented out
-;"\epoc32\data\z\resource\apps\pbkxrclengine.rsc" - "c:\resource\apps\pbkxrclengine.rsc"
-"\epoc32\data\z\resource\apps\pbkxrclengine.mif" - "c:\resource\apps\pbkxrclengine.mif"
-"\epoc32\data\Z\private\10202BE9\2001F3FE.txt" - "c:\private\10202be9\2001F3FE.txt"
-
; meetingrequest
; Following line is localized, so this Engineering English line is commented out
;"\epoc32\data\z\resource\esmrgui.rsc" - "c:\resource\esmrgui.rsc"
@@ -278,7 +269,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r01" - "c:\resource\apps\fsccallplugin.r01"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r01" - "c:\resource\apps\fscsaveascontactplugin.r01"
"\epoc32\data\z\resource\apps\fscsendplugin.r01" - "c:\resource\apps\fscsendplugin.r01"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r01" - "c:\resource\apps\pbkxrclengine.r01"
"\epoc32\data\z\resource\esmrgui.r01" - "c:\resource\esmrgui.r01"
"\epoc32\data\z\resource\esmrtasks.r01" - "c:\resource\esmrtasks.r01"
"\epoc32\data\z\resource\esmrcasplugindata.r01" - "c:\resource\esmrcasplugindata.r01"
@@ -295,7 +285,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r02" - "c:\resource\apps\fsccallplugin.r02"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r02" - "c:\resource\apps\fscsaveascontactplugin.r02"
"\epoc32\data\z\resource\apps\fscsendplugin.r02" - "c:\resource\apps\fscsendplugin.r02"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r02" - "c:\resource\apps\pbkxrclengine.r02"
"\epoc32\data\z\resource\esmrgui.r02" - "c:\resource\esmrgui.r02"
"\epoc32\data\z\resource\esmrtasks.r02" - "c:\resource\esmrtasks.r02"
"\epoc32\data\z\resource\esmrcasplugindata.r02" - "c:\resource\esmrcasplugindata.r02"
@@ -312,7 +301,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r03" - "c:\resource\apps\fsccallplugin.r03"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r03" - "c:\resource\apps\fscsaveascontactplugin.r03"
"\epoc32\data\z\resource\apps\fscsendplugin.r03" - "c:\resource\apps\fscsendplugin.r03"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r03" - "c:\resource\apps\pbkxrclengine.r03"
"\epoc32\data\z\resource\esmrgui.r03" - "c:\resource\esmrgui.r03"
"\epoc32\data\z\resource\esmrtasks.r03" - "c:\resource\esmrtasks.r03"
"\epoc32\data\z\resource\esmrcasplugindata.r03" - "c:\resource\esmrcasplugindata.r03"
@@ -329,7 +317,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r04" - "c:\resource\apps\fsccallplugin.r04"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r04" - "c:\resource\apps\fscsaveascontactplugin.r04"
"\epoc32\data\z\resource\apps\fscsendplugin.r04" - "c:\resource\apps\fscsendplugin.r04"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r04" - "c:\resource\apps\pbkxrclengine.r04"
"\epoc32\data\z\resource\esmrgui.r04" - "c:\resource\esmrgui.r04"
"\epoc32\data\z\resource\esmrtasks.r04" - "c:\resource\esmrtasks.r04"
"\epoc32\data\z\resource\esmrcasplugindata.r04" - "c:\resource\esmrcasplugindata.r04"
@@ -346,7 +333,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r05" - "c:\resource\apps\fsccallplugin.r05"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r05" - "c:\resource\apps\fscsaveascontactplugin.r05"
"\epoc32\data\z\resource\apps\fscsendplugin.r05" - "c:\resource\apps\fscsendplugin.r05"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r05" - "c:\resource\apps\pbkxrclengine.r05"
"\epoc32\data\z\resource\esmrgui.r05" - "c:\resource\esmrgui.r05"
"\epoc32\data\z\resource\esmrtasks.r05" - "c:\resource\esmrtasks.r05"
"\epoc32\data\z\resource\esmrcasplugindata.r05" - "c:\resource\esmrcasplugindata.r05"
@@ -363,7 +349,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r06" - "c:\resource\apps\fsccallplugin.r06"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r06" - "c:\resource\apps\fscsaveascontactplugin.r06"
"\epoc32\data\z\resource\apps\fscsendplugin.r06" - "c:\resource\apps\fscsendplugin.r06"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r06" - "c:\resource\apps\pbkxrclengine.r06"
"\epoc32\data\z\resource\esmrgui.r06" - "c:\resource\esmrgui.r06"
"\epoc32\data\z\resource\esmrtasks.r06" - "c:\resource\esmrtasks.r06"
"\epoc32\data\z\resource\esmrcasplugindata.r06" - "c:\resource\esmrcasplugindata.r06"
@@ -380,7 +365,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r07" - "c:\resource\apps\fsccallplugin.r07"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r07" - "c:\resource\apps\fscsaveascontactplugin.r07"
"\epoc32\data\z\resource\apps\fscsendplugin.r07" - "c:\resource\apps\fscsendplugin.r07"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r07" - "c:\resource\apps\pbkxrclengine.r07"
"\epoc32\data\z\resource\esmrgui.r07" - "c:\resource\esmrgui.r07"
"\epoc32\data\z\resource\esmrtasks.r07" - "c:\resource\esmrtasks.r07"
"\epoc32\data\z\resource\esmrcasplugindata.r07" - "c:\resource\esmrcasplugindata.r07"
@@ -397,7 +381,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r08" - "c:\resource\apps\fsccallplugin.r08"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r08" - "c:\resource\apps\fscsaveascontactplugin.r08"
"\epoc32\data\z\resource\apps\fscsendplugin.r08" - "c:\resource\apps\fscsendplugin.r08"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r08" - "c:\resource\apps\pbkxrclengine.r08"
"\epoc32\data\z\resource\esmrgui.r08" - "c:\resource\esmrgui.r08"
"\epoc32\data\z\resource\esmrtasks.r08" - "c:\resource\esmrtasks.r08"
"\epoc32\data\z\resource\esmrcasplugindata.r08" - "c:\resource\esmrcasplugindata.r08"
@@ -414,7 +397,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r09" - "c:\resource\apps\fsccallplugin.r09"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r09" - "c:\resource\apps\fscsaveascontactplugin.r09"
"\epoc32\data\z\resource\apps\fscsendplugin.r09" - "c:\resource\apps\fscsendplugin.r09"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r09" - "c:\resource\apps\pbkxrclengine.r09"
"\epoc32\data\z\resource\esmrgui.r09" - "c:\resource\esmrgui.r09"
"\epoc32\data\z\resource\esmrtasks.r09" - "c:\resource\esmrtasks.r09"
"\epoc32\data\z\resource\esmrcasplugindata.r09" - "c:\resource\esmrcasplugindata.r09"
@@ -431,7 +413,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r10" - "c:\resource\apps\fsccallplugin.r10"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r10" - "c:\resource\apps\fscsaveascontactplugin.r10"
"\epoc32\data\z\resource\apps\fscsendplugin.r10" - "c:\resource\apps\fscsendplugin.r10"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r10" - "c:\resource\apps\pbkxrclengine.r10"
"\epoc32\data\z\resource\esmrgui.r10" - "c:\resource\esmrgui.r10"
"\epoc32\data\z\resource\esmrtasks.r10" - "c:\resource\esmrtasks.r10"
"\epoc32\data\z\resource\esmrcasplugindata.r10" - "c:\resource\esmrcasplugindata.r10"
@@ -448,7 +429,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r13" - "c:\resource\apps\fsccallplugin.r13"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r13" - "c:\resource\apps\fscsaveascontactplugin.r13"
"\epoc32\data\z\resource\apps\fscsendplugin.r13" - "c:\resource\apps\fscsendplugin.r13"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r13" - "c:\resource\apps\pbkxrclengine.r13"
"\epoc32\data\z\resource\esmrgui.r13" - "c:\resource\esmrgui.r13"
"\epoc32\data\z\resource\esmrtasks.r13" - "c:\resource\esmrtasks.r13"
"\epoc32\data\z\resource\esmrcasplugindata.r13" - "c:\resource\esmrcasplugindata.r13"
@@ -465,7 +445,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r14" - "c:\resource\apps\fsccallplugin.r14"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r14" - "c:\resource\apps\fscsaveascontactplugin.r14"
"\epoc32\data\z\resource\apps\fscsendplugin.r14" - "c:\resource\apps\fscsendplugin.r14"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r14" - "c:\resource\apps\pbkxrclengine.r14"
"\epoc32\data\z\resource\esmrgui.r14" - "c:\resource\esmrgui.r14"
"\epoc32\data\z\resource\esmrtasks.r14" - "c:\resource\esmrtasks.r14"
"\epoc32\data\z\resource\esmrcasplugindata.r14" - "c:\resource\esmrcasplugindata.r14"
@@ -482,7 +461,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r15" - "c:\resource\apps\fsccallplugin.r15"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r15" - "c:\resource\apps\fscsaveascontactplugin.r15"
"\epoc32\data\z\resource\apps\fscsendplugin.r15" - "c:\resource\apps\fscsendplugin.r15"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r15" - "c:\resource\apps\pbkxrclengine.r15"
"\epoc32\data\z\resource\esmrgui.r15" - "c:\resource\esmrgui.r15"
"\epoc32\data\z\resource\esmrtasks.r15" - "c:\resource\esmrtasks.r15"
"\epoc32\data\z\resource\esmrcasplugindata.r15" - "c:\resource\esmrcasplugindata.r15"
@@ -499,7 +477,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r16" - "c:\resource\apps\fsccallplugin.r16"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r16" - "c:\resource\apps\fscsaveascontactplugin.r16"
"\epoc32\data\z\resource\apps\fscsendplugin.r16" - "c:\resource\apps\fscsendplugin.r16"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r16" - "c:\resource\apps\pbkxrclengine.r16"
"\epoc32\data\z\resource\esmrgui.r16" - "c:\resource\esmrgui.r16"
"\epoc32\data\z\resource\esmrtasks.r16" - "c:\resource\esmrtasks.r16"
"\epoc32\data\z\resource\esmrcasplugindata.r16" - "c:\resource\esmrcasplugindata.r16"
@@ -516,7 +493,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r17" - "c:\resource\apps\fsccallplugin.r17"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r17" - "c:\resource\apps\fscsaveascontactplugin.r17"
"\epoc32\data\z\resource\apps\fscsendplugin.r17" - "c:\resource\apps\fscsendplugin.r17"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r17" - "c:\resource\apps\pbkxrclengine.r17"
"\epoc32\data\z\resource\esmrgui.r17" - "c:\resource\esmrgui.r17"
"\epoc32\data\z\resource\esmrtasks.r17" - "c:\resource\esmrtasks.r17"
"\epoc32\data\z\resource\esmrcasplugindata.r17" - "c:\resource\esmrcasplugindata.r17"
@@ -533,7 +509,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r18" - "c:\resource\apps\fsccallplugin.r18"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r18" - "c:\resource\apps\fscsaveascontactplugin.r18"
"\epoc32\data\z\resource\apps\fscsendplugin.r18" - "c:\resource\apps\fscsendplugin.r18"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r18" - "c:\resource\apps\pbkxrclengine.r18"
"\epoc32\data\z\resource\esmrgui.r18" - "c:\resource\esmrgui.r18"
"\epoc32\data\z\resource\esmrtasks.r18" - "c:\resource\esmrtasks.r18"
"\epoc32\data\z\resource\esmrcasplugindata.r18" - "c:\resource\esmrcasplugindata.r18"
@@ -550,7 +525,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r25" - "c:\resource\apps\fsccallplugin.r25"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r25" - "c:\resource\apps\fscsaveascontactplugin.r25"
"\epoc32\data\z\resource\apps\fscsendplugin.r25" - "c:\resource\apps\fscsendplugin.r25"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r25" - "c:\resource\apps\pbkxrclengine.r25"
"\epoc32\data\z\resource\esmrgui.r25" - "c:\resource\esmrgui.r25"
"\epoc32\data\z\resource\esmrtasks.r25" - "c:\resource\esmrtasks.r25"
"\epoc32\data\z\resource\esmrcasplugindata.r25" - "c:\resource\esmrcasplugindata.r25"
@@ -567,7 +541,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r26" - "c:\resource\apps\fsccallplugin.r26"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r26" - "c:\resource\apps\fscsaveascontactplugin.r26"
"\epoc32\data\z\resource\apps\fscsendplugin.r26" - "c:\resource\apps\fscsendplugin.r26"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r26" - "c:\resource\apps\pbkxrclengine.r26"
"\epoc32\data\z\resource\esmrgui.r26" - "c:\resource\esmrgui.r26"
"\epoc32\data\z\resource\esmrtasks.r26" - "c:\resource\esmrtasks.r26"
"\epoc32\data\z\resource\esmrcasplugindata.r26" - "c:\resource\esmrcasplugindata.r26"
@@ -584,7 +557,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r27" - "c:\resource\apps\fsccallplugin.r27"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r27" - "c:\resource\apps\fscsaveascontactplugin.r27"
"\epoc32\data\z\resource\apps\fscsendplugin.r27" - "c:\resource\apps\fscsendplugin.r27"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r27" - "c:\resource\apps\pbkxrclengine.r27"
"\epoc32\data\z\resource\esmrgui.r27" - "c:\resource\esmrgui.r27"
"\epoc32\data\z\resource\esmrtasks.r27" - "c:\resource\esmrtasks.r27"
"\epoc32\data\z\resource\esmrcasplugindata.r27" - "c:\resource\esmrcasplugindata.r27"
@@ -601,7 +573,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r28" - "c:\resource\apps\fsccallplugin.r28"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r28" - "c:\resource\apps\fscsaveascontactplugin.r28"
"\epoc32\data\z\resource\apps\fscsendplugin.r28" - "c:\resource\apps\fscsendplugin.r28"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r28" - "c:\resource\apps\pbkxrclengine.r28"
"\epoc32\data\z\resource\esmrgui.r28" - "c:\resource\esmrgui.r28"
"\epoc32\data\z\resource\esmrtasks.r28" - "c:\resource\esmrtasks.r28"
"\epoc32\data\z\resource\esmrcasplugindata.r28" - "c:\resource\esmrcasplugindata.r28"
@@ -618,7 +589,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r29" - "c:\resource\apps\fsccallplugin.r29"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r29" - "c:\resource\apps\fscsaveascontactplugin.r29"
"\epoc32\data\z\resource\apps\fscsendplugin.r29" - "c:\resource\apps\fscsendplugin.r29"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r29" - "c:\resource\apps\pbkxrclengine.r29"
"\epoc32\data\z\resource\esmrgui.r29" - "c:\resource\esmrgui.r29"
"\epoc32\data\z\resource\esmrtasks.r29" - "c:\resource\esmrtasks.r29"
"\epoc32\data\z\resource\esmrcasplugindata.r29" - "c:\resource\esmrcasplugindata.r29"
@@ -635,7 +605,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r30" - "c:\resource\apps\fsccallplugin.r30"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r30" - "c:\resource\apps\fscsaveascontactplugin.r30"
"\epoc32\data\z\resource\apps\fscsendplugin.r30" - "c:\resource\apps\fscsendplugin.r30"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r30" - "c:\resource\apps\pbkxrclengine.r30"
"\epoc32\data\z\resource\esmrgui.r30" - "c:\resource\esmrgui.r30"
"\epoc32\data\z\resource\esmrtasks.r30" - "c:\resource\esmrtasks.r30"
"\epoc32\data\z\resource\esmrcasplugindata.r30" - "c:\resource\esmrcasplugindata.r30"
@@ -652,7 +621,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r31" - "c:\resource\apps\fsccallplugin.r31"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r31" - "c:\resource\apps\fscsaveascontactplugin.r31"
"\epoc32\data\z\resource\apps\fscsendplugin.r31" - "c:\resource\apps\fscsendplugin.r31"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r31" - "c:\resource\apps\pbkxrclengine.r31"
"\epoc32\data\z\resource\esmrgui.r31" - "c:\resource\esmrgui.r31"
"\epoc32\data\z\resource\esmrtasks.r31" - "c:\resource\esmrtasks.r31"
"\epoc32\data\z\resource\esmrcasplugindata.r31" - "c:\resource\esmrcasplugindata.r31"
@@ -669,7 +637,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r32" - "c:\resource\apps\fsccallplugin.r32"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r32" - "c:\resource\apps\fscsaveascontactplugin.r32"
"\epoc32\data\z\resource\apps\fscsendplugin.r32" - "c:\resource\apps\fscsendplugin.r32"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r32" - "c:\resource\apps\pbkxrclengine.r32"
"\epoc32\data\z\resource\esmrgui.r32" - "c:\resource\esmrgui.r32"
"\epoc32\data\z\resource\esmrtasks.r32" - "c:\resource\esmrtasks.r32"
"\epoc32\data\z\resource\esmrcasplugindata.r32" - "c:\resource\esmrcasplugindata.r32"
@@ -686,7 +653,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r33" - "c:\resource\apps\fsccallplugin.r33"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r33" - "c:\resource\apps\fscsaveascontactplugin.r33"
"\epoc32\data\z\resource\apps\fscsendplugin.r33" - "c:\resource\apps\fscsendplugin.r33"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r33" - "c:\resource\apps\pbkxrclengine.r33"
"\epoc32\data\z\resource\esmrgui.r33" - "c:\resource\esmrgui.r33"
"\epoc32\data\z\resource\esmrtasks.r33" - "c:\resource\esmrtasks.r33"
"\epoc32\data\z\resource\esmrcasplugindata.r33" - "c:\resource\esmrcasplugindata.r33"
@@ -703,7 +669,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r37" - "c:\resource\apps\fsccallplugin.r37"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r37" - "c:\resource\apps\fscsaveascontactplugin.r37"
"\epoc32\data\z\resource\apps\fscsendplugin.r37" - "c:\resource\apps\fscsendplugin.r37"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r37" - "c:\resource\apps\pbkxrclengine.r37"
"\epoc32\data\z\resource\esmrgui.r37" - "c:\resource\esmrgui.r37"
"\epoc32\data\z\resource\esmrtasks.r37" - "c:\resource\esmrtasks.r37"
"\epoc32\data\z\resource\esmrcasplugindata.r37" - "c:\resource\esmrcasplugindata.r37"
@@ -720,7 +685,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r39" - "c:\resource\apps\fsccallplugin.r39"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r39" - "c:\resource\apps\fscsaveascontactplugin.r39"
"\epoc32\data\z\resource\apps\fscsendplugin.r39" - "c:\resource\apps\fscsendplugin.r39"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r39" - "c:\resource\apps\pbkxrclengine.r39"
"\epoc32\data\z\resource\esmrgui.r39" - "c:\resource\esmrgui.r39"
"\epoc32\data\z\resource\esmrtasks.r39" - "c:\resource\esmrtasks.r39"
"\epoc32\data\z\resource\esmrcasplugindata.r39" - "c:\resource\esmrcasplugindata.r39"
@@ -737,7 +701,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r42" - "c:\resource\apps\fsccallplugin.r42"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r42" - "c:\resource\apps\fscsaveascontactplugin.r42"
"\epoc32\data\z\resource\apps\fscsendplugin.r42" - "c:\resource\apps\fscsendplugin.r42"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r42" - "c:\resource\apps\pbkxrclengine.r42"
"\epoc32\data\z\resource\esmrgui.r42" - "c:\resource\esmrgui.r42"
"\epoc32\data\z\resource\esmrtasks.r42" - "c:\resource\esmrtasks.r42"
"\epoc32\data\z\resource\esmrcasplugindata.r42" - "c:\resource\esmrcasplugindata.r42"
@@ -754,7 +717,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r44" - "c:\resource\apps\fsccallplugin.r44"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r44" - "c:\resource\apps\fscsaveascontactplugin.r44"
"\epoc32\data\z\resource\apps\fscsendplugin.r44" - "c:\resource\apps\fscsendplugin.r44"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r44" - "c:\resource\apps\pbkxrclengine.r44"
"\epoc32\data\z\resource\esmrgui.r44" - "c:\resource\esmrgui.r44"
"\epoc32\data\z\resource\esmrtasks.r44" - "c:\resource\esmrtasks.r44"
"\epoc32\data\z\resource\esmrcasplugindata.r44" - "c:\resource\esmrcasplugindata.r44"
@@ -771,7 +733,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r45" - "c:\resource\apps\fsccallplugin.r45"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r45" - "c:\resource\apps\fscsaveascontactplugin.r45"
"\epoc32\data\z\resource\apps\fscsendplugin.r45" - "c:\resource\apps\fscsendplugin.r45"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r45" - "c:\resource\apps\pbkxrclengine.r45"
"\epoc32\data\z\resource\esmrgui.r45" - "c:\resource\esmrgui.r45"
"\epoc32\data\z\resource\esmrtasks.r45" - "c:\resource\esmrtasks.r45"
"\epoc32\data\z\resource\esmrcasplugindata.r45" - "c:\resource\esmrcasplugindata.r45"
@@ -788,7 +749,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r49" - "c:\resource\apps\fsccallplugin.r49"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r49" - "c:\resource\apps\fscsaveascontactplugin.r49"
"\epoc32\data\z\resource\apps\fscsendplugin.r49" - "c:\resource\apps\fscsendplugin.r49"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r49" - "c:\resource\apps\pbkxrclengine.r49"
"\epoc32\data\z\resource\esmrgui.r49" - "c:\resource\esmrgui.r49"
"\epoc32\data\z\resource\esmrtasks.r49" - "c:\resource\esmrtasks.r49"
"\epoc32\data\z\resource\esmrcasplugindata.r49" - "c:\resource\esmrcasplugindata.r49"
@@ -805,7 +765,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r50" - "c:\resource\apps\fsccallplugin.r50"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r50" - "c:\resource\apps\fscsaveascontactplugin.r50"
"\epoc32\data\z\resource\apps\fscsendplugin.r50" - "c:\resource\apps\fscsendplugin.r50"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r50" - "c:\resource\apps\pbkxrclengine.r50"
"\epoc32\data\z\resource\esmrgui.r50" - "c:\resource\esmrgui.r50"
"\epoc32\data\z\resource\esmrtasks.r50" - "c:\resource\esmrtasks.r50"
"\epoc32\data\z\resource\esmrcasplugindata.r50" - "c:\resource\esmrcasplugindata.r50"
@@ -822,7 +781,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r51" - "c:\resource\apps\fsccallplugin.r51"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r51" - "c:\resource\apps\fscsaveascontactplugin.r51"
"\epoc32\data\z\resource\apps\fscsendplugin.r51" - "c:\resource\apps\fscsendplugin.r51"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r51" - "c:\resource\apps\pbkxrclengine.r51"
"\epoc32\data\z\resource\esmrgui.r51" - "c:\resource\esmrgui.r51"
"\epoc32\data\z\resource\esmrtasks.r51" - "c:\resource\esmrtasks.r51"
"\epoc32\data\z\resource\esmrcasplugindata.r51" - "c:\resource\esmrcasplugindata.r51"
@@ -839,7 +797,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r54" - "c:\resource\apps\fsccallplugin.r54"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r54" - "c:\resource\apps\fscsaveascontactplugin.r54"
"\epoc32\data\z\resource\apps\fscsendplugin.r54" - "c:\resource\apps\fscsendplugin.r54"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r54" - "c:\resource\apps\pbkxrclengine.r54"
"\epoc32\data\z\resource\esmrgui.r54" - "c:\resource\esmrgui.r54"
"\epoc32\data\z\resource\esmrtasks.r54" - "c:\resource\esmrtasks.r54"
"\epoc32\data\z\resource\esmrcasplugindata.r54" - "c:\resource\esmrcasplugindata.r54"
@@ -856,7 +813,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r57" - "c:\resource\apps\fsccallplugin.r57"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r57" - "c:\resource\apps\fscsaveascontactplugin.r57"
"\epoc32\data\z\resource\apps\fscsendplugin.r57" - "c:\resource\apps\fscsendplugin.r57"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r57" - "c:\resource\apps\pbkxrclengine.r57"
"\epoc32\data\z\resource\esmrgui.r57" - "c:\resource\esmrgui.r57"
"\epoc32\data\z\resource\esmrtasks.r57" - "c:\resource\esmrtasks.r57"
"\epoc32\data\z\resource\esmrcasplugindata.r57" - "c:\resource\esmrcasplugindata.r57"
@@ -873,7 +829,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r59" - "c:\resource\apps\fsccallplugin.r59"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r59" - "c:\resource\apps\fscsaveascontactplugin.r59"
"\epoc32\data\z\resource\apps\fscsendplugin.r59" - "c:\resource\apps\fscsendplugin.r59"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r59" - "c:\resource\apps\pbkxrclengine.r59"
"\epoc32\data\z\resource\esmrgui.r59" - "c:\resource\esmrgui.r59"
"\epoc32\data\z\resource\esmrtasks.r59" - "c:\resource\esmrtasks.r59"
"\epoc32\data\z\resource\esmrcasplugindata.r59" - "c:\resource\esmrcasplugindata.r59"
@@ -890,7 +845,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r67" - "c:\resource\apps\fsccallplugin.r67"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r67" - "c:\resource\apps\fscsaveascontactplugin.r67"
"\epoc32\data\z\resource\apps\fscsendplugin.r67" - "c:\resource\apps\fscsendplugin.r67"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r67" - "c:\resource\apps\pbkxrclengine.r67"
"\epoc32\data\z\resource\esmrgui.r67" - "c:\resource\esmrgui.r67"
"\epoc32\data\z\resource\esmrtasks.r67" - "c:\resource\esmrtasks.r67"
"\epoc32\data\z\resource\esmrcasplugindata.r67" - "c:\resource\esmrcasplugindata.r67"
@@ -907,7 +861,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r68" - "c:\resource\apps\fsccallplugin.r68"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r68" - "c:\resource\apps\fscsaveascontactplugin.r68"
"\epoc32\data\z\resource\apps\fscsendplugin.r68" - "c:\resource\apps\fscsendplugin.r68"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r68" - "c:\resource\apps\pbkxrclengine.r68"
"\epoc32\data\z\resource\esmrgui.r68" - "c:\resource\esmrgui.r68"
"\epoc32\data\z\resource\esmrtasks.r68" - "c:\resource\esmrtasks.r68"
"\epoc32\data\z\resource\esmrcasplugindata.r68" - "c:\resource\esmrcasplugindata.r68"
@@ -924,7 +877,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r70" - "c:\resource\apps\fsccallplugin.r70"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r70" - "c:\resource\apps\fscsaveascontactplugin.r70"
"\epoc32\data\z\resource\apps\fscsendplugin.r70" - "c:\resource\apps\fscsendplugin.r70"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r70" - "c:\resource\apps\pbkxrclengine.r70"
"\epoc32\data\z\resource\esmrgui.r70" - "c:\resource\esmrgui.r70"
"\epoc32\data\z\resource\esmrtasks.r70" - "c:\resource\esmrtasks.r70"
"\epoc32\data\z\resource\esmrcasplugindata.r70" - "c:\resource\esmrcasplugindata.r70"
@@ -941,7 +893,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r76" - "c:\resource\apps\fsccallplugin.r76"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r76" - "c:\resource\apps\fscsaveascontactplugin.r76"
"\epoc32\data\z\resource\apps\fscsendplugin.r76" - "c:\resource\apps\fscsendplugin.r76"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r76" - "c:\resource\apps\pbkxrclengine.r76"
"\epoc32\data\z\resource\esmrgui.r76" - "c:\resource\esmrgui.r76"
"\epoc32\data\z\resource\esmrtasks.r76" - "c:\resource\esmrtasks.r76"
"\epoc32\data\z\resource\esmrcasplugindata.r76" - "c:\resource\esmrcasplugindata.r76"
@@ -958,7 +909,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r78" - "c:\resource\apps\fsccallplugin.r78"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r78" - "c:\resource\apps\fscsaveascontactplugin.r78"
"\epoc32\data\z\resource\apps\fscsendplugin.r78" - "c:\resource\apps\fscsendplugin.r78"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r78" - "c:\resource\apps\pbkxrclengine.r78"
"\epoc32\data\z\resource\esmrgui.r78" - "c:\resource\esmrgui.r78"
"\epoc32\data\z\resource\esmrtasks.r78" - "c:\resource\esmrtasks.r78"
"\epoc32\data\z\resource\esmrcasplugindata.r78" - "c:\resource\esmrcasplugindata.r78"
@@ -975,7 +925,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r79" - "c:\resource\apps\fsccallplugin.r79"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r79" - "c:\resource\apps\fscsaveascontactplugin.r79"
"\epoc32\data\z\resource\apps\fscsendplugin.r79" - "c:\resource\apps\fscsendplugin.r79"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r79" - "c:\resource\apps\pbkxrclengine.r79"
"\epoc32\data\z\resource\esmrgui.r79" - "c:\resource\esmrgui.r79"
"\epoc32\data\z\resource\esmrtasks.r79" - "c:\resource\esmrtasks.r79"
"\epoc32\data\z\resource\esmrcasplugindata.r79" - "c:\resource\esmrcasplugindata.r79"
@@ -992,7 +941,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r83" - "c:\resource\apps\fsccallplugin.r83"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r83" - "c:\resource\apps\fscsaveascontactplugin.r83"
"\epoc32\data\z\resource\apps\fscsendplugin.r83" - "c:\resource\apps\fscsendplugin.r83"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r83" - "c:\resource\apps\pbkxrclengine.r83"
"\epoc32\data\z\resource\esmrgui.r83" - "c:\resource\esmrgui.r83"
"\epoc32\data\z\resource\esmrtasks.r83" - "c:\resource\esmrtasks.r83"
"\epoc32\data\z\resource\esmrcasplugindata.r83" - "c:\resource\esmrcasplugindata.r83"
@@ -1009,7 +957,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r93" - "c:\resource\apps\fsccallplugin.r93"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r93" - "c:\resource\apps\fscsaveascontactplugin.r93"
"\epoc32\data\z\resource\apps\fscsendplugin.r93" - "c:\resource\apps\fscsendplugin.r93"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r93" - "c:\resource\apps\pbkxrclengine.r93"
"\epoc32\data\z\resource\esmrgui.r93" - "c:\resource\esmrgui.r93"
"\epoc32\data\z\resource\esmrtasks.r93" - "c:\resource\esmrtasks.r93"
"\epoc32\data\z\resource\esmrcasplugindata.r93" - "c:\resource\esmrcasplugindata.r93"
@@ -1026,7 +973,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r94" - "c:\resource\apps\fsccallplugin.r94"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r94" - "c:\resource\apps\fscsaveascontactplugin.r94"
"\epoc32\data\z\resource\apps\fscsendplugin.r94" - "c:\resource\apps\fscsendplugin.r94"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r94" - "c:\resource\apps\pbkxrclengine.r94"
"\epoc32\data\z\resource\esmrgui.r94" - "c:\resource\esmrgui.r94"
"\epoc32\data\z\resource\esmrtasks.r94" - "c:\resource\esmrtasks.r94"
"\epoc32\data\z\resource\esmrcasplugindata.r94" - "c:\resource\esmrcasplugindata.r94"
@@ -1043,7 +989,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r96" - "c:\resource\apps\fsccallplugin.r96"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r96" - "c:\resource\apps\fscsaveascontactplugin.r96"
"\epoc32\data\z\resource\apps\fscsendplugin.r96" - "c:\resource\apps\fscsendplugin.r96"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r96" - "c:\resource\apps\pbkxrclengine.r96"
"\epoc32\data\z\resource\esmrgui.r96" - "c:\resource\esmrgui.r96"
"\epoc32\data\z\resource\esmrtasks.r96" - "c:\resource\esmrtasks.r96"
"\epoc32\data\z\resource\esmrcasplugindata.r96" - "c:\resource\esmrcasplugindata.r96"
@@ -1060,7 +1005,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r102" - "c:\resource\apps\fsccallplugin.r102"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r102" - "c:\resource\apps\fscsaveascontactplugin.r102"
"\epoc32\data\z\resource\apps\fscsendplugin.r102" - "c:\resource\apps\fscsendplugin.r102"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r102" - "c:\resource\apps\pbkxrclengine.r102"
"\epoc32\data\z\resource\esmrgui.r102" - "c:\resource\esmrgui.r102"
"\epoc32\data\z\resource\esmrtasks.r102" - "c:\resource\esmrtasks.r102"
"\epoc32\data\z\resource\esmrcasplugindata.r102" - "c:\resource\esmrcasplugindata.r102"
@@ -1077,7 +1021,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r103" - "c:\resource\apps\fsccallplugin.r103"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r103" - "c:\resource\apps\fscsaveascontactplugin.r103"
"\epoc32\data\z\resource\apps\fscsendplugin.r103" - "c:\resource\apps\fscsendplugin.r103"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r103" - "c:\resource\apps\pbkxrclengine.r103"
"\epoc32\data\z\resource\esmrgui.r103" - "c:\resource\esmrgui.r103"
"\epoc32\data\z\resource\esmrtasks.r103" - "c:\resource\esmrtasks.r103"
"\epoc32\data\z\resource\esmrcasplugindata.r103" - "c:\resource\esmrcasplugindata.r103"
@@ -1094,7 +1037,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r129" - "c:\resource\apps\fsccallplugin.r129"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r129" - "c:\resource\apps\fscsaveascontactplugin.r129"
"\epoc32\data\z\resource\apps\fscsendplugin.r129" - "c:\resource\apps\fscsendplugin.r129"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r129" - "c:\resource\apps\pbkxrclengine.r129"
"\epoc32\data\z\resource\esmrgui.r129" - "c:\resource\esmrgui.r129"
"\epoc32\data\z\resource\esmrtasks.r129" - "c:\resource\esmrtasks.r129"
"\epoc32\data\z\resource\esmrcasplugindata.r129" - "c:\resource\esmrcasplugindata.r129"
@@ -1111,7 +1053,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r157" - "c:\resource\apps\fsccallplugin.r157"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r157" - "c:\resource\apps\fscsaveascontactplugin.r157"
"\epoc32\data\z\resource\apps\fscsendplugin.r157" - "c:\resource\apps\fscsendplugin.r157"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r157" - "c:\resource\apps\pbkxrclengine.r157"
"\epoc32\data\z\resource\esmrgui.r157" - "c:\resource\esmrgui.r157"
"\epoc32\data\z\resource\esmrtasks.r157" - "c:\resource\esmrtasks.r157"
"\epoc32\data\z\resource\esmrcasplugindata.r157" - "c:\resource\esmrcasplugindata.r157"
@@ -1128,7 +1069,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r158" - "c:\resource\apps\fsccallplugin.r158"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r158" - "c:\resource\apps\fscsaveascontactplugin.r158"
"\epoc32\data\z\resource\apps\fscsendplugin.r158" - "c:\resource\apps\fscsendplugin.r158"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r158" - "c:\resource\apps\pbkxrclengine.r158"
"\epoc32\data\z\resource\esmrgui.r158" - "c:\resource\esmrgui.r158"
"\epoc32\data\z\resource\esmrtasks.r158" - "c:\resource\esmrtasks.r158"
"\epoc32\data\z\resource\esmrcasplugindata.r158" - "c:\resource\esmrcasplugindata.r158"
@@ -1145,7 +1085,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r159" - "c:\resource\apps\fsccallplugin.r159"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r159" - "c:\resource\apps\fscsaveascontactplugin.r159"
"\epoc32\data\z\resource\apps\fscsendplugin.r159" - "c:\resource\apps\fscsendplugin.r159"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r159" - "c:\resource\apps\pbkxrclengine.r159"
"\epoc32\data\z\resource\esmrgui.r159" - "c:\resource\esmrgui.r159"
"\epoc32\data\z\resource\esmrtasks.r159" - "c:\resource\esmrtasks.r159"
"\epoc32\data\z\resource\esmrcasplugindata.r159" - "c:\resource\esmrcasplugindata.r159"
@@ -1162,7 +1101,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r160" - "c:\resource\apps\fsccallplugin.r160"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r160" - "c:\resource\apps\fscsaveascontactplugin.r160"
"\epoc32\data\z\resource\apps\fscsendplugin.r160" - "c:\resource\apps\fscsendplugin.r160"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r160" - "c:\resource\apps\pbkxrclengine.r160"
"\epoc32\data\z\resource\esmrgui.r160" - "c:\resource\esmrgui.r160"
"\epoc32\data\z\resource\esmrtasks.r160" - "c:\resource\esmrtasks.r160"
"\epoc32\data\z\resource\esmrcasplugindata.r160" - "c:\resource\esmrcasplugindata.r160"
@@ -1179,7 +1117,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r161" - "c:\resource\apps\fsccallplugin.r161"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r161" - "c:\resource\apps\fscsaveascontactplugin.r161"
"\epoc32\data\z\resource\apps\fscsendplugin.r161" - "c:\resource\apps\fscsendplugin.r161"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r161" - "c:\resource\apps\pbkxrclengine.r161"
"\epoc32\data\z\resource\esmrgui.r161" - "c:\resource\esmrgui.r161"
"\epoc32\data\z\resource\esmrtasks.r161" - "c:\resource\esmrtasks.r161"
"\epoc32\data\z\resource\esmrcasplugindata.r161" - "c:\resource\esmrcasplugindata.r161"
@@ -1196,7 +1133,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r326" - "c:\resource\apps\fsccallplugin.r326"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r326" - "c:\resource\apps\fscsaveascontactplugin.r326"
"\epoc32\data\z\resource\apps\fscsendplugin.r326" - "c:\resource\apps\fscsendplugin.r326"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r326" - "c:\resource\apps\pbkxrclengine.r326"
"\epoc32\data\z\resource\esmrgui.r326" - "c:\resource\esmrgui.r326"
"\epoc32\data\z\resource\esmrtasks.r326" - "c:\resource\esmrtasks.r326"
"\epoc32\data\z\resource\esmrcasplugindata.r326" - "c:\resource\esmrcasplugindata.r326"
@@ -1213,7 +1149,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r327" - "c:\resource\apps\fsccallplugin.r327"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r327" - "c:\resource\apps\fscsaveascontactplugin.r327"
"\epoc32\data\z\resource\apps\fscsendplugin.r327" - "c:\resource\apps\fscsendplugin.r327"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r327" - "c:\resource\apps\pbkxrclengine.r327"
"\epoc32\data\z\resource\esmrgui.r327" - "c:\resource\esmrgui.r327"
"\epoc32\data\z\resource\esmrtasks.r327" - "c:\resource\esmrtasks.r327"
"\epoc32\data\z\resource\esmrcasplugindata.r327" - "c:\resource\esmrcasplugindata.r327"
--- a/emailuis/emailui/sis/commonemail_udeb.pkg Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/sis/commonemail_udeb.pkg Fri Mar 12 15:41:14 2010 +0200
@@ -166,14 +166,6 @@
"\epoc32\data\z\resource\apps\fscsendplugin.rsc" - "c:\resource\apps\fscsendplugin.rsc"
"\epoc32\data\z\resource\apps\fscsendplugin.mif" - "c:\resource\apps\fscsendplugin.mif"
-; emailcontacts / remotecontactlookup
-"\epoc32\release\armv5\udeb\pbkxrclservice.dll" - "c:\sys\bin\pbkxrclservice.dll"
-"\epoc32\data\Z\Resource\Plugins\pbkxrclservice.rsc" - "c:\resource\plugins\pbkxrclservice.rsc"
-"\epoc32\release\armv5\udeb\pbkxrclengine.dll" - "c:\sys\bin\pbkxrclengine.dll"
-"\epoc32\data\z\resource\apps\pbkxrclengine.rsc" - "c:\resource\apps\pbkxrclengine.rsc"
-"\epoc32\data\z\resource\apps\pbkxrclengine.mif" - "c:\resource\apps\pbkxrclengine.mif"
-"\epoc32\data\Z\private\10202BE9\2001F3FE.txt" - "c:\private\10202be9\2001F3FE.txt"
-
; meetingrequest
"\epoc32\data\z\resource\esmrgui.rsc" - "c:\resource\esmrgui.rsc"
"\epoc32\data\z\resource\esmrtasks.rsc" - "c:\resource\esmrtasks.rsc"
--- a/emailuis/emailui/sis/commonemail_udeb_loc.pkg Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/sis/commonemail_udeb_loc.pkg Fri Mar 12 15:41:14 2010 +0200
@@ -175,15 +175,6 @@
;"\epoc32\data\z\resource\apps\fscsendplugin.rsc" - "c:\resource\apps\fscsendplugin.rsc"
"\epoc32\data\z\resource\apps\fscsendplugin.mif" - "c:\resource\apps\fscsendplugin.mif"
-; emailcontacts / remotecontactlookup
-"\epoc32\release\armv5\udeb\pbkxrclservice.dll" - "c:\sys\bin\pbkxrclservice.dll"
-"\epoc32\data\Z\Resource\Plugins\pbkxrclservice.rsc" - "c:\resource\plugins\pbkxrclservice.rsc"
-"\epoc32\release\armv5\udeb\pbkxrclengine.dll" - "c:\sys\bin\pbkxrclengine.dll"
-; Following line is localized, so this Engineering English line is commented out
-;"\epoc32\data\z\resource\apps\pbkxrclengine.rsc" - "c:\resource\apps\pbkxrclengine.rsc"
-"\epoc32\data\z\resource\apps\pbkxrclengine.mif" - "c:\resource\apps\pbkxrclengine.mif"
-"\epoc32\data\Z\private\10202BE9\2001F3FE.txt" - "c:\private\10202be9\2001F3FE.txt"
-
; meetingrequest
; Following line is localized, so this Engineering English line is commented out
;"\epoc32\data\z\resource\esmrgui.rsc" - "c:\resource\esmrgui.rsc"
@@ -266,7 +257,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r01" - "c:\resource\apps\fsccallplugin.r01"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r01" - "c:\resource\apps\fscsaveascontactplugin.r01"
"\epoc32\data\z\resource\apps\fscsendplugin.r01" - "c:\resource\apps\fscsendplugin.r01"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r01" - "c:\resource\apps\pbkxrclengine.r01"
"\epoc32\data\z\resource\esmrgui.r01" - "c:\resource\esmrgui.r01"
"\epoc32\data\z\resource\esmrtasks.r01" - "c:\resource\esmrtasks.r01"
"\epoc32\data\z\resource\esmrcasplugindata.r01" - "c:\resource\esmrcasplugindata.r01"
@@ -283,7 +273,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r02" - "c:\resource\apps\fsccallplugin.r02"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r02" - "c:\resource\apps\fscsaveascontactplugin.r02"
"\epoc32\data\z\resource\apps\fscsendplugin.r02" - "c:\resource\apps\fscsendplugin.r02"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r02" - "c:\resource\apps\pbkxrclengine.r02"
"\epoc32\data\z\resource\esmrgui.r02" - "c:\resource\esmrgui.r02"
"\epoc32\data\z\resource\esmrtasks.r02" - "c:\resource\esmrtasks.r02"
"\epoc32\data\z\resource\esmrcasplugindata.r02" - "c:\resource\esmrcasplugindata.r02"
@@ -300,7 +289,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r03" - "c:\resource\apps\fsccallplugin.r03"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r03" - "c:\resource\apps\fscsaveascontactplugin.r03"
"\epoc32\data\z\resource\apps\fscsendplugin.r03" - "c:\resource\apps\fscsendplugin.r03"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r03" - "c:\resource\apps\pbkxrclengine.r03"
"\epoc32\data\z\resource\esmrgui.r03" - "c:\resource\esmrgui.r03"
"\epoc32\data\z\resource\esmrtasks.r03" - "c:\resource\esmrtasks.r03"
"\epoc32\data\z\resource\esmrcasplugindata.r03" - "c:\resource\esmrcasplugindata.r03"
@@ -317,7 +305,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r04" - "c:\resource\apps\fsccallplugin.r04"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r04" - "c:\resource\apps\fscsaveascontactplugin.r04"
"\epoc32\data\z\resource\apps\fscsendplugin.r04" - "c:\resource\apps\fscsendplugin.r04"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r04" - "c:\resource\apps\pbkxrclengine.r04"
"\epoc32\data\z\resource\esmrgui.r04" - "c:\resource\esmrgui.r04"
"\epoc32\data\z\resource\esmrtasks.r04" - "c:\resource\esmrtasks.r04"
"\epoc32\data\z\resource\esmrcasplugindata.r04" - "c:\resource\esmrcasplugindata.r04"
@@ -334,7 +321,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r05" - "c:\resource\apps\fsccallplugin.r05"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r05" - "c:\resource\apps\fscsaveascontactplugin.r05"
"\epoc32\data\z\resource\apps\fscsendplugin.r05" - "c:\resource\apps\fscsendplugin.r05"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r05" - "c:\resource\apps\pbkxrclengine.r05"
"\epoc32\data\z\resource\esmrgui.r05" - "c:\resource\esmrgui.r05"
"\epoc32\data\z\resource\esmrtasks.r05" - "c:\resource\esmrtasks.r05"
"\epoc32\data\z\resource\esmrcasplugindata.r05" - "c:\resource\esmrcasplugindata.r05"
@@ -351,7 +337,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r06" - "c:\resource\apps\fsccallplugin.r06"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r06" - "c:\resource\apps\fscsaveascontactplugin.r06"
"\epoc32\data\z\resource\apps\fscsendplugin.r06" - "c:\resource\apps\fscsendplugin.r06"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r06" - "c:\resource\apps\pbkxrclengine.r06"
"\epoc32\data\z\resource\esmrgui.r06" - "c:\resource\esmrgui.r06"
"\epoc32\data\z\resource\esmrtasks.r06" - "c:\resource\esmrtasks.r06"
"\epoc32\data\z\resource\esmrcasplugindata.r06" - "c:\resource\esmrcasplugindata.r06"
@@ -368,7 +353,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r07" - "c:\resource\apps\fsccallplugin.r07"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r07" - "c:\resource\apps\fscsaveascontactplugin.r07"
"\epoc32\data\z\resource\apps\fscsendplugin.r07" - "c:\resource\apps\fscsendplugin.r07"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r07" - "c:\resource\apps\pbkxrclengine.r07"
"\epoc32\data\z\resource\esmrgui.r07" - "c:\resource\esmrgui.r07"
"\epoc32\data\z\resource\esmrtasks.r07" - "c:\resource\esmrtasks.r07"
"\epoc32\data\z\resource\esmrcasplugindata.r07" - "c:\resource\esmrcasplugindata.r07"
@@ -385,7 +369,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r08" - "c:\resource\apps\fsccallplugin.r08"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r08" - "c:\resource\apps\fscsaveascontactplugin.r08"
"\epoc32\data\z\resource\apps\fscsendplugin.r08" - "c:\resource\apps\fscsendplugin.r08"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r08" - "c:\resource\apps\pbkxrclengine.r08"
"\epoc32\data\z\resource\esmrgui.r08" - "c:\resource\esmrgui.r08"
"\epoc32\data\z\resource\esmrtasks.r08" - "c:\resource\esmrtasks.r08"
"\epoc32\data\z\resource\esmrcasplugindata.r08" - "c:\resource\esmrcasplugindata.r08"
@@ -402,7 +385,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r09" - "c:\resource\apps\fsccallplugin.r09"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r09" - "c:\resource\apps\fscsaveascontactplugin.r09"
"\epoc32\data\z\resource\apps\fscsendplugin.r09" - "c:\resource\apps\fscsendplugin.r09"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r09" - "c:\resource\apps\pbkxrclengine.r09"
"\epoc32\data\z\resource\esmrgui.r09" - "c:\resource\esmrgui.r09"
"\epoc32\data\z\resource\esmrtasks.r09" - "c:\resource\esmrtasks.r09"
"\epoc32\data\z\resource\esmrcasplugindata.r09" - "c:\resource\esmrcasplugindata.r09"
@@ -419,7 +401,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r10" - "c:\resource\apps\fsccallplugin.r10"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r10" - "c:\resource\apps\fscsaveascontactplugin.r10"
"\epoc32\data\z\resource\apps\fscsendplugin.r10" - "c:\resource\apps\fscsendplugin.r10"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r10" - "c:\resource\apps\pbkxrclengine.r10"
"\epoc32\data\z\resource\esmrgui.r10" - "c:\resource\esmrgui.r10"
"\epoc32\data\z\resource\esmrtasks.r10" - "c:\resource\esmrtasks.r10"
"\epoc32\data\z\resource\esmrcasplugindata.r10" - "c:\resource\esmrcasplugindata.r10"
@@ -436,7 +417,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r13" - "c:\resource\apps\fsccallplugin.r13"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r13" - "c:\resource\apps\fscsaveascontactplugin.r13"
"\epoc32\data\z\resource\apps\fscsendplugin.r13" - "c:\resource\apps\fscsendplugin.r13"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r13" - "c:\resource\apps\pbkxrclengine.r13"
"\epoc32\data\z\resource\esmrgui.r13" - "c:\resource\esmrgui.r13"
"\epoc32\data\z\resource\esmrtasks.r13" - "c:\resource\esmrtasks.r13"
"\epoc32\data\z\resource\esmrcasplugindata.r13" - "c:\resource\esmrcasplugindata.r13"
@@ -453,7 +433,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r14" - "c:\resource\apps\fsccallplugin.r14"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r14" - "c:\resource\apps\fscsaveascontactplugin.r14"
"\epoc32\data\z\resource\apps\fscsendplugin.r14" - "c:\resource\apps\fscsendplugin.r14"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r14" - "c:\resource\apps\pbkxrclengine.r14"
"\epoc32\data\z\resource\esmrgui.r14" - "c:\resource\esmrgui.r14"
"\epoc32\data\z\resource\esmrtasks.r14" - "c:\resource\esmrtasks.r14"
"\epoc32\data\z\resource\esmrcasplugindata.r14" - "c:\resource\esmrcasplugindata.r14"
@@ -470,7 +449,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r15" - "c:\resource\apps\fsccallplugin.r15"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r15" - "c:\resource\apps\fscsaveascontactplugin.r15"
"\epoc32\data\z\resource\apps\fscsendplugin.r15" - "c:\resource\apps\fscsendplugin.r15"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r15" - "c:\resource\apps\pbkxrclengine.r15"
"\epoc32\data\z\resource\esmrgui.r15" - "c:\resource\esmrgui.r15"
"\epoc32\data\z\resource\esmrtasks.r15" - "c:\resource\esmrtasks.r15"
"\epoc32\data\z\resource\esmrcasplugindata.r15" - "c:\resource\esmrcasplugindata.r15"
@@ -487,7 +465,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r16" - "c:\resource\apps\fsccallplugin.r16"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r16" - "c:\resource\apps\fscsaveascontactplugin.r16"
"\epoc32\data\z\resource\apps\fscsendplugin.r16" - "c:\resource\apps\fscsendplugin.r16"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r16" - "c:\resource\apps\pbkxrclengine.r16"
"\epoc32\data\z\resource\esmrgui.r16" - "c:\resource\esmrgui.r16"
"\epoc32\data\z\resource\esmrtasks.r16" - "c:\resource\esmrtasks.r16"
"\epoc32\data\z\resource\esmrcasplugindata.r16" - "c:\resource\esmrcasplugindata.r16"
@@ -504,7 +481,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r17" - "c:\resource\apps\fsccallplugin.r17"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r17" - "c:\resource\apps\fscsaveascontactplugin.r17"
"\epoc32\data\z\resource\apps\fscsendplugin.r17" - "c:\resource\apps\fscsendplugin.r17"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r17" - "c:\resource\apps\pbkxrclengine.r17"
"\epoc32\data\z\resource\esmrgui.r17" - "c:\resource\esmrgui.r17"
"\epoc32\data\z\resource\esmrtasks.r17" - "c:\resource\esmrtasks.r17"
"\epoc32\data\z\resource\esmrcasplugindata.r17" - "c:\resource\esmrcasplugindata.r17"
@@ -521,7 +497,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r18" - "c:\resource\apps\fsccallplugin.r18"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r18" - "c:\resource\apps\fscsaveascontactplugin.r18"
"\epoc32\data\z\resource\apps\fscsendplugin.r18" - "c:\resource\apps\fscsendplugin.r18"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r18" - "c:\resource\apps\pbkxrclengine.r18"
"\epoc32\data\z\resource\esmrgui.r18" - "c:\resource\esmrgui.r18"
"\epoc32\data\z\resource\esmrtasks.r18" - "c:\resource\esmrtasks.r18"
"\epoc32\data\z\resource\esmrcasplugindata.r18" - "c:\resource\esmrcasplugindata.r18"
@@ -538,7 +513,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r25" - "c:\resource\apps\fsccallplugin.r25"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r25" - "c:\resource\apps\fscsaveascontactplugin.r25"
"\epoc32\data\z\resource\apps\fscsendplugin.r25" - "c:\resource\apps\fscsendplugin.r25"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r25" - "c:\resource\apps\pbkxrclengine.r25"
"\epoc32\data\z\resource\esmrgui.r25" - "c:\resource\esmrgui.r25"
"\epoc32\data\z\resource\esmrtasks.r25" - "c:\resource\esmrtasks.r25"
"\epoc32\data\z\resource\esmrcasplugindata.r25" - "c:\resource\esmrcasplugindata.r25"
@@ -555,7 +529,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r26" - "c:\resource\apps\fsccallplugin.r26"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r26" - "c:\resource\apps\fscsaveascontactplugin.r26"
"\epoc32\data\z\resource\apps\fscsendplugin.r26" - "c:\resource\apps\fscsendplugin.r26"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r26" - "c:\resource\apps\pbkxrclengine.r26"
"\epoc32\data\z\resource\esmrgui.r26" - "c:\resource\esmrgui.r26"
"\epoc32\data\z\resource\esmrtasks.r26" - "c:\resource\esmrtasks.r26"
"\epoc32\data\z\resource\esmrcasplugindata.r26" - "c:\resource\esmrcasplugindata.r26"
@@ -572,7 +545,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r27" - "c:\resource\apps\fsccallplugin.r27"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r27" - "c:\resource\apps\fscsaveascontactplugin.r27"
"\epoc32\data\z\resource\apps\fscsendplugin.r27" - "c:\resource\apps\fscsendplugin.r27"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r27" - "c:\resource\apps\pbkxrclengine.r27"
"\epoc32\data\z\resource\esmrgui.r27" - "c:\resource\esmrgui.r27"
"\epoc32\data\z\resource\esmrtasks.r27" - "c:\resource\esmrtasks.r27"
"\epoc32\data\z\resource\esmrcasplugindata.r27" - "c:\resource\esmrcasplugindata.r27"
@@ -589,7 +561,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r28" - "c:\resource\apps\fsccallplugin.r28"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r28" - "c:\resource\apps\fscsaveascontactplugin.r28"
"\epoc32\data\z\resource\apps\fscsendplugin.r28" - "c:\resource\apps\fscsendplugin.r28"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r28" - "c:\resource\apps\pbkxrclengine.r28"
"\epoc32\data\z\resource\esmrgui.r28" - "c:\resource\esmrgui.r28"
"\epoc32\data\z\resource\esmrtasks.r28" - "c:\resource\esmrtasks.r28"
"\epoc32\data\z\resource\esmrcasplugindata.r28" - "c:\resource\esmrcasplugindata.r28"
@@ -606,7 +577,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r29" - "c:\resource\apps\fsccallplugin.r29"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r29" - "c:\resource\apps\fscsaveascontactplugin.r29"
"\epoc32\data\z\resource\apps\fscsendplugin.r29" - "c:\resource\apps\fscsendplugin.r29"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r29" - "c:\resource\apps\pbkxrclengine.r29"
"\epoc32\data\z\resource\esmrgui.r29" - "c:\resource\esmrgui.r29"
"\epoc32\data\z\resource\esmrtasks.r29" - "c:\resource\esmrtasks.r29"
"\epoc32\data\z\resource\esmrcasplugindata.r29" - "c:\resource\esmrcasplugindata.r29"
@@ -623,7 +593,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r30" - "c:\resource\apps\fsccallplugin.r30"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r30" - "c:\resource\apps\fscsaveascontactplugin.r30"
"\epoc32\data\z\resource\apps\fscsendplugin.r30" - "c:\resource\apps\fscsendplugin.r30"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r30" - "c:\resource\apps\pbkxrclengine.r30"
"\epoc32\data\z\resource\esmrgui.r30" - "c:\resource\esmrgui.r30"
"\epoc32\data\z\resource\esmrtasks.r30" - "c:\resource\esmrtasks.r30"
"\epoc32\data\z\resource\esmrcasplugindata.r30" - "c:\resource\esmrcasplugindata.r30"
@@ -640,7 +609,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r31" - "c:\resource\apps\fsccallplugin.r31"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r31" - "c:\resource\apps\fscsaveascontactplugin.r31"
"\epoc32\data\z\resource\apps\fscsendplugin.r31" - "c:\resource\apps\fscsendplugin.r31"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r31" - "c:\resource\apps\pbkxrclengine.r31"
"\epoc32\data\z\resource\esmrgui.r31" - "c:\resource\esmrgui.r31"
"\epoc32\data\z\resource\esmrtasks.r31" - "c:\resource\esmrtasks.r31"
"\epoc32\data\z\resource\esmrcasplugindata.r31" - "c:\resource\esmrcasplugindata.r31"
@@ -657,7 +625,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r32" - "c:\resource\apps\fsccallplugin.r32"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r32" - "c:\resource\apps\fscsaveascontactplugin.r32"
"\epoc32\data\z\resource\apps\fscsendplugin.r32" - "c:\resource\apps\fscsendplugin.r32"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r32" - "c:\resource\apps\pbkxrclengine.r32"
"\epoc32\data\z\resource\esmrgui.r32" - "c:\resource\esmrgui.r32"
"\epoc32\data\z\resource\esmrtasks.r32" - "c:\resource\esmrtasks.r32"
"\epoc32\data\z\resource\esmrcasplugindata.r32" - "c:\resource\esmrcasplugindata.r32"
@@ -674,7 +641,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r33" - "c:\resource\apps\fsccallplugin.r33"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r33" - "c:\resource\apps\fscsaveascontactplugin.r33"
"\epoc32\data\z\resource\apps\fscsendplugin.r33" - "c:\resource\apps\fscsendplugin.r33"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r33" - "c:\resource\apps\pbkxrclengine.r33"
"\epoc32\data\z\resource\esmrgui.r33" - "c:\resource\esmrgui.r33"
"\epoc32\data\z\resource\esmrtasks.r33" - "c:\resource\esmrtasks.r33"
"\epoc32\data\z\resource\esmrcasplugindata.r33" - "c:\resource\esmrcasplugindata.r33"
@@ -691,7 +657,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r37" - "c:\resource\apps\fsccallplugin.r37"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r37" - "c:\resource\apps\fscsaveascontactplugin.r37"
"\epoc32\data\z\resource\apps\fscsendplugin.r37" - "c:\resource\apps\fscsendplugin.r37"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r37" - "c:\resource\apps\pbkxrclengine.r37"
"\epoc32\data\z\resource\esmrgui.r37" - "c:\resource\esmrgui.r37"
"\epoc32\data\z\resource\esmrtasks.r37" - "c:\resource\esmrtasks.r37"
"\epoc32\data\z\resource\esmrcasplugindata.r37" - "c:\resource\esmrcasplugindata.r37"
@@ -708,7 +673,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r39" - "c:\resource\apps\fsccallplugin.r39"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r39" - "c:\resource\apps\fscsaveascontactplugin.r39"
"\epoc32\data\z\resource\apps\fscsendplugin.r39" - "c:\resource\apps\fscsendplugin.r39"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r39" - "c:\resource\apps\pbkxrclengine.r39"
"\epoc32\data\z\resource\esmrgui.r39" - "c:\resource\esmrgui.r39"
"\epoc32\data\z\resource\esmrtasks.r39" - "c:\resource\esmrtasks.r39"
"\epoc32\data\z\resource\esmrcasplugindata.r39" - "c:\resource\esmrcasplugindata.r39"
@@ -725,7 +689,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r42" - "c:\resource\apps\fsccallplugin.r42"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r42" - "c:\resource\apps\fscsaveascontactplugin.r42"
"\epoc32\data\z\resource\apps\fscsendplugin.r42" - "c:\resource\apps\fscsendplugin.r42"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r42" - "c:\resource\apps\pbkxrclengine.r42"
"\epoc32\data\z\resource\esmrgui.r42" - "c:\resource\esmrgui.r42"
"\epoc32\data\z\resource\esmrtasks.r42" - "c:\resource\esmrtasks.r42"
"\epoc32\data\z\resource\esmrcasplugindata.r42" - "c:\resource\esmrcasplugindata.r42"
@@ -742,7 +705,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r44" - "c:\resource\apps\fsccallplugin.r44"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r44" - "c:\resource\apps\fscsaveascontactplugin.r44"
"\epoc32\data\z\resource\apps\fscsendplugin.r44" - "c:\resource\apps\fscsendplugin.r44"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r44" - "c:\resource\apps\pbkxrclengine.r44"
"\epoc32\data\z\resource\esmrgui.r44" - "c:\resource\esmrgui.r44"
"\epoc32\data\z\resource\esmrtasks.r44" - "c:\resource\esmrtasks.r44"
"\epoc32\data\z\resource\esmrcasplugindata.r44" - "c:\resource\esmrcasplugindata.r44"
@@ -759,7 +721,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r45" - "c:\resource\apps\fsccallplugin.r45"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r45" - "c:\resource\apps\fscsaveascontactplugin.r45"
"\epoc32\data\z\resource\apps\fscsendplugin.r45" - "c:\resource\apps\fscsendplugin.r45"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r45" - "c:\resource\apps\pbkxrclengine.r45"
"\epoc32\data\z\resource\esmrgui.r45" - "c:\resource\esmrgui.r45"
"\epoc32\data\z\resource\esmrtasks.r45" - "c:\resource\esmrtasks.r45"
"\epoc32\data\z\resource\esmrcasplugindata.r45" - "c:\resource\esmrcasplugindata.r45"
@@ -776,7 +737,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r49" - "c:\resource\apps\fsccallplugin.r49"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r49" - "c:\resource\apps\fscsaveascontactplugin.r49"
"\epoc32\data\z\resource\apps\fscsendplugin.r49" - "c:\resource\apps\fscsendplugin.r49"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r49" - "c:\resource\apps\pbkxrclengine.r49"
"\epoc32\data\z\resource\esmrgui.r49" - "c:\resource\esmrgui.r49"
"\epoc32\data\z\resource\esmrtasks.r49" - "c:\resource\esmrtasks.r49"
"\epoc32\data\z\resource\esmrcasplugindata.r49" - "c:\resource\esmrcasplugindata.r49"
@@ -793,7 +753,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r50" - "c:\resource\apps\fsccallplugin.r50"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r50" - "c:\resource\apps\fscsaveascontactplugin.r50"
"\epoc32\data\z\resource\apps\fscsendplugin.r50" - "c:\resource\apps\fscsendplugin.r50"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r50" - "c:\resource\apps\pbkxrclengine.r50"
"\epoc32\data\z\resource\esmrgui.r50" - "c:\resource\esmrgui.r50"
"\epoc32\data\z\resource\esmrtasks.r50" - "c:\resource\esmrtasks.r50"
"\epoc32\data\z\resource\esmrcasplugindata.r50" - "c:\resource\esmrcasplugindata.r50"
@@ -810,7 +769,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r51" - "c:\resource\apps\fsccallplugin.r51"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r51" - "c:\resource\apps\fscsaveascontactplugin.r51"
"\epoc32\data\z\resource\apps\fscsendplugin.r51" - "c:\resource\apps\fscsendplugin.r51"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r51" - "c:\resource\apps\pbkxrclengine.r51"
"\epoc32\data\z\resource\esmrgui.r51" - "c:\resource\esmrgui.r51"
"\epoc32\data\z\resource\esmrtasks.r51" - "c:\resource\esmrtasks.r51"
"\epoc32\data\z\resource\esmrcasplugindata.r51" - "c:\resource\esmrcasplugindata.r51"
@@ -827,7 +785,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r54" - "c:\resource\apps\fsccallplugin.r54"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r54" - "c:\resource\apps\fscsaveascontactplugin.r54"
"\epoc32\data\z\resource\apps\fscsendplugin.r54" - "c:\resource\apps\fscsendplugin.r54"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r54" - "c:\resource\apps\pbkxrclengine.r54"
"\epoc32\data\z\resource\esmrgui.r54" - "c:\resource\esmrgui.r54"
"\epoc32\data\z\resource\esmrtasks.r54" - "c:\resource\esmrtasks.r54"
"\epoc32\data\z\resource\esmrcasplugindata.r54" - "c:\resource\esmrcasplugindata.r54"
@@ -844,7 +801,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r57" - "c:\resource\apps\fsccallplugin.r57"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r57" - "c:\resource\apps\fscsaveascontactplugin.r57"
"\epoc32\data\z\resource\apps\fscsendplugin.r57" - "c:\resource\apps\fscsendplugin.r57"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r57" - "c:\resource\apps\pbkxrclengine.r57"
"\epoc32\data\z\resource\esmrgui.r57" - "c:\resource\esmrgui.r57"
"\epoc32\data\z\resource\esmrtasks.r57" - "c:\resource\esmrtasks.r57"
"\epoc32\data\z\resource\esmrcasplugindata.r57" - "c:\resource\esmrcasplugindata.r57"
@@ -861,7 +817,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r59" - "c:\resource\apps\fsccallplugin.r59"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r59" - "c:\resource\apps\fscsaveascontactplugin.r59"
"\epoc32\data\z\resource\apps\fscsendplugin.r59" - "c:\resource\apps\fscsendplugin.r59"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r59" - "c:\resource\apps\pbkxrclengine.r59"
"\epoc32\data\z\resource\esmrgui.r59" - "c:\resource\esmrgui.r59"
"\epoc32\data\z\resource\esmrtasks.r59" - "c:\resource\esmrtasks.r59"
"\epoc32\data\z\resource\esmrcasplugindata.r59" - "c:\resource\esmrcasplugindata.r59"
@@ -878,7 +833,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r67" - "c:\resource\apps\fsccallplugin.r67"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r67" - "c:\resource\apps\fscsaveascontactplugin.r67"
"\epoc32\data\z\resource\apps\fscsendplugin.r67" - "c:\resource\apps\fscsendplugin.r67"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r67" - "c:\resource\apps\pbkxrclengine.r67"
"\epoc32\data\z\resource\esmrgui.r67" - "c:\resource\esmrgui.r67"
"\epoc32\data\z\resource\esmrtasks.r67" - "c:\resource\esmrtasks.r67"
"\epoc32\data\z\resource\esmrcasplugindata.r67" - "c:\resource\esmrcasplugindata.r67"
@@ -895,7 +849,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r68" - "c:\resource\apps\fsccallplugin.r68"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r68" - "c:\resource\apps\fscsaveascontactplugin.r68"
"\epoc32\data\z\resource\apps\fscsendplugin.r68" - "c:\resource\apps\fscsendplugin.r68"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r68" - "c:\resource\apps\pbkxrclengine.r68"
"\epoc32\data\z\resource\esmrgui.r68" - "c:\resource\esmrgui.r68"
"\epoc32\data\z\resource\esmrtasks.r68" - "c:\resource\esmrtasks.r68"
"\epoc32\data\z\resource\esmrcasplugindata.r68" - "c:\resource\esmrcasplugindata.r68"
@@ -912,7 +865,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r70" - "c:\resource\apps\fsccallplugin.r70"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r70" - "c:\resource\apps\fscsaveascontactplugin.r70"
"\epoc32\data\z\resource\apps\fscsendplugin.r70" - "c:\resource\apps\fscsendplugin.r70"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r70" - "c:\resource\apps\pbkxrclengine.r70"
"\epoc32\data\z\resource\esmrgui.r70" - "c:\resource\esmrgui.r70"
"\epoc32\data\z\resource\esmrtasks.r70" - "c:\resource\esmrtasks.r70"
"\epoc32\data\z\resource\esmrcasplugindata.r70" - "c:\resource\esmrcasplugindata.r70"
@@ -929,7 +881,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r76" - "c:\resource\apps\fsccallplugin.r76"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r76" - "c:\resource\apps\fscsaveascontactplugin.r76"
"\epoc32\data\z\resource\apps\fscsendplugin.r76" - "c:\resource\apps\fscsendplugin.r76"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r76" - "c:\resource\apps\pbkxrclengine.r76"
"\epoc32\data\z\resource\esmrgui.r76" - "c:\resource\esmrgui.r76"
"\epoc32\data\z\resource\esmrtasks.r76" - "c:\resource\esmrtasks.r76"
"\epoc32\data\z\resource\esmrcasplugindata.r76" - "c:\resource\esmrcasplugindata.r76"
@@ -946,7 +897,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r78" - "c:\resource\apps\fsccallplugin.r78"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r78" - "c:\resource\apps\fscsaveascontactplugin.r78"
"\epoc32\data\z\resource\apps\fscsendplugin.r78" - "c:\resource\apps\fscsendplugin.r78"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r78" - "c:\resource\apps\pbkxrclengine.r78"
"\epoc32\data\z\resource\esmrgui.r78" - "c:\resource\esmrgui.r78"
"\epoc32\data\z\resource\esmrtasks.r78" - "c:\resource\esmrtasks.r78"
"\epoc32\data\z\resource\esmrcasplugindata.r78" - "c:\resource\esmrcasplugindata.r78"
@@ -963,7 +913,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r79" - "c:\resource\apps\fsccallplugin.r79"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r79" - "c:\resource\apps\fscsaveascontactplugin.r79"
"\epoc32\data\z\resource\apps\fscsendplugin.r79" - "c:\resource\apps\fscsendplugin.r79"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r79" - "c:\resource\apps\pbkxrclengine.r79"
"\epoc32\data\z\resource\esmrgui.r79" - "c:\resource\esmrgui.r79"
"\epoc32\data\z\resource\esmrtasks.r79" - "c:\resource\esmrtasks.r79"
"\epoc32\data\z\resource\esmrcasplugindata.r79" - "c:\resource\esmrcasplugindata.r79"
@@ -980,7 +929,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r83" - "c:\resource\apps\fsccallplugin.r83"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r83" - "c:\resource\apps\fscsaveascontactplugin.r83"
"\epoc32\data\z\resource\apps\fscsendplugin.r83" - "c:\resource\apps\fscsendplugin.r83"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r83" - "c:\resource\apps\pbkxrclengine.r83"
"\epoc32\data\z\resource\esmrgui.r83" - "c:\resource\esmrgui.r83"
"\epoc32\data\z\resource\esmrtasks.r83" - "c:\resource\esmrtasks.r83"
"\epoc32\data\z\resource\esmrcasplugindata.r83" - "c:\resource\esmrcasplugindata.r83"
@@ -997,7 +945,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r93" - "c:\resource\apps\fsccallplugin.r93"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r93" - "c:\resource\apps\fscsaveascontactplugin.r93"
"\epoc32\data\z\resource\apps\fscsendplugin.r93" - "c:\resource\apps\fscsendplugin.r93"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r93" - "c:\resource\apps\pbkxrclengine.r93"
"\epoc32\data\z\resource\esmrgui.r93" - "c:\resource\esmrgui.r93"
"\epoc32\data\z\resource\esmrtasks.r93" - "c:\resource\esmrtasks.r93"
"\epoc32\data\z\resource\esmrcasplugindata.r93" - "c:\resource\esmrcasplugindata.r93"
@@ -1014,7 +961,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r94" - "c:\resource\apps\fsccallplugin.r94"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r94" - "c:\resource\apps\fscsaveascontactplugin.r94"
"\epoc32\data\z\resource\apps\fscsendplugin.r94" - "c:\resource\apps\fscsendplugin.r94"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r94" - "c:\resource\apps\pbkxrclengine.r94"
"\epoc32\data\z\resource\esmrgui.r94" - "c:\resource\esmrgui.r94"
"\epoc32\data\z\resource\esmrtasks.r94" - "c:\resource\esmrtasks.r94"
"\epoc32\data\z\resource\esmrcasplugindata.r94" - "c:\resource\esmrcasplugindata.r94"
@@ -1031,7 +977,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r96" - "c:\resource\apps\fsccallplugin.r96"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r96" - "c:\resource\apps\fscsaveascontactplugin.r96"
"\epoc32\data\z\resource\apps\fscsendplugin.r96" - "c:\resource\apps\fscsendplugin.r96"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r96" - "c:\resource\apps\pbkxrclengine.r96"
"\epoc32\data\z\resource\esmrgui.r96" - "c:\resource\esmrgui.r96"
"\epoc32\data\z\resource\esmrtasks.r96" - "c:\resource\esmrtasks.r96"
"\epoc32\data\z\resource\esmrcasplugindata.r96" - "c:\resource\esmrcasplugindata.r96"
@@ -1048,7 +993,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r102" - "c:\resource\apps\fsccallplugin.r102"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r102" - "c:\resource\apps\fscsaveascontactplugin.r102"
"\epoc32\data\z\resource\apps\fscsendplugin.r102" - "c:\resource\apps\fscsendplugin.r102"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r102" - "c:\resource\apps\pbkxrclengine.r102"
"\epoc32\data\z\resource\esmrgui.r102" - "c:\resource\esmrgui.r102"
"\epoc32\data\z\resource\esmrtasks.r102" - "c:\resource\esmrtasks.r102"
"\epoc32\data\z\resource\esmrcasplugindata.r102" - "c:\resource\esmrcasplugindata.r102"
@@ -1065,7 +1009,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r103" - "c:\resource\apps\fsccallplugin.r103"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r103" - "c:\resource\apps\fscsaveascontactplugin.r103"
"\epoc32\data\z\resource\apps\fscsendplugin.r103" - "c:\resource\apps\fscsendplugin.r103"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r103" - "c:\resource\apps\pbkxrclengine.r103"
"\epoc32\data\z\resource\esmrgui.r103" - "c:\resource\esmrgui.r103"
"\epoc32\data\z\resource\esmrtasks.r103" - "c:\resource\esmrtasks.r103"
"\epoc32\data\z\resource\esmrcasplugindata.r103" - "c:\resource\esmrcasplugindata.r103"
@@ -1082,7 +1025,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r129" - "c:\resource\apps\fsccallplugin.r129"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r129" - "c:\resource\apps\fscsaveascontactplugin.r129"
"\epoc32\data\z\resource\apps\fscsendplugin.r129" - "c:\resource\apps\fscsendplugin.r129"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r129" - "c:\resource\apps\pbkxrclengine.r129"
"\epoc32\data\z\resource\esmrgui.r129" - "c:\resource\esmrgui.r129"
"\epoc32\data\z\resource\esmrtasks.r129" - "c:\resource\esmrtasks.r129"
"\epoc32\data\z\resource\esmrcasplugindata.r129" - "c:\resource\esmrcasplugindata.r129"
@@ -1099,7 +1041,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r157" - "c:\resource\apps\fsccallplugin.r157"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r157" - "c:\resource\apps\fscsaveascontactplugin.r157"
"\epoc32\data\z\resource\apps\fscsendplugin.r157" - "c:\resource\apps\fscsendplugin.r157"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r157" - "c:\resource\apps\pbkxrclengine.r157"
"\epoc32\data\z\resource\esmrgui.r157" - "c:\resource\esmrgui.r157"
"\epoc32\data\z\resource\esmrtasks.r157" - "c:\resource\esmrtasks.r157"
"\epoc32\data\z\resource\esmrcasplugindata.r157" - "c:\resource\esmrcasplugindata.r157"
@@ -1116,7 +1057,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r158" - "c:\resource\apps\fsccallplugin.r158"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r158" - "c:\resource\apps\fscsaveascontactplugin.r158"
"\epoc32\data\z\resource\apps\fscsendplugin.r158" - "c:\resource\apps\fscsendplugin.r158"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r158" - "c:\resource\apps\pbkxrclengine.r158"
"\epoc32\data\z\resource\esmrgui.r158" - "c:\resource\esmrgui.r158"
"\epoc32\data\z\resource\esmrtasks.r158" - "c:\resource\esmrtasks.r158"
"\epoc32\data\z\resource\esmrcasplugindata.r158" - "c:\resource\esmrcasplugindata.r158"
@@ -1133,7 +1073,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r159" - "c:\resource\apps\fsccallplugin.r159"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r159" - "c:\resource\apps\fscsaveascontactplugin.r159"
"\epoc32\data\z\resource\apps\fscsendplugin.r159" - "c:\resource\apps\fscsendplugin.r159"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r159" - "c:\resource\apps\pbkxrclengine.r159"
"\epoc32\data\z\resource\esmrgui.r159" - "c:\resource\esmrgui.r159"
"\epoc32\data\z\resource\esmrtasks.r159" - "c:\resource\esmrtasks.r159"
"\epoc32\data\z\resource\esmrcasplugindata.r159" - "c:\resource\esmrcasplugindata.r159"
@@ -1150,7 +1089,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r160" - "c:\resource\apps\fsccallplugin.r160"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r160" - "c:\resource\apps\fscsaveascontactplugin.r160"
"\epoc32\data\z\resource\apps\fscsendplugin.r160" - "c:\resource\apps\fscsendplugin.r160"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r160" - "c:\resource\apps\pbkxrclengine.r160"
"\epoc32\data\z\resource\esmrgui.r160" - "c:\resource\esmrgui.r160"
"\epoc32\data\z\resource\esmrtasks.r160" - "c:\resource\esmrtasks.r160"
"\epoc32\data\z\resource\esmrcasplugindata.r160" - "c:\resource\esmrcasplugindata.r160"
@@ -1167,7 +1105,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r161" - "c:\resource\apps\fsccallplugin.r161"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r161" - "c:\resource\apps\fscsaveascontactplugin.r161"
"\epoc32\data\z\resource\apps\fscsendplugin.r161" - "c:\resource\apps\fscsendplugin.r161"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r161" - "c:\resource\apps\pbkxrclengine.r161"
"\epoc32\data\z\resource\esmrgui.r161" - "c:\resource\esmrgui.r161"
"\epoc32\data\z\resource\esmrtasks.r161" - "c:\resource\esmrtasks.r161"
"\epoc32\data\z\resource\esmrcasplugindata.r161" - "c:\resource\esmrcasplugindata.r161"
@@ -1184,7 +1121,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r326" - "c:\resource\apps\fsccallplugin.r326"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r326" - "c:\resource\apps\fscsaveascontactplugin.r326"
"\epoc32\data\z\resource\apps\fscsendplugin.r326" - "c:\resource\apps\fscsendplugin.r326"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r326" - "c:\resource\apps\pbkxrclengine.r326"
"\epoc32\data\z\resource\esmrgui.r326" - "c:\resource\esmrgui.r326"
"\epoc32\data\z\resource\esmrtasks.r326" - "c:\resource\esmrtasks.r326"
"\epoc32\data\z\resource\esmrcasplugindata.r326" - "c:\resource\esmrcasplugindata.r326"
@@ -1201,7 +1137,6 @@
"\epoc32\data\z\resource\apps\fsccallplugin.r327" - "c:\resource\apps\fsccallplugin.r327"
"\epoc32\data\z\resource\apps\fscsaveascontactplugin.r327" - "c:\resource\apps\fscsaveascontactplugin.r327"
"\epoc32\data\z\resource\apps\fscsendplugin.r327" - "c:\resource\apps\fscsendplugin.r327"
- "\epoc32\data\z\resource\apps\pbkxrclengine.r327" - "c:\resource\apps\pbkxrclengine.r327"
"\epoc32\data\z\resource\esmrgui.r327" - "c:\resource\esmrgui.r327"
"\epoc32\data\z\resource\esmrtasks.r327" - "c:\resource\esmrtasks.r327"
"\epoc32\data\z\resource\esmrcasplugindata.r327" - "c:\resource\esmrcasplugindata.r327"
--- a/emailuis/emailui/sis/makecommonemailsisx.bat Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/sis/makecommonemailsisx.bat Fri Mar 12 15:41:14 2010 +0200
@@ -12,8 +12,7 @@
REM *
REM * Contributors:
REM *
-REM * Description:
-REM * Script that creates and signs commonemail sisx packages
+REM * Description: Script that creates and signs commonemail sisx packages
REM *
REM Check if the latest added certificate folder/file exists. If not, copy certs from network drive.
--- a/emailuis/emailui/sis/pkg-localizer.py Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/sis/pkg-localizer.py Fri Mar 12 15:41:14 2010 +0200
@@ -13,9 +13,8 @@
*
* Contributors:
*
-* Description:
-* Python script that can be used to make localized pkg-files based on
-* Engineering English pkg-files. Meant only for internal use in Email.
+* Description: Python script that can be used to make localized pkg-files
+* based on Engineering English pkg-files. Meant only for internal use in Email.
*
*/
"""
--- a/emailuis/emailui/src/FreestyleEmailCenRepHandler.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/src/FreestyleEmailCenRepHandler.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -343,7 +343,7 @@
}
return buf;
}
-/*
+
// ----------------------------------------------------
// CFSEmailCRHandler::SetDownloadHTMLImages
// ----------------------------------------------------
@@ -357,7 +357,6 @@
}
}
-
// ----------------------------------------------------
// CFSEmailCRHandler::DownloadHTMLImages
// ----------------------------------------------------
@@ -379,7 +378,7 @@
}
return buf;
}
-*/
+
/*
// ----------------------------------------------------
// CFSEmailCRHandler::AttachmentFileTypes
--- a/emailuis/emailui/src/FreestyleEmailDownloadInformationMediator.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/src/FreestyleEmailDownloadInformationMediator.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -145,7 +145,10 @@
// removed from the array before we are finished
download = iDownloadArray[idx];
- // In case of error, show a note
+ // In case of error, show a note. Note that these notes should not
+ // be displayed synchronously, since otherwise other events can
+ // occur that delete objects that are still in use waiting for this
+ // method to complete (see PDOO-7X93JP).
if ( aEvent.iError && aEvent.iError != KErrCancel )
{
// Download failed, show error note
@@ -154,13 +157,13 @@
{ // connection error
TFsEmailUiUtility::ShowErrorNoteL(
R_FREESTYLE_EMAIL_ERROR_GENERAL_CONNECTION_ERROR,
- ETrue );
+ EFalse );
}
else // other error
{
TFsEmailUiUtility::ShowErrorNoteL(
R_FREESTYLE_EMAIL_ERROR_GENERAL_UNABLE_TO_COMPLETE,
- ETrue );
+ EFalse );
}
}
--- a/emailuis/emailui/src/FreestyleEmailUiAknStatusIndicator.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/src/FreestyleEmailUiAknStatusIndicator.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -11,6 +11,8 @@
*
* Contributors:
*
+* Description: Implementation for status indicator
+*
*/
#include "FreestyleEmailUiAknStatusIndicator.h"
--- a/emailuis/emailui/src/FreestyleEmailUiAppui.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/src/FreestyleEmailUiAppui.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -87,6 +87,7 @@
#include <data_caging_path_literals.hrh> // hardcoded paths removal from cmail
#include "cfsccontactactionmenu.h"
//</cmail>
+#include <layoutmetadata.cdl.h> // for Layout_Meta_Data
// INTERNAL INCLUDE FILES
#include "FreestyleEmailUiContactHandler.h"
@@ -106,7 +107,7 @@
#include "FreestyleEmailUiAttachmentsListModel.h"
#include "FreestyleEmailUiAttachmentsListVisualiser.h"
#include "FreestyleEmailUiAttachmentsListControl.h"
-#include "FreestyleEmailCenRepHandler.h"
+#include "freestyleemailcenrephandler.h"
#include "FreestyleEmailUiSettingsListView.h"
#include "FreestyleEmailUiGlobalSettingsListView.h"
#include "FreestyleEmailUiDownloadManagerModel.h"
@@ -155,6 +156,203 @@
// Length of the drive letter descriptor (e.g. "c:")
const TInt KDriveDescLength = 2;
+
+// TDisplayImagesCache
+
+// ---------------------------------------------------------------------------
+// TDisplayImagesCache::~TDisplayImagesCache
+// ---------------------------------------------------------------------------
+//
+TDisplayImagesCache::~TDisplayImagesCache()
+ {
+ iCache.Reset();
+ }
+
+// ---------------------------------------------------------------------------
+// TDisplayImagesCache::AddMessageL
+// ---------------------------------------------------------------------------
+//
+void TDisplayImagesCache::AddMessageL( const CFSMailMessageBase& aMsg )
+ {
+ AddMessageL(aMsg.GetMailBoxId(), aMsg.GetMessageId());
+ }
+
+// ---------------------------------------------------------------------------
+// TDisplayImagesCache::RemoveMessage
+// ---------------------------------------------------------------------------
+//
+void TDisplayImagesCache::RemoveMessage( const CFSMailMessageBase& aMsg )
+ {
+ RemoveMessage(aMsg.GetMailBoxId(), aMsg.GetMessageId());
+ }
+
+// ---------------------------------------------------------------------------
+// TDisplayImagesCache::Contains
+// ---------------------------------------------------------------------------
+//
+TBool TDisplayImagesCache::Contains( const CFSMailMessageBase& aMsg ) const
+ {
+ return Contains(aMsg.GetMailBoxId(), aMsg.GetMessageId());
+ }
+
+// ---------------------------------------------------------------------------
+// TDisplayImagesCache::AddMessageL
+// ---------------------------------------------------------------------------
+//
+void TDisplayImagesCache::AddMessageL( const TFSMailMsgId& aBoxId, const TFSMailMsgId& aMsgId )
+ {
+ TInt index(MailBoxIndex(aBoxId));
+ if (index == KErrNotFound)
+ {
+ AddMailBoxL(aBoxId, index);
+ }
+ iCache[index].AddMessageL(aMsgId);
+ }
+
+// ---------------------------------------------------------------------------
+// TDisplayImagesCache::RemoveMessage
+// ---------------------------------------------------------------------------
+//
+void TDisplayImagesCache::RemoveMessage( const TFSMailMsgId& aBoxId, const TFSMailMsgId& aMsgId )
+ {
+ const TInt index(MailBoxIndex(aBoxId));
+ if (index != KErrNotFound)
+ {
+ iCache[index].RemoveMessage(aMsgId);
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// TDisplayImagesCache::RemoveMailbox
+// ---------------------------------------------------------------------------
+//
+void TDisplayImagesCache::RemoveMailbox( const TFSMailMsgId& aBoxId )
+ {
+ const TInt index(MailBoxIndex(aBoxId));
+ if (index != KErrNotFound)
+ {
+ iCache.Remove(index);
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// TDisplayImagesCache::Contains
+// ---------------------------------------------------------------------------
+//
+TBool TDisplayImagesCache::Contains( const TFSMailMsgId& aBoxId, const TFSMailMsgId& aMsgId ) const
+ {
+ const TInt index(MailBoxIndex(aBoxId));
+ if (index != KErrNotFound)
+ {
+ return iCache[index].Contains(aMsgId);
+ }
+ return EFalse;
+ }
+
+// ---------------------------------------------------------------------------
+// TDisplayImagesCache::MailBoxIndex
+// ---------------------------------------------------------------------------
+//
+TInt TDisplayImagesCache::MailBoxIndex( const TFSMailMsgId& aBoxId ) const
+ {
+ return iCache.FindInOrder(TItem(aBoxId), TLinearOrder<TItem>(TItem::CompareItem));
+ }
+
+// ---------------------------------------------------------------------------
+// TDisplayImagesCache::AddMailBoxL
+// ---------------------------------------------------------------------------
+//
+void TDisplayImagesCache::AddMailBoxL( const TFSMailMsgId& aBoxId, TInt& aCacheIndex )
+ {
+ aCacheIndex = KErrNotFound;
+ iCache.InsertInOrderL(TItem(aBoxId), TLinearOrder<TItem>(TItem::CompareItem));
+ aCacheIndex = MailBoxIndex(aBoxId);
+ }
+
+// ---------------------------------------------------------------------------
+// TDisplayImagesCache::TItem::TItem
+// ---------------------------------------------------------------------------
+//
+TDisplayImagesCache::TItem::TItem( const TFSMailMsgId& aBoxId )
+ : iMailBoxId( aBoxId )
+ {
+ }
+
+// ---------------------------------------------------------------------------
+// TDisplayImagesCache::TItem::~TItem
+// ---------------------------------------------------------------------------
+//
+TDisplayImagesCache::TItem::~TItem()
+ {
+ iMessageIds.Reset();
+ }
+
+// ---------------------------------------------------------------------------
+// TDisplayImagesCache::TItem::Contains
+// ---------------------------------------------------------------------------
+//
+TBool TDisplayImagesCache::TItem::Contains( const TFSMailMsgId& aMsgId ) const
+ {
+ return MessageIndex(aMsgId) != KErrNotFound;
+ }
+
+// ---------------------------------------------------------------------------
+// TDisplayImagesCache::TItem::AddMessageL
+// ---------------------------------------------------------------------------
+//
+void TDisplayImagesCache::TItem::AddMessageL( const TFSMailMsgId& aMsgId )
+ {
+ if (!Contains(aMsgId))
+ {
+ iMessageIds.InsertInOrderL(aMsgId, TLinearOrder<TFSMailMsgId>(TItem::CompareMsgId));
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// TDisplayImagesCache::TItem::RemoveMessage
+// ---------------------------------------------------------------------------
+//
+void TDisplayImagesCache::TItem::RemoveMessage( const TFSMailMsgId& aMsgId )
+ {
+ const TInt index(MessageIndex(aMsgId));
+ if (index != KErrNotFound)
+ {
+ iMessageIds.Remove(index);
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// TDisplayImagesCache::TItem::MessageIndex
+// ---------------------------------------------------------------------------
+//
+TInt TDisplayImagesCache::TItem::MessageIndex( const TFSMailMsgId& aMsgId ) const
+ {
+ return iMessageIds.FindInOrder(aMsgId, TLinearOrder<TFSMailMsgId>(TItem::CompareMsgId));
+ }
+
+// ---------------------------------------------------------------------------
+// TDisplayImagesCache::TItem::CompareItem
+// ---------------------------------------------------------------------------
+//
+TInt TDisplayImagesCache::TItem::CompareItem( const TItem& aItem1, const TItem& aItem2 )
+ {
+ return CompareMsgId(aItem1.iMailBoxId, aItem2.iMailBoxId);
+ }
+
+// ---------------------------------------------------------------------------
+// TDisplayImagesCache::TItem::CompareMsgId
+// ---------------------------------------------------------------------------
+//
+TInt TDisplayImagesCache::TItem::CompareMsgId( const TFSMailMsgId& aId1, const TFSMailMsgId& aId2 )
+ {
+ TInt result(aId1.PluginId().iUid - aId2.PluginId().iUid);
+ if (!result)
+ {
+ result = TInt(aId1.Id() - aId2.Id());
+ }
+ return result;
+ }
+
// ---------------------------------------------------------------------------
// C++ constructor.
// ---------------------------------------------------------------------------
@@ -165,7 +363,10 @@
iIsCaptured( EFalse ), // init "end key captured" to false
iAutomatedMailBoxOnline( EFalse ),
iMsgReaderIsSupported( KErrGeneral ),
- iSwitchingToBackground( EFalse )
+ iSwitchingToBackground( EFalse ),
+ iHasEmbeddedApp( EFalse ),
+ iPreviousAppEmbedded( EFalse ),
+ iEditorStartedFromEmbeddedApp( EFalse )
{
FUNC_LOG;
iEnv = &aEnv;
@@ -246,6 +447,17 @@
// Enable Avkon skins.
BaseConstructL( EAknEnableSkin | EAknEnableMSK | EAknSingleClickCompatible );
+
+ // This MUST be after BaseConstructL
+ MTouchFeedback* touchFeedback(MTouchFeedback::Instance());
+ if (touchFeedback == NULL)
+ {
+ touchFeedback = MTouchFeedback::CreateInstanceL();
+ iTouchFeedbackCreated = ETrue;
+ }
+ touchFeedback->SetFeedbackEnabledForThisApp(touchFeedback->TouchFeedbackSupported());
+
+
// Create instance for Central repository handler
iCRHandler = CFSEmailCRHandler::InstanceL();
@@ -533,6 +745,19 @@
delete iNaviDecorator2MailViewer;
delete iConnectionStatusIconAnimTimer;
+
+
+ MTouchFeedback* touchFeedback( MTouchFeedback::Instance() );
+ if (touchFeedback && touchFeedback->TouchFeedbackSupported())
+ {
+ touchFeedback->SetFeedbackEnabledForThisApp(EFalse);
+ }
+
+ if (iTouchFeedbackCreated)
+ {
+ MTouchFeedback::DestroyInstance();
+ }
+
TIMESTAMP( "Application exit" );
}
@@ -639,7 +864,7 @@
}
// may be tricky; added here to handle activation of composer view from external app when email is plugin settings view
// in this case also duplictaed view needs to be poped up, but iSettingsViewActive is already set to EFalse
- // other solution would need to expand api of this class to handle directly this case
+ // other solution would need to expand api of this class to handle directly this case
else
if ( iPreviousActiveView->Id() == SettingsViewId || iPreviousActiveView->Id() == MailListId )
{
@@ -1239,17 +1464,33 @@
// CAlfEnv::Static()->NotifySkinChangedL();
// }
-
- if( aType == KEikDynamicLayoutVariantSwitch || aType == KAknsMessageSkinChange)
+ if( aType == KEikDynamicLayoutVariantSwitch || aType == KAknsMessageSkinChange )
{
+ // Changing layout for status pane (just in case it is not switched
+ // correctly), fix for HMNN-82BAGR error
+ TBool landscape(Layout_Meta_Data::IsLandscapeOrientation());
+ CEikStatusPane* statusPane = StatusPane();
+ if(landscape)
+ {
+ if( statusPane->CurrentLayoutResId() != R_AVKON_STATUS_PANE_LAYOUT_USUAL_FLAT)
+ {
+ statusPane->SwitchLayoutL(R_AVKON_STATUS_PANE_LAYOUT_USUAL_FLAT);
+ }
+ }
+ else
+ {
+ if( statusPane->CurrentLayoutResId() != R_AVKON_STATUS_PANE_LAYOUT_USUAL_EXT)
+ {
+ statusPane->SwitchLayoutL(R_AVKON_STATUS_PANE_LAYOUT_USUAL_EXT);
+ }
+ }
+
TRect screenRect;
AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EMainPane, screenRect );
//<cmail> layout manager call removed </cmail>
// Notify layouthandler of changed screen resolution.
iLayoutHandler->ScreenResolutionChanged();
StatusPane()->DrawNow();
- TRect rect;
- AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EMainPane, rect);
if(iEnv)
{
Display().SetVisibleArea( screenRect );
@@ -1407,6 +1648,15 @@
return iEikonEnv->ScreenDevice()->DisplayMode();
}
+// ---------------------------------------------------------------------------
+// Returns display images cache
+// ---------------------------------------------------------------------------
+//
+TDisplayImagesCache& CFreestyleEmailUiAppUi::DisplayImagesCache()
+ {
+ return iDisplayImagesCache;
+ }
+
// ---------------------------------------------------------------------------
// Returns the current flip status.
@@ -1587,6 +1837,7 @@
// autosyncmonitor has been succesfully created
if ( iAutoSyncMonitor )
{
+ TIMESTAMP( "Starting auto sync" );
iAutoSyncMonitor->StartMonitoring();
}
}
@@ -1858,6 +2109,7 @@
{
case TFSEventMailboxDeleted:
{
+ iDisplayImagesCache.RemoveMailbox(aMailbox);
gridContentsChanged = ETrue;
if ( iActiveMailbox && iActiveMailbox->GetId().Id() == aMailbox.Id() &&
iCurrentActiveView->Id() != SettingsViewId )
@@ -1989,11 +2241,22 @@
}
}
break;
- case TFSEventMailboxSettingsChanged:
+ case TFSEventMailboxCapabilityChanged:
+ // Refresh grid if mailbox capabilities have changed
+ case TFSEventMailboxSettingsChanged:
// Refresh grid if mailbox settings are changed,
// name/branding might have changed.
gridContentsChanged = ETrue;
break;
+ case TFSEventMailDeleted:
+ {
+ RArray<TFSMailMsgId>* entries = reinterpret_cast<RArray<TFSMailMsgId>*>(aParam1);
+ for (TInt i = entries->Count() - 1; i >= 0; i--)
+ {
+ iDisplayImagesCache.RemoveMessage(aMailbox, entries->operator[](i));
+ }
+ }
+ break;
default:
{
}
@@ -2564,7 +2827,7 @@
}
// -----------------------------------------------------------------------------
-// CFreestyleEmailUiAppUi::SendToBackgroundL
+// CFreestyleEmailUiAppUi::SendToBackground
// Send self to background.
// -----------------------------------------------------------------------------
void CFreestyleEmailUiAppUi::SendToBackground()
@@ -2583,6 +2846,56 @@
}
// -----------------------------------------------------------------------------
+// CFreestyleEmailUiAppUi::SetEmbeddedApp
+// Set flag for judging if there is a embedded app in FSEmail.
+// -----------------------------------------------------------------------------
+void CFreestyleEmailUiAppUi::SetEmbeddedApp( TBool aEmbeddedApp )
+ {
+ iHasEmbeddedApp = aEmbeddedApp;
+ }
+
+// -----------------------------------------------------------------------------
+// CFreestyleEmailUiAppUi::EmbeddedApp
+// Get embedded app flag.
+// -----------------------------------------------------------------------------
+TBool CFreestyleEmailUiAppUi::EmbeddedApp() const
+ {
+ return iHasEmbeddedApp;
+ }
+
+// -----------------------------------------------------------------------------
+// CFreestyleEmailUiAppUi::SetEmbeddedAppToPreviousApp
+// -----------------------------------------------------------------------------
+void CFreestyleEmailUiAppUi::SetEmbeddedAppToPreviousApp( TBool aEmbeddedApp )
+ {
+ iPreviousAppEmbedded = aEmbeddedApp;
+ }
+
+// -----------------------------------------------------------------------------
+// CFreestyleEmailUiAppUi::EmbeddedAppIsPreviousApp
+// -----------------------------------------------------------------------------
+TBool CFreestyleEmailUiAppUi::EmbeddedAppIsPreviousApp() const
+ {
+ return iPreviousAppEmbedded;
+ }
+
+// -----------------------------------------------------------------------------
+// CFreestyleEmailUiAppUi::SetEditorStartedFromEmbeddedApp
+// -----------------------------------------------------------------------------
+void CFreestyleEmailUiAppUi::SetEditorStartedFromEmbeddedApp( TBool aEmbeddedApp )
+ {
+ iEditorStartedFromEmbeddedApp = aEmbeddedApp;
+ }
+
+// -----------------------------------------------------------------------------
+// CFreestyleEmailUiAppUi::EditorStartedFromEmbeddedApp
+// -----------------------------------------------------------------------------
+TBool CFreestyleEmailUiAppUi::EditorStartedFromEmbeddedApp() const
+ {
+ return iEditorStartedFromEmbeddedApp;
+ }
+
+// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
void CFreestyleEmailUiAppUi::ConstructNaviPaneL()
--- a/emailuis/emailui/src/FreestyleEmailUiContactHandler.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/src/FreestyleEmailUiContactHandler.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -44,7 +44,7 @@
// Phonebook 2
#include <CPbk2SortOrderManager.h>
#include <MPbk2ContactNameFormatter.h>
-#include <Pbk2ContactNameFormatterFactory.h>
+#include <Pbk2ContactNameFormatterFactory.h>
// Send UI
#include <sendui.h>
@@ -54,17 +54,13 @@
#include <aiwdialdataext.h>
#include <MVPbkContactLink.h>
-//Remote Contact Lookup
-//<cmail>
-#include "cpbkxremotecontactlookupenv.h"
-#include "tpbkxremotecontactlookupprotocolaccountid.h"
-#include "cpbkxremotecontactlookupserviceuicontext.h"
-#include <cntitem.h>
+// Remote Contact Lookup
+#include <cpbk2remotecontactlookupaccounts.h>
+#include <pbk2remotecontactlookupfactory.h>
-// <cmail> SF path
+
#include <MPbkGlobalSetting.h> // Global setting data
#include <PbkGlobalSettingFactory.h>
-// </cmail>
// Aiw launcher
#include <AiwDialDataTypes.h>
@@ -74,7 +70,6 @@
// FS Email framework
#include "cfsmailbox.h"
-//</cmail>
#include <FreestyleEmailUi.rsg>
@@ -1494,7 +1489,7 @@
void CFSEmailUiContactHandler::LaunchRemoteLookupL( CFSMailBox& aMailBox )
{
FUNC_LOG;
-
+
CPbkxRemoteContactLookupServiceUiContext::TResult result;
DoRemoteLookupL( aMailBox, KNullDesC , result,
CPbkxRemoteContactLookupServiceUiContext::EModeNormal );
@@ -1504,33 +1499,31 @@
// -----------------------------------------------------------------------------
// CFSEmailUiContactHandler::LaunchRemoteLookupL
// -----------------------------------------------------------------------------
-HBufC* CFSEmailUiContactHandler::GetNameAndNumberFromRemoteLookupL( CFSMailBox& aMailBox, const TDesC& aQuery,
- RBuf& aPhoneNumber )
+HBufC* CFSEmailUiContactHandler::GetNameAndNumberFromRemoteLookupL(
+ CFSMailBox& aMailBox, const TDesC& aQuery, RBuf& aPhoneNumber )
{
FUNC_LOG;
CPbkxRemoteContactLookupServiceUiContext::TResult result;
DoRemoteLookupL( aMailBox, aQuery , result,
- CPbkxRemoteContactLookupServiceUiContext::EModeContactSelector );
+ CPbkxRemoteContactLookupServiceUiContext::EModeContactSelector );
HBufC* displayName = NULL;
-
if ( result.iExitReason ==
- CPbkxRemoteContactLookupServiceUiContext::TResult::EExitContactSelected )
+ CPbkxRemoteContactLookupServiceUiContext::TResult::EExitContactSelected )
{
displayName = GetPhoneNumberAndNameL( aPhoneNumber, *(result.iSelectedContactItem) );
}
return displayName;
}
-void CFSEmailUiContactHandler::LaunchRemoteLookupWithQueryL( CFSMailBox& aMailBox, const TDesC& aQuery )
+void CFSEmailUiContactHandler::LaunchRemoteLookupWithQueryL(
+ CFSMailBox& aMailBox, const TDesC& aQuery )
{
FUNC_LOG;
-
CPbkxRemoteContactLookupServiceUiContext::TResult result;
DoRemoteLookupL( aMailBox, aQuery , result,
- CPbkxRemoteContactLookupServiceUiContext::EModeExistingCriteria );
-
+ CPbkxRemoteContactLookupServiceUiContext::EModeExistingCriteria );
}
HBufC* CFSEmailUiContactHandler::GetLastSearchNameL( const TDesC& aEmailAddress )
@@ -1704,34 +1697,24 @@
void CFSEmailUiContactHandler::DoRemoteLookupL( CFSMailBox& aMailBox,
const TDesC& aQueryString,
CPbkxRemoteContactLookupServiceUiContext::TResult& aResult,
- CPbkxRemoteContactLookupServiceUiContext::TMode aContext )
+ CPbkxRemoteContactLookupServiceUiContext::TMode aLookupMode )
{
FUNC_LOG;
TUid protocolUid = TUid::Null();
- TUint accountId = 0;
- aMailBox.GetRCLInfo( protocolUid, accountId );
- const TPbkxRemoteContactLookupProtocolAccountId KAccountId(
- protocolUid, accountId );
-
-
- CPbkxRemoteContactLookupEnv* env = CPbkxRemoteContactLookupEnv::NewL();
- CleanupStack::PushL( env );
-
- MPbkxRemoteContactLookupServiceUi* serviceUi = env->ServiceUiL();
+ TUint accountUid = 0;
+ aMailBox.GetRCLInfo( protocolUid, accountUid );
+ const TPbkxRemoteContactLookupProtocolAccountId accountId =
+ TPbkxRemoteContactLookupProtocolAccountId( protocolUid, accountUid );
- // If you want test with RCL dummyContactDatabase, KAccountId = serviceUi->DefaultAccountIdL();
- MPbkxRemoteContactLookupServiceUi::TContextParams params = { KAccountId, aContext };
-
- CPbkxRemoteContactLookupServiceUiContext* ctx( NULL );
- ctx = serviceUi->NewContextL( params );
+ CPbkxRemoteContactLookupServiceUiContext::TContextParams params =
+ { accountId, aLookupMode };
- CleanupStack::PushL( ctx );
-
- ctx->ExecuteL( aQueryString, aResult );
+ CPbkxRemoteContactLookupServiceUiContext* context =
+ Pbk2RemoteContactLookupFactory::NewContextL( params );
+ CleanupStack::PushL( context );
- CleanupStack::PopAndDestroy( ctx );
- CleanupStack::PopAndDestroy( env );
-
+ context->ExecuteL( aQueryString, aResult );
+ CleanupStack::PopAndDestroy( context );
}
--- a/emailuis/emailui/src/FreestyleEmailUiFolderListVisualiser.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/src/FreestyleEmailUiFolderListVisualiser.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -2978,6 +2978,8 @@
void CFSEmailUiFolderListVisualiser::UpdateToolbarButtons()
{
FUNC_LOG;
+ Toolbar()->SetItemDimmed(
+ EFsEmailUiTbCmdSelect, ( iModel == NULL ) || ( iModel->Count() == 0 ), ETrue );
Toolbar()->SetItemDimmed( EFsEmailUiTbCmdExpandAll, AllNodesExpanded(), ETrue );
Toolbar()->SetItemDimmed( EFsEmailUiTbCmdCollapseAll, AllNodesCollapsed(), ETrue );
}
--- a/emailuis/emailui/src/FreestyleEmailUiGlobalSettingsData.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/src/FreestyleEmailUiGlobalSettingsData.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -62,7 +62,7 @@
SetDownloadNotifications( 0 );
SetActiveIdle( 0 );
SetWarnBeforeDelete( 1 );
- //SetDownloadHTMLImages( 1 );
+ SetDownloadHTMLImages( 1 );
}
TBool& CFsEmailUiGlobalSettingsData::WarnBeforeDelete()
--- a/emailuis/emailui/src/FreestyleEmailUiGlobalSettingsList.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/src/FreestyleEmailUiGlobalSettingsList.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -38,7 +38,7 @@
#include "FreestyleEmailUiGlobalSettingsListView.h"
#include "FreestyleEmailUiGlobalSettingsList.h"
#include "FreestyleEmailUiAppui.h"
-#include "FreestyleEmailCenRepHandler.h"
+#include "freestyleemailcenrephandler.h"
#include "FreestyleEmailUiShortcutBinding.h"
#include "FreestyleEmailUiConstants.h"
@@ -113,7 +113,7 @@
aId,
iSettings.WarnBeforeDelete() );
return item;
- }/*
+ }
case EGlobalSettingsDownloadHTMLImages:
{
CAknBinaryPopupSettingItem* item = new ( ELeave )
@@ -121,7 +121,7 @@
aId,
iSettings.DownloadHTMLImages() );
return item;
- }*/
+ }
case EGlobalSettingsActiveIdle:
{
CAknBigSettingItemBase* item = new ( ELeave )
@@ -207,7 +207,7 @@
//iSettings.SetDownloadNotifications( crHandler->DownloadNotifications() );
iSettings.SetActiveIdle( crHandler->ActiveIdle() );
iSettings.SetWarnBeforeDelete( crHandler->WarnBeforeDelete() );
- //iSettings.SetDownloadHTMLImages( crHandler->DownloadHTMLImages() );
+ iSettings.SetDownloadHTMLImages( crHandler->DownloadHTMLImages() );
}
/**
@@ -230,7 +230,7 @@
//crHandler->SetDownloadNotifications( iSettings.DownloadNotifications() );
crHandler->SetActiveIdle( iSettings.ActiveIdle() );
crHandler->SetWarnBeforeDelete( iSettings.WarnBeforeDelete() );
- //crHandler->SetDownloadHTMLImages( iSettings.DownloadHTMLImages() );
+ crHandler->SetDownloadHTMLImages( iSettings.DownloadHTMLImages() );
}
/**
--- a/emailuis/emailui/src/FreestyleEmailUiHtmlViewerContainer.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/src/FreestyleEmailUiHtmlViewerContainer.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -44,7 +44,6 @@
#include "FreestyleMessageHeaderHTML.h"
#include "FreestyleMessageHeaderURLEventHandler.h"
-#include "FreestyleEmailUiAknStatusIndicator.h"
#include "FreestyleEmailUiAttachmentsListModel.h"
_LIT( KContentIdPrefix, "cid:" );
@@ -85,6 +84,11 @@
_LIT8( KHtmlLinkEndTag, "</a>" );
_LIT( KURLTypeBody, "body");
+_LIT( KURLDisplayImages, "cmail://displayImages/" );
+_LIT( KURLLoadImages, "cmail://loadImages/" );
+_LIT( KURLCollapseHeader, "cmail://collapseHeader/" );
+_LIT( KURLExpandHeader, "cmail://expandHeader/" );
+
const TText8 KGreaterThan = 0x3e;
const TText8 KLessThan = 0x3c;
const TText8 KAmpersand = 0x26;
@@ -103,6 +107,161 @@
const TInt KStatusIndicatorHeight = 50;
const TInt KStatusIndicatorXMargin = 50;
+// CEUiHtmlViewerSettingsKeyListener
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+CEUiHtmlViewerSettingsKeyListener::CEUiHtmlViewerSettingsKeyListener( MObserver& aObserver, TUint32 aKey )
+ : CActive( EPriorityStandard ), iObserver( aObserver ), iKey( aKey )
+ {
+ CActiveScheduler::Add(this);
+ StartListening();
+ }
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+CEUiHtmlViewerSettingsKeyListener::~CEUiHtmlViewerSettingsKeyListener()
+ {
+ Cancel();
+ }
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+void CEUiHtmlViewerSettingsKeyListener::StartListening()
+ {
+ SetActive();
+ iObserver.Repository().NotifyRequest(iKey, iStatus);
+ }
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+void CEUiHtmlViewerSettingsKeyListener::RunL()
+ {
+ iObserver.KeyValueChangedL(iKey);
+ StartListening();
+ }
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+void CEUiHtmlViewerSettingsKeyListener::DoCancel()
+ {
+ iObserver.Repository().NotifyCancel(iKey);
+ }
+
+// CEUiHtmlViewerSettings
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+CEUiHtmlViewerSettings* CEUiHtmlViewerSettings::NewL( MObserver& aObserver )
+ {
+ CEUiHtmlViewerSettings* self = new (ELeave) CEUiHtmlViewerSettings(aObserver);
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop(); // self
+ return self;
+ }
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+CEUiHtmlViewerSettings::~CEUiHtmlViewerSettings()
+ {
+ iKeyListeners.ResetAndDestroy();
+ delete iRepository;
+ }
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+CEUiHtmlViewerSettings::CEUiHtmlViewerSettings( MObserver& aObserver ) : iObserver( aObserver )
+ {
+ }
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+void CEUiHtmlViewerSettings::ConstructL()
+ {
+ iRepository = CRepository::NewL(KFreestyleEmailCenRep);
+ AddKeyListenerL(KFreestyleEmailDownloadHTMLImages);
+ }
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+void CEUiHtmlViewerSettings::AddKeyListenerL( TUint32 aKey )
+ {
+ CEUiHtmlViewerSettingsKeyListener* listener = new (ELeave) CEUiHtmlViewerSettingsKeyListener(*this, aKey);
+ CleanupStack::PushL(listener);
+ iKeyListeners.AppendL(listener);
+ CleanupStack::Pop(); // listener
+ UpdateValue(aKey);
+ }
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+void CEUiHtmlViewerSettings::UpdateValue( TUint32 aKey )
+ {
+ TInt value;
+ iRepository->Get(aKey, value);
+ switch (aKey)
+ {
+ case KFreestyleEmailDownloadHTMLImages:
+ // 0 = automatic, 1 = ask always
+ iFlags.Assign(aKey, value == 0);
+ break;
+ default:
+ iFlags.Assign(aKey, value);
+ break;
+ }
+ }
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+void CEUiHtmlViewerSettings::KeyValueChangedL( TUint32 aKey )
+ {
+ UpdateValue(aKey);
+ iObserver.ViewerSettingsChangedL(aKey);
+ }
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+CRepository& CEUiHtmlViewerSettings::Repository()
+ {
+ return *iRepository;
+ }
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+TBool CEUiHtmlViewerSettings::AutoLoadImages() const
+ {
+ return iFlags.IsSet(EAutoLoadImages);
+ }
+
// ---------------------------------------------------------------------------
// Two-phased constructor.
// ---------------------------------------------------------------------------
@@ -128,7 +287,7 @@
:
iAppUi( aAppUi ),
iView( aView ),
- iFs( CCoeEnv::Static()->FsSession() ),
+ iFs( iCoeEnv->FsSession() ),
iFirstTime( ETrue )
{
FUNC_LOG;
@@ -141,6 +300,7 @@
CFsEmailUiHtmlViewerContainer::~CFsEmailUiHtmlViewerContainer()
{
FUNC_LOG;
+ delete iViewerSettings;
if ( iObservingDownload && iAppUi.DownloadInfoMediator() )
{
iAppUi.DownloadInfoMediator()->StopObserving( this );
@@ -157,10 +317,10 @@
delete iOverlayControlPrev;
}
-// <cmail> Because of browser changes, followings must be performed before iAppUi.exit()
void CFsEmailUiHtmlViewerContainer::PrepareForExit()
{
FUNC_LOG;
+ HideDownloadStatus();
if ( iObservingDownload && iAppUi.DownloadInfoMediator() )
{
iAppUi.DownloadInfoMediator()->StopObserving( this );
@@ -171,12 +331,18 @@
iConnection.Close();
iSocketServer.Close();
}
-// </cmail>
+
+void CFsEmailUiHtmlViewerContainer::PrepareForMessageNavigation()
+ {
+ FUNC_LOG;
+ ResetContent();
+ }
void CFsEmailUiHtmlViewerContainer::ConstructL()
{
FUNC_LOG;
-
+ iViewerSettings = CEUiHtmlViewerSettings::NewL(*this);
+
SetHtmlFolderPathL();
BaflUtils::EnsurePathExistsL( iFs, iHtmlFolderPath );
SetTempHtmlFolderPath();
@@ -195,16 +361,27 @@
// Set browsercontrol to whole screen
TRect rect( TPoint(), Size() );
-
- iBrCtlInterface = CreateBrowserControlL( this, rect, brCtlCapabilities,
- TBrCtlDefs::ECommandIdBase, NULL, this, this, NULL, NULL, this, NULL );
+
+ iBrCtlInterface = CreateBrowserControlL(
+ this, // aParent
+ rect, // aRect
+ brCtlCapabilities, // aBrCtlCapabilities
+ TBrCtlDefs::ECommandIdBase, // aCommandIdBase
+ NULL, // aBrCtlSoftkeysObserver
+ this, // aBrCtlLinkResolver
+ this, // aBrCtlSpecialLoadObserver
+ NULL, // aBrCtlLayoutObserver
+ NULL, // aBrCtlDialogsProvider
+ this, // aBrCtlWindowObserver
+ NULL // aBrCtlDownloadObserver
+ );
iBrCtlInterface->SetBrowserSettingL( TBrCtlDefs::ESettingsEmbedded, ETrue );
- iBrCtlInterface->SetBrowserSettingL( TBrCtlDefs::ESettingsAutoLoadImages, ETrue );
+ iBrCtlInterface->SetBrowserSettingL( TBrCtlDefs::ESettingsAutoLoadImages, iViewerSettings->AutoLoadImages() );
iBrCtlInterface->SetBrowserSettingL( TBrCtlDefs::ESettingsPageOverview, EFalse );
iBrCtlInterface->SetBrowserSettingL( TBrCtlDefs::ESettingsTextWrapEnabled, ETrue );
iBrCtlInterface->SetBrowserSettingL( TBrCtlDefs::ESettingsFontSize, TBrCtlDefs::EFontSizeLevelLarger );
-
+
iEventHandler = CFreestyleMessageHeaderURLEventHandler::NewL( iAppUi, iView );
TRect nextButtonRect = OverlayButtonRect( EFalse );
@@ -218,6 +395,10 @@
EMbmFreestyleemailuiQgn_indi_cmail_arrow_previous_mask );
iScrollPosition = 0;
iAttachmentDownloadImageHandle = 0;
+
+ iTouchFeedBack = MTouchFeedback::Instance();
+ iTouchFeedBack->EnableFeedbackForControl(this, ETrue);
+
ActivateL();
}
@@ -349,23 +530,14 @@
// insert email header into email.html file
// CFreestyleMessageHeaderHTML will replace contents of email.html
// So, no need to clear the contents
- TLanguage language = User::Language();
- TBidiText::TDirectionality direction = TBidiText::ScriptDirectionality( language );
if(aResetScrollPos)
{
iScrollPosition = 0;
}
- if ( AknLayoutUtils::LayoutMirrored() )
- {
- direction = TBidiText::ERightToLeft;
- }
- else
- {
- direction = TBidiText::ELeftToRight;
- }
- CFreestyleMessageHeaderHTML::ExportL( *iMessage, iFs, headerHtmlFile, iAppUi.ClientRect().Width(),
- iScrollPosition,
- direction);
+ const TInt visibleWidth(iAppUi.ClientRect().Width());
+ CFreestyleMessageHeaderHTML::ExportL( *iMessage, iFs, headerHtmlFile, visibleWidth, iScrollPosition,
+ iViewerSettings->AutoLoadImages() || iAppUi.DisplayImagesCache().Contains(*iMessage),
+ iHeaderExpanded );
// Remove all previously created files from temporary HTML folder
EmptyTempHtmlFolderL();
@@ -396,18 +568,27 @@
// Reset content
// ---------------------------------------------------------------------------
//
-void CFsEmailUiHtmlViewerContainer::ResetContent()
+void CFsEmailUiHtmlViewerContainer::ResetContent(const TBool aDisconnect)
{
FUNC_LOG;
if ( iBrCtlInterface )
{
- TRAP_IGNORE( iBrCtlInterface->HandleCommandL( ( TInt )TBrCtlDefs::ECommandIdBase +
- ( TInt )TBrCtlDefs::ECommandFreeMemory ) );
+ TRAP_IGNORE(
+ iBrCtlInterface->HandleCommandL( ( TInt )TBrCtlDefs::ECommandIdBase +
+ ( TInt )TBrCtlDefs::ECommandFreeMemory ) );
+ if (aDisconnect)
+ {
+ TRAP_IGNORE(
+ iBrCtlInterface->HandleCommandL( ( TInt )TBrCtlDefs::ECommandIdBase +
+ ( TInt )TBrCtlDefs::ECommandDisconnect ) );
+ }
}
iFile.Close();
iLinkContents.Reset();
iMessageParts.Reset();
iMessage = NULL;
+ iHeaderExpanded = EFalse;
+ iScrollPosition = 0;
}
// ---------------------------------------------------------------------------
@@ -493,39 +674,6 @@
{
iBrCtlInterface->SetRect( rect );
}
-
- if ( iMessage )
- {
- // update the width in header part and reload
- TPath headerHtmlFile;
- headerHtmlFile.Copy( iHtmlFolderPath );
- headerHtmlFile.Append( KHeaderHtmlFile );
-
- TLanguage language = User::Language();
- TBidiText::TDirectionality direction = TBidiText::ScriptDirectionality( language );
-
- if ( AknLayoutUtils::LayoutMirrored() )
- {
- direction = TBidiText::ERightToLeft;
- }
- else
- {
- direction = TBidiText::ELeftToRight;
- }
- TRAP_IGNORE( CFreestyleMessageHeaderHTML::ExportL( *iMessage, iFs, headerHtmlFile,
- rect.Width(), iScrollPosition, direction ) )
-
- TPath emailHtmlFile;
- emailHtmlFile.Copy( iHtmlFolderPath );
- if ( AknLayoutUtils::LayoutMirrored() )
- {
- emailHtmlFile.Append( KMessageHtmlRTLFile );
- }
- else
- {
- emailHtmlFile.Append( KMessageHtmlFile );
- }
- }
UpdateOverlayButtons( IsVisible() );
@@ -738,9 +886,12 @@
const TDesC& /*aCurrentUrl*/, MBrCtlLinkContent& /*aBrCtlLinkContent*/ )
{
FUNC_LOG;
- if (IsMessageBodyURL(aUrl))
+ if ( IsMessageBodyURLL(aUrl) )
{
- iView.StartFetchingMessageL();
+ if ( iMessage )
+ {
+ iView.StartFetchingMessageL();
+ }
return ETrue;
}
else
@@ -1201,7 +1352,7 @@
//
// <cmail>
void CFsEmailUiHtmlViewerContainer::ConvertToHTML( const TDesC8& aContent,
- const TDesC& aFileName, CFSMailMessagePart& aTextBodyPart )
+ const TDesC& aFileName, CFSMailMessagePart& /*aTextBodyPart*/ )
{
FUNC_LOG;
const TInt KBodyTextChunkSizeBytes = 1024;
@@ -1597,7 +1748,8 @@
for ( TInt i = 0; i < contentTypeArray.Count(); i++ )
{
- if ( ( contentTypeArray.MdcaPoint( i ).Find( KCharsetTag ) != KErrNotFound ) &&
+ TPtrC contentEntry( contentTypeArray.MdcaPoint( i ) );
+ if ( ( contentEntry.FindF( KCharsetTag ) != KErrNotFound ) &&
contentTypeArray.Count() >= ( i+1) )
{
TPtrC value( contentTypeArray.MdcaPoint( i+1 ) );
@@ -1653,6 +1805,10 @@
void CFsEmailUiHtmlViewerContainer::HandleResourceChange( TInt aType )
{
CCoeControl::HandleResourceChange( aType );
+ if ( aType == CFsEmailUiViewBase::EScreenLayoutChanged )
+ {
+ RefreshCurrentMailHeader();
+ }
}
void CFsEmailUiHtmlViewerContainer::RefreshCurrentMailHeader()
@@ -1664,53 +1820,28 @@
headerHtmlFile.Copy( iHtmlFolderPath );
headerHtmlFile.Append( KHeaderHtmlFile );
- TLanguage language = User::Language();
- TBidiText::TDirectionality direction = TBidiText::ScriptDirectionality( language );
- TRAP_IGNORE( CFreestyleMessageHeaderHTML::ExportL( *iMessage, iFs, headerHtmlFile, iAppUi.ClientRect().Width(), direction ) )
+ TRAP_IGNORE( CFreestyleMessageHeaderHTML::ExportL( *iMessage, iFs,
+ headerHtmlFile, iAppUi.ClientRect().Width(), iScrollPosition,
+ iViewerSettings->AutoLoadImages() || iAppUi.DisplayImagesCache().Contains(*iMessage),
+ iHeaderExpanded ) )
- TPath emailHtmlFile;
- emailHtmlFile.Copy( iHtmlFolderPath );
- emailHtmlFile.Append( KMessageHtmlFile );
- if ( direction == TBidiText::ELeftToRight )
+ if(!iEventHandler->IsMenuVisible())
{
- emailHtmlFile.Append( KMessageHtmlFile );
+ TRAP_IGNORE( ReloadPageL() );
}
else
{
- emailHtmlFile.Append( KMessageHtmlRTLFile );
+ //Load page asynchronously after dismissing menu
+ iEventHandler->DismissMenuAndReload();
}
-
- //Load page synchronously if menu invisible
- if(!iEventHandler->IsMenuVisible())
- {
- TRAP_IGNORE( LoadContentFromFileL( emailHtmlFile ) );
- SetRect( iAppUi.ClientRect() );
- }
- //Load page asynchronously after dismissing menu
- else
- {
- iEventHandler->DismissMenuAndReload();
- }
}
}
void CFsEmailUiHtmlViewerContainer::ReloadPageL()
{
- TLanguage language = User::Language();
- TBidiText::TDirectionality direction = TBidiText::ScriptDirectionality( language );
- TPath emailHtmlFile;
- emailHtmlFile.Copy( iHtmlFolderPath );
- if( !AknLayoutUtils::LayoutMirrored() )
- {
- emailHtmlFile.Append( KMessageHtmlFile );
- }
- else
- {
- emailHtmlFile.Append( KMessageHtmlRTLFile );
- }
- TRAP_IGNORE( LoadContentFromFileL( emailHtmlFile ) );
- SetRect( iAppUi.ClientRect() );
+ TRAP_IGNORE( iBrCtlInterface->HandleCommandL( ( TInt )TBrCtlDefs::ECommandIdBase +
+ ( TInt )TBrCtlDefs::ECommandReload ) );
}
void CFsEmailUiHtmlViewerContainer::ShowAttachmentDownloadStatusL(
@@ -1829,6 +1960,23 @@
return EFalse;
}
}
+void CFsEmailUiHtmlViewerContainer::ViewerSettingsChangedL( const TUint32 aKey )
+ {
+ FUNC_LOG;
+ if (aKey == KFreestyleEmailDownloadHTMLImages)
+ {
+ if (iBrCtlInterface)
+ {
+ iBrCtlInterface->SetBrowserSettingL(
+ TBrCtlDefs::ESettingsAutoLoadImages,
+ iViewerSettings->AutoLoadImages() );
+ if (iViewerSettings->AutoLoadImages() && iMessage)
+ {
+ LoadContentFromMailMessageL(iMessage, EFalse);
+ }
+ }
+ }
+ }
void CFsEmailUiHtmlViewerContainer::HideDownloadStatus()
{
@@ -1849,13 +1997,18 @@
return TRect( statusTopLeft, statusBottomRight );
}
+void CFsEmailUiHtmlViewerContainer::TouchFeedback()
+ {
+ iTouchFeedBack->InstantFeedback(this, ETouchFeedbackBasic);
+ }
+
/**
* The body fetch link is cmail://body/fetch. Look for the URL separator
* and the presence of cmail and body on the url.
* @param aUrl
* return ETrue for a valid body URL
*/
-TBool CFsEmailUiHtmlViewerContainer::IsMessageBodyURL(const TDesC& aUrl)
+TBool CFsEmailUiHtmlViewerContainer::IsMessageBodyURLL(const TDesC& aUrl)
{
TInt index = aUrl.Find(KURLSchemeSeparator);
if (index == KErrNotFound)
@@ -1864,7 +2017,31 @@
}
else
{
- if (aUrl.Left(index).CompareF(KURLSchemeCmail) == 0)
+ if (aUrl.Compare(KURLLoadImages()) == 0)
+ {
+ iBrCtlInterface->HandleCommandL(TBrCtlDefs::ECommandLoadImages + TBrCtlDefs::ECommandIdBase);
+ return ETrue;
+ }
+ else if (aUrl.Compare(KURLDisplayImages()) == 0)
+ {
+ DisplayStatusIndicatorL(KStatusIndicatorAutomaticHidingDuration);
+ iAppUi.DisplayImagesCache().AddMessageL(*iMessage);
+ iBrCtlInterface->HandleCommandL(TBrCtlDefs::ECommandLoadImages + TBrCtlDefs::ECommandIdBase);
+ return ETrue;
+ }
+ else if (aUrl.Compare(KURLCollapseHeader()) == 0)
+ {
+ TouchFeedback();
+ iHeaderExpanded = EFalse;
+ return ETrue;
+ }
+ else if (aUrl.Compare(KURLExpandHeader()) == 0)
+ {
+ TouchFeedback();
+ iHeaderExpanded = ETrue;
+ return ETrue;
+ }
+ else if (aUrl.Left(index).CompareF(KURLSchemeCmail) == 0)
{
TInt bodyIndex = aUrl.Find(KURLTypeBody);
if (bodyIndex == KErrNotFound)
@@ -1895,6 +2072,7 @@
}
}
}
+
// ---------------------------------------------------------------------------
// From MBrCtlWindowObserver
// ---------------------------------------------------------------------------
@@ -1933,6 +2111,7 @@
TBool launchBrowser( ETrue );
// look for file:///
_LIT( KFileLink, "file:///");
+ _LIT( KUrlLink, "http");
// This might be linking to header.html or body.html frames
// Ignore them.
@@ -1959,6 +2138,12 @@
{
launchBrowser = EFalse;
}
+ // THAA-82BEAZ - show popup first
+ else if ( aUrl.Left(KUrlLink().Length() ).CompareF( KUrlLink ) == 0 )
+ {
+ launchBrowser = EFalse;
+ }
+ // end THAA-82BEAZ
return launchBrowser;
}
@@ -2018,18 +2203,19 @@
CleanupStack::PopAndDestroy( &targetFile );
}
-void CFsEmailUiHtmlViewerContainer::DisplayStatusIndicatorL()
+void CFsEmailUiHtmlViewerContainer::DisplayStatusIndicatorL(TInt aDuration)
{
- TRect rect = CalcAttachmentStatusRect();
+ FUNC_LOG;
+ TRect rect = CalcAttachmentStatusRect();
if(!iStatusIndicator)
{
iStatusIndicator = CFreestyleEmailUiAknStatusIndicator::NewL( rect, this );
}
CFbsBitmap* image = NULL;
CFbsBitmap* imageMask = NULL;
- TInt duration = KStatusIndicatorDefaultDuration;
HBufC* statusText = NULL;
statusText = StringLoader::LoadL(R_FREESTYLE_EMAIL_UI_VIEWER_FETCHING_CONTENT_TEXT);
iAppUi.FsTextureManager()->ProvideBitmapL(EStatusTextureSynchronising, image, imageMask );
- iStatusIndicator->ShowIndicatorL( image, imageMask, statusText, duration );
+ iStatusIndicator->ShowIndicatorL( image, imageMask, statusText, aDuration );
}
+
--- a/emailuis/emailui/src/FreestyleEmailUiHtmlViewerView.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/src/FreestyleEmailUiHtmlViewerView.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -134,6 +134,7 @@
iOpenMessages = new (ELeave) CStack<CFSMailMessage, ETrue>();
iEmbeddedMessages = new (ELeave) CStack<CFSMailMessage, EFalse>();
iNextOrPrevMessageSelected = EFalse;
+ iForwardingMessage = EFalse;
}
// -----------------------------------------------------------------------------
@@ -298,6 +299,7 @@
iContainer->ResetContent();
}
+ iForwardingMessage = ETrue;
iAppUi.LaunchEditorL( KEditorCmdForward, params );
}
}
@@ -479,7 +481,7 @@
// Activate an Compose view
// -----------------------------------------------------------------------------
//
-void CFsEmailUiHtmlViewerView::ChildDoActivateL( const TVwsViewId& /*aPrevViewId*/,
+void CFsEmailUiHtmlViewerView::ChildDoActivateL( const TVwsViewId& aPrevViewId,
TUid aCustomMessageId, const TDesC8& aCustomMessage )
{
FUNC_LOG;
@@ -487,6 +489,11 @@
TBool msgBodyStructurePresent ( EFalse );
TBool msgBodyContentPresent ( EFalse );
+ if( aCustomMessageId != KHtmlViewerReturnToPrevious)
+ {
+ ViewEntered( aPrevViewId );
+ }
+
if ( iMrObserverToInform &&
aCustomMessageId == KStartViewerReturnToPreviousMsg )
{
@@ -734,13 +741,8 @@
}
}
iNextOrPrevMessageSelected = EFalse;
+ iForwardingMessage = EFalse;
- //update rect only if it has changed from previous time.
- if ( iContainer->Rect() != ContainerRect() )
- {
- iContainer->SetRect( ContainerRect() );
- }
-
TIMESTAMP( "Html viewer opened" );
}
@@ -808,6 +810,9 @@
{
aDimmedItems.AppendL(EFsEmailUiTbCmdActions);
aDimmedItems.AppendL(EFsEmailUiTbCmdDelete);
+ aDimmedItems.AppendL(EFsEmailUiTbCmdReply);
+ aDimmedItems.AppendL(EFsEmailUiTbCmdForward);
+ aDimmedItems.AppendL(EFsEmailUiTbCmdReplyAll);
}
}
}
@@ -820,12 +825,18 @@
void CFsEmailUiHtmlViewerView::ChildDoDeactivate()
{
FUNC_LOG;
- CancelFetchings();
-
+ // Don't cancel fetching the message parts when forwarding the message:
+ // it would also cancel the fetchings initiated by the forwarding,
+ // causing the forwarding to abort.
+ if ( !iForwardingMessage )
+ {
+ CancelFetchings();
+ }
+
if ( iContainer )
{
HideContainer();
- iContainer->ResetContent();
+ iContainer->ResetContent(ETrue);
iAppUi.RemoveFromStack(iContainer);
iContainer->CancelFetch();
iContainer->ClearCacheAndLoadEmptyContent();
@@ -1124,11 +1135,6 @@
void CFsEmailUiHtmlViewerView::HandleStatusPaneSizeChange()
{
CFsEmailUiViewBase::HandleStatusPaneSizeChange();
-
- if ( iContainer )
- {
- iContainer->SetRect( ContainerRect() );
- }
}
void CFsEmailUiHtmlViewerView::HandleViewRectChange()
@@ -1277,9 +1283,11 @@
ChangeMskCommandL( R_FSE_QTN_MSK_EMPTY );
NavigateBackL();
}
- //inform user that mail is deleted
- TFsEmailUiUtility::ShowGlobalInfoNoteL( R_FREESTYLE_EMAIL_MAIL_DELETED );
- }
+
+
+ }
+ //inform user that mail is deleted
+ TFsEmailUiUtility::ShowDiscreetInfoNoteL( R_FREESTYLE_EMAIL_MAIL_DELETED );
}
}
@@ -1640,12 +1648,7 @@
void CFsEmailUiHtmlViewerView::CancelAttachmentL( const TAttachmentData& aAttachment )
{
- TInt reallyCancel =
- TFsEmailUiUtility::ShowConfirmationQueryL( R_FSE_VIEWER_CANCEL_DOWNLOAD_QUERY );
- if ( reallyCancel )
- {
- iAttachmentsListModel->CancelDownloadL(aAttachment);
- }
+ iAttachmentsListModel->CancelDownloadL(aAttachment);
}
void CFsEmailUiHtmlViewerView::OpenAttachmentL( const TAttachmentData& aAttachment )
@@ -1950,6 +1953,11 @@
TFSMailMsgId nextMsgFolderId;
if ( iAppUi.IsNextMsgAvailable( currentMsgId, nextMsgId, nextMsgFolderId ) )
{
+ if (iContainer)
+ {
+ iContainer->PrepareForMessageNavigation();
+ }
+
// Stop timer and cancel fetchings before showing next message
//iFetchingAnimationTimer->Stop();
CancelFetchings();
@@ -1993,6 +2001,11 @@
TFSMailMsgId prevMsgFolderId;
if ( iAppUi.IsPreviousMsgAvailable( currentMsgId, prevMsgId, prevMsgFolderId ) )
{
+ if (iContainer)
+ {
+ iContainer->PrepareForMessageNavigation();
+ }
+
// Stop timer and cancel fetchings before showing prev message
CancelFetchings();
@@ -3174,7 +3187,7 @@
}
}
-void CFsEmailUiHtmlViewerView::CheckMessageBodyL( CFSMailMessage& aMessage, TBool& aMessageBodyStructurePresent, TBool& aMessageBodyContentPresent)
+void CFsEmailUiHtmlViewerView::CheckMessageBodyL( CFSMailMessage& /*aMessage*/, TBool& aMessageBodyStructurePresent, TBool& aMessageBodyContentPresent)
{
CFSMailMessagePart* bodyPart = iMessage->HtmlBodyPartL();
if ( !bodyPart )
--- a/emailuis/emailui/src/FreestyleEmailUiLauncherGridVisualiser.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/src/FreestyleEmailUiLauncherGridVisualiser.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -144,6 +144,10 @@
iUiOperationLaunched = EFalse;
iMailboxDeleter = CFSEmailUiMailboxDeleter::NewL( *iAppUi.GetMailClient(), *this );
+
+ // Create startup timer
+ iStartupCallbackTimer = CFSEmailUiGenericTimer::NewL( this );
+
}
// ----------------------------------------------------------------------------
@@ -294,6 +298,13 @@
CFSEmailUiLauncherGridVisualiser::~CFSEmailUiLauncherGridVisualiser()
{
FUNC_LOG;
+
+ if ( iStartupCallbackTimer )
+ {
+ iStartupCallbackTimer->Cancel();
+ delete iStartupCallbackTimer;
+ }
+
iPluginIdIconIdPairs.Reset();
iIconArray.Close();
iMailboxRequestIds.Close();
@@ -2677,5 +2688,28 @@
iStylusPopUpMenuLaunched = ETrue;
}
+void CFSEmailUiLauncherGridVisualiser::HandleAppForegroundEventL( TBool aForeground )
+ {
+ CFsEmailUiViewBase::HandleAppForegroundEventL( aForeground );
+ // If the view is not visible try to visualise it after a while
+ if ( aForeground && ( !iWasActiveControlGroup ) )
+ {
+ //
+ iStartupCallbackTimer->Cancel(); // just in case
+ iStartupCallbackTimer->SetPriority( CActive::EPriorityIdle );
+ // EPriorityIdle, EPriorityLow, EPriorityStandard
+ iStartupCallbackTimer->Start( 200 );
+ }
+ }
-// End of file.
+// Fire timer callback
+void CFSEmailUiLauncherGridVisualiser::TimerEventL( CFSEmailUiGenericTimer* /* aTriggeredTimer */ )
+{
+ // if view is still active then
+ if ( ( NULL != iAppUi.CurrentActiveView() ) && ( iAppUi.CurrentActiveView()->Id() == Id() ) )
+ {
+ iWasActiveControlGroup = ETrue;
+ HandleAppForegroundEventL( ETrue );
+ }
+};
+
--- a/emailuis/emailui/src/FreestyleEmailUiMailListModel.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/src/FreestyleEmailUiMailListModel.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -571,3 +571,22 @@
iSortCriteria.iOrder = EFSMailDescending;
}
+void CFSEmailUiMailListModel::GetItemIdsUnderNodeL( const TFsTreeItemId aNodeId,
+ RFsTreeItemIdList& aMessageIds ) const
+ {
+ FUNC_LOG;
+ aMessageIds.Reset();
+ const TInt count(iItems.Count());
+ for (TInt index = 0; index < count; index++)
+ {
+ if (iItems[index]->CorrespondingListId() == aNodeId)
+ {
+ // Found the node Id, now get all the items under it
+ while (++index < count && iItems[index]->ModelItemType() == ETypeMailItem)
+ {
+ aMessageIds.AppendL(iItems[index]->CorrespondingListId());
+ }
+ break;
+ }
+ }
+ }
--- a/emailuis/emailui/src/FreestyleEmailUiMailListVisualiser.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/src/FreestyleEmailUiMailListVisualiser.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -88,6 +88,7 @@
#include "FreestyleEmailUiHtmlViewerView.h"
#include "FSDelayedLoader.h"
#include "FSEmail.pan"
+#include "fsemailstatuspaneindicatorhandler.h"
// CONST VALUES
const TInt KControlBarTransitionTime = 250;
@@ -110,6 +111,79 @@
ptr = NULL;
}
+// TDeleteTask
+// Task class for deleting mail
+// ---------------------------------------------------------------------------
+// Class definition
+// ---------------------------------------------------------------------------
+template <class T> struct TDeleteTask
+ {
+
+public:
+
+ typedef void ( T::*TDeleteMethod )( const RFsTreeItemIdList& aEntries );
+
+public:
+
+ TDeleteTask(T& aObject, TDeleteMethod aMethod);
+ ~TDeleteTask();
+ void ExecuteL();
+ RFsTreeItemIdList& Entries();
+ void Reset();
+
+private:
+
+ T& iObject;
+ TDeleteMethod iMethod;
+ RFsTreeItemIdList iEntries;
+
+ };
+
+// ---------------------------------------------------------------------------
+// TDeleteTask<T>::TDeleteTask
+// ---------------------------------------------------------------------------
+//
+template <class T> TDeleteTask<T>::TDeleteTask( T& aObject, TDeleteMethod aMethod )
+ : iObject(aObject), iMethod(aMethod)
+ {
+ }
+
+// ---------------------------------------------------------------------------
+// TDeleteTask<T>::~TDeleteTask
+// ---------------------------------------------------------------------------
+//
+template <class T> TDeleteTask<T>::~TDeleteTask()
+ {
+ iEntries.Close();
+ }
+
+// ---------------------------------------------------------------------------
+// TDeleteTask<T>::ExecuteL
+// ---------------------------------------------------------------------------
+//
+template <class T> void TDeleteTask<T>::ExecuteL()
+ {
+ (iObject.*iMethod)(iEntries);
+ Reset();
+ }
+
+// ---------------------------------------------------------------------------
+// TDeleteTask<T>::Entries
+// ---------------------------------------------------------------------------
+//
+template <class T> RFsTreeItemIdList& TDeleteTask<T>::Entries()
+ {
+ return iEntries;
+ }
+
+// ---------------------------------------------------------------------------
+// TDeleteTask<T>::Reset
+// ---------------------------------------------------------------------------
+//
+template <class T> void TDeleteTask<T>::Reset()
+ {
+ iEntries.Reset();
+ }
// CMailListModelUpdater
// ---------------------------------------------------------------------------
@@ -340,6 +414,9 @@
iAsyncCallback = new (ELeave) CAsyncCallBack( CActive::EPriorityStandard );
iAsyncRedrawer = new (ELeave) CAsyncCallBack( CActive::EPriorityLow );
iLastFocus = EFalse;
+ iDeleteTask = new (ELeave) TDeleteTask<CFSEmailUiMailListVisualiser> (*this, HandleDeleteTaskL);
+
+ iTouchFeedBack = MTouchFeedback::Instance();
}
// CFSEmailUiMailListVisualiser::DoFirstStartL()
@@ -483,6 +560,10 @@
CFSEmailUiMailListVisualiser::~CFSEmailUiMailListVisualiser()
{
FUNC_LOG;
+ if (iExtension)
+ {
+ iAppUi.GetMailClient()->ReleaseExtension(iExtension);
+ }
SafeDelete(iMailListModelUpdater);
SafeDelete(iMailFolder);
delete iTouchManager;
@@ -493,6 +574,8 @@
// Don't construct this anywhere else than in constructor.
// Don't delete anywhere else thatn here to avoid NULL checks.
delete iModel;
+
+ delete iDeleteTask;
}
void CFSEmailUiMailListVisualiser::PrepareForExit()
@@ -536,6 +619,8 @@
iTreeItemArray.Reset();
// Reset, not delete to avoid NULL checks.
iModel->Reset();
+ // Resources freed, new start required
+ iFirstStartCompleted = EFalse;
}
// ---------------------------------------------------------------------------
@@ -602,7 +687,7 @@
}
SetListAndCtrlBarFocusL();
iAppUi.StartMonitoringL();
- TIMESTAMP( "Locally stored messages fetched for message list" );
+ TIMESTAMP( "Locally stored messages fetched for message list" );
}
// ---------------------------------------------------------------------------
@@ -1082,7 +1167,7 @@
TInt nodeIdxUnderRoot = iMailList->ChildIndex( KFsTreeRootID, nextNodeId );
InsertNodeItemL( idx-1, nodeIdxUnderRoot, aAllowRefresh );
}
- moveViewPortPosition += iAppUi.LayoutHandler()->OneLineListItemHeight();
+ moveViewPortPosition += iAppUi.LayoutHandler()->OneLineListItemHeight();
}
else
{
@@ -1101,7 +1186,7 @@
TPoint viewPortTopPos = iMailTreeListVisualizer->ViewPortTopPosition();
TInt itemPos = iMailTreeListVisualizer->GetItemWorldPosition( idx );
TBool refresh = viewPortTopPos.iY != 0 && itemPos < viewPortCenterPos.iY;
-
+
if( refresh )
{
InsertListItemL( idx, parentId, childIdx, EFalse );
@@ -1251,6 +1336,8 @@
{
DoFirstStartL();
}
+ // set when editor was called so reset is needed i.e. here (Called by DoActivate)
+ iMailOpened = EFalse;
// Make sure that pending popup is not displayd
if ( iAppUi.FolderList().IsPopupShown() )
@@ -1277,8 +1364,6 @@
TRect clientRect = iAppUi.ClientRect();
iScreenAnchorLayout->SetSize( clientRect.Size() );
SetMailListLayoutAnchors();
- TInt listHeight = clientRect.Height() - iAppUi.LayoutHandler()->ControlBarHeight();
- iListLayout->SetSize( TSize( clientRect.Width(), listHeight ) ); // needs to be set separately to avoid layout problems in some special cases
ScaleControlBarL();
SetListAndCtrlBarFocusL();
@@ -1297,7 +1382,8 @@
// Check for changed settings, in that case a complete list refresh is needed
TBool refreshNeeded(EFalse);
- if ( iSkinChanged
+ if ( aCustomMessageId == KStartListWithFolderIdFromHomeScreen
+ || iSkinChanged
|| iDateChanged
|| iListMode != prevListMode
|| iNodesInUse != prevNodesmode
@@ -1305,8 +1391,8 @@
|| prevDateFormats.iDateFormat != iDateFormats.iDateFormat
|| prevDateFormats.iTimeFormat != iDateFormats.iTimeFormat
|| prevDateFormats.iAmPmPosition != iDateFormats.iAmPmPosition
- || prevDateFormats.iDateSeparator != iDateFormats.iDateSeparator
- || prevDateFormats.iTimeSeparator != iDateFormats.iTimeSeparator )
+ || prevDateFormats.iDateSeparator.GetNumericValue() != iDateFormats.iDateSeparator.GetNumericValue()
+ || prevDateFormats.iTimeSeparator.GetNumericValue() != iDateFormats.iTimeSeparator.GetNumericValue() )
{
refreshNeeded = ETrue;
iSkinChanged = EFalse;
@@ -1419,6 +1505,8 @@
}
// NOW WE HAVE A VALID MAILBOX AND FOLDER ID.
+ // Tries to create an extension for the Ozone plugin
+ CreateExtensionL();
// CHECK IF MODEL NEEDS TO BE UPDATED
if ( activationData.iMailBoxId != prevMailBoxId ||
@@ -1510,9 +1598,11 @@
iCurrentClientRect = clientRect;
iThisViewActive = ETrue;
-
- // Set email indicator off.. user has checked the new emails
- TFsEmailUiUtility::ToggleEmailIconL(EFalse, activationData.iMailBoxId );
+ //emailindicator handling, we dont care if something goes wrong in the mailindicator update. User can still open the mailbox
+ TRAP_IGNORE(TFsEmailStatusPaneIndicatorHandler::StatusPaneMailIndicatorHandlingL( activationData.iMailBoxId.Id()));
+
+ //Update mailbox widget index status in homescreen
+ TFsEmailUiUtility::ToggleEmailIconL(EFalse, activationData.iMailBoxId );
iShiftDepressed = EFalse; // clear state just in case
@@ -1636,26 +1726,36 @@
// Sync/cancel sync
CFSMailBox* activeMailbox = iAppUi.GetActiveMailbox();
TBool supportsSync = activeMailbox->HasCapability( EFSMBoxCapaSupportsSync );
-
+
// flag to hide or show SyncButton
TBool hideSync = GetLatestSyncState();
if(activeMailbox->CurrentSyncState()==StartingSync) hideSync=EFalse;
-
+
// hide or show options: Sync/cancel sync
- if ( !supportsSync )
- {
- aMenuPane->SetItemDimmed( EFsEmailUiCmdCancelSync, ETrue );
- aMenuPane->SetItemDimmed( EFsEmailUiCmdSync, ETrue );
- }
- else if ( hideSync || iMailListModelUpdater->IsUpdating() )
- {
- aMenuPane->SetItemDimmed( EFsEmailUiCmdSync, ETrue );
- }
- else
- {
- aMenuPane->SetItemDimmed( EFsEmailUiCmdCancelSync, ETrue );
- }
-
+ if ( !supportsSync )
+ {
+ // POP3 behaviour
+ TFSMailBoxStatus onlineStatus = activeMailbox->GetMailBoxStatus();
+ if( onlineStatus == EFSMailBoxOnline || iMailListModelUpdater->IsUpdating() )
+ {
+ aMenuPane->SetItemDimmed( EFsEmailUiCmdCancelSync, EFalse );
+ aMenuPane->SetItemDimmed( EFsEmailUiCmdSync, ETrue );
+ }
+ else
+ {
+ aMenuPane->SetItemDimmed( EFsEmailUiCmdCancelSync, ETrue );
+ aMenuPane->SetItemDimmed( EFsEmailUiCmdSync, EFalse );
+ }
+ }
+ else if ( hideSync || iMailListModelUpdater->IsUpdating() )
+ {
+ aMenuPane->SetItemDimmed( EFsEmailUiCmdSync, ETrue );
+ }
+ else
+ {
+ aMenuPane->SetItemDimmed( EFsEmailUiCmdCancelSync, ETrue );
+ }
+
// Saves a focus visibility.
iLastFocus = EFalse;
if( iFocusedControl == EMailListComponent && IsFocusShown() )
@@ -1947,9 +2047,9 @@
iMailList->RemoveAllL();
iTreeItemArray.Reset();
- // when we get refresh mail list updates should be fully enabled
+ // when we get refresh mail list updates should be fully enabled
iMailOpened = EFalse;
-
+
RefreshListItemsL();
if ( !iModel->Count() )
@@ -3023,9 +3123,9 @@
//
// ---------------------------------------------------------------------------
//
-void CFSEmailUiMailListVisualiser::UpdateTheme()
+void CFSEmailUiMailListVisualiser::UpdateTheme(const TBool aSystemUpdate)
{
- iSkinChanged = ETrue;
+ iSkinChanged = aSystemUpdate;
TRgb focusedTextColor = iAppUi.LayoutHandler()->ListFocusedStateTextSkinColor();
TRgb normalTextColor = iAppUi.LayoutHandler()->ListNormalStateTextSkinColor();
@@ -3049,11 +3149,15 @@
void CFSEmailUiMailListVisualiser::HandleForegroundEventL( TBool aForeground )
{
FUNC_LOG;
- if( iMailFolder )
- {
+ if( iMailFolder )
+ {
+ //emailindicator handling, we dont care if something goes wrong in the mailindicator update. User can still open the mailbox
+ TRAP_IGNORE(TFsEmailStatusPaneIndicatorHandler::StatusPaneMailIndicatorHandlingL( iMailFolder->GetMailBoxId().Id()));
+ //Update mailbox widget index status in homescreen
TFsEmailUiUtility::ToggleEmailIconL(EFalse, iMailFolder->GetMailBoxId() );
}
- if ( aForeground && iFirstStartCompleted ) // Safety
+
+ if ( iFirstStartCompleted ) // Safety
{
// Update mail list settings and date formats, is done every time
// the user might have changed these in settings, so the list needs to refresh
@@ -3195,7 +3299,7 @@
}
case EAknSoftkeySelect:
{
- TIMESTAMP( "Open email selected from message list" );
+ TIMESTAMP( "Open email selected from message list" );
if ( iFocusedControl == EMailListComponent )
{
CFSEmailUiMailListModelItem* item = dynamic_cast<CFSEmailUiMailListModelItem*>(iModel->Item(HighlightedIndex()));
@@ -3405,7 +3509,7 @@
case EFsEmailUiCmdActionsDeleteCalEvent:
case EFsEmailUiCmdActionsDelete:
{
- TIMESTAMP( "Delete to selected from message list" );
+ TIMESTAMP( "Delete to selected from message list" );
TInt index = HighlightedIndex();
CFSEmailUiMailListModelItem* item =
dynamic_cast<CFSEmailUiMailListModelItem*>(
@@ -3413,24 +3517,21 @@
// If selected item is separator (divider) mark/unmark all messages
// under it.
- if ( item && item->ModelItemType() == ETypeSeparator )
- {
- MarkItemsUnderSeparatorL( ETrue, index );
- }
// Delete message only if mail list component is focused
// or if there are some marked items
TInt markedItems( CountMarkedItemsL() );
-
- if ( iFocusedControl == EMailListComponent || markedItems )
- {
- DeleteMessagesL();
- }
- }
+ const TBool isNode(iMailList->IsNode(iMailList->FocusedItem()));
+ if (iFocusedControl == EMailListComponent || markedItems
+ || isNode)
+ {
+ DeleteMessagesL();
+ }
+ }
break;
case EFsEmailUiCmdCompose:
{
- TIMESTAMP( "Create new message selected from message list" );
+ TIMESTAMP( "Create new message selected from message list" );
CreateNewMsgL();
}
break;
@@ -3482,7 +3583,7 @@
case EFsEmailUiCmdOpen:
case EFsEmailUiCmdActionsOpen:
{
- TIMESTAMP( "Open email selected from message list" );
+ TIMESTAMP( "Open email selected from message list" );
if ( iFocusedControl == EMailListComponent )
{
// Opening can happen only when there's exactly one message marked or in focus
@@ -3598,21 +3699,31 @@
iAppUi.SyncActiveMailBoxL();
// Sync was started by the user
ManualMailBoxSync(ETrue);
- iAppUi.ManualMailBoxSync( ETrue );
+ iAppUi.ManualMailBoxSync( ETrue );
}
}
+ else
+ {
+ //POP3 synchronise
+ iAppUi.DoAutoConnectL();
+ }
}
break;
case EFsEmailUiCmdCancelSync:
{
- TBool supportsSync = iAppUi.GetActiveMailbox()->HasCapability( EFSMBoxCapaSupportsSync );
- if ( supportsSync )
- {
+ TBool supportsSync = iAppUi.GetActiveMailbox()->HasCapability( EFSMBoxCapaSupportsSync );
+ if ( supportsSync )
+ {
iAppUi.StopActiveMailBoxSyncL();
// Sync was started by the user
ManualMailBoxSync(ETrue);
iAppUi.ManualMailBoxSync( ETrue );
- }
+ }
+ else
+ {
+ //POP3
+ iAppUi.GetActiveMailbox()->GoOfflineL();
+ }
}
break;
case EFsEmailUiCmdGoOffline:
@@ -3846,7 +3957,7 @@
break;
} // switch ( aCommand )
CleanupStack::PopAndDestroy( &actionTargetItems );
- TIMESTAMP( "Message list selected operation done" );
+ TIMESTAMP( "Message list selected operation done" );
}
// ---------------------------------------------------------------------------
@@ -4405,7 +4516,7 @@
CFSMailMessage* messagePtr = &item->MessagePtr();
if ( messagePtr )
{
- TIMESTAMP( "Open email selected from message list" );
+ TIMESTAMP( "Open email selected from message list" );
OpenHighlightedMailL();
return EKeyWasConsumed;
}
@@ -4621,6 +4732,9 @@
TIMESTAMP( "Open email selected from message list" );
OpenHighlightedMailL();
}
+
+ // Give feedback to user (vibration)
+ iTouchFeedBack->InstantFeedback(ETouchFeedbackBasic);
}
// SEPARATOR ITEM; COLLAPSE / EXPAND NODE
else if ( item && item->ModelItemType() == ETypeSeparator )
@@ -5126,7 +5240,7 @@
iFolderListButton->SetTextFontL( textLayout.Font()->FontSpecInTwips() );
iSortButton->SetTextFontL( textLayout.Font()->FontSpecInTwips() );
- UpdateTheme();
+ UpdateTheme(EFalse);
iNewEmailButton->ShowButtonL();
iFolderListButton->ShowButtonL();
@@ -5422,17 +5536,22 @@
void CFSEmailUiMailListVisualiser::DeleteMessagesL()
{
FUNC_LOG;
- TInt markedCount = CountMarkedItemsL();
-
- // Delete either marked items or the focused one
- if ( markedCount )
- {
- DeleteMarkedMessagesL();
- }
- else
- {
- DeleteFocusedMessageL();
- }
+ const TInt markedCount(CountMarkedItemsL());
+ const TFsTreeItemId focusedId(iMailList->FocusedItem());
+
+ // Delete either marked items or the focused one
+ if (markedCount)
+ {
+ DeleteMarkedMessagesL();
+ }
+ else if (iMailList->IsNode(focusedId))
+ {
+ DeleteMessagesUnderNodeL(focusedId);
+ }
+ else
+ {
+ DeleteFocusedMessageL();
+ }
// Set highlight to control bar if no items after delete
// <cmail>
@@ -5774,115 +5893,169 @@
}
// ---------------------------------------------------------------------------
+// DeleteMessagesUnderNodeL
+//
+// ---------------------------------------------------------------------------
+//
+void CFSEmailUiMailListVisualiser::DeleteMessagesUnderNodeL(
+ const TFsTreeItemId aNodeId)
+ {
+ FUNC_LOG;
+ iModel->GetItemIdsUnderNodeL(aNodeId, iDeleteTask->Entries());
+ ConfirmAndStartDeleteTaskL(iDeleteTask);
+ }
+
+// ---------------------------------------------------------------------------
// DeleteMarkedMessagesL
//
// ---------------------------------------------------------------------------
//
void CFSEmailUiMailListVisualiser::DeleteMarkedMessagesL()
- {
- FUNC_LOG;
- RFsTreeItemIdList markedEntries;
- CleanupClosePushL( markedEntries );
- iMailList->GetMarkedItemsL( markedEntries );
- TInt okToDelete( ETrue );
-
- if ( iAppUi.GetCRHandler()->WarnBeforeDelete() )
- {
- HBufC* noteText( NULL );
+ {
+ FUNC_LOG;
+ iMailList->GetMarkedItemsL(iDeleteTask->Entries());
+ ConfirmAndStartDeleteTaskL(iDeleteTask);
+ }
+
+// ---------------------------------------------------------------------------
+// ConfirmAndStartDeleteTaskL
+//
+// ---------------------------------------------------------------------------
+//
+void CFSEmailUiMailListVisualiser::ConfirmAndStartDeleteTaskL(
+ TDeleteTask<CFSEmailUiMailListVisualiser>* aTask )
+ {
+ FUNC_LOG;
+ const RFsTreeItemIdList& entries(aTask->Entries());
+ if (entries.Count())
+ {
+ if (ConfirmDeleteL(entries.Count(), entries[0]))
+ {
+ if (entries.Count() > KMsgDeletionWaitNoteAmount)
+ {
+ TFsEmailUiUtility::ShowWaitNoteL(iDeletingWaitNote,
+ R_FSE_WAIT_DELETING_TEXT, EFalse, ETrue);
+ }
+ if (iAsyncCallback)
+ {
+ // Call actual deletion asynchronously because we must give wait
+ // note time to show up before deletion begins.
+ iAsyncCallback->Cancel();
+ iAsyncCallback->Set(TCallBack(DoExecuteDeleteTask, aTask));
+ iAsyncCallback->CallBack();
+ }
+ }
+ else
+ {
+ aTask->Reset();
+ }
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// DoExecuteDeleteTask
+//
+// ---------------------------------------------------------------------------
+//
+TInt CFSEmailUiMailListVisualiser::DoExecuteDeleteTask( TAny* aSelfPtr )
+ {
+ FUNC_LOG;
+ TRAPD( error,
+ reinterpret_cast<TDeleteTask<CFSEmailUiMailListVisualiser>*>(aSelfPtr)->ExecuteL() );
+ return error;
+ }
+
+// ---------------------------------------------------------------------------
+// HandleDeleteTaskL
+// This is called asynchronously by ConfirmAndStartDeleteTaskL
+// ---------------------------------------------------------------------------
+//
+void CFSEmailUiMailListVisualiser::HandleDeleteTaskL( const RFsTreeItemIdList& aEntries )
+ {
+ FUNC_LOG;
+ // Close wait note if it was used
+ if ( iDeletingWaitNote )
+ {
+ TRAPD( result, HandleDeleteTaskLeavingCodeL(aEntries) );
+ // closing the "Deleting" dialog message should not be skipped by leaving
+ TRAP_IGNORE( iDeletingWaitNote->ProcessFinishedL() );
+ if ( KErrNone != result )
+ {
+ // Handle error.
+ User::Leave( result );
+ }
+ }
+ else
+ {
+ HandleDeleteTaskLeavingCodeL( aEntries );
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// original code HandleDeleteTaskL which may leave - help function to enable
+// calling iDeletingWaitNote->ProcessFinishedL()
+// ---------------------------------------------------------------------------
+//
+void CFSEmailUiMailListVisualiser::HandleDeleteTaskLeavingCodeL( const RFsTreeItemIdList& aEntries )
+ {
+ FUNC_LOG;
+ TFSMailMsgId folderId = FolderId();
+ TFSMailMsgId mailBox = iAppUi.GetActiveMailboxId();
+ RArray<TFSMailMsgId> msgIds;
+ CleanupClosePushL( msgIds );
+ for ( TInt i = 0; i < aEntries.Count(); i++ )
+ {
+ msgIds.AppendL( MsgIdFromListId( aEntries[i] ) );
+ }
+ iAppUi.GetMailClient()->DeleteMessagesByUidL( mailBox, folderId, msgIds );
+ // Remove from mail list if not already removed by mailbox events
+ RemoveMsgItemsFromListIfFoundL( msgIds );
+ CleanupStack::PopAndDestroy(); // msgIds.Close()
+ }
+
+// ---------------------------------------------------------------------------
+// ConfirmDeleteL
+//
+// ---------------------------------------------------------------------------
+//
+TBool CFSEmailUiMailListVisualiser::ConfirmDeleteL(const TInt aItemCount,
+ const TFsTreeItemId aItemId) const
+ {
+ FUNC_LOG;
+ TBool result(ETrue);
+ if (iAppUi.GetCRHandler()->WarnBeforeDelete())
+ {
+ HBufC* noteText(NULL);
// The note depends on the amount and type of message(s)
- if ( markedEntries.Count() == 1 )
- {
- CFSMailMessage& msgPtr = MsgPtrFromListIdL( markedEntries[0] );
-
- HBufC* msgSubject = TFsEmailUiUtility::CreateSubjectTextLC( &msgPtr );
- if ( msgPtr.IsFlagSet( EFSMsgFlag_CalendarMsg ))
+ if (aItemCount == 1)
+ {
+ const CFSMailMessage& msgPtr(MsgPtrFromListIdL(aItemId));
+ HBufC* msgSubject = TFsEmailUiUtility::CreateSubjectTextLC(
+ &msgPtr);
+ if (msgPtr.IsFlagSet(EFSMsgFlag_CalendarMsg))
{
- noteText = StringLoader::LoadL( R_FREESTYLE_EMAIL_DELETE_CALEVENT_NOTE, *msgSubject );
+ noteText = StringLoader::LoadL(
+ R_FREESTYLE_EMAIL_DELETE_CALEVENT_NOTE, *msgSubject);
}
else
{
- noteText = StringLoader::LoadL( R_FREESTYLE_EMAIL_DELETE_MAIL_NOTE, *msgSubject );
+ noteText = StringLoader::LoadL(
+ R_FREESTYLE_EMAIL_DELETE_MAIL_NOTE, *msgSubject);
}
- CleanupStack::PopAndDestroy( msgSubject );
- CleanupStack::PushL( noteText );
+ CleanupStack::PopAndDestroy(msgSubject);
+ CleanupStack::PushL(noteText);
}
else // markedEntries.Count() > 1
{
- noteText = StringLoader::LoadLC( R_FREESTYLE_EMAIL_DELETE_N_MAILS_NOTE, markedEntries.Count() );
+ noteText = StringLoader::LoadLC(
+ R_FREESTYLE_EMAIL_DELETE_N_MAILS_NOTE, aItemCount);
}
// Show the note
- okToDelete = TFsEmailUiUtility::ShowConfirmationQueryL( *noteText );
- CleanupStack::PopAndDestroy( noteText );
- }
-
- if ( okToDelete )
- {
- if ( markedEntries.Count() > KMsgDeletionWaitNoteAmount )
- {
- TFsEmailUiUtility::ShowWaitNoteL( iDeletingWaitNote, R_FSE_WAIT_DELETING_TEXT, EFalse, ETrue );
- }
-
- // <cmail>
- if ( iAsyncCallback )
- {
- // Call actual deletion asynchronously because we must give wait
- // note time to show up before deletion begins.
- iAsyncCallback->Cancel();
- iAsyncCallback->Set( TCallBack(DoDeleteMarkedMessages, this) );
- iAsyncCallback->CallBack();
- }
- // </cmail>
- }
- else
- {
- UnmarkAllItemsL();
- }
-
- CleanupStack::PopAndDestroy( &markedEntries );
- }
-
-// ---------------------------------------------------------------------------
-// DoDeleteMarkedMessages
-//
-// ---------------------------------------------------------------------------
-//
-TInt CFSEmailUiMailListVisualiser::DoDeleteMarkedMessages( TAny* aSelfPtr )
- {
- FUNC_LOG;
- CFSEmailUiMailListVisualiser* self =
- static_cast<CFSEmailUiMailListVisualiser*>( aSelfPtr );
-
- TRAPD( err,
- RFsTreeItemIdList markedEntries;
- CleanupClosePushL( markedEntries );
- self->iMailList->GetMarkedItemsL( markedEntries );
-
- // Delete from FW first
- RArray<TFSMailMsgId> msgIds;
- CleanupClosePushL( msgIds );
- for ( TInt i=0 ; i<markedEntries.Count() ; i++ )
- {
- msgIds.Append( self->MsgIdFromListId( markedEntries[i] ) );
- }
- TFSMailMsgId folderId = self->FolderId();
- TFSMailMsgId mailBox = self->iAppUi.GetActiveMailboxId();
- self->iAppUi.GetMailClient()->DeleteMessagesByUidL( mailBox, folderId, msgIds );
-
- // Remove from mail list if not already removed by mailbox events
- self->RemoveMsgItemsFromListIfFoundL( msgIds );
-
- CleanupStack::PopAndDestroy( &msgIds );
- CleanupStack::PopAndDestroy( &markedEntries );
- );
-
- // Close wait note if it was used
- if ( self->iDeletingWaitNote )
- {
- TRAP_IGNORE( self->iDeletingWaitNote->ProcessFinishedL() );
- }
-
- return err;
+ result = TFsEmailUiUtility::ShowConfirmationQueryL(*noteText);
+ CleanupStack::PopAndDestroy(noteText);
+ }
+ return result;
}
// ---------------------------------------------------------------------------
@@ -6085,8 +6258,8 @@
{
CFSEmailUiMailListModelItem* item =
static_cast<CFSEmailUiMailListModelItem*>( iModel->Item( i ) );
- // when the item is a separator check whether its MessagePtr is valid (actually it's a reference)
- if( &(item->MessagePtr()) != NULL)
+ // when the item is a separator check whether its MessagePtr is valid (actually it's a reference)
+ if( &(item->MessagePtr()) != NULL)
{
if ( aMessageId == item->MessagePtr().GetMessageId() )
{
@@ -6483,7 +6656,7 @@
if ( confirmedMsgPtr )
{
iMailOpened = ETrue;
-
+
ChangeMskCommandL( R_FSE_QTN_MSK_EMPTY );
// Pointer confirmed, store Id and delete not needed anymore
TFSMailMsgId confirmedId = confirmedMsgPtr->GetMessageId();
@@ -6657,21 +6830,21 @@
// Add mark as read / unread options
iStylusPopUpMenu->SetItemDimmed( EFsEmailUiCmdMarkAsUnread, !IsMarkAsUnreadAvailableL() );
iStylusPopUpMenu->SetItemDimmed( EFsEmailUiCmdMarkAsRead, !IsMarkAsReadAvailableL() );
-
+
// Check support for object mail iten moving
TBool supportsMoving = iAppUi.GetActiveMailbox()->HasCapability( EFSMBoxCapaMoveToFolder );
iStylusPopUpMenu->SetItemDimmed( EFsEmailUiCmdActionsMoveMessage, !supportsMoving );
-
+
// Hide / show follow up
TBool supportsFlag = TFsEmailUiUtility::IsFollowUpSupported( *iAppUi.GetActiveMailbox() );
iStylusPopUpMenu->SetItemDimmed( EFsEmailUiCmdActionsFlag, !supportsFlag );
-
+
// Hide mark if applicable
if ( iMailList->IsMarked( iMailList->FocusedItem() ) )
{
iStylusPopUpMenu->SetItemDimmed( EFsEmailUiCmdMark, ETrue );
}
-
+
// Hide collapse / expand all
iStylusPopUpMenu->SetItemDimmed( EFsEmailUiCmdActionsCollapseAll, ETrue );
iStylusPopUpMenu->SetItemDimmed( EFsEmailUiCmdActionsExpandAll, ETrue );
@@ -6681,11 +6854,11 @@
// Hide mark as read / unread options
iStylusPopUpMenu->SetItemDimmed( EFsEmailUiCmdMarkAsUnread, ETrue );
iStylusPopUpMenu->SetItemDimmed( EFsEmailUiCmdMarkAsRead, ETrue );
-
+
// Hide move & follow up
iStylusPopUpMenu->SetItemDimmed( EFsEmailUiCmdActionsMoveMessage, ETrue );
iStylusPopUpMenu->SetItemDimmed( EFsEmailUiCmdActionsFlag, ETrue );
-
+
// Hide collapse / expand all when applicable
if ( iNodesInUse == EListControlSeparatorDisabled || !iModel->Count() )
{
@@ -6980,7 +7153,7 @@
}
}
break;
-
+
case SyncCancelled:
{
//If sync was started by user, show the synchronisation indicator
@@ -6990,7 +7163,7 @@
}
}
break;
-
+
}
}
}
@@ -7441,6 +7614,35 @@
aLayoutArray.AppendL( iControlBarControl->Visual() );
}
+// Sets aActiveMailboxId and aActiveFolderId from iMailFolder if available
+TInt CFSEmailUiMailListVisualiser::GetActiveFolderId(TFSMailMsgId& aActiveMailboxId, TFSMailMsgId& aActiveFolderId) const
+ {
+ if (iMailFolder != NULL)
+ {
+ aActiveMailboxId = iMailFolder->GetMailBoxId();
+ aActiveFolderId = iMailFolder->GetFolderId();
+ return KErrNone;
+ }
+ else
+ {
+ return KErrNotFound;
+ }
+ }
+
+void CFSEmailUiMailListVisualiser::CreateExtensionL()
+ {
+ CFSMailBox* box = iAppUi.GetActiveMailbox();
+ CEmailExtension* ext;
+ if (box)
+ {
+ ext = box->ExtensionL( KEmailMailboxStateExtensionUid );
+ }
+ if (ext)
+ {
+ iExtension = reinterpret_cast<CMailboxStateExtension*>( ext );
+ iExtension->SetStateDataProvider( this );
+ }
+ }
//////////////////////////////////////////////////////////////////
// Class implementation CMailListUpdater
@@ -7765,27 +7967,27 @@
void CDateChangeTimer::RunL()
{
FUNC_LOG;
-
+
if (iStatus.Int() != KErrNone)
{
INFO_1("### CDateChangeTimer::RunL (err=%d) ###", iStatus.Int());
}
-
+
TBool dayChanged = EFalse;
TInt dayCount = DayCount();
if (dayCount != iDayCount)
{
-
+
iDayCount = dayCount;
dayChanged = ETrue;
}
-
+
if ( KErrCancel == iStatus.Int() )
{
;
- }
+ }
else if ( KErrAbort == iStatus.Int() ) // System time changed
{
if (dayChanged)
@@ -7800,7 +8002,7 @@
TRAP_IGNORE( iMailListVisualiser.NotifyDateChangedL() );
Start();
}
-
+
}
--- a/emailuis/emailui/src/FreestyleEmailUiSendAttachmentsListModel.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/src/FreestyleEmailUiSendAttachmentsListModel.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -433,6 +433,8 @@
// header and dividers
CreateListSkeletonL();
+ //moved from CreateListSkeletonL();
+ SetupTitlePaneTextL();
// list model items
CreateListItemsL();
@@ -518,7 +520,6 @@
iAttachmentsList->SetItemsAlwaysExtendedL(ETrue);
- SetupTitlePaneTextL();
}
// ---------------------------------------------------------------------------
@@ -716,6 +717,10 @@
// compose view is open, so remove attachment there
composeView->NewMessage()->RemoveChildPartL(
item->MailMsgPartId() );
+ if ( iItems.Count() == 1 )
+ {
+ composeView->NewMessage()->ResetFlag( EFSMsgFlag_Attachments );
+ }
}
else
{
@@ -732,6 +737,7 @@
EFSMsgDataStructure );
CleanupStack::PushL( msg );
msg->RemoveChildPartL( item->MailMsgPartId() );
+ msg->ResetFlag( EFSMsgFlag_Attachments );
msg->SaveMessageL();
CleanupStack::PopAndDestroy( msg );
}
@@ -799,6 +805,7 @@
RemoveAndDestroy( i );
}
}
+ msg->ResetFlag( EFSMsgFlag_Attachments );
msg->SaveMessageL();
// Delete msg if we own it
--- a/emailuis/emailui/src/FreestyleEmailUiSettingsList.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/src/FreestyleEmailUiSettingsList.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -60,7 +60,7 @@
#include "FreestyleEmailUiShortcutBinding.h"
#include "FreestyleEmailUiUtilities.h"
#include "FSEmail.pan"
-
+#include "fsemailstatuspaneindicatorhandler.h"
// CONSTANTS
@@ -499,6 +499,11 @@
aEventType == EEventEnterKeyPressed )
{
HandleUserSelectionsL();
+ // Fix for EJSA-82HB3F, improves fix for EELN-7Y78DM
+ // Update title pane, needed for touch support
+ HBufC* text = CreateTitlePaneTextLC();
+ iAppUi.SetTitlePaneTextL( *text );
+ CleanupStack::PopAndDestroy( text );
}
}
@@ -561,10 +566,6 @@
iPIMListActivation = ETrue;
SetSelectedMainListIndex( index );
CreatePluginPIMListL( iSelectedPluginSettings );
- // Update the title pane, needed for touch support
- HBufC* text = CreateTitlePaneTextLC();
- iAppUi.SetTitlePaneTextL( *text );
- CleanupStack::PopAndDestroy( text );
}
else // index < 0; this should never happen
{
@@ -1587,8 +1588,10 @@
iWaitDialog->PrepareLC( R_FS_WAIT_NOTE_REMOVING_MAILBOX );
iWaitDialog->SetCallback( this );
iWaitDialog->RunLD();
- // Set email indicator off.
- TFsEmailUiUtility::ToggleEmailIconL(EFalse);
+
+ //emailindicator handling, we dont care if something goes wrong in the mailindicator update.
+ TRAP_IGNORE(TFsEmailStatusPaneIndicatorHandler::StatusPaneMailIndicatorHandlingL( mailBox->GetId().Id()));
+
// delete mailbox and wait event (RequestResponseL)
iDeleteMailboxId = iMailClient.DeleteMailBoxByUidL( mailBox->GetId(), *this );
wasDeleted = ETrue;
--- a/emailuis/emailui/src/FreestyleEmailUiUtilities.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/src/FreestyleEmailUiUtilities.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -27,6 +27,7 @@
#include <AknIconUtils.h>
#include <aknlists.h>
#include <aknPopup.h>
+#include <akndiscreetpopup.h>
#include <AknGlobalConfirmationQuery.h>
#include <aknnotewrappers.h>
#include <AknWaitDialog.h>
@@ -70,7 +71,7 @@
#include <CSendingServiceInfo.h>
#include <CoreApplicationUIsSDKCRKeys.h> // offline mode keys
#include <data_caging_path_literals.hrh>
-#include <cmailwidgetcenrepkeys.h>
+#include "cmailwidgetcenrepkeys.h"
// <cmail> Removed DISABLE_DEFAULT_EMAIL
//#ifndef DISABLE_DEFAULT_EMAIL
@@ -233,6 +234,26 @@
iHandleOpen = EFalse;
}
MAknServerAppExitObserver::HandleServerAppExit( aReason );
+
+ // Get current AppUi.
+ CFreestyleEmailUiAppUi* appUi = (CFreestyleEmailUiAppUi*)CCoeEnv::Static()->AppUi();
+ if( appUi->EmbeddedApp() )
+ {
+ // Set embedded application flag to false when embedded application exit.
+ appUi->SetEmbeddedApp( EFalse );
+ }
+
+ // if email editor is not started from embedded app.
+ if( !appUi->EditorStartedFromEmbeddedApp() )
+ {
+ // Do not set embedded app to previous app.
+ appUi->SetEmbeddedAppToPreviousApp( EFalse );
+ }
+ else
+ {
+ // Set flag for judging if email editor started from embedded app to false.
+ appUi->SetEditorStartedFromEmbeddedApp( EFalse );
+ }
// Clear the temp directory since the closed file might have been copied there
TFsEmailUiUtility::EraseTempDir();
@@ -494,6 +515,36 @@
}
// -----------------------------------------------------------------------------
+// TFsEmailUiUtility::ShowDiscreetInfoNoteL
+// -----------------------------------------------------------------------------
+void TFsEmailUiUtility::ShowDiscreetInfoNoteL( TInt aResourceStringId )
+ {
+ FUNC_LOG;
+ //create a host of dummy parameters in order to change the popup duration flag...
+ const TDesC& dummyText = KNullDesC;
+ CGulIcon* dummyIcon = NULL;
+ const TAknsItemID& dummySkinId = KAknsIIDNone;
+ const TDesC& dummyBitmapFile = KNullDesC;
+ const TInt dummyBitmapId = 0;
+ const TInt dummyMaskId = 0;
+
+ //Set timeout flag
+ TInt flags = 0;
+ flags |= KAknDiscreetPopupDurationLong;
+
+ HBufC* noteText = StringLoader::LoadLC( aResourceStringId );
+ CAknDiscreetPopup::ShowLocalPopupL(*noteText,
+ dummyText,
+ dummyIcon,
+ dummySkinId,
+ dummyBitmapFile,
+ dummyBitmapId,
+ dummyMaskId,
+ flags);
+ CleanupStack::PopAndDestroy( noteText );
+ }
+
+// -----------------------------------------------------------------------------
// TFsEmailUiUtility::ShowWaitNoteL
// -----------------------------------------------------------------------------
void TFsEmailUiUtility::ShowWaitNoteL( CAknWaitDialog*& aDialog, TInt aTextResourceId,
@@ -670,7 +721,7 @@
// -----------------------------------------------------------------------------
// TFsEmailUiUtility::OpenFileL
// -----------------------------------------------------------------------------
-void TFsEmailUiUtility::OpenFileL( RFile& aFileToOpen, TDataType& aDataType, TBool aAllowSave )
+void TFsEmailUiUtility::OpenFileL( RFile& aFileToOpen, TDataType& aDataType, TBool /* aAllowSave */)
{
FUNC_LOG;
CFreestyleEmailUiAppUi* appUi = (CFreestyleEmailUiAppUi*)CCoeEnv::Static()->AppUi();
@@ -680,19 +731,9 @@
appUi->FileHandleShutter().SetFile( aFileToOpen );
CDocumentHandler& docHandler = appUi->DocumentHandler();
- CAiwGenericParamList& paramList = docHandler.InParamListL();
-
- // Set allow save to parameter.
- if ( aAllowSave )
- {
- TAiwVariant allowSaveVariant( ETrue );
- TAiwGenericParam genericParamAllowSave( EGenericParamAllowSave,
- allowSaveVariant );
- paramList.AppendL( genericParamAllowSave );
- }
TInt res = KErrNone;
- TRAPD( err, res = docHandler.OpenFileEmbeddedL( aFileToOpen, aDataType, paramList ) );
+ TRAPD( err, res = docHandler.OpenFileEmbeddedL( aFileToOpen, aDataType ) );
// Try again with an empty data type if opening using the given data type fails
if ( err != KErrNone || res != KErrNone )
@@ -700,7 +741,7 @@
TDataType emptyType;
// Open file embedded
- TRAP( err, res = docHandler.OpenFileEmbeddedL( aFileToOpen, emptyType, paramList ) );
+ TRAP( err, res = docHandler.OpenFileEmbeddedL( aFileToOpen, emptyType ) );
// Show an error note if opening the file still didn't succeed
// Ensure also that the file handle got closed.
@@ -709,8 +750,22 @@
ShowErrorNoteL( R_FREESTYLE_EMAIL_INFO_NOTE_UNABLE_TO_OPEN, EFalse );
appUi->FileHandleShutter().HandleServerAppExit( KErrCancel );
}
+ else
+ {
+ // Set embedded app flag to true when embedded app start up.
+ appUi->SetEmbeddedApp( ETrue );
+ // Set flag for judging if previous app is embedded app.
+ appUi->SetEmbeddedAppToPreviousApp( ETrue );
+ }
}
- }
+ else
+ {
+ // Set embedded app flag to true when embedded app start up.
+ appUi->SetEmbeddedApp( ETrue );
+ // Set flag for judging if previous app is embedded app.
+ appUi->SetEmbeddedAppToPreviousApp( ETrue );
+ }
+ }
// -----------------------------------------------------------------------------
// TFsEmailUiUtility::OpenAttachmentL
@@ -2707,14 +2762,15 @@
{
FUNC_LOG;
//Toggle email status indicator
- if(aIconOn)
+ //This is only used for mailwidget status updating
+ /*if(aIconOn)
{
RProperty::Set( KPSUidCoreApplicationUIs, KCoreAppUIsNewEmailStatus, ECoreAppUIsNewEmail );
}
else
{
RProperty::Set( KPSUidCoreApplicationUIs, KCoreAppUIsNewEmailStatus, ECoreAppUIsNoNewEmail );
- }
+ }*/
//Toggle new mail icon in widget
if (aMailBox.Id())
--- a/emailuis/emailui/src/FreestyleEmailUiViewBase.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/src/FreestyleEmailUiViewBase.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -453,6 +453,7 @@
{
const TInt KActivationDelay = 200; // ms
ActivateControlGroup( KActivationDelay );
+ iWasActiveControlGroup = EFalse;
}
}
else
@@ -589,8 +590,17 @@
// Email app should be hidden once the view gets deactivated. Note that hiding
// should not happen before control group switching is over because that
// may cause views of other Alfred apps to get distorted.
- iSendToBackgroundOnDeactivation = ETrue;
- iAppUi.SetSwitchingToBackground( ETrue );
+ if( !iAppUi.EmbeddedAppIsPreviousApp() ) // if previous app is embedded app,
+ //do not need hide FSEmail app when previous app view gets deactivated.
+ {
+ iSendToBackgroundOnDeactivation = ETrue;
+ iAppUi.SetSwitchingToBackground( ETrue );
+ }
+ else
+ {
+ // Set flag to false for judging if previous app is embedded when editor exit.
+ iAppUi.SetEmbeddedAppToPreviousApp( EFalse );
+ }
// Re-activate previously active mailbox if it got changed in the external activation.
// As an exception, if previous view is the laucher grid, the previously active
--- a/emailuis/emailui/src/FreestyleMessageHeaderHTML.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/src/FreestyleMessageHeaderHTML.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -21,6 +21,9 @@
#include <e32cmn.h>
#include <utf.h>
#include <StringLoader.h>
+#include <AknsUtils.h>
+#include <AknsSkinInstance.h>
+#include <AknsConstants.h>
#include <FreestyleEmailUi.rsg>
#include <finditemengine.h>
@@ -69,18 +72,29 @@
_LIT8( KHTMLImgTagSrcAfter, "\">" );
_LIT8( KMetaHeader, "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n" );
+
+_LIT8( KDisplayImagesLeftToRight,
+ "<script language=\"javascript\">var g_autoLoadImages = %d;</script><table style=\"display: none;\" id=\"displayImagesTable\" width=\"%dpx\"><tr><td align=\"left\">%S</td><td align=\"right\"><input type=\"submit\" class=\"button\" value=\"%S\" onClick=\"displayImagesButtonPressed()\"/></td></tr></table>" );
+
+_LIT8( KDisplayImagesRightToLeft,
+ "<script language=\"javascript\">var g_autoLoadImages = %d;</script><table style=\"display: none;\" id=\"displayImagesTable\" width=\"%dpx\"><tr><td align=\"left\"><input type=\"submit\" class=\"button\" value=\"%S\" onClick=\"displayImagesButtonPressed()\"/></td><td align=\"right\">%S</td></tr></table>" );
+
const TInt KMaxEventLength( 256 );
const TInt KFreestyleMessageHeaderHTMLRightMarginInPx( 10 );
const TInt KFreestyleMessageHeaderHTMLMaxBufferSizeForWidth( 5 );
+// Define this to allow theme colorin for the header
+#undef __USE_THEME_COLOR_FOR_HEADER
+
EXPORT_C CFreestyleMessageHeaderHTML* CFreestyleMessageHeaderHTML::NewL( CFSMailMessage& aMailMessage,
RWriteStream& aWriteStream,
TInt aVisibleWidth,
TInt aScrollPosition,
- TBidiText::TDirectionality aDirectionality
+ const TBool aAutoLoadImages,
+ const TBool aExpanded
)
{
- CFreestyleMessageHeaderHTML* self = new (ELeave) CFreestyleMessageHeaderHTML( aMailMessage, aWriteStream, aVisibleWidth, aScrollPosition, aDirectionality);
+ CFreestyleMessageHeaderHTML* self = new (ELeave) CFreestyleMessageHeaderHTML( aMailMessage, aWriteStream, aVisibleWidth, aScrollPosition, aAutoLoadImages, aExpanded);
self->ConstructL();
return self;
}
@@ -89,9 +103,10 @@
RWriteStream& aWriteStream,
TInt aVisibleWidth,
TInt aScrollPosition,
- TBidiText::TDirectionality aDirectionality)
+ const TBool aAutoLoadImages,
+ const TBool aExpanded )
{
- CFreestyleMessageHeaderHTML* headerHtml = CFreestyleMessageHeaderHTML::NewL( aMailMessage, aWriteStream, aVisibleWidth, aScrollPosition, aDirectionality);
+ CFreestyleMessageHeaderHTML* headerHtml = CFreestyleMessageHeaderHTML::NewL( aMailMessage, aWriteStream, aVisibleWidth, aScrollPosition, aAutoLoadImages, aExpanded);
CleanupStack::PushL( headerHtml );
headerHtml->ExportL();
CleanupStack::PopAndDestroy( headerHtml );
@@ -101,13 +116,14 @@
RFile& aFile,
TInt aVisibleWidth,
TInt aScrollPosition,
- TBidiText::TDirectionality aDirectionality)
+ const TBool aAutoLoadImages,
+ const TBool aExpanded )
{
RFileWriteStream fwstream;
fwstream.Attach( aFile, 0 );
CleanupClosePushL( fwstream );
- CFreestyleMessageHeaderHTML* headerHtml = CFreestyleMessageHeaderHTML::NewL( aMailMessage, fwstream, aVisibleWidth, aScrollPosition, aDirectionality );
+ CFreestyleMessageHeaderHTML* headerHtml = CFreestyleMessageHeaderHTML::NewL( aMailMessage, fwstream, aVisibleWidth, aScrollPosition, aAutoLoadImages, aExpanded );
CleanupStack::PushL( headerHtml );
headerHtml->ExportL();
CleanupStack::PopAndDestroy( headerHtml );
@@ -120,13 +136,14 @@
const TPath& aFilePath,
TInt aVisibleWidth,
TInt aScrollPosition,
- TBidiText::TDirectionality aDirectionality)
+ const TBool aAutoLoadImages,
+ const TBool aExpanded )
{
RFileWriteStream fwstream;
User::LeaveIfError( fwstream.Replace( aFs, aFilePath, EFileStreamText | EFileWrite) );
CleanupClosePushL( fwstream );
- CFreestyleMessageHeaderHTML* headerHtml = CFreestyleMessageHeaderHTML::NewL( aMailMessage, fwstream, aVisibleWidth, aScrollPosition, aDirectionality);
+ CFreestyleMessageHeaderHTML* headerHtml = CFreestyleMessageHeaderHTML::NewL( aMailMessage, fwstream, aVisibleWidth, aScrollPosition, aAutoLoadImages, aExpanded);
CleanupStack::PushL( headerHtml );
headerHtml->ExportL();
CleanupStack::PopAndDestroy( headerHtml );
@@ -151,23 +168,21 @@
RWriteStream& aWriteStream,
TInt aVisibleWidth,
TInt aScrollPosition,
- TBidiText::TDirectionality aDirectionality )
+ const TBool aAutoLoadImages,
+ const TBool aExpanded )
: iMailMessage( aMailMessage ),
iWriteStream( aWriteStream ),
iVisibleWidth( aVisibleWidth - KFreestyleMessageHeaderHTMLRightMarginInPx ),
- iScrollPosition(aScrollPosition),
- iDirectionality( aDirectionality ),
- iMirrorLayout( EFalse )
+ iScrollPosition( aScrollPosition ),
+ iAutoLoadImages( aAutoLoadImages ),
+ iMirrorLayout( AknLayoutUtils::LayoutMirrored() ),
+ iExpanded( aExpanded )
{
}
void CFreestyleMessageHeaderHTML::ConstructL()
{
iMailMessage.AttachmentListL( iAttachments );
- if ( AknLayoutUtils::LayoutMirrored() )
- {
- iMirrorLayout = ETrue;
- }
}
void CFreestyleMessageHeaderHTML::HTMLStartL() const
@@ -235,16 +250,52 @@
ExportSubjectL();
EndHeaderTableL();
ExportAttachmentsL();
+ ExportDisplayImagesTableL();
HTMLBodyEndL();
}
+void CFreestyleMessageHeaderHTML::ExportDisplayImagesTableL() const
+ {
+ if (!iAutoLoadImages)
+ {
+ _LIT8(KDescription, "");
+ _LIT8(KButton, "Display images");
+ HBufC8* description = KDescription().AllocLC(); //HeadingTextLC(R_FREESTYLE_EMAIL_UI_IMAGES_ARE_NOT_DISPLAYED);
+ HBufC8* button = KButton().AllocLC(); //HeadingTextLC(R_FREESTYLE_EMAIL_UI_DISPLAY_IMAGES);
+ HBufC8* formatBuffer = NULL;
+ if (iMirrorLayout)
+ {
+ formatBuffer = HBufC8::NewLC(KDisplayImagesRightToLeft().Length() + description->Length() + button->Length() + 8);
+ formatBuffer->Des().Format(
+ KDisplayImagesRightToLeft(),
+ iAutoLoadImages,
+ iVisibleWidth,
+ button,
+ description);
+ }
+ else
+ {
+ formatBuffer = HBufC8::NewLC(KDisplayImagesLeftToRight().Length() + description->Length() + button->Length() + 8);
+ formatBuffer->Des().Format(
+ KDisplayImagesLeftToRight(),
+ iAutoLoadImages,
+ iVisibleWidth,
+ description,
+ button);
+ }
+ iWriteStream.WriteL(*formatBuffer);
+ CleanupStack::PopAndDestroy(3); // description, button, formatBuffer
+ iWriteStream.CommitL();
+ }
+ }
+
void CFreestyleMessageHeaderHTML::HTMLBodyStartL() const
{
TBuf8<KFreestyleMessageHeaderHTMLRightMarginInPx> scrollPos;
scrollPos.AppendNum(iScrollPosition);
- iWriteStream.WriteL(_L8("<body onLoad = init("));
+ iWriteStream.WriteL(_L8("<body onLoad = \"init("));
iWriteStream.WriteL(scrollPos);
- iWriteStream.WriteL(_L8(")>\n"));
+ iWriteStream.WriteL(_L8(")\">\n"));
iWriteStream.CommitL();
}
@@ -253,9 +304,19 @@
// set the width, using the visible screen width
TBuf8<KFreestyleMessageHeaderHTMLMaxBufferSizeForWidth> tableWidth;
tableWidth.AppendNum( iVisibleWidth );
- iWriteStream.WriteL(_L8("<table id=\"table_initial\" border=\"0\" width=\""));
- iWriteStream.WriteL( tableWidth );
- iWriteStream.WriteL( _L8("px\">\n"));
+
+ if (iExpanded)
+ {
+ iWriteStream.WriteL(_L8("<table id=\"table_initial\" border=\"0\" width=\""));
+ iWriteStream.WriteL( tableWidth );
+ iWriteStream.WriteL( _L8("px\" style=\"display: none\">\n"));
+ }
+ else
+ {
+ iWriteStream.WriteL(_L8("<table id=\"table_initial\" border=\"0\" width=\""));
+ iWriteStream.WriteL( tableWidth );
+ iWriteStream.WriteL( _L8("px\">\n"));
+ }
// start first row: table with the sent info and the '+' icon
@@ -307,7 +368,7 @@
{
iWriteStream.WriteL(_L8(" align=\"left\""));
}
- iWriteStream.WriteL(_L8(" style=\"padding: 0px 10px 0px 0px;\"><image id=\"detail_img\" border=\"0\" src=\"plus.gif\" onClick=\"expandHeader()\" ></td>\n"));
+ iWriteStream.WriteL(_L8(" style=\"padding: 0px 10px 0px 0px;\"><image width=\"55\" height=\"36\" id=\"detail_img\" border=\"0\" src=\"plus.gif\" onClick=\"expandHeader(true)\" ></td>\n"));
// finish first row
@@ -789,27 +850,20 @@
iWriteStream.WriteL( KAttachmentTableName );
iWriteStream.WriteL( _L8("\" border=\"0\" width=\"100%\">\n") ); // width is set at 100% intentionally
+ // add attachment icon
// start row
iWriteStream.WriteL( _L8("<tr>\n") );
-
- // add attachment icon
iWriteStream.WriteL( _L8("<td width=\"1\" valign=\"top\"") );
- if ( !iMirrorLayout )
- {
- iWriteStream.WriteL(_L8(" align=\"left\""));
- }
- else
- {
- iWriteStream.WriteL(_L8(" align=\"right\""));
- }
+ iWriteStream.WriteL(_L8(" align=\"left\""));
+
iWriteStream.WriteL( _L8("><image src=\"") );
iWriteStream.WriteL( KAttachementIconGeneral );
iWriteStream.WriteL( _L8("\" ></td>\n") );
-
// start table of attachments as a table within a cell
iWriteStream.WriteL( _L8("<td>\n") );
iWriteStream.WriteL(_L8("<table id=\"table_attachments_list\" border=\"0\" width=\"100%\">\n"));
+
for (TInt i=0; i < attachmentsCount; i++)
{
AddAttachmentL( *iAttachments[i] );
@@ -926,12 +980,28 @@
}
TBuf8<32> sizeText;
+
+ // Add right to left marker as "(" and ")" are messing up the html language markers
+ // and &rlm is only added in mirror layout
+ if( iMirrorLayout )
+ {
+ sizeText.Append( KSpace8 );
+ sizeText.Append( _L8( "‏" ) );
+ }
+
sizeText.Append( KSpace8 );
sizeText.Append( _L8("(") );
sizeText.AppendNum( sizeInKB );
sizeText.Append( KSpace8 );
sizeText.Append( KAttachmentSizeUnit );
sizeText.Append( _L8(")") );
+
+ if( iMirrorLayout )
+ {
+ sizeText.Append( KSpace8 );
+ sizeText.Append( _L8( "‏" ) );
+ }
+
iWriteStream.WriteL( sizeText );
EndHyperlinkL();
@@ -987,11 +1057,15 @@
void CFreestyleMessageHeaderHTML::StartHeaderTableL( const TDesC8& aTableId ) const
{
iWriteStream.WriteL( _L8("<table id=\"") );
- iWriteStream.WriteL( aTableId );
-
- // use style="display:none" so that full header table is hidden initially
- iWriteStream.WriteL( _L8("\" border=\"0\" width=\"100%\" style=\"display: none\">\n") );
-
+ iWriteStream.WriteL( aTableId );
+ if (iExpanded)
+ {
+ iWriteStream.WriteL( _L8("\" border=\"0\" width=\"100%\">\n") );
+ }
+ else
+ {
+ iWriteStream.WriteL( _L8("\" border=\"0\" width=\"100%\" style=\"display: none\">\n") );
+ }
TBuf8<KFreestyleMessageHeaderHTMLMaxBufferSizeForWidth> tableWidth;
tableWidth.AppendNum( iVisibleWidth );
@@ -1012,7 +1086,7 @@
{
iWriteStream.WriteL(_L8(" align=\"left\""));
}
- iWriteStream.WriteL( _L8(" style=\"padding: 0px 10px 0px 0px;\"><image id=\"hideDetails_img\" border=\"0\" src=\"minus.gif\" onClick=\"collapseHeader()\"></td>\n"));
+ iWriteStream.WriteL( _L8(" style=\"padding: 0px 10px 0px 0px;\"><image width=\"55\" height=\"36\" id=\"hideDetails_img\" border=\"0\" src=\"minus.gif\" onClick=\"collapseHeader(true)\"></td>\n"));
iWriteStream.WriteL( _L8("</tr>\n"));
iWriteStream.WriteL( _L8("</table></td></tr>\n"));
@@ -1125,8 +1199,30 @@
// define a div class "header", specifying the background color
// for the email header part
- // In future, query for which background color to use
- iWriteStream.WriteL( _L8("body { background-color: lightblue; }\n") );
+#ifdef __USE_THEME_COLOR_FOR_HEADER
+ MAknsSkinInstance* skin = AknsUtils::SkinInstance();
+ TRgb textColor;
+ TRgb bgColor;
+ // Should use EAknsCIFsTextColorsCG3 if background is white
+ if ( AknsUtils::GetCachedColor( skin, textColor,
+ KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG81 ) != KErrNone ||
+ AknsUtils::GetCachedColor( skin, bgColor,
+ KAknsIIDQsnOtherColors, EAknsCIQsnOtherColorsCG22 ) != KErrNone )
+ {
+ iWriteStream.WriteL( _L8("body { color: black; background-color: lightblue; }\n") );
+ }
+ else
+ {
+ // In future, query for which background color to use
+ _LIT8( KBodyWithColor, "body { color: #%06x; background-color: #%06x; }\n" );
+ HBufC8* formatBuffer = HBufC8::NewLC(KBodyWithColor().Length() + 16);
+ formatBuffer->Des().Format(KBodyWithColor(), textColor.Internal() & 0xFFFFFF, bgColor.Internal() & 0xFFFFFF);
+ iWriteStream.WriteL( *formatBuffer );
+ CleanupStack::PopAndDestroy(); // formatBuffer
+ }
+#else
+ iWriteStream.WriteL( _L8("body { color: black; background-color: lightblue; }\n") );
+#endif // __USE_THEME_COLOR_FOR_HEADER
// set font size to 75% of the default size
// because, at the default size, the header text is too big relative to the text in the email body
@@ -1134,7 +1230,7 @@
// we have the text size level in the browser set to "Larger" which is 20% larger than the specified size
// the "larger" size affects all text which includes the header.
iWriteStream.WriteL( _L8("td { font-family:arial,sans-serif ; font-size:75% }\n"));
-
+ iWriteStream.WriteL( _L8(".button { background: url('btn_middle.png') repeat-x top left; border: 1px solid #546284; height: 32px; font-size:19px; font-weight: bold; color: #344a6c; font-family:arial,sans-serif; }\n") );
iWriteStream.WriteL( _L8("</style>\n") );
iWriteStream.CommitL();
}
--- a/emailuis/emailui/src/OverlayControl.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/src/OverlayControl.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -17,10 +17,6 @@
#include "OverlayControl.h"
-// CONSTS
-const TReal KSolidTransparencyFactor = 2;
-
-
COverlayControl::COverlayControl( MOverlayControlObserver* aObserver )
: iObserver( aObserver )
{
@@ -44,9 +40,7 @@
void COverlayControl::ConstructL( CCoeControl* aParent, const TRect& aRect, TInt aBitmapId, TInt aMaskId )
{
-
SetContainerWindowL( *aParent );
-
TFileName iconFileName;
TFsEmailUiUtility::GetFullIconFileNameL( iconFileName );
AknIconUtils::CreateIconL( iBitmap,
@@ -54,10 +48,10 @@
iconFileName,
aBitmapId,
aMaskId );
-
SetRect( aRect );
+ iTouchFeedBack = MTouchFeedback::Instance();
+ iTouchFeedBack->EnableFeedbackForControl(this, ETrue);
EnableDragEvents();
-
ActivateL();
}
@@ -76,6 +70,12 @@
void COverlayControl::HandlePointerEventL( const TPointerEvent& aPointerEvent )
{
+ if (aPointerEvent.iType == TPointerEvent::EButton1Down)
+ {
+ // Give feedback to user (vibration)
+ iTouchFeedBack->InstantFeedback(this, ETouchFeedbackBasic);
+ }
+
CCoeControl::HandlePointerEventL( aPointerEvent );
if( iObserver )
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/emailuis/emailui/src/fsemailstatuspaneindicatorhandler.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -0,0 +1,105 @@
+/*
+* Copyright (c) 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description : Handles mailiindicator updating
+*
+*/
+
+
+#include <centralrepository.h>
+#include <coemain.h> // CCoeEnv
+#include <coeaui.h> // CCoeAppUi
+#include "emailtrace.h"
+
+#include "cfsmailclient.h"
+#include "freestyleemailuiappui.h"
+#include "freestyleemailuiutilities.h"
+#include "freestyleemailuiconstants.h"
+#include "fsemailstatuspaneindicatorhandler.h"
+#include "commonemailcrkeys.h"
+#include "freestyleemailcenrepkeys.h"
+
+
+
+
+// FUNCTION DEFINITIONS
+void TFsEmailStatusPaneIndicatorHandler::StatusPaneMailIndicatorHandlingL( TInt aMailBoxId )
+ {
+ FUNC_LOG;
+ //emailindicator control
+ CRepository* emailRepository = CRepository::NewL( KFreestyleEmailCenRep );
+ CleanupStack::PushL(emailRepository);
+ CRepository* commonEmailRepository = CRepository::NewL( KCmailDataRepository );
+ CleanupStack::PushL(commonEmailRepository);
+ TInt numberOfMailboxes(0);
+
+ emailRepository->Get(KNumberOfMailboxesWithNewEmails,numberOfMailboxes);
+ if(numberOfMailboxes > 0)
+ {
+ RArray<TInt> repositoryIds;
+ CleanupClosePushL(repositoryIds);
+ TInt tmp (0); //used to store the mailbox and plugin ids
+ for(TInt i = 1 ; i <= numberOfMailboxes * 2; i++ )
+ {
+ emailRepository->Get(KNumberOfMailboxesWithNewEmails+i, tmp);
+ repositoryIds.Append(tmp);
+ }
+ // Here we check if the current mailbox id is already in the repository:
+ TInt index = repositoryIds.Find(aMailBoxId);
+
+ if(index != KErrNotFound)
+ {
+ repositoryIds.Remove(index);
+ repositoryIds.Remove(index-1);
+ // Rearrange the mailbox/mailplugin ids
+ // in the repository
+ for(TInt j = 0; j < repositoryIds.Count(); j++)
+ {
+ emailRepository->Set(KNumberOfMailboxesWithNewEmails + 1 + j, repositoryIds.operator [](j));
+ }
+ // And delete last two remaining keys, that contains old information:
+ emailRepository->Delete(KNumberOfMailboxesWithNewEmails + ( numberOfMailboxes * 2 - 1 ));
+ emailRepository->Delete(KNumberOfMailboxesWithNewEmails + ( numberOfMailboxes * 2 ));
+
+ // Decrease the number of mailboxes and update the repository:
+ numberOfMailboxes -= 1;
+ emailRepository->Set(KNumberOfMailboxesWithNewEmails,numberOfMailboxes);
+
+ // Finally update the mailbox name to indicator pop-up note if there is still unchecked mailboxes
+ if(numberOfMailboxes > 0)
+ {
+ TInt lastMBoxIdInRepository (0);
+ TInt lastMPluginIdInRepository (0);
+ emailRepository->Get(KNumberOfMailboxesWithNewEmails+(numberOfMailboxes*2), lastMBoxIdInRepository);
+ // Get matching email account.
+ TFSMailMsgId prevMboxId;
+ prevMboxId.SetId(lastMBoxIdInRepository);
+ emailRepository->Get(KNumberOfMailboxesWithNewEmails+(numberOfMailboxes*2-1), lastMPluginIdInRepository);
+ TUid lastMPluginUidInRepository = { lastMPluginIdInRepository };
+ prevMboxId.SetPluginId(lastMPluginUidInRepository);
+ CFreestyleEmailUiAppUi* appUi =
+ static_cast<CFreestyleEmailUiAppUi*>( CCoeEnv::Static()->AppUi() );
+ //Write the name commonEmailRepository
+ commonEmailRepository->Set(KCmailNewEmailDisplayText,appUi->GetMailClient()->GetMailBoxByUidL(prevMboxId)->GetName());
+ }
+ }
+ if(numberOfMailboxes == 0)
+ {
+ // Set email indicator off.. user has checked the new emails in all the mailboxes
+ TFsEmailUiUtility::ToggleEmailIconL(EFalse);
+ }
+ repositoryIds.Reset();
+ CleanupStack::PopAndDestroy();//repositoryIds
+ }
+ CleanupStack::PopAndDestroy(2); //emailRepository, CommonEmailRepository
+ }
--- a/emailuis/emailui/src/ncsaifeditor.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/src/ncsaifeditor.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -980,10 +980,11 @@
pos++; // for whitespace
}
- // Reset the text
- SetCursorPosL( 0, EFalse ); //In case the cursor pos is invalid
+ // Reset the text
HBufC* text = NULL;
text = GetFormattedAddressListLC( iArray );
+ // fix for dissapearing text PWAN-82DNEJ
+ SetCursorPosL( 0, EFalse ); //In case the cursor pos is invalid
if ( iAddLeftover )
{
@@ -1317,6 +1318,12 @@
// add line feed after new entry
TInt cursorPos( CursorPos() );
+ // related to PWAN-82DNEJ cursorPos shouldn't be 0 here
+ if (cursorPos == 0)
+ {
+ cursorPos = TextLength();
+ }
+
if ( !iPartialRemove )
{
Text()->InsertL( cursorPos, TChar(CEditableText::ELineBreak) );
--- a/emailuis/emailui/src/ncscomposeview.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/src/ncscomposeview.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -408,6 +408,28 @@
Toolbar()->SetDimmed( EFalse );
RefreshToolbar();
}
+
+ // if there is a embedded app in FSEmail.
+ if( iAppUi.EmbeddedApp() )
+ {
+ // Set email editor started from embedded app flag to true
+ // so that we can switch view correct when sent email.
+ iAppUi.SetEditorStartedFromEmbeddedApp( ETrue );
+
+ RWsSession rwsSession;
+ User::LeaveIfError( rwsSession.Connect() );
+ CleanupClosePushL( rwsSession );
+
+ // Simulate a back key to exit embedded app
+ // so that email editor could show on the top level.
+ TKeyEvent KeyEvent = TKeyEvent();
+ KeyEvent.iCode = EKeyCBA2;
+ rwsSession.SimulateKeyEvent( KeyEvent );
+
+ rwsSession.Close();
+ CleanupStack::PopAndDestroy( &rwsSession );
+ }
+
TIMESTAMP( "Editor launched" );
}
--- a/emailuis/emailui/src/ncscomposeviewcontainer.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/src/ncscomposeviewcontainer.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -285,10 +285,13 @@
{
if ( iFocused == iMessageField )
{
+ if( iMessageField->SelectionLength() )
+ {
+ iMessageField->ClearSelectionL();
+ }
+ iMessageField->SetFocus( EFalse, EDrawNow );
iFocused = iHeader;
iHeader->SetFocus( ETrue,EDrawNow );
- iMessageField->ClearSelectionL();
- iMessageField->SetFocus( EFalse, EDrawNow );
iHeader->MakeVisible( ETrue );
CommitL( EBodyField );
iView.HandleContainerChangeRequiringToolbarRefresh();
@@ -325,24 +328,12 @@
{
if ( iFocused == iHeader )
{
- // fix for ESLX-7Y4C2V, dissapearing subject
- HBufC* heapBuffer = HBufC::NewL(iHeader->GetSubjectFieldLength());
- TPtr ptr(heapBuffer->Des());
- ptr.Copy(*GetSubjectLC());
+ //TRAP_IGNORE( DoUpdateSubjectL() );
- iFocused = iMessageField;
- iHeader->SetFocus( EFalse, EDrawNow );
+ iHeader->SetFocus( EFalse, EDrawNow );
+ iFocused = iMessageField;
iMessageField->SetFocus( ETrue, EDrawNow );
-
- if ( iHeader->GetSubjectFieldLength() != heapBuffer->Length() )
- {
- iHeader->SetSubjectL( const_cast<HBufC&>(*heapBuffer));
- }
-
- iHeader->SetFocus( ETrue, EDrawNow );
- iHeader->SetFocus( EFalse, EDrawNow );
iView.HandleContainerChangeRequiringToolbarRefresh();
- CleanupStack::PopAndDestroy(); //from GetSubjectLC()
}
else if ( iFocused == iReadOnlyQuoteField )
{
@@ -931,6 +922,8 @@
iPhysics->StopPhysics();
iPhysics->ResetFriction();
}
+
+ ClosePopupContactListL();
ScrollL( aScrollBar->ThumbPosition() );
}
@@ -1997,3 +1990,27 @@
FUNC_LOG;
return iHeader->IsRemoteSearchInprogress();
}
+
+// -----------------------------------------------------------------------------
+// CNcsComposeViewContainer::DoUpdateSubjectL
+// -----------------------------------------------------------------------------
+//
+void CNcsComposeViewContainer::DoUpdateSubjectL()
+ {
+ FUNC_LOG;
+ // fix for ESLX-7Y4C2V, dissapearing subject
+ // get copy of subject
+ HBufC* subjectCopy = GetSubjectLC();
+ iHeader->SetFocus( EFalse, EDrawNow );
+ // get subject after focus lost
+ HBufC* subject = GetSubjectLC();
+ // restore subject from copy if necessary
+ if ( subject->Length() != subjectCopy->Length() )
+ {
+ iHeader->SetSubjectL( *subjectCopy );
+ }
+
+ // restore focus
+ iHeader->SetFocus( ETrue, EDrawNow );
+ CleanupStack::PopAndDestroy( 2, subjectCopy );
+ }
--- a/emailuis/emailui/src/ncsheadercontainer.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/src/ncsheadercontainer.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -26,8 +26,6 @@
#include "cfsmailbox.h"
#include <FreestyleEmailUi.rsg>
-#include "cpbkxremotecontactlookupserviceuicontext.h"
-
#include "FSEmailBuildFlags.h"
#include "ncsheadercontainer.h"
#include "ncscomposeviewcontainer.h"
@@ -215,6 +213,7 @@
// Commit changes and make sure no controls are focused.
TRAP_IGNORE( CommitFieldL( focused ) );
focused->SetFocus( EFalse, aDrawNow );
+ iFocused = NULL;
}
// Remove MSK label when header loses focus
@@ -242,7 +241,10 @@
{
iFocused = focused;
}
- iFocused->SetFocus( aShow, EDrawNow );
+ if ( iFocused )
+ {
+ iFocused->SetFocus( aShow, EDrawNow );
+ }
}
// -----------------------------------------------------------------------------
@@ -369,7 +371,7 @@
pOldCtrl->SetFocus( EFalse, ENoDrawNow );
}
pNewCtrl->SetFocus( ETrue, ENoDrawNow );
-
+ iFocused = pNewCtrl;
// Commit changes to previously focused field.
if ( pOldCtrl )
{
@@ -793,6 +795,27 @@
}
// ---------------------------------------------------------------------------
+// CNcsHeaderContainer::GetToLineHeight
+// ---------------------------------------------------------------------------
+//
+TInt CNcsHeaderContainer::GetToLineHeight() const
+ {
+ FUNC_LOG;
+ TInt lineHeight = 0;
+
+ if(iToField)
+ {
+ TRect lineRect;
+ TRAPD(err, iToField->GetLineRectL(lineRect) );
+ if(err == KErrNone)
+ {
+ lineHeight = lineRect.iBr.iY - lineRect.iTl.iY;
+ }
+ }
+ return lineHeight;
+ }
+
+// ---------------------------------------------------------------------------
// CNcsHeaderContainer::GetTotalHeight
// ---------------------------------------------------------------------------
//
@@ -820,8 +843,11 @@
{
FUNC_LOG;
iAttachmentField->SetTextsLD( aAttachmentNames, aAttachmentSizes );
- ShowAttachmentLabelL();
- DrawAttachmentFocusNow();
+ if( aAttachmentNames )
+ {
+ ShowAttachmentLabelL();
+ DrawAttachmentFocusNow();
+ }
}
// -----------------------------------------------------------------------------
@@ -1740,6 +1766,7 @@
aifFocused = static_cast<CNcsAddressInputField*>( focused );
aifFocused->AddAddressL( aEml );
}
+ DoScrollL();
}
// ---------------------------------------------------------------------------
--- a/emailuis/emailui/src/ncspopuplistbox.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/src/ncspopuplistbox.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -419,22 +419,67 @@
}
// -----------------------------------------------------------------------------
+// CNcsPopupListBox::RoundToItemHeight
+// -----------------------------------------------------------------------------
+TInt CNcsPopupListBox::RoundToItemHeight(const TInt aPopupHeight) const
+ {
+ TReal fullItems; // number of full visible items in window
+ TInt err = Math::Round(fullItems, (aPopupHeight / ItemHeight()), 0);
+ if(err == KErrNone)
+ {
+ return (TInt)(fullItems * ItemHeight());
+ }
+ return aPopupHeight; // in case of error
+ }
+
+// -----------------------------------------------------------------------------
// CNcsPopupListBox::SetPopupHeight
// -----------------------------------------------------------------------------
void CNcsPopupListBox::SetPopupHeight()
{
FUNC_LOG;
- TRect newRect = iPopupMaxRect;
+ // This is the total height in pixels needed to show all items
+ TInt minimumHeight = CalcHeightBasedOnNumOfItems( Model()->NumberOfItems());
+ TRect newRect = iPopupMaxRect;
+ TInt areaHeight = Parent()->Parent()->Rect().Height();
+ TInt halfAreaHeight = areaHeight/2;
- // This is the total height in pixels needed to show all items
- TInt itemCount = Model()->NumberOfItems();
- TInt minimumHeight = CalcHeightBasedOnNumOfItems( itemCount );
-
- // Shrink list size if maximum size is not needed
- if( iPopupMaxRect.Height() > minimumHeight )
- {
- newRect.SetHeight( minimumHeight );
- }
+ // Get height of one line in Address field
+ CNcsHeaderContainer* headerObj = static_cast<CNcsHeaderContainer* >(Parent());
+ TInt toLineHeight = headerObj->GetToLineHeight(); // height of one line height
+ if(toLineHeight == 0)
+ {
+ toLineHeight = ItemHeight();
+ }
+
+ TInt newHeight = minimumHeight; // default window height
+
+ //latch listbox on the bottom of the editor field
+ if ( newRect.iTl.iY <= halfAreaHeight )
+ {
+ newHeight = RoundToItemHeight( areaHeight - newRect.iTl.iY );
+ if(newHeight > minimumHeight)
+ {
+ newHeight = minimumHeight; // shrink window (if needed)
+ }
+ }
+ //latch listbox on the top of the editor field
+ else
+ {
+ TInt yOffset = -minimumHeight - toLineHeight; // how much up
+ TInt newTlY = newRect.iTl.iY + yOffset; // new Top Left Y coordinate
+ if(newTlY>=0)
+ {
+ newRect.Move( 0, yOffset );
+ }
+ else
+ {
+ // shrink height to visible area and move
+ newHeight = RoundToItemHeight( minimumHeight + newTlY);
+ newRect.Move( 0, -newHeight - toLineHeight);
+ }
+ }
+ newRect.SetHeight(newHeight); // set new height
SetRect( newRect );
}
--- a/emailuis/emailui/src/ncssubjectfield.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/src/ncssubjectfield.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -250,73 +250,49 @@
void CNcsSubjectField::FocusChanged( TDrawNow aDrawNow )
{
FUNC_LOG;
- iDrawAfterFocusChange = aDrawNow;
- DoHandleFocusChanged( this );
- }
-
-// -----------------------------------------------------------------------------
-// CNcsSubjectField::HandleFocusChangedL()
-// -----------------------------------------------------------------------------
-//
-void CNcsSubjectField::HandleFocusChangedL()
- {
- FUNC_LOG;
- if ( IsFocused() )
- {
- iTextEditor->SetFocus( ETrue );
- iTextEditor->SetCursorPosL( iTextEditor->TextLength(), EFalse );
+ if ( IsFocused() )
+ {
+ iTextEditor->SetFocus( ETrue );
+ TRAP_IGNORE( iTextEditor->SetCursorPosL( iTextEditor->TextLength(), EFalse ) );
- // make sure that control is visible on screen
- if ( Rect().iTl.iY < 0 )
- {
- TPoint pt = TPoint( 0, 0 );
- Reposition( pt, Rect().Width() );
- iSizeObserver->UpdateFieldPosition( this );
- }
- else
- {
- TPoint pos = PositionRelativeToScreen();
- pos.iY += Size().iHeight;
- CWsScreenDevice* screenDev = ControlEnv()->ScreenDevice();
- TPixelsAndRotation pix;
- screenDev->GetDefaultScreenSizeAndRotation( pix );
- const TInt h = pix.iPixelSize.iHeight;
- if ( pos.iY >= h - h / 3 )
- {
- TPoint pt = TPoint( 0, h / 3 );
- Reposition( pt, Rect().Width() );
- iSizeObserver->UpdateFieldPosition( this );
- }
- }
+ // make sure that control is visible on screen
+ if ( Rect().iTl.iY < 0 )
+ {
+ TPoint pt = TPoint( 0, 0 );
+ Reposition( pt, Rect().Width() );
+ iSizeObserver->UpdateFieldPosition( this );
+ }
+ else
+ {
+ TPoint pos = PositionRelativeToScreen();
+ pos.iY += Size().iHeight;
+ CWsScreenDevice* screenDev = ControlEnv()->ScreenDevice();
+ TPixelsAndRotation pix;
+ screenDev->GetDefaultScreenSizeAndRotation( pix );
+ const TInt h = pix.iPixelSize.iHeight;
+ if ( pos.iY >= h - h / 3 )
+ {
+ TPoint pt = TPoint( 0, h / 3 );
+ Reposition( pt, Rect().Width() );
+ iSizeObserver->UpdateFieldPosition( this );
+ }
+ }
- if ( iParentControl )
- {
- iParentControl->SetMskL();
- }
- }
- else
- {
- iTextEditor->HandleTextChangedL();
- iTextEditor->SetFocus( EFalse );
- }
+ if ( iParentControl )
+ {
+ TRAP_IGNORE( iParentControl->SetMskL() );
+ }
+ }
+ else
+ {
+ iTextEditor->SetFocus( EFalse );
+ }
- if ( iDrawAfterFocusChange )
- {
- DrawNow();
- }
- }
-
-// -----------------------------------------------------------------------------
-// CNcsSubjectField::DoHandleFocusChanged()
-// -----------------------------------------------------------------------------
-//
-TInt CNcsSubjectField::DoHandleFocusChanged( TAny* aSelfPtr )
- {
- FUNC_LOG;
- CNcsSubjectField* self = static_cast<CNcsSubjectField*>( aSelfPtr );
- TRAPD( err, self->HandleFocusChangedL() );
- return err;
- }
+ if ( aDrawNow )
+ {
+ DrawNow();
+ }
+ }
// -----------------------------------------------------------------------------
// CNcsSubjectField::MinimumHeight()
@@ -352,7 +328,15 @@
FUNC_LOG;
if ( &aSubject && aSubject.Length() > 0 )
{
- RMemReadStream inputStream( aSubject.Ptr(), aSubject.Size() );
+ // clear subject if necessary
+ TInt documentLength = iTextEditor->RichText()->DocumentLength();
+ if ( documentLength > 0 )
+ {
+ iTextEditor->RichText()->DeleteL( 0, documentLength );
+ iTextEditor->HandleTextChangedL();
+ }
+
+ RMemReadStream inputStream( aSubject.Ptr(), aSubject.Size() );
CleanupClosePushL( inputStream );
iTextEditor->RichText()->ImportTextL( 0, inputStream, CPlainText::EOrganiseByParagraph );
--- a/emailuis/emailui/src/ncsutility.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/src/ncsutility.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -36,9 +36,9 @@
#include <flogger.h>
#include <aknenv.h> // CAknEnv
-#include "cfsmailbox.h"
-#include "cfsmailclient.h"
-#include "cfsmailaddress.h"
+#include "CFSMailBox.h"
+#include "CFSMailClient.h"
+#include "CFSMailAddress.h"
#include <aknlayoutscalable_apps.cdl.h>
#include <layoutmetadata.cdl.h>
@@ -300,51 +300,59 @@
HBufC* NcsUtility::FormatSubjectLineL(
const TDesC& aNewSubjectLine, const TDesC& aPrefix )
{
- FUNC_LOG;
-
- HBufC* formattedSubjectLine = aNewSubjectLine.AllocLC();
- HBufC* prefix = aPrefix.AllocLC();
-
- TPtr formattedSubjectLinePtr = formattedSubjectLine->Des();
- TPtr prefixPtr = prefix->Des();
- prefixPtr.Trim();
-
- TInt subjectLineLength = formattedSubjectLinePtr.Length();
- TInt index = 0;
- TInt length = subjectLineLength;
- TInt prefixLength = prefixPtr.Length();
-
- do
- {
- formattedSubjectLinePtr = formattedSubjectLinePtr.RightTPtr( length );
- index = formattedSubjectLinePtr.FindC( prefixPtr );
- length = formattedSubjectLinePtr.Length() - index - prefixLength;
- }
- while( index != KErrNotFound );
+ FUNC_LOG;
+
+ HBufC* formattedSubjectLine = aNewSubjectLine.AllocLC();
+ HBufC* prefix = aPrefix.AllocLC();
+ TPtr formattedSubjectLinePtr = formattedSubjectLine->Des();
+ TPtr prefixPtr = prefix->Des();
+ prefixPtr.Trim();
+
+ TInt subjectLineLength = formattedSubjectLinePtr.Length();
+ TInt length = subjectLineLength;
+ TInt prefixLength = prefixPtr.Length();
+ HBufC* fwdPrefix = StringLoader::LoadLC( R_NCS_ENGINE_EMAIL_FORWARD_PREFIX );
+ TPtr fwdPrt = fwdPrefix->Des();
+ TInt fwdLength = fwdPrt.Length();
+ fwdPrt.Trim();
+
+ for(TInt index = formattedSubjectLinePtr.FindC( prefixPtr ); index != KErrNotFound ; index = formattedSubjectLinePtr.FindC( prefixPtr ))
+ {
+ formattedSubjectLinePtr = formattedSubjectLinePtr.RightTPtr( length );
+ length = formattedSubjectLinePtr.Length() - index - prefixLength;
+ }
+ formattedSubjectLinePtr.Trim();
+
+ for(TInt index = formattedSubjectLinePtr.FindC( fwdPrt) ; index != KErrNotFound ; index = formattedSubjectLinePtr.FindC( fwdPrt ))
+ {
+ formattedSubjectLinePtr = formattedSubjectLinePtr.RightTPtr( length );
+ length = formattedSubjectLinePtr.Length() - index - fwdLength;
+ }
- formattedSubjectLinePtr.Trim();
+ formattedSubjectLinePtr.Trim();
+
+
+ HBufC* finalSubject = HBufC::NewL( formattedSubjectLinePtr.Length() + prefixPtr.Length() + KSpace().Length() );
+ TPtr ptr = finalSubject->Des();
+ if ( AknLayoutUtils::LayoutMirrored() )
+ {
+ ptr.Append( formattedSubjectLinePtr );
+ ptr.Append( KSpace );
+ ptr.Append( prefixPtr );
+
+ }
+ else
+ {
+ ptr.Append( prefixPtr );
+ ptr.Append( KSpace );
+ ptr.Append( formattedSubjectLinePtr );
+
+ }
+ CleanupStack::PopAndDestroy( fwdPrefix );
+ CleanupStack::PopAndDestroy( prefix );
+ CleanupStack::PopAndDestroy( formattedSubjectLine );
- HBufC* finalSubject = HBufC::NewL(
- formattedSubjectLinePtr.Length() + prefixPtr.Length() +
- KSpace().Length() );
- TPtr ptr = finalSubject->Des();
- if ( AknLayoutUtils::LayoutMirrored() )
- {
- ptr.Append( formattedSubjectLinePtr );
- ptr.Append( KSpace );
- ptr.Append( prefixPtr );
- }
- else
- {
- ptr.Append( prefixPtr );
- ptr.Append( KSpace );
- ptr.Append( formattedSubjectLinePtr );
- }
-
- CleanupStack::PopAndDestroy( prefix );
- CleanupStack::PopAndDestroy( formattedSubjectLine );
-
- return finalSubject;
+ return finalSubject;
}
// -----------------------------------------------------------------------------
--- a/emailuis/uicomponents/inc/fstreevisualizerbase.h Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/uicomponents/inc/fstreevisualizerbase.h Fri Mar 12 15:41:14 2010 +0200
@@ -145,7 +145,8 @@
* Get items in range aY to aY + aHeight. Also returns offset by which the listlayout
* needs to be scrolled (e.g. the first item in list might be only partly visible)
*/
- void GetItemsL( RArray<TFsTreeItemId>& aItems, TInt aY, TInt aHeight, TInt& aOffset );
+ void GetItemsL( RArray<TFsTreeItemId>& aItems, TInt aY, TInt aHeight, TInt& aOffset,
+ TInt& aBeginIndex );
/**
* Returns full height of the world (in pixels).
@@ -169,6 +170,11 @@
TInt GetItemRect( const TFsTreeItemId, TRect& aRect ) const;
/**
+ * Returns item's rect, scan starts from aStartIndex.
+ */
+ TInt GetItemRect( const TFsTreeItemId, TRect& aRect, const TInt aStartIndex ) const;
+
+ /**
* Returns item's rect by index in world.
*/
TInt GetItemRectByIndex(const TInt aIndex, TRect& aRect) const;
@@ -555,6 +561,9 @@
// Viewport cache
TCache iCache;
+
+ // Wold index of the first item in Cache
+ TInt iWorldIndex;
};
@@ -2345,7 +2354,12 @@
/**
* Do physics update when simulation has finished.
*/
- EUpdatePhysicsAfterSimulationFinished
+ EUpdatePhysicsAfterSimulationFinished,
+
+ /**
+ * Ignore next pointer up event.
+ */
+ EIgnorePointerUpAction
};
// Flags
--- a/emailuis/uicomponents/src/fscontrolbuttonvisualiser.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/uicomponents/src/fscontrolbuttonvisualiser.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -1266,8 +1266,11 @@
}
if ( iButtonModel->ContainsElement( ECBElemLabelFirstLine ) )
{
- iLabelFirstLine->SetSize( text1.Size() );
- iLabelFirstLine->SetPos( text1.iTl );
+ if ( iLabelFirstLine )
+ {
+ iLabelFirstLine->SetSize( text1.Size() );
+ iLabelFirstLine->SetPos( text1.iTl );
+ }
}
if ( iButtonModel->ContainsElement( ECBElemLabelSndLine ) )
{
--- a/emailuis/uicomponents/src/fstreeplainonelineitemvisualizer.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/uicomponents/src/fstreeplainonelineitemvisualizer.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -540,7 +540,7 @@
iTextVisual->SetColor( textColor );
iTextVisual->SetTextStyle( styleId );
- iTextVisual->SetWrapping(CAlfTextVisual::ELineWrapManual);
+// iTextVisual->SetWrapping(CAlfTextVisual::ELineWrapManual);
TAlfAlignHorizontal currTextAlign( EAlfAlignHLocale );
currTextAlign = CurrentTextAlignmentL( iTextAlign, &data->Data(), iTextVisual );
--- a/emailuis/uicomponents/src/fstreeplainonelinenodevisualizer.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/uicomponents/src/fstreeplainonelinenodevisualizer.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -745,7 +745,7 @@
iTextVisual->SetColor( textColor );
iTextVisual->SetTextStyle( styleId );
- iTextVisual->SetWrapping(CAlfTextVisual::ELineWrapManual);
+// iTextVisual->SetWrapping(CAlfTextVisual::ELineWrapManual);
TAlfAlignHorizontal currTextAlign( EAlfAlignHLocale );
currTextAlign = CurrentTextAlignmentL( iTextAlign, &data->Data(), iTextVisual );
@@ -850,13 +850,14 @@
return;
}
- iTextVisual->SetWrapping(CAlfTextVisual::ELineWrapManual);
textWidth = iTextVisual->SubstringExtents(0, iTextVisual->Text().Length()).Width();
marqueeSize = textWidth - iViewportLayout->Size().iX.Target();
if (iTextVisual && (marqueeSize>0))
{
+ iTextVisual->SetWrapping(CAlfTextVisual::ELineWrapManual);
+
TSize size(textWidth,iViewportLayout->Size().iY.Target());
if ( aMarqueeType == EFsTextMarqueeForth )
{
--- a/emailuis/uicomponents/src/fstreeplaintwolineitemvisualizer.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/uicomponents/src/fstreeplaintwolineitemvisualizer.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -12,7 +12,7 @@
* Contributors:
*
* Description : A visualizer for data items with plain text.
-* Version : %version: tr1sido#14 %
+* Version : %version: tr1sido#15 %
*
*/
@@ -1684,7 +1684,7 @@
iTextVisual->SetColor( textColor );
iTextVisual->SetTextStyle( styleId );
- iTextVisual->SetWrapping(CAlfTextVisual::ELineWrapManual);
+// iTextVisual->SetWrapping(CAlfTextVisual::ELineWrapManual);
TAlfAlignHorizontal currTextAlign( EAlfAlignHLocale );
currTextAlign = CurrentTextAlignmentL( iTextAlign, &data->Data(), iTextVisual );
@@ -1713,7 +1713,7 @@
iSecondaryTextVisual->SetColor( textColor );
iSecondaryTextVisual->SetTextStyle( styleId );
- iSecondaryTextVisual->SetWrapping(CAlfTextVisual::ELineWrapManual);
+// iSecondaryTextVisual->SetWrapping(CAlfTextVisual::ELineWrapManual);
TAlfAlignHorizontal currSecTextAlign( EAlfAlignHLocale );
currSecTextAlign = CurrentTextAlignmentL( iSecondaryTextAlign, &data->SecondaryData(), iSecondaryTextVisual );
@@ -1744,7 +1744,7 @@
iPreviewPaneTextVisual->SetColor( textColor );
iPreviewPaneTextVisual->SetTextStyle( styleId );
- iPreviewPaneTextVisual->SetWrapping(CAlfTextVisual::ELineWrapManual);
+// iPreviewPaneTextVisual->SetWrapping(CAlfTextVisual::ELineWrapManual);
TAlfAlignHorizontal currSecTextAlign( EAlfAlignHLocale );
currSecTextAlign = CurrentTextAlignmentL( EAlfAlignHLocale, &data->PreviewPaneData(), iPreviewPaneTextVisual );
--- a/emailuis/uicomponents/src/fstreevisualizerbase.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/uicomponents/src/fstreevisualizerbase.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -83,6 +83,7 @@
// check from aknphysicsconstants.h
const TInt KFlickMaxDuration( 500000 );
+const TInt KDefaultFriction( 35 ); // avkon default is 10
// ======== LOCAL FUNCTIONS ========
@@ -350,7 +351,7 @@
// Uses binary search.
// ---------------------------------------------------------------------------
void TWorld::GetItemsL(RArray<TFsTreeItemId>& aItems, TInt aY, TInt aHeight,
- TInt& aOffset)
+ TInt& aOffset, TInt& aBeginIndex)
{
// First find first visible item using binary search algorithm
aItems.Reset();
@@ -379,7 +380,7 @@
{
aOffset = aY - iItems[middle].Top();
aHeight += aOffset;
- i = middle;
+ aBeginIndex = i = middle;
break;
}
}
@@ -449,8 +450,18 @@
// ---------------------------------------------------------------------------
TInt TWorld::GetItemRect(const TFsTreeItemId aItemId, TRect& aRect) const
{
+ return GetItemRect(aItemId, aRect, 0);
+ }
+
+// ---------------------------------------------------------------------------
+// TWorld::GetItemRect
+// ---------------------------------------------------------------------------
+TInt TWorld::GetItemRect(const TFsTreeItemId aItemId, TRect& aRect,
+ const TInt aStartIndex ) const
+ {
TInt result(KErrNotFound);
- for (TInt i = iItems.Count() - 1; i >= 0; i--)
+ const TInt itemCount(iItems.Count());
+ for (TInt i = aStartIndex; i < itemCount; i++)
{
if (iItems[i].iId == aItemId)
{
@@ -505,7 +516,7 @@
// TViewPort::TViewPort
// ---------------------------------------------------------------------------
TViewPort::TViewPort(MObserver& aObserver, TWorld& aWorld) :
- iObserver(aObserver), iWorld(aWorld)
+ iObserver(aObserver), iWorld(aWorld), iWorldIndex(KErrNotFound)
{
}
@@ -585,7 +596,7 @@
{
RArray<TFsTreeItemId> tempItems;
CleanupClosePushL(tempItems);
- iWorld.GetItemsL(tempItems, iPosition.iY, iSize.iHeight, aOffset);
+ iWorld.GetItemsL(tempItems, iPosition.iY, iSize.iHeight, aOffset, iWorldIndex);
iCache.UpdateL(tempItems, aItemsToBeRemoved, aItemsToBeAdded, aFullUpdate);
CleanupStack::PopAndDestroy(); // tempItems
}
@@ -595,7 +606,7 @@
// ---------------------------------------------------------------------------
void TViewPort::GetVisibleItemsL(RArray<TFsTreeItemId>& aVisible, TInt& aOffset)
{
- iWorld.GetItemsL(aVisible, iPosition.iY, iSize.iHeight, aOffset);
+ iWorld.GetItemsL(aVisible, iPosition.iY, iSize.iHeight, aOffset, iWorldIndex);
}
// ---------------------------------------------------------------------------
@@ -739,6 +750,7 @@
// ---------------------------------------------------------------------------
void TViewPort::ClearCache()
{
+ iWorldIndex = KErrNotFound;
iCache.Clear();
}
@@ -750,7 +762,8 @@
TRect itemRect;
if (!iCache.IsClear() && iCache.ContainsItem(aItemId))
{
- if (iWorld.GetItemRect(aItemId, itemRect) != KErrNotFound)
+ const TInt beginIndex(iWorldIndex == KErrNotFound ? 0 : iWorldIndex);
+ if (iWorld.GetItemRect(aItemId, itemRect, beginIndex) != KErrNotFound)
{
itemRect.Move(0, -iPosition.iY);
}
@@ -1542,11 +1555,18 @@
iTouchPressed = ETrue;
const TPoint& pos(aEvent.PointerEvent().iParentPosition);
INFO_2("EButton1Down (%d, %d)", pos.iX, pos.iY);
- if (!iFlags.IsSet(EPhysicsOn))
+ //if (!iFlags.IsSet(EPhysicsOn))
+ // Keep this last!
+ if (iFlags.IsSet(EPhysicsOn))
{
iPhysics->StopPhysics();
- iPhysics->ResetFriction();
+ //iPhysics->ResetFriction();
UpdatePhysicsL();
+ iFlags.Set(EIgnorePointerUpAction);
+ }
+ else
+ {
+ iFlags.Clear(EIgnorePointerUpAction);
}
iDragHandler->PointerDown(aEvent.PointerEvent(), id);
break;
@@ -1562,11 +1582,12 @@
MFsTreeVisualizerObserver::EFsChangeFocusVisibility );
INFO_2( "EButton1Up (%d, %d)", pos.iX, pos.iY );
}
- if( !iDragHandler->IsFlicking() )
+ /*if( !iDragHandler->IsFlicking() )
{
iPhysics->StopPhysics();
- }
+ }*/
iDragHandler->PointerUp( aEvent.PointerEvent(), id );
+ iFlags.Clear(EIgnorePointerUpAction);
break;
}
case TPointerEvent::EDrag:
@@ -1578,6 +1599,7 @@
|| iDragHandler->DragDelta(aEvent.PointerEvent())
>= iPhysics->DragThreshold())
{
+ iFlags.Set(EIgnorePointerUpAction);
iDragHandler->PointerDrag(aEvent.PointerEvent(), id);
iDragHandler->EnableFlicking();
}
@@ -1590,6 +1612,7 @@
const TPoint& pos(aEvent.PointerEvent().iParentPosition);
INFO_2("EButtonRepeat (%d, %d)", pos.iX, pos.iY);
iDragHandler->PointerRepeat(aEvent.PointerEvent());
+ iFlags.Clear(EIgnorePointerUpAction);
break;
}
@@ -3644,7 +3667,7 @@
{
iScrollbarModel.SetFocusPosition(iViewPort.Position().iY);
iScrollBar->SetModelL(&iScrollbarModel);
- iScrollBar->DrawNow();
+ iScrollBar->DrawDeferred();
}
}
@@ -3671,7 +3694,7 @@
iScrollbarModel.SetWindowSize(pageSize);
iScrollbarModel.SetFocusPosition(iViewPort.Position().iY);
iScrollBar->SetModelL(&iScrollbarModel);
- iScrollBar->DrawNow();
+ iScrollBar->DrawDeferred();
RArray<TInt> columns;
CleanupClosePushL(columns);
@@ -4637,6 +4660,7 @@
iPhysics = CAknPhysics::NewL(*this, NULL );
iDragHandler = CDragHandler::NewL(*this,
iPhysics->HighlightTimeout(), iFlags);
+ iPhysics->SetFriction(KDefaultFriction);
}
iRootData = CFsTreePlainOneLineItemData::NewL();
@@ -4943,13 +4967,13 @@
visualizerLayout.SetSize(tpItemSize);
visualizerLayout.PropertySetIntegerL(KPropertyItemId(), itemId);
- if(aUpdateByPhysic != EUpdatedByPhisic)
- {
+// if(aUpdateByPhysic != EUpdatedByPhisic)
+// {
visualizer->UpdateL(iTreeData->ItemData(itemId),
IsItemFocused(itemId) && IsFocusShown(),
iTreeData->Level(itemId), iMarkIcon, iMenuIcon,
0);
- }
+// }
visualizerLayout.Brushes()->AppendL(iBorderBrush,
EAlfDoesNotHaveOwnership);
@@ -5009,8 +5033,10 @@
startTime = now - TTimeIntervalMicroSeconds( KFlickMaxDuration - 1 );
aDrag.iY = aDrag.iY * KFlickMaxDuration / moveTime;
}
- iPhysics->StartPhysics(aDrag, startTime);
- iFlags.Set(EPhysicsOn);
+ if (iPhysics->StartPhysics(aDrag, startTime))
+ {
+ iFlags.Set(EPhysicsOn);
+ }
}
// ---------------------------------------------------------------------------
@@ -5028,6 +5054,7 @@
const TSize worldSize(viewSize.iWidth, Max(iWorld.Height(),
viewSize.iHeight));
iPhysics->InitPhysicsL(worldSize, viewSize, EFalse);
+ iPhysics->SetFriction(KDefaultFriction);
}
}
@@ -5140,8 +5167,12 @@
}
else if( aEventType == EPointerUp )
{
- iVisualizerObserver->TreeVisualizerEventL(
- MFsTreeVisualizerObserver::EFsTreeItemTouchAction, aItemId, aPoint );
+ // Ignore pointer up action IF physic emulation was stopped on pointer down
+ if ( !iFlags.IsSet(EIgnorePointerUpAction) )
+ {
+ iVisualizerObserver->TreeVisualizerEventL(
+ MFsTreeVisualizerObserver::EFsTreeItemTouchAction, aItemId, aPoint );
+ }
}
}
@@ -5215,7 +5246,7 @@
// ---------------------------------------------------------------------------
//
void CFsTreeVisualizerBase::CDragHandler::PointerDown(
- const TPointerEvent& aEvent, const TFsTreeItemId aItemId)
+ const TPointerEvent& aEvent, const TFsTreeItemId aItemId )
{
FUNC_LOG;
Reset();
@@ -5224,7 +5255,6 @@
iLastPointerPosition = aEvent.iParentPosition;
iStartTime.HomeTime();
iFlags.Set( EPointerDownReceived );
-
iTree.SetFocusedItemAndSendEvent( iItemId, EPointerDown, iPosition );
}
--- a/emailuis/widget/emailwidgetsettings/inc/emailwidgetsettingslistview.h Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/widget/emailwidgetsettings/inc/emailwidgetsettingslistview.h Fri Mar 12 15:41:14 2010 +0200
@@ -113,7 +113,6 @@
private:
TVwsViewId iPrevViewId;
CEmailWidgetSettingsListViewContainer* iView;
- HBufC* iCid;
};
#endif
--- a/emailuis/widget/emailwidgetsettings/src/emailwidgetsettingsappui.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/widget/emailwidgetsettings/src/emailwidgetsettingsappui.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -47,7 +47,7 @@
void CEmailWidgetSettingsAppUi::ConstructL()
{
FUNC_LOG;
- BaseConstructL( EAknEnableSkin /*| EAknEnableMSK | EAknSingleClickCompatible*/ );
+ BaseConstructL( EAknEnableSkin | EAknEnableMSK | EAknSingleClickCompatible );
CreateListViewL();
}
--- a/emailuis/widget/emailwidgetsettings/src/emailwidgetsettingslistview.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/widget/emailwidgetsettings/src/emailwidgetsettingslistview.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -43,7 +43,6 @@
//
CEmailWidgetSettingsListView::~CEmailWidgetSettingsListView()
{
- delete iCid;
}
// ---------------------------------------------------------------------------
@@ -88,7 +87,7 @@
//
void CEmailWidgetSettingsListView::HandleListBoxEventL(CEikListBox* /*aListBox*/, TListBoxEvent aEventType)
{
- if (aEventType == EEventEnterKeyPressed || aEventType == EEventItemDoubleClicked /*EEventItemSingleClicked*/ )
+ if (aEventType == EEventEnterKeyPressed || aEventType == EEventItemSingleClicked )
{
iView->SaveSelectedL();
AppUi()->HandleCommandL(EAknSoftkeyCancel); // Exit app
--- a/emailuis/widget/emailwidgetsettings/src/emailwidgetsettingsmailboxes.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/widget/emailwidgetsettings/src/emailwidgetsettingsmailboxes.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -20,7 +20,7 @@
#include <aknsettingitemlist.h>
#include "emailtrace.h"
-#include "CFSMailClient.h"
+#include "cfsmailclient.h"
#include "emailwidgetsettingsmailboxes.h"
// ======== MEMBER FUNCTIONS ========
--- a/emailuis/widget/group/bld.inf Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/widget/group/bld.inf Fri Mar 12 15:41:14 2010 +0200
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008 - 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"
@@ -29,13 +29,15 @@
../hsps/00/manifest.dat /epoc32/data/Z/resource/homescreen/emailwidget/hsps/manifest.dat
../hsps/00/widgetconfiguration.xml /epoc32/data/Z/resource/homescreen/emailwidget/hsps/widgetconfiguration.xml
../hsps/00/emailwidgetconfiguration.dtd /epoc32/data/Z/resource/homescreen/emailwidget/hsps/emailwidgetconfiguration.dtd
-../xuikon/00/EW.o0000 /epoc32/data/Z/resource/homescreen/emailwidget/xuikon/EW.o0000
../xuikon/00/emailwidget.dat /epoc32/data/Z/resource/homescreen/emailwidget/xuikon/emailwidget.dat
../xuikon/00/emailwidget.css /epoc32/data/Z/resource/homescreen/emailwidget/xuikon/emailwidget.css
+../xuikon/37/emailwidget.css /epoc32/data/Z/resource/homescreen/emailwidget/xuikon/37/emailwidget.css
+../xuikon/50/emailwidget.css /epoc32/data/Z/resource/homescreen/emailwidget/xuikon/50/emailwidget.css
+../xuikon/57/emailwidget.css /epoc32/data/Z/resource/homescreen/emailwidget/xuikon/57/emailwidget.css
+../xuikon/94/emailwidget.css /epoc32/data/Z/resource/homescreen/emailwidget/xuikon/94/emailwidget.css
../xuikon/00/emailwidget.xml /epoc32/data/Z/resource/homescreen/emailwidget/xuikon/emailwidget.xml
// Variant creation still disabled (see also emailwidget.dat file)
//../xuikon/00/emailwidget.dtd /epoc32/data/Z/resource/homescreen/emailwidget/xuikon/emailwidget.dtd
-/epoc32/s60/icons/qgn_menu_cmail.svg /epoc32/data/Z/resource/homescreen/emailwidget/hsps/qgn_menu_cmail.svg
// Support for S60 localization
//*****************************
@@ -60,7 +62,12 @@
OPTION DTD_TYPE widget
OPTION LOC_FOLDERS yes
END
-
+// Email widget Home Screen content list icon
+START EXTENSION s60/mifconv
+OPTION TARGETFILE ${EPOCROOT}/epoc32/data/Z/resource/homescreen/emailwidget/hsps/emailwidgeticon.mif
+OPTION HEADERFILE emailwidgeticon.mbg
+OPTION SOURCES -c16,8 qgn_menu_cmail.svg
+END
PRJ_MMPFILES
--- a/emailuis/widget/hsps/00/manifest.dat Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/widget/hsps/00/manifest.dat Fri Mar 12 15:41:14 2010 +0200
@@ -16,7 +16,7 @@
<configurationuid>0x2001E272</configurationuid>
<!-- description -->
- <filelogo>qgn_menu_cmail.svg</filelogo>
+ <filelogo>mif(emailwidgeticon.mif 16384 16385)</filelogo>
<fullname>&qtn_hscr_email;</fullname>
<description>&qtn_hs_widget_mail_description;</description>
<shortname>EW</shortname>
@@ -34,6 +34,6 @@
</localization>
<!-- Instances of widget per one homescreen -->
- <multiinstance>3</multiinstance>
+ <multiinstance>5</multiinstance>
</package>
\ No newline at end of file
--- a/emailuis/widget/rom/emailwidget_resources.iby Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/widget/rom/emailwidget_resources.iby Fri Mar 12 15:41:14 2010 +0200
@@ -32,7 +32,7 @@
// ...
data=ZPRIVATE\200159c0\install\emailwidget\hsps\00\emailwidgetconfiguration.dtd \private\200159c0\install\emailwidget\hsps\00\emailwidgetconfiguration.dtd
-data=ZPRIVATE\200159c0\install\emailwidget\hsps\00\qgn_menu_cmail.svg \private\200159c0\install\emailwidget\hsps\00\qgn_menu_cmail.svg
+data=ZPRIVATE\200159c0\install\emailwidget\hsps\00\emailwidgeticon.mif \private\200159c0\install\emailwidget\hsps\00\emailwidgeticon.mif
#endif //FF_EMAIL_FRAMEWORK
#endif //FF_CMAIL_INTEGRATION
--- a/emailuis/widget/xuikon/00/emailwidget.css Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/widget/xuikon/00/emailwidget.css Fri Mar 12 15:41:14 2010 +0200
@@ -1,110 +1,133 @@
widget#EmailWidget
{
- display: block;
- width: 100%;
- height: 12.5u; /* From layout data: Based on 3-row widget height */
- direction: ltr;
+ display: block;
+ width: 100%;
+ height: 12.5u; /* From layout data: Based on 3-row widget height */
+ direction: ltr;
}
box#SetupContainer
{
- display: block;
- padding-top: 0.5u; /* From layout data */
- padding-bottom: 0.5u; /* From layout data */
- padding-left: 0.5u; /* From layout data */
- padding-right: 0.5u; /* From layout data */
- width: 100%;
- height: 100%;
- direction: ltr;
- block-progression: tb;
- nav-index: appearance;
+ display: block;
+ padding-top: 0.5u; /* From layout data */
+ padding-bottom: 0.5u; /* From layout data */
+ padding-left: 0.5u; /* From layout data */
+ padding-right: 0.5u; /* From layout data */
+ width: 100%;
+ height: 100%;
+ direction: ltr;
+ block-progression:tb;
+ nav-index: appearance;
}
box#MailsContainer
{
display: block;
- padding-top: 0.5u; /* From layout data */
- padding-bottom: 0.5u; /* From layout data */
- padding-left: 0.5u; /* From layout data */
- padding-right: 0.5u; /* From layout data */
- width: 100%;
- height: 100%;
- direction: ltr;
- block-progression: tb;
- nav-index: appearance;
+ padding-top: 0.5u; /* From layout data */
+ padding-bottom: 0.5u; /* From layout data */
+ padding-left: 0.5u; /* From layout data */
+ padding-right: 0.5u; /* From layout data */
+ width: 100%;
+ height: 100%;
+ direction: ltr;
+ block-progression:tb;
+ nav-index: appearance;
}
box.row_container
{
- display: block;
- padding-top: 0.25u; /* From layout data */
- padding-bottom: 0u; /* From layout data: Padding between rows is included in top padding */
- width: auto; /* From layout data: Fit to screen */
- height: 3.5u; /* From layout data: Height inside padding */
- block-progression: lr;
- direction: ltr;
- nav-index:auto;
+ display: block;
+ padding-top: 0.25u; /* From layout data */
+ padding-bottom: 0u; /* From layout data: Padding between rows is included in top padding */
+ width: auto; /* From layout data: Fit to screen */
+ height: 3.5u; /* From layout data: Height inside padding */
+ block-progression:lr;
+ direction: ltr;
+ nav-index: auto;
+}
+
+box.setup_row_2_container
+{
+ display: block;
+ padding-top: 1u;
+ padding-bottom: 1u;
+ padding-left: 18u;
+ width: auto;
+ height: auto;
+ block-progression:lr;
+ direction: ltr;
+}
+
+box.setup_brand_container
+{
+ display: block;
+ width: 6u;
+ height: 6u;
+ block-progression:lr;
+ direction: ltr;
}
box.image_container
{
display: block;
- padding-left: 0.5u; /* From layout data */
- padding-right: 0.5u; /* From layout data */
- width: 3.5u; /* From layout data */
- height: auto; /* From layout data: Fills whole row_container height (3.5u) */
- block-progression: lr;
- direction: ltr;
-}
-
-box.text_field_container
-{
- display: block;
- padding-left: 0.5u; /* From layout data */
- padding-right: 0.5u; /* From layout data */
- width: auto; /* From layout data: This box is in the middle and width depends on available space */
- height: auto; /* From layout data: Fills whole row_container height (3.5u) */
- block-progression: lr;
- direction: ltr;
-}
-
-box.mail_time_container
-{
- display: block;
- padding-left: 0.5u; /* From layout data */
- padding-right: 0.5u; /* From layout data */
- width: 13.23u; /* From layout data: 12h clock = 3.78 * font-size (24h clock = 2.20 * font-size) */
- height: auto;
- block-progression: lr;
- direction: ltr;
+ padding-left: 0.5u; /* From layout data */
+ padding-right: 0.5u; /* From layout data */
+ width: 3.5u; /* From layout data */
+ height: auto; /* From layout data: Fills whole row_container height (3.5u) */
+ block-progression:lr;
+ direction: ltr;
}
box.indicator_image_container
{
display: block;
- padding-left: 0.5u;
- padding-right: 0.5u;
- width: 3.5u;
- height: 3.5u;
- block-progression: lr;
+ padding-left: 0.5u;
+ padding-right: 0.5u;
+ width: 3.5u;
+ height: 3.5u;
+ block-progression:lr;
direction: ltr;
}
text
{
- display: block;
- position: static;
- text-align: left;
- font-family: EAknLogicalFontSecondaryFont; /* LAF font */
- font-size: 3.5u; /* LAF font-size */
+ display: block;
+ position: static;
+ text-align: left;
+ font-family: EAknLogicalFontSecondaryFont; /* LAF font */
+ font-size: 3.5u; /* LAF font-size */
_s60-text-valign: top; /* Set vertical text position correctly */
- color:"SKIN(268458534 13056 74)"; /* LAF color */
- direction: ltr;
+ color: "SKIN(268458534 13056 74)"; /* LAF color */
+ direction: ltr;
+ width: auto; /* From layout data: This box is in the middle and width depends on available space */
+ height: auto; /* From layout data: Fills whole row_container height (3.5u) */
+}
+
+text.text_mailbox
+{
+ padding-left: 0.5u;
+ width: auto;
+}
+
+text.sender_text
+{
+ padding-left: 0.5u; /* From layout data */
+ width: 30%;
+}
+
+text.subject_text
+{
+ padding-left: 0.5u; /* From layout data */
+ width: auto;
}
text.time_text
{
- text-align: right;
+ text-align: right;
+ width: adaptive;
+ height: auto;
+ padding-right: 0.5u;
+ padding-left: 0.2u;
}
image
--- a/emailuis/widget/xuikon/00/emailwidget.xml Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/widget/xuikon/00/emailwidget.xml Fri Mar 12 15:41:14 2010 +0200
@@ -32,6 +32,32 @@
</text>
</box>
</box>
+ <box id="setup_row_2" class="setup_row_2_container">
+ <box id="setup_brand_1" class="setup_brand_container">
+ <image id="setup_brand_1_id" sizeaware="true">
+ <configuration name="content_type" value="ct_setup_brand_icon_1"/>
+ <property class="0x2001F413:CMailWidget/key_setup_brand_icon_1"/>
+ </image>
+ </box>
+ <box id="setup_brand_2" class="setup_brand_container">
+ <image id="setup_brand_2_id" sizeaware="true">
+ <configuration name="content_type" value="ct_setup_brand_icon_2"/>
+ <property class="0x2001F413:CMailWidget/key_setup_brand_icon_2"/>
+ </image>
+ </box>
+ <box id="setup_brand_3" class="setup_brand_container">
+ <image id="setup_brand_3_id" sizeaware="true">
+ <configuration name="content_type" value="ct_setup_brand_icon_3"/>
+ <property class="0x2001F413:CMailWidget/key_setup_brand_icon_3"/>
+ </image>
+ </box>
+ <box id="setup_brand_4" class="setup_brand_container">
+ <image id="setup_brand_4_id" sizeaware="true">
+ <configuration name="content_type" value="ct_setup_brand_icon_4"/>
+ <property class="0x2001F413:CMailWidget/key_setup_brand_icon_4"/>
+ </image>
+ </box>
+ </box>
</box>
<!-- MAILS VIEW -->
@@ -53,7 +79,7 @@
</image>
</box>
<box id="TextField1" class="text_field_container">
- <text id="Text" class="text">
+ <text id="Text" class="text_mailbox">
<configuration name="content_type" value="ct_body_text_1"/>
<property class="0x2001F413:CMailWidget/key_body_text_1"/>
<!-- Display SETUP or MAILS container -->
@@ -80,18 +106,18 @@
<property class="0x2001F413:CMailWidget/key_mailbox_icons_2"/>
</image>
</box>
- <box id="TextField2" class="text_field_container">
- <text id="Text2" class="text">
- <configuration name="content_type" value="ct_body_text_2"/>
- <property class="0x2001F413:CMailWidget/key_body_text_2"/>
- </text>
- </box>
- <box id="MailboxTime2" class="mail_time_container">
- <text id="time_id_2" class="time_text">
- <configuration name="content_type" value="ct_time_2"/>
- <property class="0x2001F413:CMailWidget/key_time_2"/>
- </text>
- </box>
+ <text id="sender_id_2" class="sender_text">
+ <configuration name="content_type" value="ct_body_text_2"/>
+ <property class="0x2001F413:CMailWidget/key_body_text_2"/>
+ </text>
+ <text id="subject_id_2" class="subject_text">
+ <configuration name="content_type" value="ct_subject_text_2"/>
+ <property class="0x2001F413:CMailWidget/key_subject_text_2"/>
+ </text>
+ <text id="time_id_2" class="time_text">
+ <configuration name="content_type" value="ct_time_2"/>
+ <property class="0x2001F413:CMailWidget/key_time_2"/>
+ </text>
</box>
<!-- Widget row 3 -->
@@ -102,18 +128,18 @@
<property class="0x2001F413:CMailWidget/key_mailbox_icons_3"/>
</image>
</box>
- <box id="TextField3" class="text_field_container">
- <text id="Text3" class="text">
- <configuration name="content_type" value="ct_body_text_3"/>
- <property class="0x2001F413:CMailWidget/key_body_text_3"/>
- </text>
- </box>
- <box id="MailboxTime3" class="mail_time_container">
- <text id="time_id_3" class="time_text">
- <configuration name="content_type" value="ct_time_3"/>
- <property class="0x2001F413:CMailWidget/key_time_3"/>
- </text>
- </box>
+ <text id="sender_id_3" class="sender_text">
+ <configuration name="content_type" value="ct_body_text_3"/>
+ <property class="0x2001F413:CMailWidget/key_body_text_3"/>
+ </text>
+ <text id="subject_id_3" class="subject_text">
+ <configuration name="content_type" value="ct_subject_text_3"/>
+ <property class="0x2001F413:CMailWidget/key_subject_text_3"/>
+ </text>
+ <text id="time_id_3" class="time_text">
+ <configuration name="content_type" value="ct_time_3"/>
+ <property class="0x2001F413:CMailWidget/key_time_3"/>
+ </text>
</box>
</box>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/emailuis/widget/xuikon/37/emailwidget.css Fri Mar 12 15:41:14 2010 +0200
@@ -0,0 +1,136 @@
+widget#EmailWidget
+{
+ display: block;
+ width: 100%;
+ height: 12.5u; /* From layout data: Based on 3-row widget height */
+ direction: ltr;
+}
+
+box#SetupContainer
+{
+ display: block;
+ padding-top: 0.5u; /* From layout data */
+ padding-bottom: 0.5u; /* From layout data */
+ padding-left: 0.5u; /* From layout data */
+ padding-right: 0.5u; /* From layout data */
+ width: 100%;
+ height: 100%;
+ direction: ltr;
+ block-progression:tb;
+ nav-index: appearance;
+}
+
+box#MailsContainer
+{
+ display: block;
+ padding-top: 0.5u; /* From layout data */
+ padding-bottom: 0.5u; /* From layout data */
+ padding-left: 0.5u; /* From layout data */
+ padding-right: 0.5u; /* From layout data */
+ width: 100%;
+ height: 100%;
+ direction: ltr;
+ block-progression:tb;
+ nav-index: appearance;
+}
+
+box.row_container
+{
+ display: block;
+ padding-top: 0.25u; /* From layout data */
+ padding-bottom: 0u; /* From layout data: Padding between rows is included in top padding */
+ width: auto; /* From layout data: Fit to screen */
+ height: 3.5u; /* From layout data: Height inside padding */
+ block-progression:lr;
+ direction: rtl;
+ nav-index: auto;
+}
+
+box.setup_row_2_container
+{
+ display: block;
+ padding-top: 1u;
+ padding-bottom: 1u;
+ padding-right: 18u;
+ width: auto;
+ height: auto;
+ block-progression:lr;
+ direction: rtl;
+}
+
+box.setup_brand_container
+{
+ display: block;
+ width: 6u;
+ height: 6u;
+ block-progression:lr;
+ direction: ltr;
+}
+
+box.image_container
+{
+ display: block;
+ padding-left: 0.5u; /* From layout data */
+ padding-right: 0.5u; /* From layout data */
+ width: 3.5u; /* From layout data */
+ height: auto; /* From layout data: Fills whole row_container height (3.5u) */
+ block-progression:lr;
+ direction: ltr;
+}
+
+box.indicator_image_container
+{
+ display: block;
+ padding-left: 0.5u;
+ padding-right: 0.5u;
+ width: 3.5u;
+ height: 3.5u;
+ block-progression:lr;
+ direction: ltr;
+}
+
+text
+{
+ display: block;
+ position: static;
+ text-align: right;
+ font-family: EAknLogicalFontSecondaryFont; /* LAF font */
+ font-size: 3.5u; /* LAF font-size */
+ _s60-text-valign: top; /* Set vertical text position correctly */
+ color: "SKIN(268458534 13056 74)"; /* LAF color */
+ direction: ltr;
+ width: auto; /* From layout data: This box is in the middle and width depends on available space */
+ height: auto; /* From layout data: Fills whole row_container height (3.5u) */
+}
+
+text.text_mailbox
+{
+ padding-left: 0.5u;
+ width: auto;
+}
+
+text.sender_text
+{
+ padding-left: 0.5u; /* From layout data */
+ width: 30%;
+}
+
+text.subject_text
+{
+ padding-left: 0.5u; /* From layout data */
+ width: auto;
+}
+
+text.time_text
+{
+ text-align: left;
+ width: adaptive;
+ height: auto;
+ padding-right: 0.5u;
+ padding-left: 0.2u;
+}
+
+image
+{
+ _s60-aspect-ratio:preserve;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/emailuis/widget/xuikon/50/emailwidget.css Fri Mar 12 15:41:14 2010 +0200
@@ -0,0 +1,136 @@
+widget#EmailWidget
+{
+ display: block;
+ width: 100%;
+ height: 12.5u; /* From layout data: Based on 3-row widget height */
+ direction: ltr;
+}
+
+box#SetupContainer
+{
+ display: block;
+ padding-top: 0.5u; /* From layout data */
+ padding-bottom: 0.5u; /* From layout data */
+ padding-left: 0.5u; /* From layout data */
+ padding-right: 0.5u; /* From layout data */
+ width: 100%;
+ height: 100%;
+ direction: ltr;
+ block-progression:tb;
+ nav-index: appearance;
+}
+
+box#MailsContainer
+{
+ display: block;
+ padding-top: 0.5u; /* From layout data */
+ padding-bottom: 0.5u; /* From layout data */
+ padding-left: 0.5u; /* From layout data */
+ padding-right: 0.5u; /* From layout data */
+ width: 100%;
+ height: 100%;
+ direction: ltr;
+ block-progression:tb;
+ nav-index: appearance;
+}
+
+box.row_container
+{
+ display: block;
+ padding-top: 0.25u; /* From layout data */
+ padding-bottom: 0u; /* From layout data: Padding between rows is included in top padding */
+ width: auto; /* From layout data: Fit to screen */
+ height: 3.5u; /* From layout data: Height inside padding */
+ block-progression:lr;
+ direction: rtl;
+ nav-index: auto;
+}
+
+box.setup_row_2_container
+{
+ display: block;
+ padding-top: 1u;
+ padding-bottom: 1u;
+ padding-right: 18u;
+ width: auto;
+ height: auto;
+ block-progression:lr;
+ direction: rtl;
+}
+
+box.setup_brand_container
+{
+ display: block;
+ width: 6u;
+ height: 6u;
+ block-progression:lr;
+ direction: ltr;
+}
+
+box.image_container
+{
+ display: block;
+ padding-left: 0.5u; /* From layout data */
+ padding-right: 0.5u; /* From layout data */
+ width: 3.5u; /* From layout data */
+ height: auto; /* From layout data: Fills whole row_container height (3.5u) */
+ block-progression:lr;
+ direction: ltr;
+}
+
+box.indicator_image_container
+{
+ display: block;
+ padding-left: 0.5u;
+ padding-right: 0.5u;
+ width: 3.5u;
+ height: 3.5u;
+ block-progression:lr;
+ direction: ltr;
+}
+
+text
+{
+ display: block;
+ position: static;
+ text-align: right;
+ font-family: EAknLogicalFontSecondaryFont; /* LAF font */
+ font-size: 3.5u; /* LAF font-size */
+ _s60-text-valign: top; /* Set vertical text position correctly */
+ color: "SKIN(268458534 13056 74)"; /* LAF color */
+ direction: ltr;
+ width: auto; /* From layout data: This box is in the middle and width depends on available space */
+ height: auto; /* From layout data: Fills whole row_container height (3.5u) */
+}
+
+text.text_mailbox
+{
+ padding-left: 0.5u;
+ width: auto;
+}
+
+text.sender_text
+{
+ padding-left: 0.5u; /* From layout data */
+ width: 30%;
+}
+
+text.subject_text
+{
+ padding-left: 0.5u; /* From layout data */
+ width: auto;
+}
+
+text.time_text
+{
+ text-align: left;
+ width: adaptive;
+ height: auto;
+ padding-right: 0.5u;
+ padding-left: 0.2u;
+}
+
+image
+{
+ _s60-aspect-ratio:preserve;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/emailuis/widget/xuikon/57/emailwidget.css Fri Mar 12 15:41:14 2010 +0200
@@ -0,0 +1,136 @@
+widget#EmailWidget
+{
+ display: block;
+ width: 100%;
+ height: 12.5u; /* From layout data: Based on 3-row widget height */
+ direction: ltr;
+}
+
+box#SetupContainer
+{
+ display: block;
+ padding-top: 0.5u; /* From layout data */
+ padding-bottom: 0.5u; /* From layout data */
+ padding-left: 0.5u; /* From layout data */
+ padding-right: 0.5u; /* From layout data */
+ width: 100%;
+ height: 100%;
+ direction: ltr;
+ block-progression:tb;
+ nav-index: appearance;
+}
+
+box#MailsContainer
+{
+ display: block;
+ padding-top: 0.5u; /* From layout data */
+ padding-bottom: 0.5u; /* From layout data */
+ padding-left: 0.5u; /* From layout data */
+ padding-right: 0.5u; /* From layout data */
+ width: 100%;
+ height: 100%;
+ direction: ltr;
+ block-progression:tb;
+ nav-index: appearance;
+}
+
+box.row_container
+{
+ display: block;
+ padding-top: 0.25u; /* From layout data */
+ padding-bottom: 0u; /* From layout data: Padding between rows is included in top padding */
+ width: auto; /* From layout data: Fit to screen */
+ height: 3.5u; /* From layout data: Height inside padding */
+ block-progression:lr;
+ direction: rtl;
+ nav-index: auto;
+}
+
+box.setup_row_2_container
+{
+ display: block;
+ padding-top: 1u;
+ padding-bottom: 1u;
+ padding-right: 18u;
+ width: auto;
+ height: auto;
+ block-progression:lr;
+ direction: rtl;
+}
+
+box.setup_brand_container
+{
+ display: block;
+ width: 6u;
+ height: 6u;
+ block-progression:lr;
+ direction: ltr;
+}
+
+box.image_container
+{
+ display: block;
+ padding-left: 0.5u; /* From layout data */
+ padding-right: 0.5u; /* From layout data */
+ width: 3.5u; /* From layout data */
+ height: auto; /* From layout data: Fills whole row_container height (3.5u) */
+ block-progression:lr;
+ direction: ltr;
+}
+
+box.indicator_image_container
+{
+ display: block;
+ padding-left: 0.5u;
+ padding-right: 0.5u;
+ width: 3.5u;
+ height: 3.5u;
+ block-progression:lr;
+ direction: ltr;
+}
+
+text
+{
+ display: block;
+ position: static;
+ text-align: right;
+ font-family: EAknLogicalFontSecondaryFont; /* LAF font */
+ font-size: 3.5u; /* LAF font-size */
+ _s60-text-valign: top; /* Set vertical text position correctly */
+ color: "SKIN(268458534 13056 74)"; /* LAF color */
+ direction: ltr;
+ width: auto; /* From layout data: This box is in the middle and width depends on available space */
+ height: auto; /* From layout data: Fills whole row_container height (3.5u) */
+}
+
+text.text_mailbox
+{
+ padding-left: 0.5u;
+ width: auto;
+}
+
+text.sender_text
+{
+ padding-left: 0.5u; /* From layout data */
+ width: 30%;
+}
+
+text.subject_text
+{
+ padding-left: 0.5u; /* From layout data */
+ width: auto;
+}
+
+text.time_text
+{
+ text-align: left;
+ width: adaptive;
+ height: auto;
+ padding-right: 0.5u;
+ padding-left: 0.2u;
+}
+
+image
+{
+ _s60-aspect-ratio:preserve;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/emailuis/widget/xuikon/94/emailwidget.css Fri Mar 12 15:41:14 2010 +0200
@@ -0,0 +1,136 @@
+widget#EmailWidget
+{
+ display: block;
+ width: 100%;
+ height: 12.5u; /* From layout data: Based on 3-row widget height */
+ direction: ltr;
+}
+
+box#SetupContainer
+{
+ display: block;
+ padding-top: 0.5u; /* From layout data */
+ padding-bottom: 0.5u; /* From layout data */
+ padding-left: 0.5u; /* From layout data */
+ padding-right: 0.5u; /* From layout data */
+ width: 100%;
+ height: 100%;
+ direction: ltr;
+ block-progression:tb;
+ nav-index: appearance;
+}
+
+box#MailsContainer
+{
+ display: block;
+ padding-top: 0.5u; /* From layout data */
+ padding-bottom: 0.5u; /* From layout data */
+ padding-left: 0.5u; /* From layout data */
+ padding-right: 0.5u; /* From layout data */
+ width: 100%;
+ height: 100%;
+ direction: ltr;
+ block-progression:tb;
+ nav-index: appearance;
+}
+
+box.row_container
+{
+ display: block;
+ padding-top: 0.25u; /* From layout data */
+ padding-bottom: 0u; /* From layout data: Padding between rows is included in top padding */
+ width: auto; /* From layout data: Fit to screen */
+ height: 3.5u; /* From layout data: Height inside padding */
+ block-progression:lr;
+ direction: rtl;
+ nav-index: auto;
+}
+
+box.setup_row_2_container
+{
+ display: block;
+ padding-top: 1u;
+ padding-bottom: 1u;
+ padding-right: 18u;
+ width: auto;
+ height: auto;
+ block-progression:lr;
+ direction: rtl;
+}
+
+box.setup_brand_container
+{
+ display: block;
+ width: 6u;
+ height: 6u;
+ block-progression:lr;
+ direction: ltr;
+}
+
+box.image_container
+{
+ display: block;
+ padding-left: 0.5u; /* From layout data */
+ padding-right: 0.5u; /* From layout data */
+ width: 3.5u; /* From layout data */
+ height: auto; /* From layout data: Fills whole row_container height (3.5u) */
+ block-progression:lr;
+ direction: ltr;
+}
+
+box.indicator_image_container
+{
+ display: block;
+ padding-left: 0.5u;
+ padding-right: 0.5u;
+ width: 3.5u;
+ height: 3.5u;
+ block-progression:lr;
+ direction: ltr;
+}
+
+text
+{
+ display: block;
+ position: static;
+ text-align: right;
+ font-family: EAknLogicalFontSecondaryFont; /* LAF font */
+ font-size: 3.5u; /* LAF font-size */
+ _s60-text-valign: top; /* Set vertical text position correctly */
+ color: "SKIN(268458534 13056 74)"; /* LAF color */
+ direction: ltr;
+ width: auto; /* From layout data: This box is in the middle and width depends on available space */
+ height: auto; /* From layout data: Fills whole row_container height (3.5u) */
+}
+
+text.text_mailbox
+{
+ padding-left: 0.5u;
+ width: auto;
+}
+
+text.sender_text
+{
+ padding-left: 0.5u; /* From layout data */
+ width: 30%;
+}
+
+text.subject_text
+{
+ padding-left: 0.5u; /* From layout data */
+ width: auto;
+}
+
+text.time_text
+{
+ text-align: left;
+ width: adaptive;
+ height: auto;
+ padding-right: 0.5u;
+ padding-left: 0.2u;
+}
+
+image
+{
+ _s60-aspect-ratio:preserve;
+}
--- a/help/inc/cmail.hlp.hrh Fri Feb 19 22:37:30 2010 +0200
+++ b/help/inc/cmail.hlp.hrh Fri Mar 12 15:41:14 2010 +0200
@@ -9,7 +9,7 @@
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
-* Contributors:
+* Contributors: .
*
* Description:
*
--- a/ipsservices/ipssosaoplugin/src/IpsSosAOMboxLogic.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/ipsservices/ipssosaoplugin/src/IpsSosAOMboxLogic.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -762,7 +762,7 @@
//ask roaming settings from occ
cmManager.ReadGenConnSettingsL(OccSettings);
- if(OccSettings.iSeamlessnessVisitor == ECmCellularDataUsageDisabled && iIsRoaming)
+ if(OccSettings.iCellularDataUsageVisitor == ECmCellularDataUsageDisabled && iIsRoaming)
{
ret = EFalse;
}
--- a/ipsservices/ipssossettings/group/ipssossettings.mmp Fri Feb 19 22:37:30 2010 +0200
+++ b/ipsservices/ipssossettings/group/ipssossettings.mmp Fri Mar 12 15:41:14 2010 +0200
@@ -46,7 +46,7 @@
END
// Def file
-DEFFILE IPSSOSSETTINGS.DEF
+DEFFILE ipssossettings.def
// Path definition
SOURCEPATH ../src
--- a/ipsservices/ipssossettings/src/ipssetgwizardadapter.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/ipsservices/ipssossettings/src/ipssetgwizardadapter.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -43,6 +43,7 @@
//CONSTANTS
const TInt KMaxMailboxes = 10;
+const TInt KImapDefFoldersRetrieve = 50; // Default value for retrieve From other folders
// security enums in fs wizard cenrep cenrep
// Security protocol (0 = OFF, 1 = StartTLS, 2 = SSL/TLS)
@@ -382,6 +383,14 @@
else
{
aSetData.SetDownloadSizeL( CIpsSetData::EHeadersPlus, KIpsSetDataDefaultDownloadSizeKb );
+
+ TInt retImFolders = aSetData.RetrieveLimit(CIpsSetData::EImap4Folders); //TRetrieveLimit
+ if(retImFolders==-1)
+ {
+ TInt retPopInbox = aSetData.RetrieveLimit(CIpsSetData::EPop3Limit);
+ TInt retImInbox = aSetData.RetrieveLimit(CIpsSetData::EImap4Inbox);
+ aSetData.SetRetrieveLimit(retPopInbox,retImInbox,KImapDefFoldersRetrieve);
+ }
}
//</cmail>
aSetData.SetEmailAddressL( iEmailAddress );
--- a/meetingrequest/mrgui/mrfieldbuilderpluginextension/group/esmrfieldbuilderpluginextension.mmp Fri Feb 19 22:37:30 2010 +0200
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/group/esmrfieldbuilderpluginextension.mmp Fri Mar 12 15:41:14 2010 +0200
@@ -117,6 +117,7 @@
LIBRARY servicehandler.lib // for aiw
LIBRARY aiwdialdata.lib
LIBRARY pbk2commonui.lib
+LIBRARY pbk2rclengine.lib
LIBRARY ws32.lib //RWindowGroup
LIBRARY cntmodel.lib //contactitem
LIBRARY caleninterimutils2.lib
--- a/meetingrequest/mrgui/mrfieldbuilderpluginextension/inc/cesmrcontacthandler.h Fri Feb 19 22:37:30 2010 +0200
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/inc/cesmrcontacthandler.h Fri Mar 12 15:41:14 2010 +0200
@@ -22,9 +22,8 @@
#include <e32base.h>
#include <MVPbkSingleContactOperationObserver.h>
#include <AiwCommon.h>
-//<cmail>
-#include "cpbkxremotecontactlookupserviceuicontext.h"
-//</cmail>
+#include <cpbkxremotecontactlookupserviceuicontext.h>
+
#include "resmrstatic.h"
#include "mesmrclslistsobserver.h"
#include "cesmrcontactmanagerhandler.h"
@@ -162,7 +161,7 @@
MVPbkStoreContact* aContact );
void DoRemoteLookupL( const TDesC& aQueryString,
CPbkxRemoteContactLookupServiceUiContext::TResult& aResult,
- CPbkxRemoteContactLookupServiceUiContext::TMode aContext =
+ CPbkxRemoteContactLookupServiceUiContext::TMode aLookupMode =
CPbkxRemoteContactLookupServiceUiContext::EModeContactSelector );
CFSMailBox& DelayedMailBoxL();
--- a/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrcontacthandler.cpp Fri Feb 19 22:37:30 2010 +0200
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrcontacthandler.cpp Fri Mar 12 15:41:14 2010 +0200
@@ -34,9 +34,8 @@
#include <MVPbkContactLink.h>
//Remote Contact Lookup
-//<cmail>
-#include "cpbkxremotecontactlookupenv.h"
-#include <cntitem.h>
+#include <cpbk2remotecontactlookupaccounts.h>
+#include <pbk2remotecontactlookupfactory.h>
#include <CPbk2SortOrderManager.h>
// Aiw launcher
@@ -47,7 +46,6 @@
//FS Email framework
#include "cfsmailbox.h"
-//</cmail>
//MRUI
#include <esmrgui.rsg>
@@ -614,34 +612,24 @@
//
void CESMRContactHandler::DoRemoteLookupL( const TDesC& aQueryString,
CPbkxRemoteContactLookupServiceUiContext::TResult& aResult,
- CPbkxRemoteContactLookupServiceUiContext::TMode aContext )
+ CPbkxRemoteContactLookupServiceUiContext::TMode aLookupMode )
{
FUNC_LOG;
TUid protocolUid = TUid::Null();
- TUint accountId = 0;
-
- DelayedMailBoxL().GetRCLInfo( protocolUid, accountId );
- const TPbkxRemoteContactLookupProtocolAccountId KAccountId( protocolUid, accountId );
-
- CPbkxRemoteContactLookupEnv* env = CPbkxRemoteContactLookupEnv::NewL();
- CleanupStack::PushL( env );
-
- MPbkxRemoteContactLookupServiceUi* serviceUi = env->ServiceUiL();
+ TUint accountUid = 0;
+ DelayedMailBoxL().GetRCLInfo( protocolUid, accountUid );
+ const TPbkxRemoteContactLookupProtocolAccountId accountId =
+ TPbkxRemoteContactLookupProtocolAccountId( protocolUid, accountUid );
- // If you want test with RCL dummyContactDatabase, KAccountId = serviceUi->DefaultAccountIdL();
- MPbkxRemoteContactLookupServiceUi::TContextParams params = { KAccountId, aContext };
-
- CPbkxRemoteContactLookupServiceUiContext* ctx( NULL );
- TRAPD( error, ctx = serviceUi->NewContextL( params ) );
+ CPbkxRemoteContactLookupServiceUiContext::TContextParams params =
+ { accountId, aLookupMode };
- User::LeaveIfError( error );
-
- CleanupStack::PushL( ctx );
+ CPbkxRemoteContactLookupServiceUiContext* context =
+ Pbk2RemoteContactLookupFactory::NewContextL( params );
+ CleanupStack::PushL( context );
- ctx->ExecuteL( aQueryString, aResult );
-
- CleanupStack::PopAndDestroy( ctx );
- CleanupStack::PopAndDestroy( env );
+ context->ExecuteL( aQueryString, aResult );
+ CleanupStack::PopAndDestroy( context );
}
// -----------------------------------------------------------------------------