diff -r ebe688cedc25 -r 7fdbb852d323 messagingappbase/mce/inc/mceui.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingappbase/mce/inc/mceui.h Wed Sep 01 12:31:54 2010 +0100 @@ -0,0 +1,1163 @@ +/* +* Copyright (c) 2002 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: +* Defines the CMceUi class +* +*/ + + + +#ifndef MCEUI_H +#define MCEUI_H + +// INCLUDES +#include // CAknViewAppUi +#include +#include "MtmRegistryObserver.h" // MMtmUiDataRegistryObserver +#include // CUidNameArray +#include // CGulIcon + +#include "MceUtils.h" // MMceAccountManager +#include "MsgFunctionInfo.h" + +#include "MceIds.h" +#include "MceLogText.h" +#include // MAknTabObserver +#include +#include "MceMailAccountItem.h" +#include // in MceSettings.dll +#include +#include "MceEmailNotifHandler.h" +#include +#include + +// DATA TYPES +enum + { + EMceMainViewActive = 0x01, + EMceMessageViewActive = 0x02, + EMceDeliveryReportsViewActive = 0x04 + }; +enum + { + EMceUiFlagsFinishedConstruction = 0x01, + EMceUiFlagsServerReady = 0x02, + EMceUiFlagsTabsActive = 0x04, + EMceUiFlagsWantToExit = 0x08, + EMceUiFlagsExitAfterDisconnect = 0x10, + EMceUiFlagsDoNotExitAfterNextOperationComplete = 0x20, + EMceUiFlagsMainViewActivated = 0x40, + EMceUiFlagsMediaUnavailable = 0x80, + EMceUiFlagsSupressViewUpdate = 0x100, + EMceUiFlagsMainViewAiwCreated = 0x200, + EMceUiFlagsMessageViewAiwCreated = 0x400, + EMceUiFlagsSettingsDialogOpen = 0x800, + EMceUiFlagsExitOnMsvMediaAvailableEvent = 0x1000, + EMceUiFlagsContainerAddedToStack = 0x2000, + + }; +#define KMsvMyFoldersEntryIdValue 0x1008 +const TMsvId KMsvMyFoldersEntryId=KMsvMyFoldersEntryIdValue; + +typedef CArrayFixFlat CMceMailAccountItemArray; + +// FORWARD DECLARATIONS +class CMsvSession; +class CMtmStore; +class CMtmUiDataRegistry; +class CMceMessageListView; +class CMceMainViewListView; +class CMceSessionHolder; +class CMceBitmapResolver; +class CMceConnectMailboxTimer; +class CMceLogEngine; +class CMessageIterator; +class CAknNavigationControlContainer; +class CAknNavigationDecorator; +class CMceIdleMtmLoader; +class CAknLocalScreenClearer; +class CErrorUI; +class CAknTitlePane; +class CSendingServiceInfo; +class CMceDeliveryReportView; +class CImumInternalApi; +class CMceIAUpdateUtils; +class CMmsCodecClient; +// CLASS DECLARATION + +/** +* Mce's UI class. +*/ +class CMceUi : + public CAknViewAppUi, + public MMsvSessionObserver, + public MMtmUiDataRegistryObserver, + public MMsvSingleOpWatcher, + public MMceSettingsAccountManager, + public MAknTabObserver, + public MConnectionMonitorObserver, + public MCoeForegroundObserver // CR : 401-1806 + { + public: // Constructors and destructor + + /** + * C++ default constructor. + */ + CMceUi(); + + /** + * Destructor. + */ + virtual ~CMceUi(); + + public: + + /** + * Opens message folder and activates message view + * @param aFolderId id of the folder to be opened + */ + void OpenFolderViewL( TMsvId aFolderId ); + + /** + * Opens remote mailbox and activates message view + * @param aFolderId id of the folder to be opened + */ + void OpenRemoteMailboxViewL( TMsvId aFolderId ); + + /** + * Cancels ConnectMailboxTimer. + */ + void CancelMailboxTimer(); + + /** + * Calls corresponding mtm to edit entry + * @param aEntry: entry to be edited. + */ + void EditMTMEntryL( const TMsvEntry& aEntry ); + + /** + * Used to launch unieditor + */ + void LaunchUniEditorL(); + + + /** + * Opens connection to account + * @param aAccount account id to be connected. + */ + void GoOnlineL( TMsvId aAccount ); + + /** + * Opens connection to account with confirmation query. + * @param aAccount account id to be connected. + */ + void GoOnlineWithQueryL( TMsvId aAccount ); + + /** + * Closes connection to mailbox. + * @param aAccount account id to be disconnected. + */ + void GoOfflineL( TMsvId aAccount ); + + /** + * Connects or disconnects + * @param aServiceId id of the account to be connected + * or disconnected. + * @param aConnect ETrue if connected, EFalse if disconnected. + */ + void ChangeServiceConnectionStateL(TMsvId aServiceId, TBool aConnect); + + /** + * Fills TMsvEntry structure of the message. + * @param aId id of the message. + * @param aEntry structure to be filled. + */ + TMsvId GetEntryL(TMsvId aId, TMsvEntry& aEntry) const; + + /** + * Closes connection if only one online. If more than one connection on + * displayes query to disconnect. + */ + void CloseConnectionWithListQueryL(); + + /** + * Returns pointer to log engine. + */ + CMceLogEngine* LogEngine(); + + /** + * Launches help application + */ + void LaunchHelpL(); + + /** + * Checks if command is currently available + * @param aCommand command id + * @param aEntryToCheck current entry selected + * @return 0 if available. != 0 otherwise + */ + TInt CheckCommandAvailableL( TInt aCommand, TMsvEntry& aEntryToCheck ); + + /** + * Checks if command is currently available + * @param aCommand command id + * @param aEntriesToCheck currently selected entries + * @return 0 if available. != 0 otherwise + */ + TInt CheckCommandAvailableL( TInt aCommand, CMsvEntrySelection* aEntriesToCheck ); + + /** + * Called when UI receives HandleSessionEventL( EMsvServerReady, .... ) + * from msgs. + * Creates needed messaging related objects, collects info of the + * installed MTMs, creates icon array and finally activates main view. + */ + void HandleServerStartupL(); + + /** + * Displayes tabs (creates tabs if not already created). + * Should be called when opening folder. + * @param: aOpenedId: id of the folder to be opened (used to set active tab) + * @param: aOpeningDeliveryReports: ETrue when opening delivery reports view and aOpenedId is ignored. + * EFalse if opening folder from msgs. + */ + void ShowTabsL( TMsvId aOpenedId, TBool aOpeningDeliveryReports = EFalse ); + + /** + * Removes tabs. + */ + void RemoveTabs(); + + /** + * Should be called by view's DoActivate to inform mceui what view is active. + * Sets view flag. + * @param aActiveView: EMceMainViewActive or EMceMessageViewActive, etc + */ + void SetMceViewActive( TUint aActiveView ); + + /** + * Query function to query is certain view active + * For example MceViewActive( EMceMainViewActive ). + * @param aActiveView: EMceMainViewActive or EMceMessageViewActive, etc + * @return ETrue if view is active, EFalse otherwise + */ + TBool MceViewActive( TInt aActiveView ) const; + + /** + * Sends entry via BT or IR. + * @param aId: id of the message to be sent + * @param aMtm: mtm to be used to send + */ + void SendViaL( TMsvId aId, TUid aMtm ); + + /** + * Returns ETrue if mce is performing editor opening operation + */ + TBool IsEditorOpen( ) const; + + /** + * Gets status pane of the mce application + * @return pointer to status pane (to the object of CAknTitlePane) + */ + CAknTitlePane* TitlePaneL() const; + + /** + * Activates timer for mailbox connection query + * @param aEntryId: folder to be opened + */ + void ActivateConnectionQueryTimerL( TMsvId aEntryId ); + + /** + * Clears EMceUiFlagsExitAfterDisconnect flag + * + */ + void ClearExitAfterDisconnectFlag(); + + void SetViewUpdateSuppressionFlag( TBool aValue, CMsvOperation* aOp ); + TBool ViewUpdateSuppressionFlag(); + + /** + * Sets EMceUiFlagsDoNotExitAfterNextOperationComplete flag + * + */ + void SetDontExitOnNextOperationComplete(); + + /** + * Clears EMceUiFlagsDoNotExitAfterNextOperationComplete flag + * + */ + void ClearDontExitOnNextOperationComplete(); + + /** + * Call back function, clears EMceUiFlagsDoNotExitAfterNextOperationComplete flag + * + */ + static TInt ClearDontExitOnNextOperationComplete( TAny* aAny ); + + /** + * Checks if SyncML mail synchronizing going on + * Returns ETrue, if synchronizing is going on + */ + TBool IsSyncronizingL( const TMsvEntry& entry ); + + /** + * Checks when last always online connection succeeded + * @param aAccount: service id + * Returns EFalse, if last connection failed + */ + TBool AlwaysOnlineLastConnectionL( const TMsvId aAccount ); + + /** + * Checks if always online feature is supported + * Returns ETrue, if always online is supported + */ + TBool AlwaysOnline( ); + + /** + * Checks if remote mailbox connection was made in mce + * @param aServiceId: service id + * Returns ETrue, if connection was made in Mce + */ + TBool ServiceIdFound( const TMsvId& aServiceId ); + + /** + * If connection is made in mce, adds operation id/service in iMailAccountItemArray + * @param aOp: operation id + * @param aServiceId: service id + */ + void AddOperationIdL( const TMsvOp& aOp, const TMsvId& aServiceId ); + + /** + * Removes operation id from iMailAccountItemArray + * @param TMsvId: operation id + * @param aServiceId: service id + */ + void RemoveOperationId( const TMsvId& aOpId, const TMsvId& aServiceId ); + + /** + * Shows a query in mce startup, + * if message store was automatically changed to phone from MMC + * @param aShowQuery: if ETrue, query can be shown + */ + void ToPhoneMemoryQueryL( TBool aShowQuery ); + + /** + * Sets EMceUiFlagsMainViewActivated flag + * + */ + void SetMainViewActivatedFlag( ); + + /** + * Removes folder tabs. + */ + void RemoveFolderTabs(); + + /** + * Shows folder tabs. + * @param aDepth: folder path depth + */ + void ShowFolderTabsL( const TInt aDepth ); + + /** + * Adds mtm specific functions to the menu for multiselection + * @param aMenuPane + * @param aMenucommandId id of the command after mtm specific functions are added + */ + void AddMultiselectionMTMFunctionsL( CEikMenuPane& aMenuPane, TInt aMenuCommandId ); + + /** + * Check mtm specific tecnology uid + * @param aTechnologyType + * @param aMtmType + * Returns ETrue, if tecnologyUid match with mtm. + */ + TBool CheckTechnologyTypeFromMtm( const TUid aTechnologyType, TUid aMtmType ); + + /** + * Checks if the message is set to be deleted from server + * Returns ETrue, if the message is set to be deleted from server, EFalse otherwise + */ + TBool IsMailSetToBeDeletedFromServerL( TMsvId aItemId ); + + /** + * Defines item to be anchored when entries are deleted or moved from entry list. + */ + void DefineAnchorIdL( const CMsvEntrySelection* aSelection ); + + /** + * Return itemId that should be focused after deleting or moving some entries. + */ + TMsvId AnchoredItem(); + + /** + * Set anchorId. + * @param aAnchorId itemId that should be focused after deleting or moving some entries. + */ + void SetAnchorId( TMsvId aAnchorId ); + + public: // Functions from base classes + /** + * From CEikAppUi + */ + void HandleCommandL( TInt aCommand ); + + /** + * From CEikAppUi + */ + void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane ); + + /** + * From MMsvSessionObserver + */ + virtual void HandleSessionEventL( + TMsvSessionEvent aEvent, + TAny* aArg1, + TAny* aArg2, + TAny* aArg3); + + /** + * From CAknViewAppUi + */ + void ActivateLocalViewL( TUid aViewId ); + + /** + * From MMceAccountManager + */ + TBool CreateNewAccountL( + TUid aMessageType, + TMsvId aOldServiceId ); + + /** + * From MMceAccountManager + */ + void EditAccountL( TMsvId aId ); + + /** + * From MMceAccountManager + */ + CUidNameArray* MtmAccountsL( TUid aType ); + + /** + * From MMceAccountManager + */ + TBool CanCreateNewAccountL(TUid aMtm); + + /** + * From MMceAccountManager + */ + void DeleteAccountL(TMsvId aId); + + /** + * From MMceAccountManager + */ + CMsvSession& Session(); + + /** + * From MMceAccountManager + */ + TBool IsPresent( TUid aMtm ) const; + + /** + * From MMceAccountManager + */ + THumanReadableName MtmName( TUid aType ) const; + + /** + * From MMceAccountManager + */ + void SetChangeMessageStore( TBool aChangeEnded ); + + /** + * From MMtmUiDataRegistryObserver + */ + virtual CBaseMtmUiData* GetMtmUiDataL( TUid aEntryType ); + + /** + * From MMsvSingleOpWatcher + */ + virtual void OpCompleted( + CMsvSingleOpWatcher& aOpWatcher, + TInt aCompletionCode ); + + /** + * From MAknTabObserver + */ + void TabChangedL( TInt aIndex ); + + /** + * From CEikAppUi + */ + void HandleResourceChangeL( TInt aType ); + + /** + * From MConnectionMonitorObserver + */ + void EventL( const CConnMonEventBase &aConnMonEvent ); + + /** + * From MCoeForegroundObserver + */ + void HandleGainingForeground(); // CR : 401-1806 + + /** + * From MCoeForegroundObserver + */ + void HandleLosingForeground(); // CR : 401-1806 + + /** + * MMS.Content.Upload + */ + void DoUploadL( TInt aCommand ); + + /** + * MMS.Content.Upload query + */ + void ShowUploadQueryL( ); + + /** + * MMS.Content.Upload query + */ + TInt NumUploadServices(); + + void HandleNotif(); + + void HandleNotif(const TMsvId& aMailbox); + /** + * Checks if the SIM access profile is connected or not. + */ + void CheckSIMAccessProfileL(); + + /** + * Closes the open editors/viewers + */ + void CloseEditorApp(); + + /** + * Checks if there has been a change in the screen resolution + */ + TBool ResourceChangeCalled(); + + /** + * Resets the flag indicating that there has been a change in + * the screen resolution + */ + void ResetResourceChange(); + + /** + * Checks if the SyncML mailbox is being created + */ + TBool MailboxCreationOn(); + + private: + + /** + * From CCoeAppUi + * Observes left / right arrow keys to change active tab. + */ + TKeyResponse HandleKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType); + + /** + * Symbian OS constructor. + */ + void ConstructL(); + + /** + * User requested to create new folder under local. + * Data query is displayed and folder created. + */ + void CreateNewFolderL(); + + /** + * User requested to rename new folder under local. + * Data query is displayed and folder renamed. + */ + void RenameFolderL(); + + /** + * Displays query for foldername and also possible "Duplicate folder" error note. + * @param aResourceId resource for the folder name query + * @param aFolderName buffer for the folder name. If renaming then should include old name + * @param aFolderId id of the folder if renaming. + */ + TBool FolderNameQueryL( + const TInt aResourceId, + TDes& aFolderName, + const TMsvId aFolderId = KMsvNullIndexEntryIdValue ) const; + + /** + * Calls UpdateMessageTypesArrayL + */ + void HandleMTMChangeL(); + + /** + * Adds mtm specific functions to the menu + * @param aMenuPane + * @param aMenucommandId id of the command after mtm specific functions are added + */ + void AddMTMFunctionsL(CEikMenuPane& aMenuPane, TInt aMenuCommandId); + + /** + * Gets the default service for mtm. + * @param aMtm + * @param aService will be filled to default account's id. + */ + TBool GetDefaultServiceL( TInt aMtm, TMsvId& aService, TUid& aMtmUid ); + void GetDefaultServiceL( TInt aMtm, TMsvId& aService ); + + /** + * Creates new message of type aMessageType. + * @param aMessageType type of the message to be created. + */ + void CreateNewMessageL( TInt aMessageType ); + + /** + * Launches settings dialog. + */ + void SettingsDialogL(); + + /** + * Creates new entry + * @param aParentId + */ + void CreateAndEditNewEntryL( TMsvId aParentId, TMsvEntry& aNewEntry ); + + /** + * Creates new entry + * @param aEntryType + * @param aMtm + * @param aParentId + * @param aServiceId + */ + void CreateAndEditNewEntryL( + TInt aEntryType, + TUid aMtm, + TMsvId aParentId, + TMsvId aServiceId ); + + /** + * Called by OpCompleted. + * @param aOperation + * @param aCompletionCode + */ + void DoOperationCompletedL( + CMsvOperation* aOperation, + TInt aCompletionCode ); + + /** + * User requested to delete items. + * Launches query and if accepted deletes items. + */ + void HandleDeleteL(); + + /** + * User requested to undelete items. + */ + void HandleUndeleteL(); + + /** + * User requested to move or copy message items. + * Launches folder selection query and if accepted moves items. + * @param aCopy: set ETrue if copying instead of moving. + */ + void MoveOrCopyEntriesL( TBool aCopy = EFalse ); + + /** + * Sends selection immediately. + * @param aSel Array of items to be sent. + */ + void SendSelectionL(CMsvEntrySelection* aSel); + + /** + * Tries to send currently selected item immediately. + */ + void SendNowL(); + + /** + * Cancels sending + */ + void CancelSendingL(); + + /** + * Fetch new messages. + */ + void FetchNewL(); + + /** + * Fetch selected messages. + */ + void FetchSelectedL(); + + /** + * Fetch all the messages. + */ + void FetchAllL(); + + /** + * @param aFunctionId + */ + void DoAsyncFunctionOnCurrentContextL(TInt aFunctionId); + + /** + * @param aFunctionId + * @param aSelection + */ + void DoAsyncFunctionOnCurrentContextL( + TInt aFunctionId, CMsvEntrySelection& aSelection); + + /** + * @param aFunctionId + * @param aContext + */ + void DoAsyncFunctionL(TInt aFunctionId, const TMsvEntry& aContext); + + /** + * @param aFunctionId + * @param aSelection + * @param aContext + */ + void DoAsyncFunctionL( + TInt aFunctionId, + CMsvEntrySelection& aSelection, + const TMsvEntry& aContext ); + + /** + * Checks if any connections are on. If there are connections on then + * displays query to User to disconnect. Disconnects if user selects yes. + */ + void CloseConnectionsBeforeExitL(); + + /** + * Returns array of the connected accounts. + * Places array to the clean up stack. Calling function must delete the array. + */ + CMsvEntrySelection* ConnectedServicesLC(); + + /** + * Fills TMsvEntry structure of the currently selected entry. + * @param aEntry structure to be filled. + * @param aOpenedFolder ETrue if opened folder info wanted + * EFalse if currently selected (entry under 'cursor') + * wanted. + */ + TBool GetCurrentEntryL(TMsvEntry& aEntry, TBool aOpenedFolder = EFalse) const; + + /** + * Checks if mtm function is currently available + * @param aFunction + * @param aEntryToCheck + */ + TInt CheckMTMFunctionL( const TMsgFunctionInfo& aFunction, TMsvEntry& aEntryToCheck ); + + /** + * Perform mtm function. + * @param aFunction function to be executed. + * @return none + */ + void HandleMTMFunctionL(const TMsgFunctionInfo& aFunction); + + /** + * Opens next or previous message. + */ + void HandleOpenNextPreviousL( TBool aOpenNext = ETrue ); + + /** + * Starts USSD editor application + */ + void LaunchServiceCommandEditorL() const; + + /** + * Starts CBS application + */ + void LaunchCBSApplicationL(); + + /** + * Performs 'Move back to Drafts' operation + */ + void MoveFromOutboxToDraftsL(); + + /** + * Creates tabs. Should be called when opening folder. + */ + void CreateTabsL(); + + /** + * Calls and traps ShowTabsL, ignores errors. + * Used in CreateNewMessageL as TCleanupItem. + * @param aAny: pointer to object of CMceUi. + */ + static void ShowTabs( TAny* aAny ); + + /** + * Checks remote mailbox states and updates remote mailbox icons if connected + * or not + */ + void CheckRemoteMailboxTabIconsL(); + + /** + * Forces mtm loader to finish loading. + */ + void ForceMtmLoaderFinish(); + + /** + * Closes connection to mailbox synchronously. Used when trying to exit application + * when connected to one or more mailboxes. + * @param aAccount account id to be disconnected. + */ + void GoOfflineSynchronouslyL( TMsvId aAccount ); + + /** + * Resets iEditorOperation if leave occurs. + * @param aAny: pointer to object of CMceUi. + */ + static void ResetEditorOperation( TAny* aAny ); + + /** + * Check if free disk space goes under critical level, and leaves if it does + */ + void LeaveIfDiskSpaceUnderCriticalLevelL( TInt aBytesToWrite = 0 ); + + /** + * Cancels RequestFreeDiskSpace if leave happens + * on DeleteAccountL + * @param aAny: pointer to object + */ + static void CancelFreeDiskSpaceRequest( TAny* aAny ); + + /** + * returns ETrue if sms or mms message entry is connected or in sending state + * @param aEntryId: id of the entry to be checked. + */ + TBool IsMessageSendingL( TMsvId aEntryId ) const; + + /** + * Replies to sender/all + * @param aReplyCommand: reply to sender or reply to all + */ + void ReplyL(TInt aReplyCommand); + + /** + * Marks selected mail to read + */ + void MarkAsReadL( TBool aRead = ETrue ); + + /** + * If mtm type is SyncMl, updates new message -dialog. + * @param aSelection: entry selection + * @param aEvent: event type + */ + void SyncMlNewMessageItemL( const CMsvEntrySelection* aSelection, TInt aEvent ); + + /** + * Performs 'Move back to Drafts' operation to SyncMl outbox entry + */ + void SyncMlMoveFromOutboxToDraftsL( ); + + /** + * Returns ETrue if always online is supported + */ + TBool AlwaysOnlineL( ); + + /** + * Handles MMS notification delete + * @param aParameter: parameter value + */ + void HandleMMSNotificationsDeleteL( TDes8& aParameter ); + + /** + * Separates MMS notifications from selection + * @param aSelection: pointer to selected entries + */ + void CheckMMSNotificationsL( CMsvEntrySelection* aSelection ); + + /** + * Opens remote mailbox settings + */ + void OpenMailboxSettingsL( ); + + /** + * Marks selected SyncML mail to read + */ + void SyncMlMarkAsReadL( ); + + /** + * Checks if MMS notification delete failed + */ + void CheckMMSNotifDelFailedL(); + + /** + * Checks CSP Cell Broadcast bit from SIM + */ + TBool CheckCspBitL() const; + /** + * Checks if csp is supported + */ + TBool CspBitsL( ); + + /** + * Updates the application icon in the context pane + */ + void LoadContextIconL(); + + /** + * Releases other that built-in mtm ui data objects. + * So that it could be possible to install new version of some mtm + * from inbox. + */ + void ReleaseMtmUiData(); + + /** + * Shows the information note, when mail messages cannot be copied or moved. + */ + void InformationNoteCannotMoveCopyEMailL(); + + /** + * Removes mail messages from the selection + */ + TBool RemoveEmailMessagesFromSelection( CMsvEntrySelection *aSelection ); + + /** + * Forwards message to receiver + * @param aForwardCommand: Forwards message to receiver + * Since 3.2 + */ + void ForwardL(TInt aForwardCommand); + + /** + * Changes local zoom level. + * @param aZoomLevel: new local zoom value + * @return Returns previous local zoom value + * @since 3.2 + */ + TAknUiZoom ZoomLevelChangedL( TAknUiZoom aZoomLevel ); + + /** + * Reads zoom level value from + * Central Repository: KCRUidMuiuSettings, key: KMuiuZoomValue + * @return Local zoom level saved in cenrep. + * @since 3.2 + */ + TAknUiZoom ReadZoomLevelL(); + + /** + * Saves zoom level value to + * Central Repository: KCRUidMuiuSettings, key: KMuiuZoomValue + * @param aZoomLevel: new local zoom value + * @since 3.2 + */ + void WriteZoomLevelL( TAknUiZoom aZoomLevel ); + + /** + * Called from HandleCommandL, changes zoom level and saves it to cen rep. + * @param aCommand: command id (EMceCmdZoomValueAutomatic - EMceCmdZoomValueLarge) + * @since 3.2 + */ + void HandleZoomLevelChangeL( TInt aCommand ); + + /** + * Sets correct sub menu item selected when zoom submenu opened. + * @param aMenuPane: menupane from DynInitMenuPaneL + * @since 3.2 + */ + void HandleZoomSubMenu( CEikMenuPane* aMenuPane ); + +#ifdef RD_READ_MESSAGE_DELETION + /** + * CMceUi::HandleNewMsgToInboxL( removeNewFlag, selection, &flagChanged ); + * Remove New Flag from selected message(s) if there is any + * From 4.0 + */ + void HandleNewMsgToInboxL( TBool removeNewFlag, + CMsvEntrySelection* aSelection ); +#endif //RD_READ_MESSAGE_DELETION + + /** + * TBool NewComingEmailL( TMsvId aFolderId ) + * Check if there is new email in the folder + * Returns ETrue if There is new email in the folder, otherwise returns EFalse + * @para: Id of folder entry + * Since 3.2 + */ + TBool HasNewEmailL( TMsvId aFolderId ); + + /** + * Set disk space for move or copy messages + * Since 3.1 + **/ + void SetDiskSpaceForMoveOrCopyL( ); + + /* + * Used for Fixed toolbar to get email type to launch email editor + */ + TInt GetToBeCreatedEmailType(); + + /** + * Checks if 'real' exit or just hiding needs to be done when performing user's exit command. + * @since S60 5.0 + */ + void HideOrExit(); + + /** + * Resets mce main view and then hides application from the ui. + * @since S60 5.0 + */ + void ResetAndHide(); + + /** + * Removes tabs and updates tabs array if those were active. + * Called when something changes in msg store root. + * @since S60 5.0 + */ + void RemoveTabsAndUpdateArray(); + + /** + * Checks for any IA updates. + */ + void CheckIAUpdate(); + /** + * CR:422-271 + * Set of Functions for decoding the .mms files from the hardcoded path + * @since S60 5.0 + */ + TInt PopulateMMSTemplates(); + + TInt DecodeAllMMSFromDirectoryL( TFileName& aFilePath, TMsvId aBoxid /*= KMsvDraftEntryId*/ ); + + TInt DecodeMMSFromFileL( TFileName& aFilePath, TMsvId aBoxId /*= KMsvDraftEntryId*/, TUint32 aFlags = 0 ); + + TInt FeedDataInChunks( CMmsCodecClient* aCodecClient ); + + void FillBufferFromFileL( const TDesC& aFilePath, RFs& aFs, CBufFlat* aEncodeBuffer ); + + public: + void OpenMtmMailboxViewL(const TMsvEntry& aEntry); + TBool FindMtmInVisibleListL( TUid aMtm, CArrayFix& aListItemUids ); + /** + * Gets the status of iMsgDeletedStatus flag. + * @since S60 5.0 + */ + TInt GetMsgDeletedStatus(); + /** + * Sets iMsgDeletedStatus flag. + * @since S60 5.0 + */ + void SetMsgDeletedStatus(TBool aStatus); + TUid GetFsIntegratedEmailAppMtmPluginId(); + + + private: // Data + CMsvSession* iSession; + CMtmUiDataRegistry* iUiRegistry; + CMsvEntry* iEntry; + CMsvEntry* iRootEntry; + + CMtmStore* iMtmStore; + + CUidNameArray iMsgTypesWritePopup; + CUidNameArray iMsgTypesWriteSubmenu; + CUidNameArray iMsgTypesSettings; + CMsgFuncArray* iMTMFunctionsArray; + + CMsvSingleOpWatcherArray iOperations; + CMsvSingleOpWatcher* iEditorOperation; + + CMceMessageListView* iMceListView; + CMceDeliveryReportView* iMceDeliveryView; + CMceMainViewListView* iMceMainView; + TUint iMceActiveView; + + CMceSessionHolder* iSessionHolder; + + CMceBitmapResolver* iBitmapResolver; + + CMceConnectMailboxTimer* iConnectMailboxTimer; + + CMceLogEngine* iMceLogEngine; + CAknNavigationControlContainer* iNaviPane; + CAknNavigationDecorator* iDecoratedTabGroup; + CMsvEntrySelection* iTabsArray; + CMceIdleMtmLoader* iMtmLoader; + TMceFlags iMceUiFlags; + CErrorUI* iMceErrorUi; + CMsvSingleOpWatcher* iDeleteOperation; + CMsvSingleOpWatcher* iFetchNewOperation; + CMsvOperation* iBlockingOperation; + CAknLocalScreenClearer* iLocalScreenClearer; + CMceMailAccountItemArray* iMailAccountItemArray; + CAknNavigationDecorator* iFolderIndicator; + CMsvEntrySelection* iMMSNotifications; + CMceIAUpdateUtils* iMceIAUpdate; + + TBool iMessageStoreExist; + TBool iCancelFreeDiskSpaceRequest; + TBool iMemoryInUse; + TBool iAlwaysOnline; + RConnectionMonitor iConnectionMonitor; + // security data caging + TFileName iFilename; + TBool iCsp; + // MMS.Content.Upload + RPointerArray iUploadServices; + // NCN reset + CMceEmailNotifHandler *iEmailNotifHandler; + CAknQueryDialog* iPhoneMemoryQuery; + + TBool iResourceChangeCalled; + TMsvOp iMoveOrCopyMailOperation; + TBool iMailboxCreationOn; + TMsvOp iMailboxDeleteOperation; + // Owned: Pointer to email API object + CImumInternalApi* iEmailApi; + +#ifdef RD_READ_MESSAGE_DELETION + CMsvEntrySelection* iIdArray; + TBool iHandleNewMsgToInbox; +#endif // RD_READ_MESSAGE_DELETION + TMsvId iAnchorId; + TInt iDiskSpaceForMoveOrCopy; + CIdle* iCancelExitFlagOperation; + TBool iAudioMsgEnabled ; // CR : 401-1806 + TBool iPostcardEnabled ; // CR : 401-1806 + TBool iFeatureMgrEnabled ; // CR : 401-1806 + // ETrue if MCE integration feature is ON. In practice, this means + // that S60 mailboxes are hided from MCE main view + TBool iEmailClientIntegration; + + // ETrue if Selectable Default Email feature is on + TBool iSelectableEmail; + TBool iMsgDeletedStatus; + TBool iServerStarted ; + + /** + * CMail Changes, it will be ETrue if + * KFeatureIdFfEmailFramework is enabled + */ + TBool iEmailFramework; + //CR:422-271 + //iFs is needed for opening a .mms file from hardcoded path for mms templates + RFs iFs; + CBufFlat* iEncodeBuffer; + CMmsClientMtm* iMmsMtm; + /** + * Iad Update Feature Flag. + * It will be ETrue, if feature is enabled, + * otherwise EFalse + */ + TBool iIadUpdateVal; + //To check if simdialog is open or not + TBool iSimDialogOpen; + }; + +#endif + +// End of file