wvuing/wvuiprocess/Inc/CCARecordedChatsPC.h
changeset 0 094583676ce7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wvuing/wvuiprocess/Inc/CCARecordedChatsPC.h	Thu Dec 17 08:41:52 2009 +0200
@@ -0,0 +1,236 @@
+/*
+* 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:  Process Manager to get process interfaces e.g. login,settings
+*
+*/
+
+#ifndef  CCARECORDEDCHATSPC_H
+#define  CCARECORDEDCHATSPC_H
+
+#include "MCARecordedChatsPC.h"
+#include "MCALoggerHeadersInterface.h"
+#include "MCAMessageRWInterfacePC.h"
+
+//Forward Declaration
+class CIdle;
+class CSendUi;
+class RWriteStream;
+class MCARecordedChatsArrayPC;
+class MCAMessagesWriteInterface;
+class MCAMessagesReadInterface;
+class CEikonEnv;
+//Class declaration
+class CCARecordedChatsPC: public CBase,
+            public MCARecordedChatsPC,
+            public MCAMessageRWInterfacePC
+    {
+    public:
+
+        /**
+        * Two-phased constructor.
+        */
+        static CCARecordedChatsPC* NewL( MCALoggerHeadersInterface& iLoggerHeadersInterface,
+                                         MCARecordedChatsArrayPC& aRecordedChatsArrayPC );
+
+    public:
+
+        /**
+         *	Destructor
+         */
+        ~CCARecordedChatsPC();
+
+    public: //From MCARecordedChatsPC
+
+        /**
+        * Delete one history file recognized by index.
+        * @return true if the file has been deleted else return false
+        */
+        virtual TBool DeleteHistoryFileL( );
+
+
+        /**
+        * Deletes message container of current recorded chat
+        * from engine. Used to free memory when exiting current
+        * recorded chat view i.e. called from DoDeactivate method
+        * of view class.
+        */
+        virtual void DeleteRecordedChatContainerL();
+
+        /**
+        * Initialize/unitialize selected items array pointer
+        * @param aArray Pointer to selected items array.
+        */
+        virtual void SetSelectedItems( const CArrayFix< TInt >* aArray );
+
+        /**
+        * Return whether there are selected items
+        * @param true if there is atleast one valid item selected else return false
+        */
+        virtual TBool ValidSelectedItems() const;
+
+        /**
+        * return the number of selected items
+        * @Return an integer: count of selected items
+        */
+        virtual TInt SelectedItemsCount() const;
+
+        /**
+        * Prepares array for sending MTMs.
+        */
+        virtual void PrepareArrayForSendingMtmL();
+
+        /**
+        * Is index item marked or not
+        * @param aIndex Item which marked status is returned
+        * @return ETrue if item is marked, EFalse if not.
+        */
+        virtual TBool IsMarked( TInt aIndex );
+
+        /**
+        * Initialize array for deletion. Sort is from back to start.
+        */
+        virtual void InitDeleteArrayL();
+
+        /**
+        * Method is used to launch MTM editor with given targetUid
+        * @param aTargetUid id for MTM editor to be launched.
+        * @param aIndex Message index which to send.
+        */
+        // Code Scanner warning to be ignored
+        virtual TInt SendMTML( TInt aIndex, TUid aTargetUid /*= KNullUid*/ );
+
+
+
+        /**
+        * Delete history files. If there is marked items those are deleted.
+        * Otherwise item which index is given is deleted.
+        * @param aIndex Item index
+        * @return ETrue, if deletion is ok to start, EFalse if not.
+        */
+        virtual void DeleteHistoryFilesL( TInt aIndex, TBool aDeleteCurrentChat );
+
+        /**
+        * Check filename for MTM messages and correct
+        * it to unique if it is not.
+        * @param aFilename Proposed filename and corrected after checking.
+        * @param aArray Array of already existing filenames.
+        */
+        virtual void CheckAndCorrectMtmFilename( TFileName& aFilename,
+                                                 MDesCArray& aArray );
+
+        /**
+        * Get the number of stored contacts in all the lists
+        * @return integer: number of stored contacts
+        */
+        virtual TInt StoredContactsCount() const;
+
+        /**
+        * To return the number of groups
+        * @return integer: count of groups
+        */
+        virtual TInt GroupCountL( TBool aGroupsSupported ) const;
+
+        /**
+        * To populate the two arrays of group names and goup ids
+        * @param aGroupNames: array of the current group names
+        * @param aGroupIds: array of the current group IDs
+        */
+        virtual MCAServerContactsArrayPC* GetPairArrayForServerContactsArrayLC();
+
+        /**
+        * Get message for sending it via MTM
+        * @param aIndex Index of message to send
+        * @param aStream Stream where message is written.
+        */
+        virtual void GetMessageForSendingViaMTML(
+            TInt aIndex, RWriteStream& aStream );
+
+
+        //fix - refer Ui Spec Approved Version 1.0 (Instant Messaging NG 001 151006.pdf)
+        //Section 10.2.10 Pg 131 -
+        //"In case user has saved the image already or sent it by himself,
+        // this option(save) is not available."
+        /**
+         * ReLoggingL
+         * @since series 60  v3.2
+         * @return void
+         */
+        virtual void ReLoggingL();
+
+        /**
+         * reset enginer loggers..for reading from different drive....
+         * @since series 60  v3.2
+         * @return void
+         */
+        void ResetEngineLoggerL();
+
+    public://From MCAMessageRWInterfacePC
+        /*
+        * @see MCAMessageRWInterfacePC
+        */
+        virtual MCAMessagesReadInterface& ReadInterfaceL() const;
+
+        /*
+        * @see MCAMessageRWInterfacePC
+        */
+        virtual MCAMessagesWriteInterface& WriteInterfaceL() const;
+
+
+    private: //Private Constructors
+        /**
+        * private default constructor
+        * @param aLoggerHeadersInterface: Reference to the logger component
+        * @param aRecordedChatsArrayPC: Reference to the Recorded chats
+        *								array process component
+        */
+        CCARecordedChatsPC( MCALoggerHeadersInterface& aLoggerHeadersInterface,
+                            MCARecordedChatsArrayPC& aRecordedChatsArrayPC );
+
+        /**
+        * Symbian 2nd phase constructor.
+        */
+        void ConstructL();
+
+    private: //Data memebers
+
+
+        /**
+        * Reference to the MCALoggerHeadersInterface in the engine component
+        */
+        MCALoggerHeadersInterface& iLoggerHeadersInterface;
+
+        /**
+        * reference to MCARecordedChatsArrayPC
+        */
+        MCARecordedChatsArrayPC& iRecordedChatsArrayPC;
+
+        // Owns. For sending messages via MTM
+        CSendUi* iSendAppUi;
+
+
+        // Owns. History temp directory;
+        HBufC* iHistoryTempDir;
+
+        // Does not own. Selected items array.
+        const CArrayFix< TInt >* iSelectedItems;
+
+        // Owns: Temp array for keeping track of deleted files
+        RArray< TInt > iItemsForDeletion;
+
+        CEikonEnv* iEikonEn;
+
+    };
+
+#endif //CCARECORDEDCHATSPC_H
+