wvuing/wvuiprocess/Inc/CCAInvitationPC.h
changeset 0 094583676ce7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wvuing/wvuiprocess/Inc/CCAInvitationPC.h	Thu Dec 17 08:41:52 2009 +0200
@@ -0,0 +1,277 @@
+/*
+* 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:  Represents the search data for UI
+*
+*/
+
+
+#ifndef CCAINVITATIONPC_H
+#define CCAINVITATIONPC_H
+
+
+// INCLUDES
+#include	"MCAInvitationPC.h"
+#include 	"MCAInviteObserver.h"
+//Platform includes
+#include	"e32base.h"
+
+//Forward Declaration
+class MCAInvitationObserverPC;
+class MCAChatInterface;
+class MCAStoredContacts;
+class MCAMainViewArrayPC;
+class MCAInvitation;
+class CCAEngine;
+class MCAInvite;
+//CLASS DECLARATION
+/**
+*  Invitation dialog  representation for the UI.
+*
+*  @lib wvuiprocessng.lib
+*  @since 3.2
+*/
+class CCAInvitationPC: public CBase,
+            public MCAInvitationPC,
+            public MCAInviteObserver
+
+    {
+
+    public:
+
+        /**
+         * Symbian Two Phase Constructor
+         *
+         */
+        static CCAInvitationPC* NewL( CCAEngine& aEngine, MCAChatInterface& aChatInterface );
+
+        /**
+         * Symbian Two Phase Constructor
+         *
+         */
+        void ConstructL( );
+        /**
+         * virtual destructor
+         */
+        virtual ~CCAInvitationPC( );
+
+    public:// From MCAInviteObserver
+
+        /**
+         * Gets called when invite event occurs.
+         * @param aEvent Type of event.
+         * @param aInvitation specifies the invitation message.
+         */
+        virtual void HandleInvitationEventL( TInviteEventType aEvent,
+                                             const MCAInvitation* aInvitation );
+
+        /**
+         * Gets called when we received response to our invitation
+         * @since 2.1
+         * @param aAcceptance Accepted or rejected
+         * @param aUserId User Id of the response sender
+         * @param aGroupName group name
+         * @param aResponse response text
+         */
+        virtual void HandleInvitationResponse( TBool aAcceptance,
+                                               const TDesC& aUserId,
+                                               const TDesC& aGroupName,
+                                               const TDesC& aResponse );
+    public://New Methods
+        /**
+         *
+         *
+         */
+        void RegisterObserver( MCAInvitationObserverPC* aObserver );
+
+        /**
+         *
+         *
+         */
+        void UnRegisterObserver();
+
+        /**
+         * Gets the const reference to the UserID of the give invitaton index
+         * @param aIndex: invitation index
+         */
+        const TDesC& InvitationUserIDL( TInt aIndex );
+
+        /**
+         * Gets the time this invite was received
+         * @param aIndex is the invitation index.
+         * @return Time and date of creation
+         */
+        TTime ReceivedAt( TInt aIndex );
+
+        /**
+         * Gets the invitation message.
+         * @param aIndex is the invitation index.
+         * @return Message.
+         */
+        const TDesC& Message( TInt aIndex );
+
+        /**
+         * Gets the group name.
+         * @return Group name.
+         */
+        const TDesC& GroupName( TInt aIndex );
+
+        /**
+         * Sets the active invitation index
+         */
+        void SetActiveInvitation( const TInt aIndex );
+
+        /**
+         * Gets the active invitation index
+         */
+        TInt GetActiveInvitationIndex( );
+
+
+        TBool IsInvitationUnread( TInt aIndex );
+
+        /**
+         * Set invitation as read.
+         * @param aIndex is the tabindex of
+         * the current active invitation
+         */
+        void SetInvitationAsReadL( TInt aIndex );
+
+        /**
+         * Maps the given tabindex to invitationindex
+         * in mainviewarraypc
+         * @return invitationindex
+         */
+        TInt GetInvitationIndex( TInt aTabIndex );
+
+        /**
+         * Returns the Count of Invitations.
+         */
+        TInt InvitationCount( );
+
+        /**
+         * Deletes the invitation
+         * @param aInvitationIndex: index of the
+         * invitation to be deleted
+         */
+        void DeleteInvitationL( TInt aInvitationIndex );
+
+        /**
+         * This is the reply to an invitation.
+         * Note that invitation gets removed by this call, so do not try to use
+         * it after calling this!!!
+         * @param aInvitationIndex is the invitation index in teh array.
+         * @param aInviteAccepted specifies if the invite was accepted or not.
+         * @param aResponse is the response
+         * @param aScreenName is our own screenname
+         */
+        void ReplyInvitationL( TInt aInvitationIndex,
+                               const TBool aInviteAccepted,
+                               const TDesC& aResponse,
+                               const TDesC& aScreenName );
+
+        /**
+         * Gets the buffer holding the reject reason
+         * This is stored in the engine side because the last written
+         * reason must be remembered
+         * @return The buffer to reject reason, which can be modified
+         */
+        HBufC* RejectReason();
+
+        /**
+         * Deletes the invitation at aIndex
+         * @param aIndex Index of the invitation to be deleted
+         */
+        void DeleteSingleListViewInvitationL( const TDesC& aInviteID/*TInt aIndex*/ );
+
+        /**
+        * Finds an invitation
+        * @param aWvId - contatc wv
+        * @param aInviteTime - Invite Time
+        * @return TInt - Index of the found invitation else -1
+        */
+        TInt FindInvitationIndex( const TDesC& aWvId, TTime aInviteTime );
+
+        /**
+        * Finds an invitation
+        * @param aInviteId: id of the invitation
+        * @return TInt - Index of the found invitation else -1
+        */
+        TInt FindInvitationIndex( const TDesC& aInviteId );
+
+        /**
+        * Unread Invites Counts
+           * return no of unread inviation
+        */
+        TInt UnreadInvitesCount() const;
+
+        /**
+        * Unresd Invitation Info
+           * return Invitation Id
+        */
+
+        const TDesC& UnresdInvitationInfo() ;
+        const TDesC& GetInviteID( TInt aInvitationIndex );
+
+        /**
+         * @param aIndex : invitation index
+        	* return identification of the sender of the invitation
+         */
+        TPtrC InvUserIdentificationL( TInt aIndex );
+    private:
+
+        /**
+         * default constructor
+         * @param
+         */
+        CCAInvitationPC( CCAEngine& aEngine, MCAChatInterface& aChatInterface );
+
+        /**
+         * Returns index for given invitation
+         * @param aInvitation
+         * @return index of invitation
+         */
+        TInt FindIndexForInvitation( const MCAInvitation* aInvitation ) const;
+
+        /**
+         * Deletes item from Invitationarray
+         * @param aIndex Item index
+         */
+        void Delete( TInt aIndex );
+    private:
+
+        //DoesNot own.
+        CCAEngine& iEngine;
+
+        MCAChatInterface& iChatInterface;
+
+        // Doesn't own. Handle to contacts interface
+        MCAStoredContacts* iContacts;
+
+        //Owns. Contact id
+        HBufC* iWvId;
+
+        //Doesnot own
+        MCAInvite& iInviteInterface;
+
+        //Owns. Maintains the invitations
+        RPointerArray<MCAInvitation> iInvitationArray;
+
+        TInt iCurrentActiveInvitation;
+
+        MCAInvitationObserverPC* iObserver;
+
+    };
+
+#endif      // CCAINVITATIONPC_H
+
+// End of File