diff -r 000000000000 -r 5f000ab63145 phoneapp/phoneuicontrol/inc/cphonestate.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/phoneapp/phoneuicontrol/inc/cphonestate.h Mon Jan 18 20:18:27 2010 +0200 @@ -0,0 +1,1185 @@ +/* +* Copyright (c) 2005-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: +* A base class for an object implementing the state. +* +*/ + + +#ifndef CPHONESTATE_H +#define CPHONESTATE_H + +// INCLUDES +#include +#include +#include +#include + +#include "mphonestate.h" +#include "mphoneviewcommandhandle.h" +#include "cphonecbamanager.h" + +// FORWARD DECLARATIONS +class MPhoneState; +class MPhoneStateMachine; +class CPhoneCallHeaderManager; +class CPhoneTimer; +class TPhoneCmdParamCallHeaderData; +class MPhoneCustomization; +class CPhoneNumberEntryManager; + +enum TStateTransEffectType + { + ENoneType, + ENumberEntryOpen, + ENumberEntryClose, + ENumberEntryCreate + }; + +// CLASS DECLARATION + +/** +* An abstract class for an object implementing the state. +* +*/ +class CPhoneState : + public CBase, + public MPhoneState + { + public: + + /** + * Constructor + */ + IMPORT_C CPhoneState( + MPhoneStateMachine* aStateMachine, + MPhoneViewCommandHandle* aViewCommandHandle, + MPhoneCustomization* aCustomization); + + /** + * Creates CbaManager instance. + */ + IMPORT_C void BaseConstructL(); + + /** + * Destructor. + */ + IMPORT_C virtual ~CPhoneState(); + + /** + * A message handling function for Phone Engine messages + * @param aMessage Message from Phone Engine + * @param aCallId Call id the message concerns + */ + IMPORT_C virtual void HandlePhoneEngineMessageL( + const TInt aMessage, + TInt aCallId ); + + /** + * HandleError + * Implements error handling framework + * @param aErrorInfo: the error info + */ + IMPORT_C virtual void HandleErrorL( + const TPEErrorInfo& aErrorInfo ); + + /** + * Handle processed (short, long) key messages from the key event + * handler + * @param aMessage a key message + * @param aCode key event code + */ + IMPORT_C virtual void HandleKeyMessageL( + TPhoneKeyEventMessages aMessage, + TKeyCode aCode ); + + /** + * Handles raw key events from the key event handler + * @param aKeyEvent a key event + * @param aEventCode key event code + */ + IMPORT_C virtual void HandleKeyEventL( + const TKeyEvent& aKeyEvent, + TEventCode aEventCode ); + + /** + * Handles key press duration events from the key event handler + * @param aCode key event code + * @param aKeyPressDuration key press duration + */ + IMPORT_C virtual void HandleKeyPressDurationL( + TKeyCode aCode, + TTimeIntervalMicroSeconds aKeyPressDuration ); + + /** + * From CAknAppUi, initialise a menupane (dynamic). + * + * @param aResourceId It is the resource id for the pane. + * @param aMenuPane It is the menu pane corresponding to the resource. + */ + IMPORT_C virtual void DynInitMenuPaneL( + TInt aResourceId, + CEikMenuPane* aMenuPane ); + + /** + * From CAknAppUi, initialise a menubar (dynamic). + * + * @param aResourceId It is the resource id for the bar. + * @param aMenuBar It is the menu bar corresponding to the resource. + */ + IMPORT_C virtual void DynInitMenuBarL( + TInt aResourceId, + CEikMenuBar* aMenuBar ); + + /** + * From CEikAppUi. For Idle indicator + */ + IMPORT_C virtual void HandleSystemEventL( + const TWsEvent& aEvent ); + + /** + * From CAknAppUi, indicates when app ui is on the foreground. + * @param aForeground It is true if app is on the foreground. + */ + IMPORT_C virtual void HandleForegroundEventL( TBool aForeground ); + + /** + * Indicates when the Phone app is in the foreground. + */ + IMPORT_C virtual void HandlePhoneForegroundEventL(); + + /** + * Indicates when the Phone app is losing focus. + */ + IMPORT_C virtual void HandlePhoneFocusLostEventL(); + + /** + * Indicates when the Idle app is in the foreground. + */ + IMPORT_C virtual void HandleIdleForegroundEventL(); + + /** + * Indicates when the keylock events + */ + IMPORT_C virtual void HandleKeyLockEnabled( TBool aKeylockEnabled ); + + /** + * Handle environment changes. + * @param aChanges environment changes which may be reported by + * a change notifier through the RChangeNotifier interface. + */ + IMPORT_C void HandleEnvironmentChangeL( const TInt aChanges ); + + /** + * Handles startup of the phone application + */ + IMPORT_C virtual void HandlePhoneStartupL(); + + /** + * This function is called when there is property value change. + * @param aCategory Category of the property + * @param aKey Property key that is changed + * @param aValue New property value + */ + IMPORT_C virtual void HandlePropertyChangedL( + const TUid& aCategory, + const TUint aKey, + const TInt aValue ); + + /** + * Handle the change of the setting from Central Repository + * @param aUid identifing the central repository UID. + * @param aId central repository ID. + */ + IMPORT_C virtual void HandleCenRepChangeL( + const TUid& aUid, + const TUint aId ); + + /** + * Handles commands. + * @param aCommand It is the code of the command to be handled. + * @returns boolean value was the command handled by the state + * (ETrue) or not (EFalse) + */ + IMPORT_C virtual TBool HandleCommandL( TInt aCommand ); + + /** + * Processes command. + * @param aCommand It is the code of the command to be handled. + * @returns boolean value was the command handled by the state + * (ETrue) or not (EFalse) + */ + IMPORT_C virtual TBool ProcessCommandL( TInt aCommand ); + + /** + * Handles commands from the Remote Control framework. + * @param aOperationId The operation ID of the command. + * @param aButtonAct The button action associated with the command. + * @return ETrue if the event was handled, EFalse otherwise. + */ + IMPORT_C virtual TBool HandleRemConCommandL( + TRemConCoreApiOperationId aOperationId, + TRemConCoreApiButtonAction aButtonAct); + + /** + * Setter for divert indication showing in bubble. + * @param aDivertIndication ETrue to show divert indication, + * EFalse to not. Usually setting EFalse isn't necessary + * as it's a default value in bubble creation. + */ + IMPORT_C virtual void SetDivertIndication( + const TBool aDivertIndication ); + + /** + * Handles Long hash key press + */ + IMPORT_C void HandleLongHashL(); + + /** + * Informs view to start Transition effect + * @param aType a transition effect, default none + * EndTransEffect() must be called when update is done. + */ + IMPORT_C void BeginTransEffectLC( TStateTransEffectType aType = ENoneType ); + + /** + * Informs view to complete Transition effect + */ + IMPORT_C void EndTransEffect(); + + /** + * Checks whether customized dialer view is active, + * @return ETrue if customized dialer is active + */ + IMPORT_C TBool IsCustomizedDialerVisibleL() const; + + /** + * Closes customized dialer view + */ + IMPORT_C void CloseCustomizedDialerL(); + + /** + * Plays DTMF tone for key event + * */ + IMPORT_C void HandleDtmfKeyToneL( const TKeyEvent& aKeyEvent, + TEventCode aEventCode ); + + /** + * Show global InfoNote + * @param aResourceId resource id to be resolved + */ + IMPORT_C void SendGlobalInfoNoteL( TInt aResourceId ); + + /** + * Show global ErrorNote + * @param aResourceId resource id to be resolved + */ + IMPORT_C void SendGlobalErrorNoteL( TInt aResourceId ); + + /** + * Get blocked key list + * @returns RArray& lsit of blocked keys + */ + IMPORT_C const RArray& GetBlockedKeyList() const; + + /** + * Disable HW Keys if needed + */ + IMPORT_C void DisableHWKeysL(); + + /** + * Disable Call UI + */ + IMPORT_C void DisableCallUIL(); + + /** + * Enable Call UI + */ + IMPORT_C void EnableCallUIL(); + + /** + * Disable HW Keys and Call UI if needed + */ + IMPORT_C void CheckDisableHWKeysAndCallUIL(); + + /** + * Handle hold switch key event when there is an incoming or waiting call + */ + IMPORT_C void HandleHoldSwitchL(); + + /** + * Enable HW Keys and Call UI if needed + */ + IMPORT_C void CheckEnableHWKeysAndCallUIL(); + + /** + * Fetches autolock information - is it set on or not + * @return is autolock set on (ETrue) or off (EFalse) + */ + IMPORT_C TBool IsAutoLockOn() const; + + /** + * Return is sim state ok + * @return ETrue if is sim ok, otherwise EFalse + **/ + IMPORT_C TBool IsSimOk(); + + /** + * Checks Svivel state. + * @return ETrue if swivel is closed. + */ + IMPORT_C TBool IsSwivelClosed() const; + + /** + * Check if note, query or blockingDialog is visible + * @return boolean value indicating that note, query or + * blocking dialog is visible + */ + IMPORT_C TBool IsAnyQueryActiveL(); + + /** + * Check if menu bar is visible + * @return boolean value indicating that menu bar is visible + */ + IMPORT_C TBool IsMenuBarVisibleL() const; + + /** + * Sets context menu to correspond the incall options menu + * + */ + IMPORT_C virtual void UpdateInCallContextMenuL(); + + /* + * If KFeatureIdFfSimlessOfflineSupport is undefined and + * UI shows note which will be closed by key event then + * method return ETrue otherwise EFalse. + */ + TBool IsNoteDismissableL(); + + IMPORT_C void RetainPreviousKeylockStateL(); + + public: // NumberEntry functions. + + /** + * Passes create number entry command forward if NE can be created. + */ + IMPORT_C virtual void HandleCreateNumberEntryL( + const TKeyEvent& aKeyEvent, + TEventCode aEventCode ); + /** + * Check if number entry is used + * @return boolean value indicating that number entry is used + */ + IMPORT_C virtual TBool IsNumberEntryUsedL(); + + /** + * Check if number entry is visible + * @return boolean value indicating that number entry is visible + */ + IMPORT_C TBool IsNumberEntryVisibleL(); + + protected: + + /** + * Handle EPEMessageAudioMuteChanged + */ + IMPORT_C void HandleAudioMuteChangedL(); + + /** + * Handle EPEMessageAudioOutputChanged + */ + IMPORT_C void HandleAudioOutputChangedL(); + + /** + * Handle SideVolumeKeyInc + */ + IMPORT_C void IncreaseAudioVolumeL(); + + /** + * Handle SideVolumeKeyDec + */ + IMPORT_C void DecreaseAudioVolumeL(); + + /** + * Dial CS multimedia call + */ + IMPORT_C void DialMultimediaCallL(); + + /** + * Dial CS voice call + */ + IMPORT_C void DialVoiceCallL(); + + /** + * Disconnect call + */ + IMPORT_C TBool DisconnectCallL(); + + /** + * Display idle screen + */ + IMPORT_C void DisplayIdleScreenL(); + + /** + * Set up the Idle screen in the background for the cases + * where the phone is no longer the top application (eg. end + * call when an external app is being displayed) + */ + IMPORT_C void SetupIdleScreenInBackgroundL(); + + /** + * Display call header for call coming in ( the remote info data + * and picture is displayed immediately ) + * @param aCallid call id + * @param aWaitingCall waiting call indication + */ + IMPORT_C void DisplayHeaderForCallComingInL( + TInt aCallId, + TInt aWaitingCall ); + + /** + * Sets call header texts for call coming in + * @param aCallid call id + * @param aWaitingCall waiting call indication + * @param aCallHeaderData - Call header parameter into which the text + * will be set. + */ + IMPORT_C void SetCallHeaderTextsForCallComingInL( + TInt aCallId, + TBool aWaitingCall, + TPhoneCmdParamCallHeaderData* aCallHeaderData ); + + /** + * Display call header for outgoing call (the phone number is initially + * displayed) + * @param aCallid call id + */ + IMPORT_C void DisplayHeaderForOutgoingCallL( TInt aCallId ); + + /** + * Update Single Active Call + * @param aCallid call id + */ + IMPORT_C void UpdateSingleActiveCallL( TInt aCallId ); + + /** + * Update remote information data in the call header + * @param aCallid call id + */ + IMPORT_C void UpdateRemoteInfoDataL( TInt aCallId ); + + /** + * Return remote info data + * @param aCallid call id + * @param aData the returned remote info data + */ + IMPORT_C void GetRemoteInfoDataL( TInt aCallId, TDes& aData ); + + /** + * Sets context menu + * + * @param aResourceId resource + */ + IMPORT_C virtual void SetContextMenuL( TInt aResourceId ); + + /** + * Sets context menu to correspond the incoming options menu + * + * @param aCallId incoming call id + */ + IMPORT_C virtual void UpdateIncomingContextMenuL( TInt aCallId ); + + + /** + * Show note + * @param aResourceId resource id to be resolved + */ + IMPORT_C void ShowNoteL( TInt aResourceId ); + + /** + * Show query + * @param aResourceId resource id to be resolved + */ + IMPORT_C void ShowQueryL( TInt aResourceId ); + + /** + * Show text query + * @param aDialogResourceId dialog's resource id + * @param aDefaultCbaResourceId default CBA's resource id + * @param aContentCbaResourceId content CBA's resource id + * @param aDataText pointer to data text + * @param aSendKeyEnabled send key enabled status for the query + */ + IMPORT_C void ShowTextQueryL( + TInt aDialogResourceId, + TInt aDefaultCbaResourceId, + TInt aContentCbaResourceId, + TDes* aDataText, + TBool aSendKeyEnabled = EFalse ); + + /** + * Check if note is visible + * @return boolean value indicating that note is visible + */ + IMPORT_C TBool IsNoteVisibleL(); + + /** + * Handle numeric key event + */ + IMPORT_C virtual void HandleNumericKeyEventL( + const TKeyEvent& aKeyEvent, + TEventCode aEventCode ); + + /** + * Check if the application needs to be sent to the background + * @return boolean value indicating that application needs to be + * sent to the background + */ + IMPORT_C TBool NeedToSendToBackgroundL() const; + + /** + * Check if the top application is currently displayed in the foreground + * @return boolean value indicating that top app is displayed + */ + IMPORT_C TBool TopAppIsDisplayedL() const; + + /** + * Capture keys during call notifications (dialing, incoming, waiting) + * @param aCaptured ETrue if keys are to be captured + */ + IMPORT_C void CaptureKeysDuringCallNotificationL( TBool aCaptured ); + + /** + * Displays the call termination note, if required + */ + IMPORT_C void DisplayCallTerminationNoteL(); + + /** + * Set the handsfree mode + * @param aHandsfreeMode ETrue to activate IHF, EFalse to deactivate + */ + IMPORT_C void SetHandsfreeModeL( TBool aHandsfreeMode ); + + /** + * Set the BT handsfree mode + * @param aHandsfreeMode ETrue to activate BT, EFalse to deactivate + */ + IMPORT_C void SetBTHandsfreeModeL( TBool aHandsfreeMode ); + + /** + * Show global WarningNote + * @param aResourceId resource id to be resolved + */ + IMPORT_C void SendGlobalWarningNoteL( TInt aResourceId ); + + /** + * Checks is the call id a video call. + * @param aCallId - call id to be checked + * @return ETrue if video call id, otherwise EFalse + */ + IMPORT_C TBool IsVideoCall( const TInt aCallId ); + + /** + * Return SimState. + */ + IMPORT_C TPESimState SimState() const; + + /** + * Starts ALS line change timer. + * This should be called after receiving long keypress + * which is 0.8 seconds. ALS line change timer ticks + * 2.2 seconds before callback is called. + */ + IMPORT_C void StartAlsLineChangeTimerL(); + + /** + * Start show security note + * This should be called in startup and idle state + * if sim state not ok + */ + IMPORT_C void StartShowSecurityNoteL(); + + /** + * Check if the sim card state is EPESimNotPresent with + * the security mode is enabled. + * @return ETrue if the sim card state is EPESimNotPresent and + * the security mode is enabled, otherwise EFalse + **/ + IMPORT_C TBool IsSimStateNotPresentWithSecurityModeEnabled(); + + /** + * Handle audio output availability change + */ + void HandleAudioAvailableOutputChangedL(); + + /** + * Shows 'Number busy' note. + */ + IMPORT_C void ShowNumberBusyNoteL(); + + /** + * Fetches keylock information - is it set on or not + * @return is keylock set on (ETrue) or off (EFalse) + */ + IMPORT_C TBool IsKeyLockOn() const; + + /** + * Informs Phone Engine Sat request completion + * @param aCallId a call id + */ + IMPORT_C void CompleteSatRequestL( const TInt aCallId ); + + /** + * Sets the call header type used in the call bubble. + */ + IMPORT_C void SetCallHeaderType( const CBubbleManager::TPhoneCallTypeFlags aCallHeaderType ); + + /** + * Handles situation when hash key has been kept down long + * (long keypress) and the hash character is the only character + * in number entry. + */ + IMPORT_C virtual void OnlyHashInNumberEntryL(); + + /** + * Informs view that UI is being updated (call bubble or number editor). + * EndUiUpdate() must be called when update is done. + */ + IMPORT_C void BeginUiUpdateLC(); + + /** + * Informs view that UI update is completed. + */ + IMPORT_C void EndUiUpdate(); + + /* + * Checks if necessary to show call termination note + * + * @param aCallId call id + * @return true if note should be shown + */ + IMPORT_C virtual TBool CheckIfShowCallTerminationNote( ); + + /* + * Sets used touchpane buttons. + * + * @param touchpane resource id. + */ + IMPORT_C void SetTouchPaneButtons( TInt aResourceId ); + + /* + * Sets touchpane visibility. + * + * @param ETrue if visible otherwise EFalse. + */ + IMPORT_C void SetTouchPaneVisible( TBool aVisible ); + + /* + * Destroys touchpane buttons. + */ + IMPORT_C void DeleteTouchPaneButtons(); + + /* + * Enables touchpane button that holds given command id. + * + * @param aCommandId Command id. + */ + IMPORT_C void SetTouchPaneButtonEnabled( TInt aCommandId ); + + /* + * Disables touchpane button that holds given command id. + * + * @param aCommandId Command id. + */ + IMPORT_C void SetTouchPaneButtonDisabled( TInt aCommandId ); + + /* + * Checks if DTMF editor is active, + * @return true is DTMF is active + */ + IMPORT_C TBool IsDTMFEditorVisibleL() const; + + /** + * Closes dtmf editor. + */ + IMPORT_C void CloseDTMFEditorL(); + + /** + * Set default flags values. + * No active call + */ + IMPORT_C void SetDefaultFlagsL(); + + /** + * Check if contact info available and + * shown waiting note with or without caller name + */ + IMPORT_C void CallWaitingNoteL( TInt aCallId ); + + /* + * Sets ringtone playback. + * @param aCallId call id + */ + IMPORT_C void SetRingingTonePlaybackL( TInt aCallId ); + + /** + * A message handling function for message EPEMessageDisconnecting + * @param aCallId: the call id of the call + */ + IMPORT_C void HandleDisconnectingL( TInt aCallId ); + + /** + * Returns customized dialer menu resource id + */ + IMPORT_C TInt CustomizedDialerMenuResourceIdL(); + + /** + * Returns customized dialer CBA resource id + */ + IMPORT_C TInt CustomizedDialerCbaResourceIdL(); + + protected: // NumberEntry functions. + + /** + * Set Number Entry visibility. + * @param aVisible ETrue if numberentry is wanted to be shown + * (Note ETrue will set NE CBA's) + * EFalse if numberentry isnt wanted to be shown + * (Note EFalse doesnt affact to CBA's) + */ + IMPORT_C void SetNumberEntryVisibilityL( const TBool aVisible ); + + /** + * Create call if in numberentry more that 2 number and Send key + * Send manual control sequence + * if 1-2 number in numberentry and Send key + */ + IMPORT_C void CallFromNumberEntryL(); + + /** + * Returns phone number from the phone number entry. + * @return Phone number + */ + IMPORT_C HBufC* PhoneNumberFromEntryLC(); + + /** + * Check if number entry content is stored + * @return boolean value indicating that number entry content is stored + */ + IMPORT_C TBool IsNumberEntryContentStored(); + + /** + * Stores the number entry content to the cache + */ + IMPORT_C void StoreNumberEntryContentL(); + + /** + * Restores the number entry content from the cache + */ + IMPORT_C void RestoreNumberEntryContentL(); + + /** + * Clears the number entry content cache + */ + IMPORT_C void ClearNumberEntryContentCache(); + + /** + * Restores number entry content after dtmf dialer + */ + IMPORT_C void CheckIfRestoreNEContentAfterDtmfDialer(); + + /** + * Checks if on screen dialer feature is supported. + */ + IMPORT_C TBool IsOnScreenDialerSupported() const; + + /** + * Informs phoneengine that phone number has been edited i.e. phonenumber parser is run + */ + IMPORT_C virtual void HandleNumberEntryEdited(); + + /** + * Returns ETrue if alphanumeric characters are supported. + * @param aKeyEvent Key event. + * @return ETrue if alphanumeric chars are supported. + */ + IMPORT_C TBool IsAlphanumericSupportedAndCharInput( + const TKeyEvent& aKeyEvent ); + + /** + * Handle state-specific behaviour when number entry is cleared + */ + IMPORT_C virtual void HandleNumberEntryClearedL(); + + /** + * Internal number entry handling methods. + */ + void NumberEntryClearL(); + + + /** + * Dims silence touch button if call is not alerting. + * @param None + */ + IMPORT_C void UpdateSilenceButtonDimming(); + + /** + * Sets toolbar dimming. + * @param aDimmed ETrue if dimmed + */ + IMPORT_C void SetToolbarDimming( TBool aDimmed ); + + /** + * Sets toolbar loudspeaker button enabled. + */ + IMPORT_C void SetToolbarButtonLoudspeakerEnabled(); + + protected: + + /** + * Returns updated remote information data. + * NOTE: This metohed is used when state receives + * EPEMessageRemotePartyInfoChanged from PhoneEngine. + * @param aCallId - Call Id. + */ + TPhoneCmdParamCallHeaderData UpdateCallHeaderInfoL( TInt aCallId ); + + /** + * Checks if call is waiting, returns ETrue if call is waiting + * otherwise EFalse. + * @param aCallId, call id. + */ + TBool IsWaitingCallL( const TInt aCallId ); + + /** + * Shows dtmf dialer + */ + void ShowDtmfDialerL(); + + /** + * Checks status of KFeatureIdSideVolumeKeys and KTelephonyLVFlagScrollVolumeKeys + * keys. If KTelephonyLVFlagScrollVolumeKeys is false and KFeatureIdSideVolumeKeys is true + * then side volume keys are only supported and method returns true, otherwise false. + */ + TBool OnlySideVolumeKeySupported(); + + /** + * Checks if device has connected call ongoing. + * List of connected call states: EPEStateConnected + * EPEStateConnectedConference + * EPEStateConnecting + */ + TBool IsAnyConnectedCalls(); + + private: + + /** + * Update incall indicator + * @param aCallState a call state + */ + void UpdateIncallIndicatorL( TInt aCallState ); + + /** + * Handle EPEMessageChangedCallDuration + * @param aCallId call id of the message + */ + void HandleChangedCallDurationL( TInt aCallId ); + + /** + * Update profile display + */ + void UpdateProfileDisplayL(); + + /** + * Update operator display + */ + void UpdateOperatorDisplayL(); + + /** + * Sends key down event to the phone engine + * @param aKeyEvent a key event + * @param aEventCode key event code + */ + void SendKeyPressL( + const TKeyEvent& aKeyEvent, + TEventCode aEventCode ); + + /** + * Sends key events to the phone engine + * @param aKeyEvent a key event + * @param aEventCode key event code + */ + void SendKeyEventL( + const TKeyEvent& aKeyEvent, + TEventCode aEventCode ); + + /** + * ETrue if title pane is visible + */ + TBool TitlePaneIsVisibleL() const; + + /** + * Change Audio volume level + * @param aLevel New volume level. + * @param aUpdateControl Set ETrue if volume ui control + * needs to be updated. + */ + void ChangeAudioVolumeL( TInt aLevel, + TBool aUpdateControl = ETrue ); + + /** + * Handles EPEMessageInitiatedEmergency call message from Phone Engine. + * @param aCallId - Caller id. + */ + void HandleInitiatedEmergencyCallL( TInt aCallId ); + + /** + * Handles EPEMessageInitiatedEmergencyWhileActiveVideo message from + * Phone Engine. + */ + void HandleInitiatedEmergencyWhileActiveVideoL(); + + /** + * Shows IMEI note + */ + void HandleShowImeiL(); + + /** + * Handles network ciphering info changes + */ + void HandleCallSecureStatusChangeL( TInt aCallId ); + + /** + * Shows Life time note + */ + void HandleShowLifeTimerL(); + + /** + * Handles change als line command + */ + void ChangeAlsLineL(); + + /** + * Active call id + */ + TInt GetActiveCallIdL(); + + /** + * Callback function for launching ALS line change dialog + * This is called when Als line change timer timeout is + * reached which means user has pushed the #-key long enough. + * @param aAny - not used + */ + static TInt AlsLineChangeTimerCallbackL( TAny* aAny ); + + /** + * Shows WLAN MAC address note + */ + void ShowWlanMacAddressL(); + + + /** + * Check if ALS line change is possible + */ + TBool IsAlsLineChangePossible(); + + /** + * A message handling function for message EPEMessageRemoteBusy + * @param aCallId a call id + */ + void HandleRemoteBusyL( const TInt aCallId ); + + /** + * Creates caller information. Sets CNAP, phone number, thumbnail image + * etc. into the call header parameter. + * @param aCallId - Call Id. + * @param aCallHeaderData - Call header parameter where modifications + * are made. + */ + void CreateCallerInfoL( const TInt aCallId, + TPhoneCmdParamCallHeaderData* aCallHeaderData ); + + /** + * TCleanupOperation to call EndUiUpdate(), if leave occurs + * after BeginUiUpdate(). + */ + static void UiUpdateCleanup(TAny* aThis ); + + /** + * TCleanupOperation to call EndTransEffect, if leave occurs + * after BeginTransEffect(). + */ + static void EffectCleanup(TAny* aThis ); + + /** + * Gets volume level from ui control. + */ + TInt GetVolumeLevel(); + + /** + * Shows video call specific out of memory note. + */ + void ShowVideoCallOutOfMemoryNoteL(); + + /** + * Returns sim security status: + * Rejected or UnAccepted. + */ + TInt SimSecurityStatus() const; + + /** + * Show CUG in use note + */ + void HandleCugInUseNoteL(); + + /** + * Handles changes in the SIM card state. + */ + void HandleSimStateChangedL(); + + /** + * Checks if key events are allowed to be redirected for further handling + */ + TBool IsKeyEventFurtherProcessedL( const TKeyEvent& aKeyEvent ) const; + + /* + * Checks is given key contains numeric charaters or if customization is used + * alphanumeir letters + */ + TBool IsValidAlphaNumericKey( const TKeyEvent& aKeyEvent, + TEventCode aEventCode ); + + /* + * Updates CBA using either customization or resource resolver + */ + void CustomizeCbaForPhoneNumberL(); + + /* + * Checks if Touch dialer is on in DTMF mode. + */ + TBool IsTouchDTmfDialerOn() const; + + /* + * Checks if keyevent is from dtmf key and sends it to phone-engine + */ + void SendDtmfKeyEventL( const TKeyEvent& aKeyEvent, + TEventCode aEventCode ); + + /* + * Creates call header manager if needed. + */ + CPhoneCallHeaderManager* CallheaderManagerL(); + + /* + * Creates number entry content if needed. + */ + CPhoneNumberEntryManager* NumberEntryManagerL(); + + /* + * Updated Cba when Swivel state changes. + */ + void UpdateCbaSwivelStateChangedL(); + + /** + * Loads data commonengine stringloader. + * @param aData - The returned data including needed text. + * @param aResourceId - Resource id for text. + */ + void LoadResource( TDes& aData, const TInt aResource ) const; + + /** + * Opens virtual keyboard. + */ + void OpenVkbL(); + + private: // NumberEntry functions. + + /** + * Handles key events in situations when there exists a number entry. + * In this case number entry may be visible or hidden. + * @param aKeyEvent - key event + * @param aEventCode - event code + */ + void KeyEventForExistingNumberEntryL( + const TKeyEvent& aKeyEvent, + TEventCode aEventCode ); + + protected: // Data + + /** + * Reference to State machine + */ + MPhoneStateMachine* iStateMachine; + + /** + * Reference to the Phone UI View command handle + */ + MPhoneViewCommandHandle* iViewCommandHandle; + + protected: + + //Indicates whether onscreen dialer is defined + TBool iOnScreenDialer; + + /** + * Customization of functionality according to e.g. + * call type specific needs. + * Not own. + */ + MPhoneCustomization* iCustomization; + + // CBA key manager. Own. + CPhoneCbaManager* iCbaManager; + + private: + + /** + * Previously handled SIM card state. + */ + TPESimState iPreviousSimState; + + // Bitmap redraw counter + TInt iBitmapRedrawCounter; + + /** + * Timer for ALS line change. + */ + CPhoneTimer* iAlsLineChangeKeyPressTimer; + + // Internal variable for EikonEnv to avoid + // use of static system calls + CEikonEnv& iEnv; + + // Call header manager. + CPhoneCallHeaderManager* iCallHeaderManager; + + // Number entry manager + CPhoneNumberEntryManager* iNumberEntryManager; + + // RingtoneSilenced flag. + // This is used to determine if the ringtone + // for incoming call is silenced. The information + // is used while updating softkeys in method + // UpdateIncomingCbaL only + TBool iRingtoneSilenced; + + /** + * Handle to the Operator logo resource. + */ + TInt iLogoHandle; + }; + +#endif // CPHONESTATE_H + +// End of File