diff -r 000000000000 -r 8466d47a6819 emailservices/emailserver/cmailhandlerplugin/inc/cmailcpsif.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailservices/emailserver/cmailhandlerplugin/inc/cmailcpsif.h Thu Dec 17 08:39:21 2009 +0200 @@ -0,0 +1,249 @@ +/* +* Copyright (c) 2008 - 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: handles interface to LIW and Content Publishing Service +* +*/ + + +#ifndef CMAILCPSIF_H_ +#define CMAILCPSIF_H_ + +// LIW interface +#include +#include +#include +#include +#include + +#include "cmailcpshandler.h" +#include "cmailcpsifconsts.h" + +/** + * CMail ContentPublishingService interface class + * Class implementing interface towards LIW FW and Content Publishing Service + * + * @lib fsmailserver.exe + * @since S60 v5.1 + */ +NONSHARABLE_CLASS( CMailCpsIf ) : public CBase, public MLiwNotifyCallback + { +public: + /** + * Two-phased constructor. + */ + static CMailCpsIf* NewL( CMailCpsHandler* aMailCpsHandler ); + + /** + * Destructor. + */ + ~CMailCpsIf(); + + /** + * Publishes setup text and action to launch setup wizard + */ + void PublishSetupWizardL(TInt instance); + + /** + * Publishes mailbox name to widget and action to launch CMail UI + * @param aRowNumber specifies the row on widget UI + * @param aMailboxName contains name of the mailbox + */ + void PublishActiveMailboxNameL( const TInt aInstance, + const TInt aRowNumber, + const TDesC& aMailboxName, + const TInt aMailBoxCount, + TFSMailMsgId aMailBoxId, + TFSMailMsgId aFolderId ); + + /** + * Resets mailbox name from widget + * @param aRowNumber specifies the row on widget UI + */ +// void ResetActiveMailboxNameL( const TInt aRowNumber ); + + /** + * Publishes unseen or outbox icon + */ + void PublishIndicatorIconL( const TInt aInstance, + const TInt aRowNumber, + const TInt aIcon ); + + /** + * + */ + void PublishMailboxIconL( const TInt aInstance, const TInt aRowNumber, const TInt aIcon, TFSMailMsgId aMailBoxId ); + + /** + * + */ + void PublishMailDetailL( + const TInt aInstance, + const TInt aRowNumber, + const TDesC& aSender, + TWidgetMailDetails aDetail); + + /** + * Resets mail header data + * @param aRowNumber specifies the row on widget UI + */ + void ResetMessageL( TInt aRowNumber ); + + /** + * + */ + void PublisherRegisteryActionL(); + + /** + * + */ + void RegisterForObserverL(); + + /** + * + */ + void UnRegisterForObserverL(); + + /** + * + */ + TInt HandleNotifyL( + TInt aErrorCode, + TInt aEventId, + CLiwGenericParamList& aEventParamList, + const CLiwGenericParamList& aInParamList ); + + /** + * + */ + TBool PublisherStatusL(const CLiwGenericParamList& aEventParamList); + + /** + * + */ + TBool AllowedToPublish( TInt aWidgetInstance ); + + /** + * Sets configuration data to publisher interface + * CpsIf uses this + * @param aRowNumber specifies the row on widget UI + */ + void SetConfiguration( const TInt32 aConfigData ); + + /** + * + */ + TInt GetWidgetInstanceCount(); + +private: + + CMailCpsIf( CMailCpsHandler* aMailCpsHandler ); + void ConstructL(); + + /** + * adds resource file + */ + void CMailCpsIf::AllocateResourcesL(); + + /** + * initializes the LIW IF + * @return instance of LIW IF + */ + MLiwInterface* GetMessagingInterfaceL( ); + + /** + * Gets published item's ID from LIW. Id is later used e.g. when reseting values + * @param aInParamList parameter list returned from LIW IF + * @return Id + */ + TUint ExtractItemId( const CLiwGenericParamList& aInParamList ); + + /** + * Publishes descriptor + * @param aPublisherId id of the publisher + * @param aContentType content type of the published data + * @param aContentId content id of the published data + * @param aTextToAdd data to be published + * @param aKey key of the added descriptor + * @param aTrigger optional trigger tag + * @param aUid optional app uid (app to be launched) + * @return Id + */ + TUint PublishDescriptorL( + const TDesC& aPublisherId, + const TDesC& aContentType, + const TDesC& aContentId, + const TDesC& aTextToAdd, + const TDesC& aKey, + const TDesC8& aTrigger, + const TInt aMailBoxCount, + TFSMailMsgId aMailBoxId, + TFSMailMsgId aFolderId ); + + /** + * Publishes image + * @param aContentId + * @param aResult + * @param aBitmapId + * @param aBitmapMaskId + * @param aMailBoxId + */ + + void PublishImageL( + const TDesC& aContentId, + const TDesC& aContentType, + const TDesC8& aKey, + TInt aBitmapId, + TInt aBitmapMaskId, + TFSMailMsgId aMailBoxId ); + + /** + * Removes a published entity from Content Publishing Service + * @param aId of the published data + */ + void RemoveL( TUint aId ); + + /** + * + */ + TInt FindWidgetInstanceId(const TDesC& aContentId); +public: + // + RPointerArray iInstIdList; +private: + CMailCpsHandler* iMailCpsHandler; //uses + // LIW IF + MLiwInterface* iMsgInterface; + // LIW Service handler + CLiwServiceHandler* iServiceHandler; + // resource file offset + TInt iResourceFileOffset; + // UIDS of the published entities + TUint iMailboxNameUid; + // message count of a mailbox + TUint iMessageCountUid; + // row count + TUint iRowCountUid; + // message header details id + TUint iMsgUid; + // setup text and action id + 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; + }; + +#endif /*CMAILCPSIF_H_*/