--- a/uiservicetab/vimpstcmdprocess/inc/cvimpstprocessarray.h Thu Aug 19 09:41:53 2010 +0300
+++ /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