diff -r 000000000000 -r 094583676ce7 wvuing/wvuiave/AppSrc/CCARecordedChatsArray.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wvuing/wvuiave/AppSrc/CCARecordedChatsArray.h Thu Dec 17 08:41:52 2009 +0200 @@ -0,0 +1,256 @@ +/* +* 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: Array wrapper for recorded chats view +* +*/ + + + +#ifndef CCARECORDEDCHATSARRAY_H__ +#define CCARECORDEDCHATSARRAY_H__ + +// INCLUDES +#include +#include "BAMDESCA.H" +#include "MCARecordedChatProvider.h" + +// FORWARD DECLARATIONS +class MCALoggerMessageHeader; +class RWriteStream; +class MCARecordedChatsArrayPC; +class MCARecordedChatsPC; + +// CLASS DECLARATION + +/** +* Recorded chats header array wrapper +* Wraps real array handling to MDesCArray protocol +* +* @chatng.exe +* @since 3.2 +*/ +class CCARecordedChatsArray : public CBase, + public MDesCArray, + public MCARecordedChatProvider + { + public: // Constructors and destructor + + /** + * Two-phased constructor. + * @param aRecordedChatsPC Reference to Recorded Chats process component + * @param aRecordedChatsArrayPC Reference to Recorded Chats Array process component + */ + static CCARecordedChatsArray* NewL( MCARecordedChatsPC& aRecordedChatsPC, + MCARecordedChatsArrayPC& aRecordedChatsArrayPC ); + + /** + * Destructor. + */ + virtual ~CCARecordedChatsArray(); + + public: // New Methods + + /** + * Recorded chat index by name. + * @since S60 v3.2 + * @param aName Name of recorded chat. + * @return Index of chat or KErrNotFound if + * it was not found. + */ + TInt Index( const TDesC& aName ) const; + + + + /** + * Returns the logger message header from given index + * @param aIndex Item index + * @return Logger message header + */ + MCALoggerMessageHeader& LoggerMessageHeader( TInt aIndex ) const; + + /** + * Return name for history file found from index + * @param aIndex index to search + */ + const TDesC& Name( TInt aIndex ) const; + + /** + * 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. + */ + TBool DeleteHistoryFilesL( TInt aIndex ); + + /** + * Delete history file from local delete index + * @return ETrue, there is items to delete, + * EFalse if deletion is ready. + */ + TBool DeleteHistoryFileL(); + + /** + * Is current chat ordered to be deleted + * @return ETrue, if is, EFalse if not. + */ + TBool CurrentChatDeleteStatus(); + + /** + * Set curren item index. This must be set before messages are opened + * to Recorded Chats view. + * @param aIndex Item index + */ + void SetCurrentItemIndex( TInt aIndex ); + + /** + * 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 + TInt SendMTML( TInt aIndex, TUid aTargetUid = KNullUid ); + + /** + * Progress count for progress of deletion. + * @return const reference to marked count for progress of deletion. + */ + TInt ProgressCount() const; + + /** + * Prepares array for sending MTMs. + */ + void PrepareArrayForSendingMtmL(); + + + /** + * Return current item index + * @return current item index + */ + TInt CurrentItemIndex() const; + + /** + * Initialize/unitialize selected items array pointer + * @param aArray Pointer to selected items array. + */ + void SetSelectedItems( const CArrayFix< TInt >* aArray ); + + public: // Functions from base classes (MDesCArray) + + /** + * Count of items in array. + * @return the number of descriptor elements in + * a descriptor array. + */ + TInt MdcaCount() const; + + /** + * Indexes into a descriptor array. + * @param aIndex The position of the descriptor element within a + * descriptor array + * @return A 16 bit non-modifiable pointer descriptor representing + * the descriptor element located at position aIndex within a + * descriptor array. + */ + TPtrC16 MdcaPoint( TInt aIndex ) const; + + public: //Methods from MCARecordedChatProvider + + /** + * Recorded chat name. + * @return name of recorded chat. + */ + const TDesC& RecordedChatName() const; + + /** + * End time of recorded chat. + * @return end time of recorded chat. + */ + TTime RecordedEndDate() const; + + /** + * Set current chat to be deleted. + * @return ETrue if deletion is ok to continue, EFalse if not. + */ + TBool DeleteChatL(); + + /** + * Send current chat via MTM + * @param aTargetUid id of MTM to use for sending. + */ + void SendChatViaMTML( TUid aTargetUid = KNullUid ); + + /** + * @see MCARecordedChatProvider + */ + void DynInitSendMenuL( CEikMenuPane& aMenuPane ); + + /** + * @see MCARecordedChatProvider + */ + void DeleteRecordedChatContainerL(); + + private: + + /** + * Show confirmation note for deletion + * @param aIndex Index of current chat to be deleted + * @return ETrue if deletion is ok, EFalse if not. + */ + TBool ShowConfirmationNoteL( TInt aIndex ); + + /** + * 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. + */ + void CheckAndCorrectMtmFilename( TFileName& aFilename, + MDesCArray& aArray ); + + /** + * Initialize array for deletion. Sort is from back to start. + */ + void InitDeleteArrayL(); + + private: + + /** + * C++ default constructor. + * @param aRecordedChatsPC Reference to Recorded Chats process component + * @param aRecordedChatsArrayPC Reference to Recorded Chats Array process component + */ + + CCARecordedChatsArray( MCARecordedChatsPC& aRecordedChatsPC, + MCARecordedChatsArrayPC& aRecordedChatsArrayPC ); + + /** + * By default Symbian OS constructor is private. + */ + void ConstructL(); + + private: // Data + + // Current chat deletion or not + TBool iDeleteCurrentChat; + + // Read access to recorded chats PC. + MCARecordedChatsPC& iRecordedChatsPC; + + // Read access to recorded chats array PC. + MCARecordedChatsArrayPC& iRecordedChatsArrayPC; + }; + +#endif // CCARECORDEDCHATSARRAY_H__ + +// End of File