--- /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 <e32std.h>
+//#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