wvuing/wvuiave/AppInc/CCASingleListContainer.h
changeset 0 094583676ce7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wvuing/wvuiave/AppInc/CCASingleListContainer.h	Thu Dec 17 08:41:52 2009 +0200
@@ -0,0 +1,976 @@
+/*
+* 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:  Container for all controls in single-list view
+*
+*/
+
+
+
+#ifndef CCASINGLELISTCONTAINER_H
+#define CCASINGLELISTCONTAINER_H
+
+// INCLUDES
+#include "MCALayoutChangeObserver.h"
+#include "MCAMainViewObserverPC.h"
+
+#include <bldvariant.hrh>
+#include <eiklbo.h> // MEikListBoxObserver
+#include <AknInfoPopupNoteController.h> // for CAKnInfoPopupNote
+#include <coecobs.h>
+#include <mvpbksinglecontactoperationobserver.h> // for phonebook2
+#include <mvpbkcontactstoreobserver.h>
+#include <aiwservicehandler.h>
+#include <TVPbkFieldVersitProperty.h>
+#include <aiwcontactselectiondatatypes.h>
+
+#include "MCAServerChangeNotify.h"
+#include <MVPbkContactStoreListObserver.h>
+
+// FORWARD DECLARATIONS
+class CEikListBox;
+class CAknSearchField;
+class MCAViewSwitcher;
+class CCAStatusPaneHandler;
+class CCABlockingUI;
+class CCAAppUi;
+class CCAContactEditor;
+class CEikButtonGroupContainer;
+class CAknInfoPopupNoteController;
+class CCAContactListBox;
+class CAknListBoxFilterItems;
+class MCABlockingPC;
+
+
+class MCACommandHelper;
+class MCAMainViewArrayPC;
+class MCASearchInterfacePC;
+class MCASearchDataPC;
+
+class CCAView;
+//for phonebook
+class CVPbkContactManager;
+class CPbk2SortOrderManager;
+class MPbk2ContactNameFormatter;
+class CAiwServiceHandler;
+// CLASS DECLARATION
+/**
+*  Container class for friends SINGLE list view
+*
+*  @lib chatng.app
+*  @since 3.2
+*/
+class CCASingleListContainer :  public CCoeControl,
+            public MEikListBoxObserver,
+            public MCAMainViewObserverPC,
+            public MCALayoutChangeObserver,
+            public MCoeControlObserver,
+            public MCAServerChangeNotify,
+            public MAiwNotifyCallback,
+            public MVPbkSingleContactOperationObserver,
+            public MVPbkContactStoreListObserver
+
+
+    {
+    public: // Constructors and destructor
+
+        /**
+        * Symbian OS default constructor.
+        * @param aRect Frame rectangle for container.
+        * @param aViewSwitcher Handle to view switcher
+        * @param aSelectedIndexId Contact item ID of user that was selected
+        *        in view's listbox
+        */
+        void ConstructL( TRect aRect, MCAViewSwitcher& aViewSwitcher,
+                         TInt aSelectedIndexId );
+
+        /**
+        * Destructor.
+        */
+        virtual ~CCASingleListContainer();
+
+        /*
+        * C++ default constructor
+        * @param aCommandHelper: reference to CommandHelper instance
+        * @param reference to App Ui instance
+        */
+        CCASingleListContainer( MCACommandHelper& aCommandHelper, CCAView& aView, CCAAppUi* aAppUi );
+
+    public:
+        /**
+         * From MCAMainViewObserverPC, called when a contact is deleted.
+         * @since 2.1
+         * @see MCAMainViewObserverPC
+         */
+        virtual void HandleDelete( const TDesC& aContactId ,
+                                   TEnumsPC::TItem aType );
+
+        /**
+         * From MCAMainViewObserverPC, called when a contact is added.
+         * @since 2.1
+         * @see MCAMainViewObserverPC
+         */
+        virtual void HandleAddition( TEnumsPC::TItem aType, TInt aIndex );
+
+        /**
+         * From MCAMainViewObserverPC, called when a contact is changed.
+         * @since 2.1
+         * @see MCAMainViewObserverPC
+         */
+        virtual void HandleChange( TEnumsPC::TItem aType, TInt aIndex,
+                                   TEnumsPC::TChange changeType );
+        /**
+        * Gets called when watched friend's presence status changes. This event
+        * is restricted to only network originated events, so if user refreshes
+        * the friends-list by himself, then this event will not raise.
+        * @param aString: Contact that was changed
+        * @aOnlineStatus: online status of contact that was changed
+        */
+        virtual void HandleWatcherEvent( const TDesC &  aString ,
+                                         TEnumsPC::TOnlineStatus aOnlineStatus );
+        /**
+        * Handles watcher events
+        * @param aString: Contact that was changed
+        * @aOnlineStatus: online status of contact that was changed
+        */
+        void DoHandleWatcherEventL( const TDesC &  aString ,
+                                    TEnumsPC::TOnlineStatus aOnlineStatus );
+        /**
+         * See MCAMainViewObserverPC
+         */
+        void HandleInvitationEventL( TEnumsPC::TInviteType aInviteType,
+                                     const TDesC& aUserID,
+                                     const TDesC& aMessage );
+
+        /**
+         * See MCAMainViewObserverPC
+         */
+        void HandleInvitationResponse( TBool aAcceptance,
+                                       const TDesC& aUserId,
+                                       const TDesC& aGroupName,
+                                       const TDesC& aResponse );
+    public:
+
+
+        /*
+        * IsChatsForceExpanded
+        * chat expanded or not
+        * @return user id
+        */
+        TBool IsChatsForceExpanded();
+
+        /*
+        * Return the user id of the selected contact, group id of the
+        * selected group, user id of sender of selected invite
+        * @return user id
+        */
+        TPtrC SelectedUserId() const;
+
+        /**To be added after refactoring of invitationview dialog
+         * opens the selected invitation
+         * @param aIndex Index of invitation to be opened
+         */
+        void OpenInvitationL( );
+
+        /**
+         * Deletes currently active invitation
+         */
+        void DeleteInvitationL();
+        /**
+         * To handle the addition of an item to the list box
+         */
+        void HandleItemAdditionL();
+
+        /**
+         * Renames contact list on server
+         */
+        void RenameListL();
+
+        /**
+         * Expands or collapses contact list on view
+         */
+        void ExpandCollapseListL();
+
+
+        /**
+        * Returns selected contact's type
+        * @return currently selected contact's type. If no contacts then return EUnknown
+        */
+        TEnumsPC::TItem SelectedType() const;
+
+        /**
+        * Returns synchronised status
+        * @return synchronization status
+        */
+        TEnumsPC::TSyncStatus Synchronised() const;
+
+        /**
+        * Returns the status of own data
+        * @return online status for the owndata
+        */
+        TEnumsPC::TOnlineStatus OwnStatus() const;
+
+        /**
+        * Returns selected contact's status
+        * @return currently selected contact's online status
+        */
+        TEnumsPC::TOnlineStatus GetOnlineStatus() const;
+
+        /**
+        * Returns the collapsed state of selected contactlist
+        * @return true if contactlist is collapsed else return false
+        */
+        TBool IsCollapsed() const;
+
+        /**
+        * Returns the watch status of selected contact
+        * @return true if the contact is being watched else return false
+        */
+        TBool IsWatched() const;
+
+        /**
+        * Returns the no. of items in the listbox
+        * @return integer
+        */
+        TInt Count() const;
+
+        /**
+        * Refreshes the current screen.
+        * Actual implementation
+        * @since 2.1
+        * @param aSortList Should the list be sorted or not
+        */
+        void DoRefreshViewL( TBool aSortList ) const;
+
+        /**
+        * Refreshes the current screen
+        * @since 2.1
+        * @param aSortList Should the list be sorted or not
+        */
+        void RefreshView( TBool aSortList ) const;
+
+        /**
+        * Sets current recipient for message
+        * @since 2.1
+        */
+        //void SetCurrentRecipient() const;
+
+        /**
+        * Get's current index of listbox
+        * @since 2.1
+        * @return Index of currently selected item else KErrNotFound
+        */
+        TInt CurrentListboxIndex() const;
+
+        /**
+        * Deletes currently focused friend
+        * @since 2.1
+        */
+        void DeleteFriendL();
+
+        /**
+        * Edit/add friend from wanted listbox index
+        * @since 2.1
+        * @param aCreateNew Flag to create new friend
+        * @return User id of edited or new contact
+        */
+        TInt EditFriendL( TEnumsPC::TContactEditorMode aCreateNew );
+
+        /**
+         * Move highlighted contact to another list
+         * @since 2.1
+         */
+        void MoveContactL();
+
+        /**
+         * Updates view after edit
+         * aIndex is the index of item that has changed
+         * aType is list item type
+         */
+        void UpdateViewL( TInt aIndex, TEnumsPC::TItem aType, TBool aSyncSuccess );
+
+        /**
+         * Refresh the presence status of contacts
+         * @param aManualLaunch ETrue if the user has started the command
+         */
+        void RefreshPresenceL( TBool aManualLaunch );
+
+        /**
+        * Switches the container to details mode
+        * @since 2.1
+        */
+        void ShowDetailsL();
+
+        /**
+        * Checks if the details view is active
+        * @since 2.1
+        * @param aContext On return contains ETrue if user has requested
+        *        a context sensitive menu to be shown
+        * @return ETrue if the details view is active, EFalse otherwise
+        */
+        TBool MenuShown( TBool& aContext );
+
+        /**
+        * Check if listbox has an item that is currently focused
+        * @since 2.1
+        * @return ETrue, if there are any items.
+        */
+        TBool ListboxItems() const;
+
+        /**
+         * Displays Blocked List
+         * @since 2.1
+         */
+        void DisplayBlockedListL();
+
+        /**
+         * Displays unblock list query
+         * @since 2.1
+         */
+        void DisplayUnblockListQueryL();
+
+        /**
+         * Blocks selected user
+         * @since 2.1
+         */
+        void BlockUserL();
+
+        /**
+         * Checks if user is blocked
+         * @since 2.1
+         * @return ETrue if blocked
+         */
+        TBool IsBlocked() const;
+
+        /**
+         * Finds joined chats for focused user
+         */
+        void FindJoinedChatsL();
+
+        /**
+         * Displays confirmation note
+         * @param aTextResourceId Resource ID of text to be shown
+         */
+        void DisplayConfirmationNoteL( const TInt aTextResourceId );
+
+        /**
+        * Start conversation or switches to existing one
+        */
+        void OpenConversationL();
+        /**
+        * closes existing conversation
+        * @since 3.2
+        */
+        void CloseConversationL() ;
+
+        /**
+         * Returns handle to listbox
+         * @return handle to CEikListBox
+         */
+        CEikListBox* ListBox() const;
+
+        /**
+         * Displays block text query
+         */
+        void DisplayBlockTextQueryL();
+
+        /**
+         * @return ETrue if opening conversation is ongoing
+         */
+        TBool OpeningConversation();
+
+        /**
+         *  Clears any strings from findbox and resets it.
+         */
+        void ResetFindBoxL();
+
+        /**
+         * Skip the HandleAddition and HandleDelete originating as IM Storage
+         * observer events if we have wait note ongoing. Speed optimization. When
+         * changing the list there can be many contacts, which would result in
+         * useless (and slow) redrawing of the friends list.
+         * Reset by the view once the wait note is dismissed.
+         * @param aSkip ETrue if events are to be skipped
+         */
+        void SetSkipStorageEvents( TBool aSkip );
+
+        /**
+         * Prepare destruction, for example delete objects
+         * which break some functionality because of lazy destruction of this
+         * container. ( iFindBox )
+         */
+        void PrepareDestruction();
+
+        /**
+         * Sets the lock status of softkeys
+         * @param aLock new status of lock (ETrue: locked, EFalse: Unlocked)
+         */
+        void SetCbaLockL( TBool aLock );
+
+        /**
+        * Make this object responsible for destroying itself.
+        * Destroying happens after the asynchronous task is complete.
+        * Deletion is asynchronous so the object might not be destroyed
+        * before this method returns.
+        * @return None
+        */
+        void DeleteSelfD();
+
+        /**
+        * Handles events from findpane and forwards them to listbox filter.
+        * @see MCoeControlObserver
+        */
+        void HandleControlEventL( CCoeControl* aControl, TCoeEvent aEventType );
+
+        /**
+         * Sets current list box index.
+         * @param aIndex Index for list box.
+         */
+        void SetListboxIndexL( TInt aIndex );
+
+        /**
+         * Updates Softkeys according to current focus
+         * @param aUseDefaultCba Flag to force the default sofkeys for view.
+         * Default value is false.
+         */
+        void UpdateCbaL( TBool aUseDefaultCba = EFalse );
+
+        /**
+         * This method launches chat properties dialog in add mode
+         * @return The groupd id of newly created group
+         *         or NULL if not successful
+         *         The ownership is passed to calling function!
+         */
+        HBufC* CreateNewChatL();
+
+        /**
+         * This method sets the currently focused group
+         * @param aGroupId The WVID of group to be focused
+         */
+        void FocusGroupL( const TDesC& aGroupId );
+
+
+
+        /**
+         * This method launches pop-up list that contains info about joined chat
+         */
+        void DisplayChatInfoL();
+
+
+        /**
+         * Join group when group id is entered manually
+         */
+        //void JoinGroupL(TPtrC aGroupId);
+
+        /**
+         * Joins group after creating new chat
+         * @param aGroupId Group id that is created
+         */
+        void JoinGroupL( const TDesC& aGroupId );
+
+        /**
+         * Checks if user has joined to chat group
+         * @param aIndex Index of chat group
+         * @return EFalse if not joined
+         */
+        TBool IsJoinedToGroup( );
+
+        /**
+         * Checks if chat group is favourite
+         * @return EFalse if the isn't saved
+         */
+        TBool IsFavourite( );
+
+        /**
+         * Saves the focused general chat group as favourite
+         */
+        void SaveAsFavouriteL();
+
+        /**
+         * Deletes the focused favourite chat group
+         * @param aGroupId The group id of the group to delete
+         */
+        void DeleteGroupL( TPtrC aGroupId );
+
+        /**
+         * Leaves focuses joined chat group
+         */
+        void LeaveGroupL();
+
+        /**
+         * Checks if user is admin in selected group
+         * @return ETrue if admin else EFalse
+         */
+        TBool IsUserAdmin() const;
+
+        /**
+         * This method displays pop-up list containing joined members
+         */
+        void DisplayJoinedMembersL();
+
+        /**
+         * This method launches edit chat properties dialog
+         */
+        void EditChatGroupPropertiesL();
+
+
+        /**
+         * Displays list query where are contacts from contact list
+         * @since 3.2
+         */
+        void DisplayRecipientListQueryL();
+
+
+        /**
+         * Displays text query
+         * @since 3.2
+         */
+        void DisplayRecipientTextQueryL();
+
+        /**
+         * Displays text query to enter group ID.
+         *@dataPtr	pointer to TDes
+         */
+        void DisplayRecipientTextQueryForGrpIDL( TDes& aDataPtr );
+
+        /**
+         * Switches to selected conversation
+         * @param aUserId User id
+         * @since 3.2
+         */
+        void SwitchToConvViewL( const TDesC& aUserId = KNullDesC );
+
+        /**
+        * return true if the user is the owner of the group
+        */
+        TBool IsOwnGroup() const;
+
+        /**
+        * return true if the background task is completed
+        */
+        TBool IsBckGrdTaskComplete ( );
+
+
+
+    private: // New methods
+
+        /**
+         * Checks that the presence status of contact is up-to-date
+         * @param aContact Contact to be updated
+         * @return The error code of the presence fetch operation
+         */
+        TInt UpdatePresenceL( const TInt aIndex );
+
+        /**
+        * Activates find-pane
+        */
+        void ActivateFindPaneL();
+
+        /**
+        * De-activates find-pane
+        */
+        void DeactivateFindPaneL();
+
+        /**
+        * Layouts current components according to AVKON LAF
+        */
+        void SetLayout();
+
+        /**
+         * Displays info note for corresponding resource id
+         * @param aResourceId Resource ID for info note
+         */
+        void DisplayInfoNoteL( const TInt aResourceId );
+
+        /**
+         * Displays scroll bars
+         * @param aListBox Handle to listbox
+         */
+        void UpdateScrollBars( CEikListBox* aListBox );
+
+        /**
+         * Update indexes and find-pane after deletion
+         */
+        void UpdateViewAfterDeleteL();
+
+        /**
+         * Updates the listbox filter after the list is changed
+         */
+        void UpdateFilterL() const;
+
+        /**
+        * Loads/updates bitmaps
+        */
+        void LoadBitmapsL();
+
+        /*
+        * Error handler.
+        * @param aError Error code
+        */
+        void HandleError( TInt aError ) const;
+
+    public:
+
+        //Newly added functions due to Phonebook2 related changes
+        /**
+         * Used to select a single contact from phonebook
+         * Starts the single contact selection service from phonebook
+         */
+        void ContactSelectionFromPhoneBookL();
+
+        /**
+         * Get the WVId of the oontact selected from phonebook
+         * @param aTitle - the title of the contact aNumberToSearch
+         * @param aNumberToSearch - the phone number of the contact
+         * @returns the WVId of the oontact selected from phonebook
+         */
+        HBufC* GetWVIdOfSelPbkContactL( const TDesC& aTitle,
+                                        const TDesC& aNumberToSearch );
+
+
+        /**
+         * Add the contact selected form phonebook to the contact list
+         * @param aContact - the contact selected from phonebook
+         * and which is to be added to the contact list
+         */
+        void AddSelectedPbk2ContactL( MVPbkStoreContact* aContact );
+
+
+        /**
+         * @param aArray - the Versit properties mapped to a field type( MVPbkFieldType ).
+         * @param aName - Name of the field type to be matched e.g. EVPbkVersitNameTEL
+         * @returns ETrue if aArray contains a field type of name aName
+         */
+        TBool ContainsFieldType( TArray<TVPbkFieldVersitProperty> aArray,
+                                 TVPbkFieldTypeName aName );
+        /**
+         * Executes a service command for single phonebook contact selection service
+         * @param aData - version 2 of single entry contact selection data used to add filters
+         * @param aUri1,aUri2,aUri3 - can be used to provide some input param to the
+         * the generic service command handler, if required
+         */
+        void ExecutePbkSingleEntryFetchL( TAiwSingleEntrySelectionDataV2 aData,
+                                          const TDesC& aUri1 = KNullDesC,
+                                          const TDesC& aUri2 = KNullDesC,
+                                          const TDesC& aUri3 = KNullDesC );
+
+        /**
+         * Does some Intializiation required
+         * like AIW service handler intialization for Single
+         * Contact Selection Service from phonebook2
+         */
+        void InitPbk2SingleEntryFetchL();
+        /**
+        * Releases all the resources initialized for phonebook single entry fetch
+        */
+        void ReleasePbkSingleEntryFetch();
+
+        /**
+        * Closes all the contact stores
+        */
+        void CloseAllContactStores();
+
+
+        //From MAiwNotifyCallback
+
+        /**
+         * From MAiwNotifyCallback
+         * Call back
+         *
+         * @param aCmdId the command ID
+         * @param aEventId The event ID
+         * @param aEventParamList Input paramiter list
+         * @param aInParamList Output Paramiter list
+         * @return error code
+         */
+        TInt HandleNotifyL( TInt aCmdId, TInt aEventId,
+                            CAiwGenericParamList& aEventParamList,
+                            const CAiwGenericParamList& aInParamList );
+
+
+
+        //From MVPbkSingleContactOperationObserver
+
+        /**
+         * From MVPbkSingleContactOperationObserver
+         * called by observer when require opration finished
+         *
+         * @param aOperation the opration instance
+         * @param aContact contact for the operation
+         * @return none
+         */
+        void VPbkSingleContactOperationComplete(
+            MVPbkContactOperationBase& aOperation,
+            MVPbkStoreContact* aContact );
+
+        /**
+         * From MVPbkSingleContactOperationObserver
+         * called by observer when require opration faild
+         *
+         * @param aOperation the opration instance
+         * @param aError a system wild error code
+         * @return none
+         */
+        void VPbkSingleContactOperationFailed(
+            MVPbkContactOperationBase& aOperation, TInt aError );
+
+
+        //From MVPbkContactStoreObserver
+        void OpenComplete();
+        /**
+         * From MVPbkContactStoreObserver
+         * called by observer when Store ready
+         *
+         * @param aContactStore the contace store
+         * @return none
+         */
+        void StoreReady( MVPbkContactStore& aContactStore );
+
+        /**
+         * From MVPbkContactStoreObserver
+         * called by observer when Store is not ready
+         *
+         * @param aContactStore the contace store
+         * @return none
+         */
+        void StoreUnavailable( MVPbkContactStore& aContactStore,
+                               TInt aReason );
+
+
+        /**
+        * From MVPbkContactStoreObserver
+        * called by observer when there is store event
+        *
+        * @param aContactStore the contace store
+        * @param aStoreEvent the store event
+        * @return none
+        */
+        void HandleStoreEventL( MVPbkContactStore& aContactStore,
+                                TVPbkContactStoreEvent aStoreEvent );
+
+        /**
+         * Show info popup note
+         */
+        void ShowInfoPopupL();
+
+        /**
+         * Get access to listbox model's filter
+         * @return model's filter
+         */
+        CAknListBoxFilterItems* ListFilter();
+
+
+
+    private: // Functions from base classes
+
+        /**
+        * From CoeControl, Handles "size changed"-events
+        * @see CCoeControl
+        */
+        void SizeChanged();
+
+        /**
+         * From CoeControl
+         * @see CCoeControl
+         */
+        void Draw( const TRect& aRect ) const;
+
+        /**
+        * From CoeControl, Returns the number of control contained by this
+        * class.
+        * @see CCoeControl
+        */
+        TInt CountComponentControls() const;
+
+        /**
+        * From CCoeControl, Returns handle to control pointed by aIndex
+        * @see CCoeControl
+        */
+        CCoeControl* ComponentControl( TInt aIndex ) const;
+
+        /**
+        * From CCoeControl, Handles key-events
+        * @see CCoeControl
+        */
+        TKeyResponse OfferKeyEventL( const TKeyEvent& aEvent,
+                                     TEventCode aType );
+
+        /**
+        * From MEikListBoxObserver, Handles event's generated by listbox
+        * @see MEikListBoxObserver
+        */
+        void HandleListBoxEventL( CEikListBox* aListBox,
+                                  TListBoxEvent aEventType );
+
+
+        /**
+         * From CCoeControl
+         * Gets help context
+         * @param aContext Help context
+         * @see CCoeControl
+         */
+        void GetHelpContext( TCoeHelpContext& aContext ) const;
+
+        /**
+         * From CCoeControl.
+         * Handle focus event change.
+         * @see CCoeControl
+         */
+        void FocusChanged( TDrawNow aDrawNow );
+
+        /** From MCALayoutChangeObserver
+        * Called when layout or skin changes
+        * @see MCALayoutChangeObserver
+        */
+        void LayoutChangedL( TInt aType = 0 );
+
+        /** From MCASettingsObserver
+         * Handles setting changes.
+         * @param aChangedSettingEnum specifies the changed setting.
+         * @since 2.1
+         */
+        void HandleSettingsChangeL( TInt aChangedSettingEnum );
+
+        /**Handles server changes.
+         * @param aKey specifies key
+         * @since 2.1
+         */
+        void HandleServerChangeL ( TServerNotify aKey );
+
+    private: //data
+
+        /**
+        * reference to the Search Data Interface with the ProcesssManager
+        */
+        MCASearchDataPC* iDataInterfacePC;
+
+        /**
+        * reference to the Search Data Interface with the ProcesssManager
+        */
+        MCASearchInterfacePC* iSearchInterfacePC;
+
+
+        /**
+        *	Reference to the MainViewArrayPC instance with the Processmanager
+        */
+        MCAMainViewArrayPC* iMainViewArrayPC;
+
+
+        // Owns. Listbox to view friends-list data
+        CCAContactListBox* iListBox;
+
+        // Owns. Search field.
+        CAknSearchField* iFindbox;
+        TBool iFindPaneIsVisible;
+
+        // Doesn't own. Handle to view switcher
+        MCAViewSwitcher* iViewSwitcher;
+
+        //Owns. Blocking UI
+        CCABlockingUI* iBlockingUI;
+
+        //Active scheduler wait during search
+        CActiveSchedulerWait iSearchWait;
+
+        // Doesn't own. Pointer to status pane handler.
+        CCAStatusPaneHandler* iStatusPane;
+
+        // doesn't own
+        CCAAppUi* iAppUi;
+
+
+        // Is this container responsible to destroy itself
+        // when the async task is complete.
+        TBool iDeleteFlag;
+
+        // Is async task complete (ETrue) or not
+        TBool iTaskComplete;
+
+        // ETrue if opening conversation is ongoing
+        TBool iOpeningConversation;
+
+        // skip storage events (when the wait note is showing)
+        TBool iSkipStorageEvents;
+
+        // CBA. not owned
+        CEikButtonGroupContainer* iCba;
+
+        /// Popup info for showing info popupnote.
+        CAknInfoPopupNoteController* iInfoPopup;
+
+        /// Helper to invoke commands from container.
+        MCACommandHelper& iCommandHelper;
+
+        CCAView& iView;
+        // Storage for previous focus
+        TEnumsPC::TItem iLastFocusedItemType;
+
+        // Lock status foc softkeys
+        TBool iCbaLock;
+
+        // To keep list box focus correct after blocking
+        TInt iIndexPrevBlocking;
+
+        //To track the blocked status
+        TBool iBlocked;
+
+        //To track the filter applied
+        TInt iMyFilter;
+
+        //To decide whether to show offline contacts or not
+        TBool iShowOffline;
+
+        //To autoupdate/refresh of contacts/lists
+        TInt iAutoUpdate;
+
+        //Does not own. reference to the blockingPC
+        MCABlockingPC* iBlockingPC;
+
+        /**
+        * a flag to force expand the listbox if theres only one list item
+        * whenever the application is launched/logged in
+        */
+        TBool iForceExpandSingleList;
+
+        //for invitations
+        TBool iInvitationDlg;
+
+        TBool iInvitationOpen;
+
+        // A flag to forceexpand the chats folder.
+        TBool iForceExpandChats;
+
+        TBool iPreviousState;
+
+        TBool iCurrentState;
+        // Own: Virtual Phonebook contact manager
+        CVPbkContactManager* iContactManager;
+        /// Own: AIW service handler
+        CAiwServiceHandler* iServiceHandler;
+        // Own: Contact name Formatter
+        MPbk2ContactNameFormatter* iNameFormatter;
+        // Own: Sort Order manager
+        CPbk2SortOrderManager* iSortOrderManager;
+        // Own: Pointer to CVPbkFieldTypeSelector
+        CVPbkFieldTypeSelector* iContactViewFilter;
+        //Flag to check if atleast one store is opened
+        TBool iStoresOpened;
+        //Flag to check if opening a store is completed
+        TBool iOperationComplete;
+
+        TBool iIsMovingFlag;
+    };
+
+#endif //CCASINGLELISTCONTAINER_H
+
+// End of File