uiservicetab/vimpstcmdprocess/inc/cvimpstprocessarray.h
changeset 15 81eeb8c83ce5
parent 0 5e5d6b214f4f
--- a/uiservicetab/vimpstcmdprocess/inc/cvimpstprocessarray.h	Tue Feb 02 10:12:18 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,531 +0,0 @@
-/*
-* Copyright (c) 2008 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:  Array Process
-*
-*/
-
-
-#ifndef _CVIMPSTPROCESSARRAY_H
-#define _CVIMPSTPROCESSARRAY_H
-
-// INCLUDES
-#include <e32base.h>
-#include "mvimpstcmdhandler.h"
-#include "vimpstcmd.hrh"
-#include "mvimpststoragecontactsobserver.h"
-#include "mvimpstprocessarray.h"
-#include "tvimpstenums.h"
-#include "mvimpstengineimsubserviceeventobserver.h"
-#include "mvimpstenginepresencesubserviceeventobserver.h"
-#include <MVPbkStoreContact.h>
-
-// FORWARD DECLARATION
-class MVIMPSTProcessArrayItem;
-class MVIMPSTStorageContact;
-class MVIMPSTStorageContactList;
-class MVIMPSTStorageServiceView;
-class MVIMPSTProcessArrayObserver;
-class MVIMPSTStorageItemModel;
-class MVPbkContactLink;
-class MVPbkStoreContact;
-class MVIMPSTEngine;
-class CVIMPSTProcessFriendRequestItem;
-class CVIMPSTProcessUnknownContactItem;
-
-//  CLASS DECLARATION
-
-/**
- * Array Process.
- * Responsible for handling all contacts array
- * @lib vimpstcmdprocess.dll
- * @since 5.0
- */
-class CVIMPSTProcessArray : public CBase,
-	                        public MVIMPSTProcessArray,
-	                        public MVIMPSTStorageContactsObserver,
-	                        public MVIMPSTEngineIMSubServiceEventObserver,
-	                        public MVIMPSTEnginePresenceSubServiceEventObserver
-    {
-    friend class Cvimpstcmdprocess_utest;
-    public: // Construction and destruction
-
-        /**
-         * Creates a new instance of this class.
-         * @param aEngine, reference to engine.
-         * @return  A new instance of this class.
-         */
-         static CVIMPSTProcessArray* NewL(
-         					MVIMPSTEngine& aEngine);
-
-        /**
-         * Destructor.
-         */
-        ~CVIMPSTProcessArray();
-        
-    public: //form mvimpstchatobserver
-       /**
-        * @see MVIMPSTEngineIMSubServiceEventObserver.h
-        **/
-       void  HandleChatMessageEventL(TVIMPSTEnums::TIMEventType aEventType ,const TDesC& aSender );
-       
-            
-   	public:	
-		  /**
-	       * Observer Event for new add request
-	       * aRequester - requester for add request.
-	       */ 
-	       void  HandleAddRequestEventL(TVIMPSTEnums::TOperationType aType, const TDesC& aRequesterId,
-                                           const TDesC& aRequestorDisplayName );
-
-       
-    public : //from MVIMPSTProcessArray
-    	/**
-        * register for array call back
-        * @param aObserver:  to be added
-        */
-         void AddObserver(MVIMPSTProcessArrayObserver* aObserver)  ;
-                
-        /**
-        * unregister for array call back
-        * @param aObserver:  to be removed
-        */
-         void RemoveObserver() ;
-      
-       /**
-        * Count: Called by UI components to get total count of array 
-        * @return integer Count of array
-        */
-        virtual TInt Count() const;
-        
-        /**
-        * @return ETrue if presence service is enabled
-        */
-        TBool IsSubServiceSupportedL( TVIMPSTEnums::SubServiceType aType  ) const ;
-        
-        /**
-         * @return, ETrue if IM is supported
-         */
-        TBool IsIMSupported();
-        
-        /**
-         * @return, ETrue if Presence is supported
-         */
-        TBool IsPresenceSupported();
-        
-       /**
-        * GetType: Function to get the type of list item
-        * @param aIndex: index of the list item
-        * @return TEnumsPC::TItem: type of the list item as EContactItem, EOwnStatusItem etc
-        */
-	    virtual TVIMPSTEnums::TItem GetType(TInt aIndex) const;
-	    
-	    /**
-         * ResetArray: Function to reset and fill the array
-         */
-        void ResetArray();    	
-       
-       /**
-        * GetItemNameText: To get item name of each list item
-        * @param aIndex: Index of the list item whose name is to be returned
-        * @return TPtrC: Name of the list item
-        */
-	    virtual TPtrC GetItemNameText(TInt aIndex); 
-       
-       
-       /**
-        * SetLoginState: To set the loginstate.
-        * @param aLoginState: state of login
-        */
-        virtual void SetLoginStateL(TVIMPSTEnums::TVIMPSTRegistrationState aLoginState);
-
-		  
-       /**
-        * GetLoginState: To set the loginstate.
-        * @return  TVIMPSTRegistrationState, state of login
-        */
-        virtual TVIMPSTEnums::TVIMPSTRegistrationState GetLoginState();
-
-	   /**
-    	* @returns the VPBK Contact Link
-    	*/
-		MVPbkContactLink* ContactLink(TInt aIndex);
-		
-		
-	   /**
-	    * GetOnlineStatusL gets the status of given index. 
-	    * @param aIndex: Index of the item 
-    	* @returns the onlinestatus of given valid index.
-    	*/
-		TVIMPSTEnums::TOnlineStatus GetOnlineStatusL(TInt aIndex);
-		
-		/**
-         * Get the status text for the contact
-         * @param aIndex: Index of contact item
-		 * @return reference to the status text.
-         */
-		const TDesC& StatusTextL(TInt aIndex ) ;
-		
-		/**
-		 * From MVIMPSTProcessArray
-		 *
-		 */
-		void MapContactListPositions(RArray<TInt>& aPositionArray );		
-   	    /**
-         * IsMsgPending: To find if there are any pending messages to 
-         *				decide the icons for display
-         * @param aIndex: index of the list item
-         * @return bool: True if there are pending messages else false.
-         */
-        TBool IsMsgPending(TInt aIndex);
-        
-        /**
-         * ResetPendingMsg: To reset if there are any pending messages to 
-         *				decide the icons for display
-         * @param aIndex: index of the list item
-         */
-        void ResetPendingMsg(TInt aIndex);
-        
-          
-        /**
-         * Find any contact which id is aContactId
-         * @param aContactId, user id.
-         * @return ETrue if contact already existst.else EFlase.
-         */
-       TBool FindAnyContact( const TDesC& aContactId );
-       
-       /**
-         * Find any contact which id is aContactId
-         * @param aContactId, user id.
-         * @return ETrue if contact already existst.else EFlase.
-         */
-       TBool FindAnyContactServiceField( const TDesC& aContactId );
-       /**
-        * Find any friend request which id is aRequesterId
-        * @param aRequesterId, user id.
-        * @return ETrue if request already existst.else EFlase.
-        */
-       TBool FindAnyAddRequest( const TDesC& aRequesterId );
-       
-       /**
-        * @param aRequesterId, user id.
-        * @return ETrue if request already existst.else EFlase.
-        */
-       TBool IsContactBlocked( const TDesC& aRequesterId );
-           
-         /**
-         * check if already conversation opened
-         * @param aRecipientId, the selected user id with whom conversation is started
-         * @return ETrue if already exist else EFlase.
-         */
-        TBool IsConversationExistL(const TDesC& aRecipientId) ;
-        /**
-         * check if already conversation opened
-         * @param aRecipientId, the selected user id with whom conversation is started
-         * @return ETrue if already exist else EFlase.
-         */
-        TBool IsConversationExist(TInt aIndex);
-        
-         /**
-         * Find the index of contact with contact id as aContactId
-         * @param aContactId : id of contact whose index is to be found
-         * @return index of contact else KErrNotFounf if not found
-         */
-		TInt FindContactIndexL( const TDesC& aContactId ) ;
-     
-        /**
-        * GetItemNameText: To get item name of each list item
-        * @param aIndex, Index of the list item whose name is to be returned
-        * @return TPtrC, Name of the list item
-        */
-		TPtrC GetItemUserId(TInt aIndex);
-		  /**
-        * RemoveFriendRequest: To remove friend request from list.
-        * @param aIndex, Index of the list item to be removed.        
-        */
-         void RemoveFriendRequestL(const TDesC& aRequesterId);
-        /**
-         * Login user name of the own user from settings
-         * owener ship is transferred to the caller
-         * @return allocated HBufC: Login user name of the own user from settings
-         */
-         const TDesC& LoginUserIdFromStoreL() const;
-         
-         /**
-          * OwnAvatarIndex: Returns the  avatar index for the corresponding contact item
-          * This index is used to append the avatar in the UI.
-          * If  index is  ' 0 ', then it  means no avatar is set.
-          * 
-          * @return index of the own avatar
-          */
-         TInt OwnAvatarIndexL( ) ;
-         /**
-          * OwnAvatarContent: Returns the mime type of the avatar image for the conatct
-          * 
-          * If nothing  returns KNullDesC8
-          * @return  TDesC8& own avatar content
-          */
-         const TDesC8& OwnAvatarContentL( ) const ;
-        
-         /**
-          * SetOwnAvatarIndex: Sets the index for own avatar contact item
-          * @param aAvatarIndex: Index to be set
-          */
-         void SetOwnAvatarIndexL( TInt aAvatarIndex );
-         
-         /**
-          * AvatarMimeType: Returns the mime type of the avatar image for the conatct
-          * 
-          * If nothing  returns KNullDesC8
-          * @param aContactIndex : Index of the conatct item
-          * 
-          * @return  TDesC8& mime type of the avatar
-          */
-         const TDesC8& AvatarContent(TInt aContactIndex) ;
-		
-		 /**
-          * SetAvatarIndex: Sets the index for avatar for for the corresponding contact item
-          * 
-          * @param aContactIndex : Index of the conatct item
-          * @param aAvatarIndex: Index to be set
-          */
-         void SetAvatarIndex( TInt aContactIndex, TInt aAvatarIndex );
-         
-         /**
-          * AvatarIndex: Returns the  avatar index for the corresponding contact item
-          * This index is used to append the avatar in the UI.
-          * If  index is  ' 0 ', then it  means no avatar is set.
-          * 
-          * @param aContactIndex : Index of the conatct item
-          * 
-          * @return index of the own avatar
-          */
-         TInt AvatarIndex(TInt aContactIndex) ;
-         
-         /**
-         * from MVIMPSTProcessArray
-         * Return index of aContactId (considering friend request also.).
-         * @param aContactId, contact id for which index to be found.
-         * @return, Index of aContactId including friend request.
-         */
-         TInt GetSelectedItemIndex(const TDesC& aContactId); 
-         
-         /*
-          *  find and return the array item
-          */
-         MVIMPSTProcessArrayItem* FindArrayItem( const TDesC& aSenderId );
-         
-         /*
-          *  reset all pending and open flags to EFalse
-          */
-         void ResetOpenConversationPendingMsg();
-         
-         /*
-          * @aIndex, index for the listbox item whose descriptor is needed
-          * @return, the descriptor for the array item to be used by listbox
-          */
-         TPtrC16 GetFormattedString(TInt aIndex);
-
-         
-    public: // From MVIMPSTStorageContactsObserver
-       
-       
-        /**
-        * HandleChange: To handle the Chnage event from the MCAStoredContactsObserver
-        * @see MCAStoredContactsObserver
-        * @param aList: reference to the list at which a change has occured
-        * @param aContact:  reference to the contact at which a change has occured
-        * @param aEventType: TVIMPSTEnums::TCAObserverEventType,type of change event that has occured 
-        * @param aUserIdChanged, ETrue if userid has changed, else EFalse.
-        * @return void
-        */
-         void HandleStorageChangeL( TVIMPSTEnums::TVIMPSTStorgaeEventType aEventType,
-         							MVIMPSTStorageContactList* aList, 
-	        						MVIMPSTStorageContact* aContact,
-	        						TInt aContactIndex );
-        
-        
-    private: // Implementation
-    
-       /**
-        * Default constructor
-        * @param aEngine, reference to engine.
-        */
-      
-       CVIMPSTProcessArray( MVIMPSTEngine& aEngine );
-       
-      /**
-       * Second phase constructor
-       */ 
-       void ConstructL();
-               
-      /**
-       * FillItemL: fill up the individual item in the array
-       * @return void
-       **/
-       void FillItemL();
-	  /**
-       * FillOwnDataL: fill up fill the owndata item
-       * @return void
-       **/
-       TBool  FillOwnDataL();
-	   
-      /**
-       * FillArray: fill up the complete array
-       * @return void
-       **/
-       void FillArrayL();
-        
-       /**
-        * fill the unknown contact to main array
-        * @return void
-        **/
-       void FillUnknownContactsL();
-       /**
-        * FillAddRequestDataL: fill up the add request to array
-        * @return void
-        **/
-       void FillAddRequestDataL();
-      
-       /**
-        * remove all the unknown contacts from main array iItemArray,
-        * so that unknown contact can pesist till the session is entertainesd.
-        * @return void
-        **/
-       void RemoveUnKnownContacts();
-        /**
-         * RemoveAddRequestData: removes data from iItemArray,
-         * so that request can pesist till the reqest is entertainesd.
-         * @return void
-         **/
-       void RemoveAddRequestData();
-       
-       /**
-        * handlle the message which is from unknown buddy 
-        * @param aSenderId , Sender Id 
-        * @return void
-        **/
-       void DoHandleUnKnownContactMessageL( const TDesC& aSenderId ,TBool aIsMsgPending);
-       
-       /**
-        * get the all open chat and append unknown contacts
-        * @return void
-        **/
-       void GetAndCreateOpenChatListL();
-       
-       /**
-        * remove the item from invitation or unknown array if found
-        * @param aContactId :  conatct user Id
-        * @return ETrue if contact is removed
-        */
-       TBool RemoveFromUnknonOrInvitationListL( const TDesC& aContactId , TBool aBlocked )  ;
-       /**
-        * play the incoming message tone.
-        */
-       void PlayMsgBeepL();
-       
-       /**
-        * @return ETrue if unread message exist
-        */
-       TBool IsUnreadMessageExistsL(const TDesC& aRecipientId);
-       /**
-        * helper method for removing unknown contacts
-        * @return ETrue if contact is removed
-        */
-       TBool RemoveFromUnknonListL( const TDesC& aAddedUserId );
-       /**
-        * helper method for removing invitation contacts
-        * @return ETrue if contact is removed
-        */
-       TBool RemoveFromInvitationListL( const TDesC& aAddedUserId );
-       /**
-        * helper method for finding and marking as open chat
-        * @return ETrue if contact is find
-        */
-       TBool FindAndMarkContactAsOpenChat( const TDesC& aContactId, TBool aMesssagePending  );
-
-    private: // Data
-      
-      /**
-       * starting index of Owndata	, it's 0 as per ui spec
-       **/	
-	   TInt  iOwnDataIndex; 
-	   
-	  /**
-       * starting index of contacts	, it's 0 as per ui spec
-       **/
-	   TInt iContactListIndex;	
-	   
-       //Ref to the engine item for current service
-       MVIMPSTEngine& iEngine;
-
-      /**
-       * Flag to check whether own data added or not
-       **/
-       TBool iOwnDataAdded;
-       
-      /**
-	   * Owns. Buffer that hold's information about fetched item
-	   **/
- 	   HBufC* iData;
- 	   	
-
-      /**
-       * reference to the contact list interface
-       **/
-       MVIMPSTStorageServiceView* iContactInterface;
-       
-       // owned : take RPointerArray if nedded
-       MVIMPSTProcessArrayObserver* iProcessObservers;
-       
-      /**
-       * list of items here
-       **/
-       RPointerArray<MVIMPSTProcessArrayItem> iItemArray; 
-       
-      
-      /**
-       * reference to the contact list model
-       * not owned.
-       **/
-       MVIMPSTStorageItemModel* iContactListModel;
-       
-       //service id
-       TUint32 iServiceId;
-       
-       TVIMPSTEnums::TVIMPSTRegistrationState iLoginState;
-
-      /**
-       *  reference list of friend request items here
-       **/
-       RPointerArray<CVIMPSTProcessFriendRequestItem> iAddRequestArray;
-       
-        /**
-       *  reference list of friend request items here
-       **/ 
-       RPointerArray<CVIMPSTProcessUnknownContactItem> iUnKnownContactArray;
-
-       // ETrue if fetch completed
-       TBool iFetchCompleted;
-       
-       // ETrue if engine supports IM subservice
-       TBool iIMSupported;
-       
-       // ETrue if engine supports Presence subservice
-       TBool iPresenceSupported;
-            
-    };
-
-#endif // _CVIMPSTPROCESSARRAY_H
-
-// End of File