diff -r 000000000000 -r 094583676ce7 wvuing/wvuiprocess/Inc/CCAGlobalNotificationObserverPC.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wvuing/wvuiprocess/Inc/CCAGlobalNotificationObserverPC.h Thu Dec 17 08:41:52 2009 +0200 @@ -0,0 +1,259 @@ +/* +* Copyright (c) 2006 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: Global interface for the UI to get notifications when theres a +* change in contact, list, invite, settings, conversation, group etc +* +*/ + + + +#ifndef CCAGLOBALNOTIFICATIONOBSERVERPC_H +#define CCAGLOBALNOTIFICATIONOBSERVERPC_H + +#include +//#include "TStorageManagerGlobals.h" + +#include "TEnumsPC.h" + +#include "MCAGlobalNotificationObserverPC.h" +#include "MCAStoredContactsObserver.h" +#include "MCAInviteObserver.h" +#include "MCASettingsObserver.h" +#include "MCAChatObserver.h" +#include "MCAMessageErrorObserver.h" + +class CCAEngine; +class MCAChatInterface; +class MCAContactListModel; +class MCAStoredContacts; +class MCASettings; +class MCAInvite; +class MCAMessage; +class MCAUiGlobalNotificationObserverPC; +class MCAMessageUtils; +// CLASS DECLARATION + +/** + * Interface for observer + * + * @lib wvuiprocessng.dll + * @since 3.2 + */ + +class CCAGlobalNotificationObserverPC: public CBase, + public MCAGlobalNotificationObserverPC, + public MCAStoredContactsObserver, + public MCAInviteObserver, + public MCASettingsObserver, + public MCAChatObserver, + public MCAMessageErrorObserver + { + + public: //Constructor and Destructors + /** + * construction + */ + void ConstructL(); + /** + * construction + * @param aContactListModel : a reference to the contact list model object at the chat engine + */ + static CCAGlobalNotificationObserverPC* NewL( + MCAContactListModel& aContactListModel, + MCAChatInterface& aChatInterface, + MCAInvite& aInviteInterface, + MCASettings& aSettingsInterface, + const MCAMessageUtils& aMessageUtils ); + /** + * destructor + */ + ~CCAGlobalNotificationObserverPC(); + public: + TEnumsPC::TCASettingValues ConvertToSettingsEnumsPC( TInt aStatus ); + + public://new functions, called from ccasyncchecker + + /* + * @see MCAGlobalNotificationObserverPC + */ + virtual TBool IsContactListsSyncDoneL(); + + /* + * @see MCAGlobalNotificationObserverPC + */ + virtual TBool IsValidListInterfaceL(); + + /* + * @see MCAGlobalNotificationObserverPC + */ + virtual TBool StoredContactsIsAllSynchronised( TBool& aFailed ); + + /* + * @see MCAGlobalNotificationObserverPC + */ + virtual TBool IsValidStoredContactsInterface(); + + public: //MCAChatObserver + /** + * Handle events. + * @param aEvent Event to handle. + * @param aMessage, Event occurred because of message + */ + virtual void HandleChatEvent( TChatEventType aEvent, MCAMessage* aMessage = NULL ); + + public: // MCAMessageErrorObserver + + /** + * Handle events. + * @param aMessage, Event occurred because of message + */ + virtual void HandleMessageError( TInt aError, MCAMessage* aMessage ); + + public: // MCAStoredContactsObserver + + /** + * Called when a contact is deleted. + * @param aId The ID of the deleted contact + * @param aFromPEC, ETrue, if event is coming from PEC + */ + virtual void HandleContactDelete( const TDesC& aContactId ); + + /** + * Called when a contact is added. + * @param aList. List for contact that was added. + * @param aContact The contact which was added + * @param aFromPEC, ETrue, if event is coming from PEC + */ + virtual void HandleAddition( MCAContactList& aList, MCAStoredContact& aContact ); + + /** + * Called when a contact or list is about to change, or has been changed. + * @param aList List that is changed. Can be NULL if contact is changed. + * @param aContact Contact that is changed. Can be NULL if list is changed + * @param aEventType The type of event: EStorageEventPreChange before + * the change (contact still has the old information), or + * EStorageEventPostChange after the change took place + * (contact has new information) + */ + virtual void HandleChange( MCAContactList* aList, MCAStoredContact* aContact, + TStorageManagerGlobals::TCAObserverEventType aEventType, + TBool aUserIdChanged ); + + public: // From MCAInviteObserver + + /** + * @see MCAInviteObserver + */ + virtual void HandleInvitationEventL( TInviteEventType aEvent, + const MCAInvitation* aInvitation ); + + /** + * @see MCAInviteObserver + */ + virtual void HandleInvitationResponse( TBool aAcceptance, + const TDesC& aUserId, + const TDesC& aGroupName, + const TDesC& aResponse ); + + + public: //From MCASettingsObserver + + /** + * HandleSettingsChangeL: To handle the change events in settings + * @see MCASettingsObserver + * @param aChangedSettingEnum: enumeration of the type of settings change + * @return void + */ + virtual void HandleSettingsChangeL( TInt aChangedSettingEnum ); + + public: //MCAUiGlobalNotificationObserverPC + /** + * Add the UI class as an observer for call backs + * @param aGlobalObserver: reference to the UI class which implements + * the MCAUiGlobalNotificationObserverPC interface + * @return void + */ + virtual void AddGlobalObserverL( MCAUiGlobalNotificationObserverPC* aGlobalObserver ); + + /** + * Add the UI class as an observer for call backs + * @param aGlobalObserver: reference to the UI class which implements + * the MCAUiGlobalNotificationObserverPC interface + * @return void + */ + virtual void RemoveGlobalObserver( MCAUiGlobalNotificationObserverPC* aGlobalObserver ); + + private: + /** + * Get the current WVID from the Message + * @param aMessage - Ptr to the message + * @return Reference to the wvid, if aMessage is Not NULL else + * returns KNullDesC + */ + const TDesC& GetWvId( MCAMessage* aMessage ); + + private: + /** + * default constructor + * @param aContactListModel : a reference to the contact list model object at the chat engine + */ + CCAGlobalNotificationObserverPC( + MCAContactListModel& aContactListModel, + MCAChatInterface& aChatInterface, + MCAInvite& aInviteObserver, + MCASettings& aSettingsInterface, + const MCAMessageUtils& aMessageUtils ); + + private: + + /* + * reference to the contact list model + */ + MCAContactListModel& iContactListModel; + + /* + * Reference to chat interface + */ + MCAChatInterface& iChatInterface; + + /** + * Reference to Invite Interface + */ + MCAInvite& iInviteInterface; + + /** + * Reference to Invite Interface + */ + MCASettings& iSettingsInterface; + + const MCAMessageUtils& iMessageUtils; + + /* + * reference to the contact list interface + */ + MCAStoredContacts* iContactInterface; + + + + /* we need to maintain the list of observers here.whenever any event is + * happening then we need call back the UI + */ + RPointerArray< MCAUiGlobalNotificationObserverPC > iGlobalNotificationObservers; + + + }; + +#endif // CCAGLOBALNOTIFICATIONOBSERVERPC_H + +// End of File