Revision: 201011 RCL_3
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Wed, 31 Mar 2010 21:30:06 +0300
branchRCL_3
changeset 6 38529f706030
parent 5 2a26698d78ba
child 7 544e34b3255a
Revision: 201011 Kit: 201013
package_definition.xml
phoneapp/phoneui/inc/cphoneappui.h
phoneapp/phoneui/src/cphoneappui.cpp
phoneapp/phoneuicontrol/bwins/phoneuicontrolu.def
phoneapp/phoneuicontrol/eabi/phoneuicontrolu.def
phoneapp/phoneuicontrol/group/phoneuicontrol.mmp
phoneapp/phoneuicontrol/inc/cphonekeyeventforwarder.h
phoneapp/phoneuicontrol/inc/cphonesecuritymodeobserver.h
phoneapp/phoneuicontrol/inc/cphonestatemachine.h
phoneapp/phoneuicontrol/inc/cphoneuicontroller.h
phoneapp/phoneuicontrol/inc/mphonesecuritymessagehandler.h
phoneapp/phoneuicontrol/inc/mphonesecuritymodechangeobserver.h
phoneapp/phoneuicontrol/inc/mphonesecuritymodeobserver.h
phoneapp/phoneuicontrol/inc/mphonestatemachine.h
phoneapp/phoneuicontrol/src/cphonecbamanager.cpp
phoneapp/phoneuicontrol/src/cphoneenginehandler.cpp
phoneapp/phoneuicontrol/src/cphonekeyeventforwarder.cpp
phoneapp/phoneuicontrol/src/cphonenumberentrymanager.cpp
phoneapp/phoneuicontrol/src/cphonesecuritymodeobserver.cpp
phoneapp/phoneuicontrol/src/cphonestate.cpp
phoneapp/phoneuicontrol/src/cphonestateidle.cpp
phoneapp/phoneuicontrol/src/cphonestateincoming.cpp
phoneapp/phoneuicontrol/src/cphonestatemachine.cpp
phoneapp/phoneuicontrol/src/cphonestatestartup.cpp
phoneapp/phoneuicontrol/src/cphonesystemeventhandler.cpp
phoneapp/phoneuicontrol/src/cphoneuicontroller.cpp
phoneapp/phoneuistates/inc/cphoneemergency.h
phoneapp/phoneuistates/src/cphoneemergency.cpp
phoneapp/phoneuistates/src/cphonegsmincall.cpp
phoneapp/phoneuistates/src/cphonesingleandwaiting.cpp
phoneapp/phoneuistates/src/cphonestartupsimlockui.cpp
phoneapp/phoneuiutils/bwins/phoneuiutilsu.def
phoneapp/phoneuiutils/eabi/phoneuiutilsu.def
phoneapp/phoneuiutils/inc/cphoneqwertyhandler.h
phoneapp/phoneuiutils/inc/cphonestorage.h
phoneapp/phoneuiutils/inc/mphonestorage.h
phoneapp/phoneuiutils/inc/phoneloggerviewcommands.h
phoneapp/phoneuiutils/src/cphoneqwertyhandler.cpp
phoneapp/phoneuiutils/src/cphoneqwertymodemonitor.cpp
phoneapp/phoneuiutils/src/cphonestorage.cpp
phoneapp/phoneuiutils/src/phoneloggerviewcommands.cpp
phoneapp/phoneuiutils/src/phoneloggerviewcommands.st
phoneapp/phoneuiview/bwins/phoneuiviewu.def
phoneapp/phoneuiview/eabi/phoneuiviewu.def
phoneapp/phoneuiview/inc/cphonedialerview.h
phoneapp/phoneuiview/inc/cphonemenucontroller.h
phoneapp/phoneuiview/inc/cphoneuidisablednote.h
phoneapp/phoneuiview/inc/cphoneview.h
phoneapp/phoneuiview/inc/cphoneviewcontroller.h
phoneapp/phoneuiview/inc/phoneringingtonesrvplayerao.h
phoneapp/phoneuiview/inc/phoneviewcommanddefinitions.h
phoneapp/phoneuiview/src/cphonedialercontroller.cpp
phoneapp/phoneuiview/src/cphonedialerview.cpp
phoneapp/phoneuiview/src/cphonemenucontroller.cpp
phoneapp/phoneuiview/src/cphoneuidisablednote.cpp
phoneapp/phoneuiview/src/cphoneview.cpp
phoneapp/phoneuiview/src/cphoneviewcontroller.cpp
phoneapp/phoneuiview/src/phoneringingtonesrvplayerao.cpp
phoneapp/phoneuiview/src/phoneringingtonesrvsession.cpp
phoneapp/phoneuivoipextension/inc/cphonevcchandler.h
phoneapp/phoneuivoipextension/src/cphoneresourceresolvervoip.cpp
phoneapp/phoneuivoipextension/src/cphonevcchandler.cpp
phoneengine/PhoneCntFinder/ContactService/inc/cphcntcontactdataselection.h
phoneengine/PhoneCntFinder/inc/Misc/MPhCntThumbnailLoaderObserver.h
phoneengine/servicehandling/src/cpeservicehandling.cpp
phoneuis/dialer/bwins/dialeru.def
phoneuis/dialer/eabi/dialeru.def
phoneuis/dialer/group/dialer.mmp
phoneuis/dialer/inc/cdialer.h
phoneuis/dialer/inc/cdialerkeypadbutton.h
phoneuis/dialer/inc/cdialerkeypadcontainer.h
phoneuis/dialer/inc/cdialernumberentry.h
phoneuis/dialer/inc/dialercommon.h
phoneuis/dialer/src/cdialer.cpp
phoneuis/dialer/src/cdialerkeypadbutton.cpp
phoneuis/dialer/src/cdialerkeypadcontainer.cpp
phoneuis/dialer/src/cdialernumberentry.cpp
phoneuis/dialer/src/cdialerstub.cpp
phoneuis/dialer/src/cdialingextensionobserver.cpp
phoneuis/easydialing/group/easydialingplugin.mmp
phoneuis/easydialing/inc/easydialingcontactdatamanager.h
phoneuis/easydialing/inc/easydialingplugin.h
phoneuis/easydialing/inc/mcontactdatamanagerobserver.h
phoneuis/easydialing/src/easydialingcontactdatamanager.cpp
phoneuis/easydialing/src/easydialinglistbox.cpp
phoneuis/easydialing/src/easydialinglistboxdata.cpp
phoneuis/easydialing/src/easydialinglistboxitemdrawer.cpp
phoneuis/easydialing/src/easydialingplugin.cpp
phoneuis/easydialing/traces/OstTraceDefinitions.h
--- a/package_definition.xml	Mon Mar 15 12:40:24 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,108 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<SystemDefinition schema="3.0.0">
-  <package id="phone" name="Phone Apps" levels="engine plugin ui app">
-    <collection id="phoneapp" name="Phone Application" level="app">
-      <component id="blacklist" filter="s60" name="Phone Blacklist Clearing" class="plugin">
-        <unit bldFile="phoneapp/blacklist/group"/>
-      </component>
-      <component id="phoneui" filter="s60" name="Phone UI">
-        <unit bldFile="phoneapp/phoneui/group"/>
-        	<!-- should these be separate components? #included? -->
-        <!-- <unit bldFile="phoneapp/phoneui/tsrc/public/basic/3dringingtoneinterface_tests/group"/> -->
-        <!-- <unit bldFile="phoneapp/phoneui/tsrc/public/basic/group"/> -->
-      </component>
-      <component id="phoneuicontrol" filter="s60" name="Phone UI Control">
-        <unit bldFile="phoneapp/phoneuicontrol/group"/>
-      </component>
-      <component id="phoneuistates" filter="s60" name="Phone UI States">
-        <unit bldFile="phoneapp/phoneuistates/group"/>
-      </component>
-      <component id="phoneuiutils" filter="s60" name="Phone UI Utils">
-        <unit bldFile="phoneapp/phoneuiutils/group"/>
-      </component>
-      <component id="phoneuiview" filter="s60" name="Phone UI View">
-        <unit bldFile="phoneapp/phoneuiview/group"/>
-      </component>
-      <component id="phoneuivoipextension" filter="s60" name="Phone UI VOIP Extension">
-        <unit bldFile="phoneapp/phoneuivoipextension/group"/>
-      </component>
-      <component id="silenceactionplugin" filter="s60" name="Silence Action Plugin" class="plugin">
-        <unit bldFile="phoneapp/silenceactionplugin/group"/>
-      </component>
-      <component id="phonemediatorcenter" filter="s60" name="Phone Mediator Center">
-        <unit bldFile="phoneapp/phonemediatorcenter/group"/>
-      </component>
-    </collection>
-    <collection id="phoneengine" name="Phone Engine" level="engine">
-      <component id="phonecntfinder" filter="s60" name="Phone Contact Finder">
-        <unit bldFile="phoneengine/phonecntfinder/group"/>
-      </component>
-      <component id="audiohandling" filter="s60" name="Phone Audio Handling">
-        <unit bldFile="phoneengine/audiohandling/group"/>
-      </component>
-      <component id="callhandling" filter="s60" name="Call Handling">
-        <unit bldFile="phoneengine/callhandling/group"/>
-      </component>
-      <component id="contacthandling" filter="s60" name="Phone Contact Handling">
-        <unit bldFile="phoneengine/contacthandling/group"/>
-      </component>
-      <component id="loghandling" filter="s60" name="Phone Log Handling">
-        <unit bldFile="phoneengine/loghandling/group"/>
-      </component>
-      <component id="engineinfo" filter="s60" name="Phone Engine Info">
-        <unit bldFile="phoneengine/engineinfo/group"/>
-      </component>
-      <component id="phonemodel" filter="s60" name="Phone Model">
-        <unit bldFile="phoneengine/phonemodel/group"/>
-      </component>
-      <component id="servicehandling" filter="s60" name="Phone Service Handling">
-        <unit bldFile="phoneengine/servicehandling/group"/>
-      </component>
-    </collection>
-    <collection id="phonesettings" name="Phone Settings" level="plugin">
-      <component id="aiwcallimageplugin" filter="s60" name="Call Image AIW Plugin" class="plugin">
-        <unit bldFile="phonesettings/aiwcallimageplugin/group"/>
-      </component>
-      <component id="pslncallimageplugin" filter="s60" name="Call Image Personalization Plugin"  class="plugin">
-        <unit bldFile="phonesettings/pslncallimageplugin/group"/>
-      </component>
-    </collection>
-    <collection id="phoneuis" name="Phone UIs" level="ui">
-      <component id="dialer" filter="s60" name="Dialer">
-        <unit bldFile="phoneuis/dialer/group"/>
-        	<!-- what to do about this test unit? -->
-        <!-- <unit bldFile="phoneuis/dialer/tsrc/public/basic/group"/> -->
-      </component>
-      <component id="bubblemanager" filter="s60" name="Phone Bubble Manager">
-        <unit bldFile="phoneuis/bubblemanager/group"/>
-      </component>
-      <component id="connectutil" filter="s60" name="Connection Utility" class="plugin">
-        <unit bldFile="phoneuis/connectutil/group"/>
-      </component>
-      <component id="sfiutils" filter="s60" name="Send File In Call Utilities" class="plugin">
-        <unit bldFile="phoneuis/sfiutils/group"/>
-        	<!-- what to do about this test unit? -->
-        <!-- <unit bldFile="phoneuis/sfiutils/tsrc/public/basic/group"/> -->
-      </component>
-      <component id="ussd" filter="s60" name="Unstructured Supplementary Services Data">
-        <unit bldFile="phoneuis/ussd/group"/>
-      </component>
-      <component id="vmbx" filter="s60" name="Voice Mailbox">
-        <unit bldFile="phoneuis/vmbx/group"/>
-      </component>
-      <component id="telephonydevicemode" filter="s60" name="Telephony Device Mode">
-        <unit bldFile="phoneuis/telephonydevicemode/group"/>
-      </component>
-    </collection>
-    <collection id="phone_info" name="Phone Apps Info" level="app">
-      <component id="phone_plat" filter="s60" name="Phone Apps Platform Interfaces" class="api">
-        <unit bldFile="phone_plat/group"/>
-      </component>
-    </collection>
-    <collection id="phoneplugins" name="Phone Plugins" level="plugin">
-      <component id="telbranding" filter="s60" name="Tel Branding" class="plugin" introduced="^2">
-        <unit bldFile="phoneplugins/telbranding/group"/>
-      </component>
-    </collection>
-  </package>
-</SystemDefinition>
--- a/phoneapp/phoneui/inc/cphoneappui.h	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneui/inc/cphoneappui.h	Wed Mar 31 21:30:06 2010 +0300
@@ -279,8 +279,6 @@
         // Id of system events from Starter states.
         TInt iStarterEventId;
         
-        CPhoneQwertyHandler* iQwertyHandler;
-        
         // System evenviroment notifier
         CEnvironmentChangeNotifier* iEnvChangeNotifier;
         
--- a/phoneapp/phoneui/src/cphoneappui.cpp	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneui/src/cphoneappui.cpp	Wed Mar 31 21:30:06 2010 +0300
@@ -55,7 +55,6 @@
 #include "phoneconstants.h"
 #include "cphoneclearblacklist.h"
 #include "cphonestatuspane.h"
-#include "cphoneqwertyhandler.h"
 #include "tphonecmdparaminteger.h"
 #ifndef __WINS__
 #include <f32file.h>
@@ -90,7 +89,6 @@
         delete iPhoneViewController;
         }
     delete iPhoneUIController;
-    delete iQwertyHandler;
     
     CPhoneRecoverySystem::Remove( iStartupSignalRecoveryId );
 
@@ -136,8 +134,7 @@
     keySounds->PushContextL( R_PHONEUI_DEFAULT_SKEY_LIST );
    
     iPhoneViewController = CPhoneViewController::NewL( ClientRect() );
-    iPhoneUIController = CPhoneUIController::NewL( iPhoneViewController );
-    iQwertyHandler = CPhoneQwertyHandler::NewL();        
+    iPhoneUIController = CPhoneUIController::NewL( *iPhoneViewController );
 
     // Blacklist singleton is initialized here
     // return value is ignored since we do not require its services in this class
@@ -601,34 +598,6 @@
                     Exit();
                     return;     
                     }
-                           
-                // Check if key press is simulated by FEP or by touch dialer
-                TBool fepSimulated = keyEvent->iModifiers & EModifierSpecial;               
-                TInt modifierMask = ( EModifierNumLock | EModifierKeypad );
-                TBool dialerSimulated = ( ( keyEvent->iModifiers & modifierMask ) == modifierMask );
-                        
-                if ( !fepSimulated && !dialerSimulated && iQwertyHandler->IsQwertyInput() )
-                    {
-                    TInt code = iQwertyHandler->NumericKeyCode( *keyEvent );                    
-                    if ( code == EKeyNull && CPhoneKeys::IsNumericKey( *keyEvent, ( TEventCode ) aEvent.Type() ) )
-                        {
-                        code = keyEvent->iCode;
-                        }
-                    
-                    if ( code != EKeyNull ) 
-                        {
-                        // Modify event according to keyboard layout
-                        TWsEvent newWsEvent = aEvent;    
-                        TKeyEvent* newKeyEvent = newWsEvent.Key();
-                        newKeyEvent->iCode = code;
-                        TInt shiftMask = EModifierLeftShift  | 
-                                         EModifierRightShift | 
-                                         EModifierShift;
-                        shiftMask = ~shiftMask;
-                        newKeyEvent->iModifiers = newKeyEvent->iModifiers & shiftMask;
-                        return CAknAppUi::HandleWsEventL( newWsEvent, aDestination );
-                        }
-                    }
                 }
                 break;
                 
--- a/phoneapp/phoneuicontrol/bwins/phoneuicontrolu.def	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneuicontrol/bwins/phoneuicontrolu.def	Wed Mar 31 21:30:06 2010 +0300
@@ -16,212 +16,222 @@
 	?DisplayCallTerminationNoteL@CPhoneState@@IAEXXZ @ 15 NONAME ; void CPhoneState::DisplayCallTerminationNoteL(void)
 	??0CPhoneStateInCall@@IAE@PAVMPhoneStateMachine@@PAVMPhoneViewCommandHandle@@PAVMPhoneCustomization@@@Z @ 16 NONAME ; CPhoneStateInCall::CPhoneStateInCall(class MPhoneStateMachine *, class MPhoneViewCommandHandle *, class MPhoneCustomization *)
 	?HandleNumberLongKeyPressL@CPhoneStateIdle@@IAEXXZ @ 17 NONAME ; void CPhoneStateIdle::HandleNumberLongKeyPressL(void)
-	?PhoneEngine@CPhoneStateMachine@@UAEPAVMPEPhoneModel@@XZ @ 18 NONAME ; class MPEPhoneModel * CPhoneStateMachine::PhoneEngine(void)
-	?OpenMenuBarL@CPhoneStateCallSetup@@MAEXXZ @ 19 NONAME ; void CPhoneStateCallSetup::OpenMenuBarL(void)
-	??1CPhoneStateCallSetup@@UAE@XZ @ 20 NONAME ; CPhoneStateCallSetup::~CPhoneStateCallSetup(void)
-	?HandleEnvironmentChangeL@CPhoneUIController@@UAEXH@Z @ 21 NONAME ; void CPhoneUIController::HandleEnvironmentChangeL(int)
-	?SetToolbarButtonLoudspeakerEnabled@CPhoneState@@IAEXXZ @ 22 NONAME ; void CPhoneState::SetToolbarButtonLoudspeakerEnabled(void)
-	?Instance@CPhoneStateHandle@@SAPAV1@XZ @ 23 NONAME ; class CPhoneStateHandle * CPhoneStateHandle::Instance(void)
-	?HandleNumberEntryClearedL@CPhoneStateIdle@@MAEXXZ @ 24 NONAME ; void CPhoneStateIdle::HandleNumberEntryClearedL(void)
-	?DynInitMenuPaneL@CPhoneStateIncoming@@MAEXHPAVCEikMenuPane@@@Z @ 25 NONAME ; void CPhoneStateIncoming::DynInitMenuPaneL(int, class CEikMenuPane *)
-	?HandleCommandL@CPhoneState@@UAEHH@Z @ 26 NONAME ; int CPhoneState::HandleCommandL(int)
-	?StartAlsLineChangeTimerL@CPhoneState@@IAEXXZ @ 27 NONAME ; void CPhoneState::StartAlsLineChangeTimerL(void)
-	?IsNumberEntryVisibleL@CPhoneState@@QAEHXZ @ 28 NONAME ; int CPhoneState::IsNumberEntryVisibleL(void)
-	?HandlePhoneEngineMessageL@CPhoneStateIdle@@UAEXHH@Z @ 29 NONAME ; void CPhoneStateIdle::HandlePhoneEngineMessageL(int, int)
-	?HandleDialingL@CPhoneStateIdle@@MAEXH@Z @ 30 NONAME ; void CPhoneStateIdle::HandleDialingL(int)
-	?CustomizedDialerCbaResourceIdL@CPhoneState@@IAEHXZ @ 31 NONAME ; int CPhoneState::CustomizedDialerCbaResourceIdL(void)
-	?CaptureKeysDuringCallNotificationL@CPhoneState@@IAEXH@Z @ 32 NONAME ; void CPhoneState::CaptureKeysDuringCallNotificationL(int)
-	?HandleKeyPressDurationL@CPhoneState@@UAEXW4TKeyCode@@VTTimeIntervalMicroSeconds@@@Z @ 33 NONAME ; void CPhoneState::HandleKeyPressDurationL(enum TKeyCode, class TTimeIntervalMicroSeconds)
-	?ChangeState@CPhoneStateMachine@@UAEXH@Z @ 34 NONAME ; void CPhoneStateMachine::ChangeState(int)
-	?IsSimStateNotPresentWithSecurityModeEnabled@CPhoneState@@IAEHXZ @ 35 NONAME ; int CPhoneState::IsSimStateNotPresentWithSecurityModeEnabled(void)
-	?HandlePhoneEngineMessageL@CPhoneState@@UAEXHH@Z @ 36 NONAME ; void CPhoneState::HandlePhoneEngineMessageL(int, int)
-	?HandleNumberEntryClearedL@CPhoneStateIncoming@@UAEXXZ @ 37 NONAME ; void CPhoneStateIncoming::HandleNumberEntryClearedL(void)
-	?HandleKeyEventL@CPhoneUIController@@UAE?AW4TKeyResponse@@ABUTKeyEvent@@W4TEventCode@@@Z @ 38 NONAME ; enum TKeyResponse CPhoneUIController::HandleKeyEventL(struct TKeyEvent const &, enum TEventCode)
-	?HandleRemConCommandL@CPhoneStateIdle@@MAEHW4TRemConCoreApiOperationId@@W4TRemConCoreApiButtonAction@@@Z @ 39 NONAME ; int CPhoneStateIdle::HandleRemConCommandL(enum TRemConCoreApiOperationId, enum TRemConCoreApiButtonAction)
-	?HandleAudioPlayStoppedL@CPhoneStateIncoming@@MAEXXZ @ 40 NONAME ; void CPhoneStateIncoming::HandleAudioPlayStoppedL(void)
-	?HandleCenRepChangeL@CPhoneState@@UAEXABVTUid@@I@Z @ 41 NONAME ; void CPhoneState::HandleCenRepChangeL(class TUid const &, unsigned int)
-	?HandleLongHashL@CPhoneState@@UAEXXZ @ 42 NONAME ; void CPhoneState::HandleLongHashL(void)
-	?DialL@CPhoneStateIdle@@MAEXABVTDesC16@@W4TPhoneNumberType@@W4TDialInitiationMethod@1@@Z @ 43 NONAME ; void CPhoneStateIdle::DialL(class TDesC16 const &, enum TPhoneNumberType, enum CPhoneStateIdle::TDialInitiationMethod)
-	?ShowNumberBusyNoteL@CPhoneState@@IAEXXZ @ 44 NONAME ; void CPhoneState::ShowNumberBusyNoteL(void)
-	?HandleNumberEntryClearedL@CPhoneStateCallSetup@@MAEXXZ @ 45 NONAME ; void CPhoneStateCallSetup::HandleNumberEntryClearedL(void)
-	?HandleIdleForegroundEventL@CPhoneStateIdle@@UAEXXZ @ 46 NONAME ; void CPhoneStateIdle::HandleIdleForegroundEventL(void)
-	?HandleDisconnectingL@CPhoneState@@IAEXH@Z @ 47 NONAME ; void CPhoneState::HandleDisconnectingL(int)
-	?HandleAudioMuteChangedL@CPhoneState@@IAEXXZ @ 48 NONAME ; void CPhoneState::HandleAudioMuteChangedL(void)
-	?HandleCommandL@CPhoneStateIncoming@@UAEHH@Z @ 49 NONAME ; int CPhoneStateIncoming::HandleCommandL(int)
-	?UpdateSingleActiveCallL@CPhoneState@@IAEXH@Z @ 50 NONAME ; void CPhoneState::UpdateSingleActiveCallL(int)
-	?IsOnScreenDialerSupported@CPhoneState@@IBEHXZ @ 51 NONAME ; int CPhoneState::IsOnScreenDialerSupported(void) const
-	?SimState@CPhoneState@@IBE?AW4TPESimState@@XZ @ 52 NONAME ; enum TPESimState CPhoneState::SimState(void) const
-	?HandleKeyEventL@CPhoneStateCallSetup@@UAEXABUTKeyEvent@@W4TEventCode@@@Z @ 53 NONAME ; void CPhoneStateCallSetup::HandleKeyEventL(struct TKeyEvent const &, enum TEventCode)
-	?SetupIdleScreenInBackgroundL@CPhoneState@@IAEXXZ @ 54 NONAME ; void CPhoneState::SetupIdleScreenInBackgroundL(void)
-	?SendGlobalWarningNoteL@CPhoneState@@IAEXH@Z @ 55 NONAME ; void CPhoneState::SendGlobalWarningNoteL(int)
-	?CompleteSatRequestL@CPhoneState@@IAEXH@Z @ 56 NONAME ; void CPhoneState::CompleteSatRequestL(int)
-	?NewL@CPhoneStateStartup@@SAPAV1@PAVMPhoneStateMachine@@PAVMPhoneViewCommandHandle@@PAVMPhoneCustomization@@@Z @ 57 NONAME ; class CPhoneStateStartup * CPhoneStateStartup::NewL(class MPhoneStateMachine *, class MPhoneViewCommandHandle *, class MPhoneCustomization *)
-	?LaunchNewCallQueryL@CPhoneStateInCall@@IAEXXZ @ 58 NONAME ; void CPhoneStateInCall::LaunchNewCallQueryL(void)
-	?SetCallHeaderTextsForCallComingInL@CPhoneState@@IAEXHHPAVTPhoneCmdParamCallHeaderData@@@Z @ 59 NONAME ; void CPhoneState::SetCallHeaderTextsForCallComingInL(int, int, class TPhoneCmdParamCallHeaderData *)
-	?IsSimOk@CPhoneState@@QAEHXZ @ 60 NONAME ; int CPhoneState::IsSimOk(void)
-	?ClearNumberEntryContentCache@CPhoneState@@IAEXXZ @ 61 NONAME ; void CPhoneState::ClearNumberEntryContentCache(void)
-	?HandleCommandL@CPhoneStateIdle@@UAEHH@Z @ 62 NONAME ; int CPhoneStateIdle::HandleCommandL(int)
-	?ViewCommandHandle@CPhoneStateHandle@@QAEPAVMPhoneViewCommandHandle@@XZ @ 63 NONAME ; class MPhoneViewCommandHandle * CPhoneStateHandle::ViewCommandHandle(void)
-	?DialMultimediaCallL@CPhoneStateIdle@@IAEXXZ @ 64 NONAME ; void CPhoneStateIdle::DialMultimediaCallL(void)
-	?DisconnectOutgoingCallL@CPhoneStateInCall@@IAEXXZ @ 65 NONAME ; void CPhoneStateInCall::DisconnectOutgoingCallL(void)
-	?IsKeyLockOn@CPhoneState@@MBEHXZ @ 66 NONAME ; int CPhoneState::IsKeyLockOn(void) const
-	??1CPhoneStateInCall@@UAE@XZ @ 67 NONAME ; CPhoneStateInCall::~CPhoneStateInCall(void)
-	?CustomizedDialerMenuResourceIdL@CPhoneState@@IAEHXZ @ 68 NONAME ; int CPhoneState::CustomizedDialerMenuResourceIdL(void)
-	?ShowReconnectQueryL@CPhoneReconnectQuery@@QAEXH@Z @ 69 NONAME ; void CPhoneReconnectQuery::ShowReconnectQueryL(int)
-	?UpdateSilenceButtonDimming@CPhoneState@@IAEXXZ @ 70 NONAME ; void CPhoneState::UpdateSilenceButtonDimming(void)
-	?SetNumberEntryVisibilityL@CPhoneState@@IAEXH@Z @ 71 NONAME ; void CPhoneState::SetNumberEntryVisibilityL(int)
-	?HandleError@CPhoneUIController@@UAEXABUTPEErrorInfo@@@Z @ 72 NONAME ; void CPhoneUIController::HandleError(struct TPEErrorInfo const &)
-	?ConstructL@CPhoneStateInCall@@MAEXXZ @ 73 NONAME ; void CPhoneStateInCall::ConstructL(void)
-	?OnlyHashInNumberEntryL@CPhoneStateIdle@@MAEXXZ @ 74 NONAME ; void CPhoneStateIdle::OnlyHashInNumberEntryL(void)
-	?IsVideoCallRingingL@CPhoneStateInCall@@MAEHXZ @ 75 NONAME ; int CPhoneStateInCall::IsVideoCallRingingL(void)
-	?HandlePhoneForegroundEventL@CPhoneStateIdle@@UAEXXZ @ 76 NONAME ; void CPhoneStateIdle::HandlePhoneForegroundEventL(void)
-	?CloseDtmfQueryL@CPhoneStateInCall@@IAEXXZ @ 77 NONAME ; void CPhoneStateInCall::CloseDtmfQueryL(void)
-	?DynInitMenuBarL@CPhoneState@@UAEXHPAVCEikMenuBar@@@Z @ 78 NONAME ; void CPhoneState::DynInitMenuBarL(int, class CEikMenuBar *)
-	?HandleDtmfKeyToneL@CPhoneStateStartup@@EAEXABUTKeyEvent@@W4TEventCode@@@Z @ 79 NONAME ; void CPhoneStateStartup::HandleDtmfKeyToneL(struct TKeyEvent const &, enum TEventCode)
-	?HandleNumberEntryEdited@CPhoneState@@MAEXXZ @ 80 NONAME ; void CPhoneState::HandleNumberEntryEdited(void)
-	?ShowTextQueryL@CPhoneState@@IAEXHHHPAVTDes16@@H@Z @ 81 NONAME ; void CPhoneState::ShowTextQueryL(int, int, int, class TDes16 *, int)
-	?DialMultimediaCallL@CPhoneState@@IAEXXZ @ 82 NONAME ; void CPhoneState::DialMultimediaCallL(void)
-	?NewL@CPhoneUIController@@SAPAV1@PAVMPhoneViewCommandHandle@@@Z @ 83 NONAME ; class CPhoneUIController * CPhoneUIController::NewL(class MPhoneViewCommandHandle *)
-	?HandleCreateNumberEntryL@CPhoneStateStartup@@EAEXABUTKeyEvent@@W4TEventCode@@@Z @ 84 NONAME ; void CPhoneStateStartup::HandleCreateNumberEntryL(struct TKeyEvent const &, enum TEventCode)
-	?IsMenuBarVisibleL@CPhoneState@@UBEHXZ @ 85 NONAME ; int CPhoneState::IsMenuBarVisibleL(void) const
-	?HandleErrorL@CPhoneState@@UAEXABUTPEErrorInfo@@@Z @ 86 NONAME ; void CPhoneState::HandleErrorL(struct TPEErrorInfo const &)
-	?HandleCommandL@CPhoneStateCallSetup@@UAEHH@Z @ 87 NONAME ; int CPhoneStateCallSetup::HandleCommandL(int)
-	?HandleAudioOutputChangedL@CPhoneState@@IAEXXZ @ 88 NONAME ; void CPhoneState::HandleAudioOutputChangedL(void)
-	??1CPhoneUIController@@UAE@XZ @ 89 NONAME ; CPhoneUIController::~CPhoneUIController(void)
-	?HandleKeyEventL@CPhoneState@@UAEXABUTKeyEvent@@W4TEventCode@@@Z @ 90 NONAME ; void CPhoneState::HandleKeyEventL(struct TKeyEvent const &, enum TEventCode)
-	?UpdateIncomingContextMenuL@CPhoneState@@MAEXH@Z @ 91 NONAME ; void CPhoneState::UpdateIncomingContextMenuL(int)
-	?OpenMenuBarL@CPhoneStateInCall@@MAEXXZ @ 92 NONAME ; void CPhoneStateInCall::OpenMenuBarL(void)
-	?UpdateIncomingCbaL@CPhoneCbaManager@@QAEXH@Z @ 93 NONAME ; void CPhoneCbaManager::UpdateIncomingCbaL(int)
-	?SetTouchPaneButtonDisabled@CPhoneState@@IAEXH@Z @ 94 NONAME ; void CPhoneState::SetTouchPaneButtonDisabled(int)
-	?ConstructL@CPhoneStateIncoming@@MAEXXZ @ 95 NONAME ; void CPhoneStateIncoming::ConstructL(void)
-	?CreatePhoneEngineL@CPhoneStateMachine@@UAEPAVMPEPhoneModel@@AAVMEngineMonitor@@@Z @ 96 NONAME ; class MPEPhoneModel * CPhoneStateMachine::CreatePhoneEngineL(class MEngineMonitor &)
-	?SetTouchPaneButtons@CPhoneState@@IAEXH@Z @ 97 NONAME ; void CPhoneState::SetTouchPaneButtons(int)
-	?HandleIdleForegroundEventL@CPhoneStateStartup@@UAEXXZ @ 98 NONAME ; void CPhoneStateStartup::HandleIdleForegroundEventL(void)
-	?CallFromNumberEntryL@CPhoneState@@IAEXXZ @ 99 NONAME ; void CPhoneState::CallFromNumberEntryL(void)
-	?UpdateCbaL@CPhoneCbaManager@@QAEXH@Z @ 100 NONAME ; void CPhoneCbaManager::UpdateCbaL(int)
-	?IsVideoCall@CPhoneState@@IAEHH@Z @ 101 NONAME ; int CPhoneState::IsVideoCall(int)
-	?IsSwivelClosed@CPhoneState@@QBEHXZ @ 102 NONAME ; int CPhoneState::IsSwivelClosed(void) const
-	?CloseCustomizedDialerL@CPhoneState@@QAEXXZ @ 103 NONAME ; void CPhoneState::CloseCustomizedDialerL(void)
-	?HandlePhoneForegroundEventL@CPhoneUIController@@UAEXXZ @ 104 NONAME ; void CPhoneUIController::HandlePhoneForegroundEventL(void)
-	?CheckIfRestoreNEContentAfterDtmfDialer@CPhoneState@@IAEXXZ @ 105 NONAME ; void CPhoneState::CheckIfRestoreNEContentAfterDtmfDialer(void)
-	?UpdateInCallContextMenuL@CPhoneState@@UAEXXZ @ 106 NONAME ; void CPhoneState::UpdateInCallContextMenuL(void)
-	?HandleNumericKeyEventL@CPhoneState@@MAEXABUTKeyEvent@@W4TEventCode@@@Z @ 107 NONAME ; void CPhoneState::HandleNumericKeyEventL(struct TKeyEvent const &, enum TEventCode)
-	?SetToolbarDimming@CPhoneState@@IAEXH@Z @ 108 NONAME ; void CPhoneState::SetToolbarDimming(int)
-	?SendGlobalErrorNoteL@CPhoneState@@QAEXH@Z @ 109 NONAME ; void CPhoneState::SendGlobalErrorNoteL(int)
-	?IsAutoLockOn@CPhoneState@@UBEHXZ @ 110 NONAME ; int CPhoneState::IsAutoLockOn(void) const
-	?UpdateCbaL@CPhoneStateCallSetup@@MAEXH@Z @ 111 NONAME ; void CPhoneStateCallSetup::UpdateCbaL(int)
-	?RestoreNumberEntryContentL@CPhoneState@@IAEXXZ @ 112 NONAME ; void CPhoneState::RestoreNumberEntryContentL(void)
-	?HandleKeyEventL@CPhoneStateIdle@@UAEXABUTKeyEvent@@W4TEventCode@@@Z @ 113 NONAME ; void CPhoneStateIdle::HandleKeyEventL(struct TKeyEvent const &, enum TEventCode)
-	?IsNumberEntryContentStored@CPhoneState@@IAEHXZ @ 114 NONAME ; int CPhoneState::IsNumberEntryContentStored(void)
-	?IsVideoCallActiveL@CPhoneStateInCall@@MAEHXZ @ 115 NONAME ; int CPhoneStateInCall::IsVideoCallActiveL(void)
-	?DialVoiceCallL@CPhoneState@@IAEXXZ @ 116 NONAME ; void CPhoneState::DialVoiceCallL(void)
-	?HandlePhoneStartupL@CPhoneStateStartup@@UAEXXZ @ 117 NONAME ; void CPhoneStateStartup::HandlePhoneStartupL(void)
-	?EndUiUpdate@CPhoneState@@IAEXXZ @ 118 NONAME ; void CPhoneState::EndUiUpdate(void)
-	?HandleKeyPressDurationL@CPhoneStateIncoming@@UAEXW4TKeyCode@@VTTimeIntervalMicroSeconds@@@Z @ 119 NONAME ; void CPhoneStateIncoming::HandleKeyPressDurationL(enum TKeyCode, class TTimeIntervalMicroSeconds)
-	?UpdateInCallCbaL@CPhoneStateInCall@@MAEXXZ @ 120 NONAME ; void CPhoneStateInCall::UpdateInCallCbaL(void)
-	?EndTransEffect@CPhoneState@@QAEXXZ @ 121 NONAME ; void CPhoneState::EndTransEffect(void)
-	?HandleEnvironmentChangeL@CPhoneState@@UAEXH@Z @ 122 NONAME ; void CPhoneState::HandleEnvironmentChangeL(int)
-	?HandleKeyMessageL@CPhoneStateInCall@@UAEXW4TPhoneKeyEventMessages@MPhoneKeyEvents@@W4TKeyCode@@@Z @ 123 NONAME ; void CPhoneStateInCall::HandleKeyMessageL(enum MPhoneKeyEvents::TPhoneKeyEventMessages, enum TKeyCode)
-	?SetRingingTonePlaybackL@CPhoneState@@IAEXH@Z @ 124 NONAME ; void CPhoneState::SetRingingTonePlaybackL(int)
-	?ProcessCommandL@CPhoneState@@UAEHH@Z @ 125 NONAME ; int CPhoneState::ProcessCommandL(int)
-	?BeginUiUpdateLC@CPhoneState@@IAEXXZ @ 126 NONAME ; void CPhoneState::BeginUiUpdateLC(void)
-	?DecreaseAudioVolumeL@CPhoneState@@IAEXXZ @ 127 NONAME ; void CPhoneState::DecreaseAudioVolumeL(void)
-	?PhoneEngineInfo@CPhoneStateMachine@@UAEPAVMPEEngineInfo@@XZ @ 128 NONAME ; class MPEEngineInfo * CPhoneStateMachine::PhoneEngineInfo(void)
-	?CreateNumberEntryL@CPhoneStateInCall@@IAEXXZ @ 129 NONAME ; void CPhoneStateInCall::CreateNumberEntryL(void)
-	?HandleSystemEventL@CPhoneUIController@@UAEXABVTWsEvent@@@Z @ 130 NONAME ; void CPhoneUIController::HandleSystemEventL(class TWsEvent const &)
-	?DynInitMenuPaneL@CPhoneUIController@@UAEXHPAVCEikMenuPane@@@Z @ 131 NONAME ; void CPhoneUIController::DynInitMenuPaneL(int, class CEikMenuPane *)
-	??0CPhoneStateStartup@@IAE@PAVMPhoneStateMachine@@PAVMPhoneViewCommandHandle@@PAVMPhoneCustomization@@@Z @ 132 NONAME ; CPhoneStateStartup::CPhoneStateStartup(class MPhoneStateMachine *, class MPhoneViewCommandHandle *, class MPhoneCustomization *)
-	?GetRemoteInfoDataL@CPhoneState@@IAEXHAAVTDes16@@@Z @ 133 NONAME ; void CPhoneState::GetRemoteInfoDataL(int, class TDes16 &)
-	?SetDivertIndication@CPhoneState@@UAEXH@Z @ 134 NONAME ; void CPhoneState::SetDivertIndication(int)
-	?UpdateCbaL@CPhoneStateInCall@@MAEXH@Z @ 135 NONAME ; void CPhoneStateInCall::UpdateCbaL(int)
-	?SetCallId@CPhoneStateMachine@@UAEXH@Z @ 136 NONAME ; void CPhoneStateMachine::SetCallId(int)
-	?ProcessCommandL@CPhoneUIController@@UAEHH@Z @ 137 NONAME ; int CPhoneUIController::ProcessCommandL(int)
-	?DisplayHeaderForCallComingInL@CPhoneState@@IAEXHH@Z @ 138 NONAME ; void CPhoneState::DisplayHeaderForCallComingInL(int, int)
-	??0CPhoneStateIdle@@IAE@PAVMPhoneStateMachine@@PAVMPhoneViewCommandHandle@@PAVMPhoneCustomization@@@Z @ 139 NONAME ; CPhoneStateIdle::CPhoneStateIdle(class MPhoneStateMachine *, class MPhoneViewCommandHandle *, class MPhoneCustomization *)
-	?SendPhoneEngineMessage@CPhoneStateMachine@@UAEXH@Z @ 140 NONAME ; void CPhoneStateMachine::SendPhoneEngineMessage(int)
-	??0CPhoneStateCallSetup@@IAE@PAVMPhoneStateMachine@@PAVMPhoneViewCommandHandle@@PAVMPhoneCustomization@@@Z @ 141 NONAME ; CPhoneStateCallSetup::CPhoneStateCallSetup(class MPhoneStateMachine *, class MPhoneViewCommandHandle *, class MPhoneCustomization *)
-	??0CPhoneState@@QAE@PAVMPhoneStateMachine@@PAVMPhoneViewCommandHandle@@PAVMPhoneCustomization@@@Z @ 142 NONAME ; CPhoneState::CPhoneState(class MPhoneStateMachine *, class MPhoneViewCommandHandle *, class MPhoneCustomization *)
-	?HandleDtmfKeyToneL@CPhoneState@@UAEXABUTKeyEvent@@W4TEventCode@@@Z @ 143 NONAME ; void CPhoneState::HandleDtmfKeyToneL(struct TKeyEvent const &, enum TEventCode)
-	?HandleKeyMessageL@CPhoneStateIdle@@UAEXW4TPhoneKeyEventMessages@MPhoneKeyEvents@@W4TKeyCode@@@Z @ 144 NONAME ; void CPhoneStateIdle::HandleKeyMessageL(enum MPhoneKeyEvents::TPhoneKeyEventMessages, enum TKeyCode)
-	?HandlePEConstructionReadyL@CPhoneStateStartup@@QAEXH@Z @ 145 NONAME ; void CPhoneStateStartup::HandlePEConstructionReadyL(int)
-	?HandleForegroundEventL@CPhoneUIController@@UAEXH@Z @ 146 NONAME ; void CPhoneUIController::HandleForegroundEventL(int)
-	?HandleSendCommandL@CPhoneStateIdle@@MAEXXZ @ 147 NONAME ; void CPhoneStateIdle::HandleSendCommandL(void)
-	?HandleCommandL@CPhoneUIController@@UAEHH@Z @ 148 NONAME ; int CPhoneUIController::HandleCommandL(int)
-	?HandleCreateNumberEntryL@CPhoneState@@UAEXABUTKeyEvent@@W4TEventCode@@@Z @ 149 NONAME ; void CPhoneState::HandleCreateNumberEntryL(struct TKeyEvent const &, enum TEventCode)
-	?DisplayHeaderForOutgoingCallL@CPhoneState@@IAEXH@Z @ 150 NONAME ; void CPhoneState::DisplayHeaderForOutgoingCallL(int)
-	?HandlePhoneEngineMessageL@CPhoneStateInCall@@UAEXHH@Z @ 151 NONAME ; void CPhoneStateInCall::HandlePhoneEngineMessageL(int, int)
-	?IsSpeedDialNumber@CPhoneStateIdle@@IBEHABVTDesC16@@@Z @ 152 NONAME ; int CPhoneStateIdle::IsSpeedDialNumber(class TDesC16 const &) const
-	?IsNumberEntryUsedL@CPhoneState@@UAEHXZ @ 153 NONAME ; int CPhoneState::IsNumberEntryUsedL(void)
-	??1CPhoneState@@UAE@XZ @ 154 NONAME ; CPhoneState::~CPhoneState(void)
-	?HandleCreateNumberEntryL@CPhoneStateCallSetup@@MAEXABUTKeyEvent@@W4TEventCode@@@Z @ 155 NONAME ; void CPhoneStateCallSetup::HandleCreateNumberEntryL(struct TKeyEvent const &, enum TEventCode)
-	?HandlePhoneEngineMessageL@CPhoneStateCallSetup@@UAEXHH@Z @ 156 NONAME ; void CPhoneStateCallSetup::HandlePhoneEngineMessageL(int, int)
-	?HandlePhoneFocusLostEventL@CPhoneState@@UAEXXZ @ 157 NONAME ; void CPhoneState::HandlePhoneFocusLostEventL(void)
-	?HandlePropertyChangedL@CPhoneStateInCall@@EAEXABVTUid@@IH@Z @ 158 NONAME ; void CPhoneStateInCall::HandlePropertyChangedL(class TUid const &, unsigned int, int)
-	??1CPhoneStateMachine@@UAE@XZ @ 159 NONAME ; CPhoneStateMachine::~CPhoneStateMachine(void)
-	?HandleIdleForegroundEventL@CPhoneState@@UAEXXZ @ 160 NONAME ; void CPhoneState::HandleIdleForegroundEventL(void)
-	?DynInitMenuPaneL@CPhoneState@@UAEXHPAVCEikMenuPane@@@Z @ 161 NONAME ; void CPhoneState::DynInitMenuPaneL(int, class CEikMenuPane *)
-	?IsDTMFEditorVisibleL@CPhoneState@@IBEHXZ @ 162 NONAME ; int CPhoneState::IsDTMFEditorVisibleL(void) const
-	?ConstructL@CPhoneStateCallSetup@@MAEXXZ @ 163 NONAME ; void CPhoneStateCallSetup::ConstructL(void)
-	?BeginTransEffectLC@CPhoneState@@QAEXW4TStateTransEffectType@@@Z @ 164 NONAME ; void CPhoneState::BeginTransEffectLC(enum TStateTransEffectType)
-	?HandleMessage@CPhoneUIController@@UAEXHH@Z @ 165 NONAME ; void CPhoneUIController::HandleMessage(int, int)
-	?HandleSystemEventL@CPhoneState@@UAEXABVTWsEvent@@@Z @ 166 NONAME ; void CPhoneState::HandleSystemEventL(class TWsEvent const &)
-	?NeedToReturnToForegroundAppL@CPhoneState@@IBEHXZ @ 167 NONAME ; int CPhoneState::NeedToReturnToForegroundAppL(void) const
-	?DisplayCallSetupL@CPhoneStateIdle@@IAEXH@Z @ 168 NONAME ; void CPhoneStateIdle::DisplayCallSetupL(int)
-	?ConstructL@CPhoneStateStartup@@MAEXXZ @ 169 NONAME ; void CPhoneStateStartup::ConstructL(void)
-	?HandleKeyMessageL@CPhoneStateStartup@@UAEXW4TPhoneKeyEventMessages@MPhoneKeyEvents@@W4TKeyCode@@@Z @ 170 NONAME ; void CPhoneStateStartup::HandleKeyMessageL(enum MPhoneKeyEvents::TPhoneKeyEventMessages, enum TKeyCode)
-	?ShowNoteL@CPhoneState@@IAEXH@Z @ 171 NONAME ; void CPhoneState::ShowNoteL(int)
-	?HandlePropertyChangedL@CPhoneState@@UAEXABVTUid@@IH@Z @ 172 NONAME ; void CPhoneState::HandlePropertyChangedL(class TUid const &, unsigned int, int)
-	?IsAnyQueryActiveL@CPhoneState@@QAEHXZ @ 173 NONAME ; int CPhoneState::IsAnyQueryActiveL(void)
-	?State@CPhoneStateMachine@@UAEPAVMPhoneState@@XZ @ 174 NONAME ; class MPhoneState * CPhoneStateMachine::State(void)
-	?SetHandsfreeModeL@CPhoneState@@IAEXH@Z @ 175 NONAME ; void CPhoneState::SetHandsfreeModeL(int)
-	?IsCustomizedDialerVisibleL@CPhoneState@@QBEHXZ @ 176 NONAME ; int CPhoneState::IsCustomizedDialerVisibleL(void) const
-	?UpdateInCallCbaL@CPhoneStateCallSetup@@MAEXXZ @ 177 NONAME ; void CPhoneStateCallSetup::UpdateInCallCbaL(void)
-	?HandleNumberEntryClearedL@CPhoneStateInCall@@MAEXXZ @ 178 NONAME ; void CPhoneStateInCall::HandleNumberEntryClearedL(void)
-	??0CPhoneStateIncoming@@IAE@PAVMPhoneStateMachine@@PAVMPhoneViewCommandHandle@@PAVMPhoneCustomization@@@Z @ 179 NONAME ; CPhoneStateIncoming::CPhoneStateIncoming(class MPhoneStateMachine *, class MPhoneViewCommandHandle *, class MPhoneCustomization *)
-	??1CPhoneStateIncoming@@UAE@XZ @ 180 NONAME ; CPhoneStateIncoming::~CPhoneStateIncoming(void)
-	?DeleteTouchPaneButtons@CPhoneState@@IAEXXZ @ 181 NONAME ; void CPhoneState::DeleteTouchPaneButtons(void)
-	?ProcessCommandL@CPhoneStateIdle@@UAEHH@Z @ 182 NONAME ; int CPhoneStateIdle::ProcessCommandL(int)
-	?IsNoteVisibleL@CPhoneState@@MAEHXZ @ 183 NONAME ; int CPhoneState::IsNoteVisibleL(void)
-	?DynInitMenuBarL@CPhoneUIController@@UAEXHPAVCEikMenuBar@@@Z @ 184 NONAME ; void CPhoneUIController::DynInitMenuBarL(int, class CEikMenuBar *)
-	?IsAlphanumericSupportedAndCharInput@CPhoneState@@MAEHABUTKeyEvent@@@Z @ 185 NONAME ; int CPhoneState::IsAlphanumericSupportedAndCharInput(struct TKeyEvent const &)
-	?HandlePhoneEngineMessageL@CPhoneStateStartup@@UAEXHH@Z @ 186 NONAME ; void CPhoneStateStartup::HandlePhoneEngineMessageL(int, int)
-	?HandleKeyEventL@CPhoneStateIncoming@@UAEXABUTKeyEvent@@W4TEventCode@@@Z @ 187 NONAME ; void CPhoneStateIncoming::HandleKeyEventL(struct TKeyEvent const &, enum TEventCode)
-	?HandleKeyEventL@CPhoneStateStartup@@UAEXABUTKeyEvent@@W4TEventCode@@@Z @ 188 NONAME ; void CPhoneStateStartup::HandleKeyEventL(struct TKeyEvent const &, enum TEventCode)
-	?HandleNumberEntryClearedL@CPhoneState@@MAEXXZ @ 189 NONAME ; void CPhoneState::HandleNumberEntryClearedL(void)
-	?OnlyHashInNumberEntryL@CPhoneState@@MAEXXZ @ 190 NONAME ; void CPhoneState::OnlyHashInNumberEntryL(void)
-	?IncreaseAudioVolumeL@CPhoneState@@IAEXXZ @ 191 NONAME ; void CPhoneState::IncreaseAudioVolumeL(void)
-	?ConstructL@CPhoneStateIdle@@MAEXXZ @ 192 NONAME ; void CPhoneStateIdle::ConstructL(void)
-	?CheckIfShowCallTerminationNote@CPhoneState@@MAEHXZ @ 193 NONAME ; int CPhoneState::CheckIfShowCallTerminationNote(void)
-	?SetCallHeaderType@CPhoneState@@IAEXW4TPhoneCallTypeFlags@CBubbleManager@@@Z @ 194 NONAME ; void CPhoneState::SetCallHeaderType(enum CBubbleManager::TPhoneCallTypeFlags)
-	?SendGlobalInfoNoteL@CPhoneState@@QAEXH@Z @ 195 NONAME ; void CPhoneState::SendGlobalInfoNoteL(int)
-	?DisplayIdleScreenL@CPhoneState@@IAEXXZ @ 196 NONAME ; void CPhoneState::DisplayIdleScreenL(void)
-	?StartShowSecurityNoteL@CPhoneState@@IAEXXZ @ 197 NONAME ; void CPhoneState::StartShowSecurityNoteL(void)
-	?StoreNumberEntryContentL@CPhoneState@@IAEXXZ @ 198 NONAME ; void CPhoneState::StoreNumberEntryContentL(void)
-	?SetBTHandsfreeModeL@CPhoneState@@IAEXH@Z @ 199 NONAME ; void CPhoneState::SetBTHandsfreeModeL(int)
-	?HandlePhoneEngineMessageL@CPhoneStateIncoming@@UAEXHH@Z @ 200 NONAME ; void CPhoneStateIncoming::HandlePhoneEngineMessageL(int, int)
-	?SetDefaultFlagsL@CPhoneState@@IAEXXZ @ 201 NONAME ; void CPhoneState::SetDefaultFlagsL(void)
-	?HandleCommandL@CPhoneStateInCall@@UAEHH@Z @ 202 NONAME ; int CPhoneStateInCall::HandleCommandL(int)
-	?DialVoiceCallL@CPhoneStateIdle@@IAEXXZ @ 203 NONAME ; void CPhoneStateIdle::DialVoiceCallL(void)
-	?UpdateRemoteInfoDataL@CPhoneState@@IAEXH@Z @ 204 NONAME ; void CPhoneState::UpdateRemoteInfoDataL(int)
-	?GetRingingCallL@CPhoneStateInCall@@MAEHXZ @ 205 NONAME ; int CPhoneStateInCall::GetRingingCallL(void)
-	?HandleIdleForegroundEventL@CPhoneUIController@@UAEXXZ @ 206 NONAME ; void CPhoneUIController::HandleIdleForegroundEventL(void)
-	?HandlePhoneForegroundEventL@CPhoneState@@UAEXXZ @ 207 NONAME ; void CPhoneState::HandlePhoneForegroundEventL(void)
-	?HandleForegroundEventL@CPhoneState@@UAEXH@Z @ 208 NONAME ; void CPhoneState::HandleForegroundEventL(int)
-	?DisplayIncomingCallL@CPhoneStateIdle@@IAEXH@Z @ 209 NONAME ; void CPhoneStateIdle::DisplayIncomingCallL(int)
-	?HandleRemConCommandL@CPhoneState@@UAEHW4TRemConCoreApiOperationId@@W4TRemConCoreApiButtonAction@@@Z @ 210 NONAME ; int CPhoneState::HandleRemConCommandL(enum TRemConCoreApiOperationId, enum TRemConCoreApiButtonAction)
-	??1CPhoneStateIdle@@UAE@XZ @ 211 NONAME ; CPhoneStateIdle::~CPhoneStateIdle(void)
-	?IsDialingExtensionInFocusL@CPhoneState@@QBEHXZ @ 212 NONAME ; int CPhoneState::IsDialingExtensionInFocusL(void) const
-	?PhoneNumberFromEntryLC@CPhoneState@@IAEPAVHBufC16@@XZ @ 213 NONAME ; class HBufC16 * CPhoneState::PhoneNumberFromEntryLC(void)
-	?BaseConstructL@CPhoneState@@QAEXXZ @ 214 NONAME ; void CPhoneState::BaseConstructL(void)
-	?HandlePhoneStartupL@CPhoneUIController@@UAEXXZ @ 215 NONAME ; void CPhoneUIController::HandlePhoneStartupL(void)
-	?SpeedDialL@CPhoneStateIdle@@IAEXABIW4TDialInitiationMethod@1@@Z @ 216 NONAME ; void CPhoneStateIdle::SpeedDialL(unsigned int const &, enum CPhoneStateIdle::TDialInitiationMethod)
-	?SetTouchPaneButtonEnabled@CPhoneState@@IAEXH@Z @ 217 NONAME ; void CPhoneState::SetTouchPaneButtonEnabled(int)
-	?SetPhoneEngine@CPhoneStateMachine@@UAEXPAVMPEPhoneModel@@@Z @ 218 NONAME ; void CPhoneStateMachine::SetPhoneEngine(class MPEPhoneModel *)
-	?SpeedDialCanceledL@CPhoneStateIdle@@IAEXABI@Z @ 219 NONAME ; void CPhoneStateIdle::SpeedDialCanceledL(unsigned int const &)
-	?CloseDTMFEditorL@CPhoneState@@IAEXXZ @ 220 NONAME ; void CPhoneState::CloseDTMFEditorL(void)
-	?SetTouchPaneVisible@CPhoneState@@IAEXH@Z @ 221 NONAME ; void CPhoneState::SetTouchPaneVisible(int)
-	?HandlePhoneFocusLostEventL@CPhoneUIController@@UAEXXZ @ 222 NONAME ; void CPhoneUIController::HandlePhoneFocusLostEventL(void)
-	??0CPhoneStateMachine@@IAE@PAVMPhoneViewCommandHandle@@@Z @ 223 NONAME ; CPhoneStateMachine::CPhoneStateMachine(class MPhoneViewCommandHandle *)
-	??1CPhoneStateStartup@@UAE@XZ @ 224 NONAME ; CPhoneStateStartup::~CPhoneStateStartup(void)
-	?HandleKeyMessageL@CPhoneState@@UAEXW4TPhoneKeyEventMessages@MPhoneKeyEvents@@W4TKeyCode@@@Z @ 225 NONAME ; void CPhoneState::HandleKeyMessageL(enum MPhoneKeyEvents::TPhoneKeyEventMessages, enum TKeyCode)
+	?HandlePropertyChangedL@CPhoneStateMachine@@UAEXABVTUid@@IH@Z @ 18 NONAME ; void CPhoneStateMachine::HandlePropertyChangedL(class TUid const &, unsigned int, int)
+	?PhoneEngine@CPhoneStateMachine@@UAEPAVMPEPhoneModel@@XZ @ 19 NONAME ; class MPEPhoneModel * CPhoneStateMachine::PhoneEngine(void)
+	?OpenMenuBarL@CPhoneStateCallSetup@@MAEXXZ @ 20 NONAME ; void CPhoneStateCallSetup::OpenMenuBarL(void)
+	??1CPhoneStateCallSetup@@UAE@XZ @ 21 NONAME ; CPhoneStateCallSetup::~CPhoneStateCallSetup(void)
+	?HandleEnvironmentChangeL@CPhoneUIController@@UAEXH@Z @ 22 NONAME ; void CPhoneUIController::HandleEnvironmentChangeL(int)
+	?SetToolbarButtonLoudspeakerEnabled@CPhoneState@@IAEXXZ @ 23 NONAME ; void CPhoneState::SetToolbarButtonLoudspeakerEnabled(void)
+	?Instance@CPhoneStateHandle@@SAPAV1@XZ @ 24 NONAME ; class CPhoneStateHandle * CPhoneStateHandle::Instance(void)
+	?HandleNumberEntryClearedL@CPhoneStateIdle@@MAEXXZ @ 25 NONAME ; void CPhoneStateIdle::HandleNumberEntryClearedL(void)
+	?DynInitMenuPaneL@CPhoneStateIncoming@@MAEXHPAVCEikMenuPane@@@Z @ 26 NONAME ; void CPhoneStateIncoming::DynInitMenuPaneL(int, class CEikMenuPane *)
+	?HandleCommandL@CPhoneState@@UAEHH@Z @ 27 NONAME ; int CPhoneState::HandleCommandL(int)
+	?StartAlsLineChangeTimerL@CPhoneState@@IAEXXZ @ 28 NONAME ; void CPhoneState::StartAlsLineChangeTimerL(void)
+	?IsNumberEntryVisibleL@CPhoneState@@QAEHXZ @ 29 NONAME ; int CPhoneState::IsNumberEntryVisibleL(void)
+	?HandlePhoneEngineMessageL@CPhoneStateIdle@@UAEXHH@Z @ 30 NONAME ; void CPhoneStateIdle::HandlePhoneEngineMessageL(int, int)
+	?HandleDialingL@CPhoneStateIdle@@MAEXH@Z @ 31 NONAME ; void CPhoneStateIdle::HandleDialingL(int)
+	?CustomizedDialerCbaResourceIdL@CPhoneState@@IAEHXZ @ 32 NONAME ; int CPhoneState::CustomizedDialerCbaResourceIdL(void)
+	?CaptureKeysDuringCallNotificationL@CPhoneState@@IAEXH@Z @ 33 NONAME ; void CPhoneState::CaptureKeysDuringCallNotificationL(int)
+	?HandleKeyPressDurationL@CPhoneState@@UAEXW4TKeyCode@@VTTimeIntervalMicroSeconds@@@Z @ 34 NONAME ; void CPhoneState::HandleKeyPressDurationL(enum TKeyCode, class TTimeIntervalMicroSeconds)
+	?RegisterStateObserver@CPhoneSecurityModeObserver@@UAEXAAVMPhoneSecurityModeChangeObserver@@@Z @ 35 NONAME ; void CPhoneSecurityModeObserver::RegisterStateObserver(class MPhoneSecurityModeChangeObserver &)
+	?ChangeState@CPhoneStateMachine@@UAEXH@Z @ 36 NONAME ; void CPhoneStateMachine::ChangeState(int)
+	?NewL@CPhoneUIController@@SAPAV1@AAVCPhoneViewController@@@Z @ 37 NONAME ; class CPhoneUIController * CPhoneUIController::NewL(class CPhoneViewController &)
+	?IsSimStateNotPresentWithSecurityModeEnabled@CPhoneState@@IAEHXZ @ 38 NONAME ; int CPhoneState::IsSimStateNotPresentWithSecurityModeEnabled(void)
+	?HandlePhoneEngineMessageL@CPhoneState@@UAEXHH@Z @ 39 NONAME ; void CPhoneState::HandlePhoneEngineMessageL(int, int)
+	?HandleNumberEntryClearedL@CPhoneStateIncoming@@UAEXXZ @ 40 NONAME ; void CPhoneStateIncoming::HandleNumberEntryClearedL(void)
+	?HandleKeyEventL@CPhoneUIController@@UAE?AW4TKeyResponse@@ABUTKeyEvent@@W4TEventCode@@@Z @ 41 NONAME ; enum TKeyResponse CPhoneUIController::HandleKeyEventL(struct TKeyEvent const &, enum TEventCode)
+	?HandleRemConCommandL@CPhoneStateIdle@@MAEHW4TRemConCoreApiOperationId@@W4TRemConCoreApiButtonAction@@@Z @ 42 NONAME ; int CPhoneStateIdle::HandleRemConCommandL(enum TRemConCoreApiOperationId, enum TRemConCoreApiButtonAction)
+	?HandleAudioPlayStoppedL@CPhoneStateIncoming@@MAEXXZ @ 43 NONAME ; void CPhoneStateIncoming::HandleAudioPlayStoppedL(void)
+	?HandleCenRepChangeL@CPhoneState@@UAEXABVTUid@@I@Z @ 44 NONAME ; void CPhoneState::HandleCenRepChangeL(class TUid const &, unsigned int)
+	?HandleLongHashL@CPhoneState@@UAEXXZ @ 45 NONAME ; void CPhoneState::HandleLongHashL(void)
+	?DialL@CPhoneStateIdle@@MAEXABVTDesC16@@W4TPhoneNumberType@@W4TDialInitiationMethod@1@@Z @ 46 NONAME ; void CPhoneStateIdle::DialL(class TDesC16 const &, enum TPhoneNumberType, enum CPhoneStateIdle::TDialInitiationMethod)
+	?ShowNumberBusyNoteL@CPhoneState@@IAEXXZ @ 47 NONAME ; void CPhoneState::ShowNumberBusyNoteL(void)
+	?HandleNumberEntryClearedL@CPhoneStateCallSetup@@MAEXXZ @ 48 NONAME ; void CPhoneStateCallSetup::HandleNumberEntryClearedL(void)
+	?HandleIdleForegroundEventL@CPhoneStateIdle@@UAEXXZ @ 49 NONAME ; void CPhoneStateIdle::HandleIdleForegroundEventL(void)
+	?HandleDisconnectingL@CPhoneState@@IAEXH@Z @ 50 NONAME ; void CPhoneState::HandleDisconnectingL(int)
+	?HandleAudioMuteChangedL@CPhoneState@@IAEXXZ @ 51 NONAME ; void CPhoneState::HandleAudioMuteChangedL(void)
+	?HandleCommandL@CPhoneStateIncoming@@UAEHH@Z @ 52 NONAME ; int CPhoneStateIncoming::HandleCommandL(int)
+	?UpdateSingleActiveCallL@CPhoneState@@IAEXH@Z @ 53 NONAME ; void CPhoneState::UpdateSingleActiveCallL(int)
+	?IsOnScreenDialerSupported@CPhoneState@@IBEHXZ @ 54 NONAME ; int CPhoneState::IsOnScreenDialerSupported(void) const
+	?SimState@CPhoneState@@IBE?AW4TPESimState@@XZ @ 55 NONAME ; enum TPESimState CPhoneState::SimState(void) const
+	?HandleKeyEventL@CPhoneStateCallSetup@@UAEXABUTKeyEvent@@W4TEventCode@@@Z @ 56 NONAME ; void CPhoneStateCallSetup::HandleKeyEventL(struct TKeyEvent const &, enum TEventCode)
+	?SetupIdleScreenInBackgroundL@CPhoneState@@IAEXXZ @ 57 NONAME ; void CPhoneState::SetupIdleScreenInBackgroundL(void)
+	?SendGlobalWarningNoteL@CPhoneState@@IAEXH@Z @ 58 NONAME ; void CPhoneState::SendGlobalWarningNoteL(int)
+	?CompleteSatRequestL@CPhoneState@@IAEXH@Z @ 59 NONAME ; void CPhoneState::CompleteSatRequestL(int)
+	?NewL@CPhoneStateStartup@@SAPAV1@PAVMPhoneStateMachine@@PAVMPhoneViewCommandHandle@@PAVMPhoneCustomization@@@Z @ 60 NONAME ; class CPhoneStateStartup * CPhoneStateStartup::NewL(class MPhoneStateMachine *, class MPhoneViewCommandHandle *, class MPhoneCustomization *)
+	?LaunchNewCallQueryL@CPhoneStateInCall@@IAEXXZ @ 61 NONAME ; void CPhoneStateInCall::LaunchNewCallQueryL(void)
+	?SetCallHeaderTextsForCallComingInL@CPhoneState@@IAEXHHPAVTPhoneCmdParamCallHeaderData@@@Z @ 62 NONAME ; void CPhoneState::SetCallHeaderTextsForCallComingInL(int, int, class TPhoneCmdParamCallHeaderData *)
+	?HandlePhoneEngineMessageL@CPhoneStateMachine@@UAEXHH@Z @ 63 NONAME ; void CPhoneStateMachine::HandlePhoneEngineMessageL(int, int)
+	?IsSecurityMode@CPhoneSecurityModeObserver@@UAEHXZ @ 64 NONAME ; int CPhoneSecurityModeObserver::IsSecurityMode(void)
+	?IsSimOk@CPhoneState@@QAEHXZ @ 65 NONAME ; int CPhoneState::IsSimOk(void)
+	?ClearNumberEntryContentCache@CPhoneState@@IAEXXZ @ 66 NONAME ; void CPhoneState::ClearNumberEntryContentCache(void)
+	?HandleCommandL@CPhoneStateIdle@@UAEHH@Z @ 67 NONAME ; int CPhoneStateIdle::HandleCommandL(int)
+	?ViewCommandHandle@CPhoneStateHandle@@QAEPAVMPhoneViewCommandHandle@@XZ @ 68 NONAME ; class MPhoneViewCommandHandle * CPhoneStateHandle::ViewCommandHandle(void)
+	?DialMultimediaCallL@CPhoneStateIdle@@IAEXXZ @ 69 NONAME ; void CPhoneStateIdle::DialMultimediaCallL(void)
+	?DisconnectOutgoingCallL@CPhoneStateInCall@@IAEXXZ @ 70 NONAME ; void CPhoneStateInCall::DisconnectOutgoingCallL(void)
+	?IsKeyLockOn@CPhoneState@@MBEHXZ @ 71 NONAME ; int CPhoneState::IsKeyLockOn(void) const
+	??1CPhoneStateInCall@@UAE@XZ @ 72 NONAME ; CPhoneStateInCall::~CPhoneStateInCall(void)
+	?CustomizedDialerMenuResourceIdL@CPhoneState@@IAEHXZ @ 73 NONAME ; int CPhoneState::CustomizedDialerMenuResourceIdL(void)
+	?ShowReconnectQueryL@CPhoneReconnectQuery@@QAEXH@Z @ 74 NONAME ; void CPhoneReconnectQuery::ShowReconnectQueryL(int)
+	?UpdateSilenceButtonDimming@CPhoneState@@IAEXXZ @ 75 NONAME ; void CPhoneState::UpdateSilenceButtonDimming(void)
+	?SetNumberEntryVisibilityL@CPhoneState@@IAEXH@Z @ 76 NONAME ; void CPhoneState::SetNumberEntryVisibilityL(int)
+	?HandleError@CPhoneUIController@@UAEXABUTPEErrorInfo@@@Z @ 77 NONAME ; void CPhoneUIController::HandleError(struct TPEErrorInfo const &)
+	?ConstructL@CPhoneStateInCall@@MAEXXZ @ 78 NONAME ; void CPhoneStateInCall::ConstructL(void)
+	?OnlyHashInNumberEntryL@CPhoneStateIdle@@MAEXXZ @ 79 NONAME ; void CPhoneStateIdle::OnlyHashInNumberEntryL(void)
+	?IsVideoCallRingingL@CPhoneStateInCall@@MAEHXZ @ 80 NONAME ; int CPhoneStateInCall::IsVideoCallRingingL(void)
+	?IsAutolockEnabled@CPhoneSecurityModeObserver@@UAEHXZ @ 81 NONAME ; int CPhoneSecurityModeObserver::IsAutolockEnabled(void)
+	?HandlePhoneForegroundEventL@CPhoneStateIdle@@UAEXXZ @ 82 NONAME ; void CPhoneStateIdle::HandlePhoneForegroundEventL(void)
+	?CloseDtmfQueryL@CPhoneStateInCall@@IAEXXZ @ 83 NONAME ; void CPhoneStateInCall::CloseDtmfQueryL(void)
+	?DynInitMenuBarL@CPhoneState@@UAEXHPAVCEikMenuBar@@@Z @ 84 NONAME ; void CPhoneState::DynInitMenuBarL(int, class CEikMenuBar *)
+	?HandleDtmfKeyToneL@CPhoneStateStartup@@EAEXABUTKeyEvent@@W4TEventCode@@@Z @ 85 NONAME ; void CPhoneStateStartup::HandleDtmfKeyToneL(struct TKeyEvent const &, enum TEventCode)
+	?HandleNumberEntryEdited@CPhoneState@@MAEXXZ @ 86 NONAME ; void CPhoneState::HandleNumberEntryEdited(void)
+	?ShowTextQueryL@CPhoneState@@IAEXHHHPAVTDes16@@H@Z @ 87 NONAME ; void CPhoneState::ShowTextQueryL(int, int, int, class TDes16 *, int)
+	?DialMultimediaCallL@CPhoneState@@IAEXXZ @ 88 NONAME ; void CPhoneState::DialMultimediaCallL(void)
+	?HandleCreateNumberEntryL@CPhoneStateStartup@@EAEXABUTKeyEvent@@W4TEventCode@@@Z @ 89 NONAME ; void CPhoneStateStartup::HandleCreateNumberEntryL(struct TKeyEvent const &, enum TEventCode)
+	?IsMenuBarVisibleL@CPhoneState@@UBEHXZ @ 90 NONAME ; int CPhoneState::IsMenuBarVisibleL(void) const
+	?HandleErrorL@CPhoneState@@UAEXABUTPEErrorInfo@@@Z @ 91 NONAME ; void CPhoneState::HandleErrorL(struct TPEErrorInfo const &)
+	?HandleCommandL@CPhoneStateCallSetup@@UAEHH@Z @ 92 NONAME ; int CPhoneStateCallSetup::HandleCommandL(int)
+	?SecurityMode@CPhoneStateMachine@@UAEPAVMPhoneSecurityModeObserver@@XZ @ 93 NONAME ; class MPhoneSecurityModeObserver * CPhoneStateMachine::SecurityMode(void)
+	?HandleAudioOutputChangedL@CPhoneState@@IAEXXZ @ 94 NONAME ; void CPhoneState::HandleAudioOutputChangedL(void)
+	??1CPhoneUIController@@UAE@XZ @ 95 NONAME ; CPhoneUIController::~CPhoneUIController(void)
+	?HandleKeyEventL@CPhoneState@@UAEXABUTKeyEvent@@W4TEventCode@@@Z @ 96 NONAME ; void CPhoneState::HandleKeyEventL(struct TKeyEvent const &, enum TEventCode)
+	?UpdateIncomingContextMenuL@CPhoneState@@MAEXH@Z @ 97 NONAME ; void CPhoneState::UpdateIncomingContextMenuL(int)
+	?OpenMenuBarL@CPhoneStateInCall@@MAEXXZ @ 98 NONAME ; void CPhoneStateInCall::OpenMenuBarL(void)
+	?UpdateIncomingCbaL@CPhoneCbaManager@@QAEXH@Z @ 99 NONAME ; void CPhoneCbaManager::UpdateIncomingCbaL(int)
+	?SetTouchPaneButtonDisabled@CPhoneState@@IAEXH@Z @ 100 NONAME ; void CPhoneState::SetTouchPaneButtonDisabled(int)
+	?ConstructL@CPhoneStateIncoming@@MAEXXZ @ 101 NONAME ; void CPhoneStateIncoming::ConstructL(void)
+	?CreatePhoneEngineL@CPhoneStateMachine@@UAEPAVMPEPhoneModel@@AAVMEngineMonitor@@@Z @ 102 NONAME ; class MPEPhoneModel * CPhoneStateMachine::CreatePhoneEngineL(class MEngineMonitor &)
+	?SetTouchPaneButtons@CPhoneState@@IAEXH@Z @ 103 NONAME ; void CPhoneState::SetTouchPaneButtons(int)
+	?HandleIdleForegroundEventL@CPhoneStateStartup@@UAEXXZ @ 104 NONAME ; void CPhoneStateStartup::HandleIdleForegroundEventL(void)
+	?CallFromNumberEntryL@CPhoneState@@IAEXXZ @ 105 NONAME ; void CPhoneState::CallFromNumberEntryL(void)
+	?UpdateCbaL@CPhoneCbaManager@@QAEXH@Z @ 106 NONAME ; void CPhoneCbaManager::UpdateCbaL(int)
+	?IsVideoCall@CPhoneState@@IAEHH@Z @ 107 NONAME ; int CPhoneState::IsVideoCall(int)
+	?IsSwivelClosed@CPhoneState@@QBEHXZ @ 108 NONAME ; int CPhoneState::IsSwivelClosed(void) const
+	?CloseCustomizedDialerL@CPhoneState@@QAEXXZ @ 109 NONAME ; void CPhoneState::CloseCustomizedDialerL(void)
+	?HandlePhoneForegroundEventL@CPhoneUIController@@UAEXXZ @ 110 NONAME ; void CPhoneUIController::HandlePhoneForegroundEventL(void)
+	?CheckIfRestoreNEContentAfterDtmfDialer@CPhoneState@@IAEXXZ @ 111 NONAME ; void CPhoneState::CheckIfRestoreNEContentAfterDtmfDialer(void)
+	?UpdateInCallContextMenuL@CPhoneState@@UAEXXZ @ 112 NONAME ; void CPhoneState::UpdateInCallContextMenuL(void)
+	?HandleNumericKeyEventL@CPhoneState@@MAEXABUTKeyEvent@@W4TEventCode@@@Z @ 113 NONAME ; void CPhoneState::HandleNumericKeyEventL(struct TKeyEvent const &, enum TEventCode)
+	?SetToolbarDimming@CPhoneState@@IAEXH@Z @ 114 NONAME ; void CPhoneState::SetToolbarDimming(int)
+	?SendGlobalErrorNoteL@CPhoneState@@QAEXH@Z @ 115 NONAME ; void CPhoneState::SendGlobalErrorNoteL(int)
+	?IsAutoLockOn@CPhoneState@@UBEHXZ @ 116 NONAME ; int CPhoneState::IsAutoLockOn(void) const
+	?UpdateCbaL@CPhoneStateCallSetup@@MAEXH@Z @ 117 NONAME ; void CPhoneStateCallSetup::UpdateCbaL(int)
+	?RestoreNumberEntryContentL@CPhoneState@@IAEXXZ @ 118 NONAME ; void CPhoneState::RestoreNumberEntryContentL(void)
+	?HandleKeyEventL@CPhoneStateIdle@@UAEXABUTKeyEvent@@W4TEventCode@@@Z @ 119 NONAME ; void CPhoneStateIdle::HandleKeyEventL(struct TKeyEvent const &, enum TEventCode)
+	?IsNumberEntryContentStored@CPhoneState@@IAEHXZ @ 120 NONAME ; int CPhoneState::IsNumberEntryContentStored(void)
+	?IsVideoCallActiveL@CPhoneStateInCall@@MAEHXZ @ 121 NONAME ; int CPhoneStateInCall::IsVideoCallActiveL(void)
+	?DialVoiceCallL@CPhoneState@@IAEXXZ @ 122 NONAME ; void CPhoneState::DialVoiceCallL(void)
+	?HandlePhoneStartupL@CPhoneStateStartup@@UAEXXZ @ 123 NONAME ; void CPhoneStateStartup::HandlePhoneStartupL(void)
+	?EndUiUpdate@CPhoneState@@IAEXXZ @ 124 NONAME ; void CPhoneState::EndUiUpdate(void)
+	?HandleKeyPressDurationL@CPhoneStateIncoming@@UAEXW4TKeyCode@@VTTimeIntervalMicroSeconds@@@Z @ 125 NONAME ; void CPhoneStateIncoming::HandleKeyPressDurationL(enum TKeyCode, class TTimeIntervalMicroSeconds)
+	?UpdateInCallCbaL@CPhoneStateInCall@@MAEXXZ @ 126 NONAME ; void CPhoneStateInCall::UpdateInCallCbaL(void)
+	?EndTransEffect@CPhoneState@@QAEXXZ @ 127 NONAME ; void CPhoneState::EndTransEffect(void)
+	?HandleEnvironmentChangeL@CPhoneState@@UAEXH@Z @ 128 NONAME ; void CPhoneState::HandleEnvironmentChangeL(int)
+	?HandleKeyMessageL@CPhoneStateInCall@@UAEXW4TPhoneKeyEventMessages@MPhoneKeyEvents@@W4TKeyCode@@@Z @ 129 NONAME ; void CPhoneStateInCall::HandleKeyMessageL(enum MPhoneKeyEvents::TPhoneKeyEventMessages, enum TKeyCode)
+	?SetRingingTonePlaybackL@CPhoneState@@IAEXH@Z @ 130 NONAME ; void CPhoneState::SetRingingTonePlaybackL(int)
+	?ProcessCommandL@CPhoneState@@UAEHH@Z @ 131 NONAME ; int CPhoneState::ProcessCommandL(int)
+	?BeginUiUpdateLC@CPhoneState@@IAEXXZ @ 132 NONAME ; void CPhoneState::BeginUiUpdateLC(void)
+	?DecreaseAudioVolumeL@CPhoneState@@IAEXXZ @ 133 NONAME ; void CPhoneState::DecreaseAudioVolumeL(void)
+	?RemoveStateObserver@CPhoneSecurityModeObserver@@UAEXAAVMPhoneSecurityModeChangeObserver@@@Z @ 134 NONAME ; void CPhoneSecurityModeObserver::RemoveStateObserver(class MPhoneSecurityModeChangeObserver &)
+	?PhoneEngineInfo@CPhoneStateMachine@@UAEPAVMPEEngineInfo@@XZ @ 135 NONAME ; class MPEEngineInfo * CPhoneStateMachine::PhoneEngineInfo(void)
+	?CreateNumberEntryL@CPhoneStateInCall@@IAEXXZ @ 136 NONAME ; void CPhoneStateInCall::CreateNumberEntryL(void)
+	?HandleSystemEventL@CPhoneUIController@@UAEXABVTWsEvent@@@Z @ 137 NONAME ; void CPhoneUIController::HandleSystemEventL(class TWsEvent const &)
+	?DynInitMenuPaneL@CPhoneUIController@@UAEXHPAVCEikMenuPane@@@Z @ 138 NONAME ; void CPhoneUIController::DynInitMenuPaneL(int, class CEikMenuPane *)
+	??0CPhoneStateStartup@@IAE@PAVMPhoneStateMachine@@PAVMPhoneViewCommandHandle@@PAVMPhoneCustomization@@@Z @ 139 NONAME ; CPhoneStateStartup::CPhoneStateStartup(class MPhoneStateMachine *, class MPhoneViewCommandHandle *, class MPhoneCustomization *)
+	?GetRemoteInfoDataL@CPhoneState@@IAEXHAAVTDes16@@@Z @ 140 NONAME ; void CPhoneState::GetRemoteInfoDataL(int, class TDes16 &)
+	?SetDivertIndication@CPhoneState@@UAEXH@Z @ 141 NONAME ; void CPhoneState::SetDivertIndication(int)
+	?UpdateCbaL@CPhoneStateInCall@@MAEXH@Z @ 142 NONAME ; void CPhoneStateInCall::UpdateCbaL(int)
+	?SetCallId@CPhoneStateMachine@@UAEXH@Z @ 143 NONAME ; void CPhoneStateMachine::SetCallId(int)
+	?ProcessCommandL@CPhoneUIController@@UAEHH@Z @ 144 NONAME ; int CPhoneUIController::ProcessCommandL(int)
+	?DisplayHeaderForCallComingInL@CPhoneState@@IAEXHH@Z @ 145 NONAME ; void CPhoneState::DisplayHeaderForCallComingInL(int, int)
+	??0CPhoneStateIdle@@IAE@PAVMPhoneStateMachine@@PAVMPhoneViewCommandHandle@@PAVMPhoneCustomization@@@Z @ 146 NONAME ; CPhoneStateIdle::CPhoneStateIdle(class MPhoneStateMachine *, class MPhoneViewCommandHandle *, class MPhoneCustomization *)
+	?SendPhoneEngineMessage@CPhoneStateMachine@@UAEXH@Z @ 147 NONAME ; void CPhoneStateMachine::SendPhoneEngineMessage(int)
+	??0CPhoneStateCallSetup@@IAE@PAVMPhoneStateMachine@@PAVMPhoneViewCommandHandle@@PAVMPhoneCustomization@@@Z @ 148 NONAME ; CPhoneStateCallSetup::CPhoneStateCallSetup(class MPhoneStateMachine *, class MPhoneViewCommandHandle *, class MPhoneCustomization *)
+	??0CPhoneState@@QAE@PAVMPhoneStateMachine@@PAVMPhoneViewCommandHandle@@PAVMPhoneCustomization@@@Z @ 149 NONAME ; CPhoneState::CPhoneState(class MPhoneStateMachine *, class MPhoneViewCommandHandle *, class MPhoneCustomization *)
+	?HandleDtmfKeyToneL@CPhoneState@@UAEXABUTKeyEvent@@W4TEventCode@@@Z @ 150 NONAME ; void CPhoneState::HandleDtmfKeyToneL(struct TKeyEvent const &, enum TEventCode)
+	?HandleKeyMessageL@CPhoneStateIdle@@UAEXW4TPhoneKeyEventMessages@MPhoneKeyEvents@@W4TKeyCode@@@Z @ 151 NONAME ; void CPhoneStateIdle::HandleKeyMessageL(enum MPhoneKeyEvents::TPhoneKeyEventMessages, enum TKeyCode)
+	?HandlePEConstructionReadyL@CPhoneStateStartup@@QAEXH@Z @ 152 NONAME ; void CPhoneStateStartup::HandlePEConstructionReadyL(int)
+	?HandleForegroundEventL@CPhoneUIController@@UAEXH@Z @ 153 NONAME ; void CPhoneUIController::HandleForegroundEventL(int)
+	?HandleSendCommandL@CPhoneStateIdle@@MAEXXZ @ 154 NONAME ; void CPhoneStateIdle::HandleSendCommandL(void)
+	?HandleCommandL@CPhoneUIController@@UAEHH@Z @ 155 NONAME ; int CPhoneUIController::HandleCommandL(int)
+	?HandleCreateNumberEntryL@CPhoneState@@UAEXABUTKeyEvent@@W4TEventCode@@@Z @ 156 NONAME ; void CPhoneState::HandleCreateNumberEntryL(struct TKeyEvent const &, enum TEventCode)
+	?DisplayHeaderForOutgoingCallL@CPhoneState@@IAEXH@Z @ 157 NONAME ; void CPhoneState::DisplayHeaderForOutgoingCallL(int)
+	?HandlePhoneEngineMessageL@CPhoneStateInCall@@UAEXHH@Z @ 158 NONAME ; void CPhoneStateInCall::HandlePhoneEngineMessageL(int, int)
+	?IsSpeedDialNumber@CPhoneStateIdle@@IBEHABVTDesC16@@@Z @ 159 NONAME ; int CPhoneStateIdle::IsSpeedDialNumber(class TDesC16 const &) const
+	?IsNumberEntryUsedL@CPhoneState@@UAEHXZ @ 160 NONAME ; int CPhoneState::IsNumberEntryUsedL(void)
+	??1CPhoneState@@UAE@XZ @ 161 NONAME ; CPhoneState::~CPhoneState(void)
+	?HandleCreateNumberEntryL@CPhoneStateCallSetup@@MAEXABUTKeyEvent@@W4TEventCode@@@Z @ 162 NONAME ; void CPhoneStateCallSetup::HandleCreateNumberEntryL(struct TKeyEvent const &, enum TEventCode)
+	?HandlePhoneEngineMessageL@CPhoneStateCallSetup@@UAEXHH@Z @ 163 NONAME ; void CPhoneStateCallSetup::HandlePhoneEngineMessageL(int, int)
+	?HandlePhoneFocusLostEventL@CPhoneState@@UAEXXZ @ 164 NONAME ; void CPhoneState::HandlePhoneFocusLostEventL(void)
+	?HandlePropertyChangedL@CPhoneStateInCall@@EAEXABVTUid@@IH@Z @ 165 NONAME ; void CPhoneStateInCall::HandlePropertyChangedL(class TUid const &, unsigned int, int)
+	??1CPhoneStateMachine@@UAE@XZ @ 166 NONAME ; CPhoneStateMachine::~CPhoneStateMachine(void)
+	?HandleIdleForegroundEventL@CPhoneState@@UAEXXZ @ 167 NONAME ; void CPhoneState::HandleIdleForegroundEventL(void)
+	?DynInitMenuPaneL@CPhoneState@@UAEXHPAVCEikMenuPane@@@Z @ 168 NONAME ; void CPhoneState::DynInitMenuPaneL(int, class CEikMenuPane *)
+	?IsDTMFEditorVisibleL@CPhoneState@@IBEHXZ @ 169 NONAME ; int CPhoneState::IsDTMFEditorVisibleL(void) const
+	?ConstructL@CPhoneStateCallSetup@@MAEXXZ @ 170 NONAME ; void CPhoneStateCallSetup::ConstructL(void)
+	?BeginTransEffectLC@CPhoneState@@QAEXW4TStateTransEffectType@@@Z @ 171 NONAME ; void CPhoneState::BeginTransEffectLC(enum TStateTransEffectType)
+	?SetSecurityModeObserver@CPhoneStateMachine@@UAEXPAVMPhoneSecurityModeObserver@@@Z @ 172 NONAME ; void CPhoneStateMachine::SetSecurityModeObserver(class MPhoneSecurityModeObserver *)
+	?HandleMessage@CPhoneUIController@@UAEXHH@Z @ 173 NONAME ; void CPhoneUIController::HandleMessage(int, int)
+	?HandleSystemEventL@CPhoneState@@UAEXABVTWsEvent@@@Z @ 174 NONAME ; void CPhoneState::HandleSystemEventL(class TWsEvent const &)
+	?NeedToReturnToForegroundAppL@CPhoneState@@IBEHXZ @ 175 NONAME ; int CPhoneState::NeedToReturnToForegroundAppL(void) const
+	?DisplayCallSetupL@CPhoneStateIdle@@IAEXH@Z @ 176 NONAME ; void CPhoneStateIdle::DisplayCallSetupL(int)
+	?ConstructL@CPhoneStateStartup@@MAEXXZ @ 177 NONAME ; void CPhoneStateStartup::ConstructL(void)
+	?HandleKeyMessageL@CPhoneStateStartup@@UAEXW4TPhoneKeyEventMessages@MPhoneKeyEvents@@W4TKeyCode@@@Z @ 178 NONAME ; void CPhoneStateStartup::HandleKeyMessageL(enum MPhoneKeyEvents::TPhoneKeyEventMessages, enum TKeyCode)
+	?ShowNoteL@CPhoneState@@IAEXH@Z @ 179 NONAME ; void CPhoneState::ShowNoteL(int)
+	?HandlePropertyChangedL@CPhoneState@@UAEXABVTUid@@IH@Z @ 180 NONAME ; void CPhoneState::HandlePropertyChangedL(class TUid const &, unsigned int, int)
+	?IsAnyQueryActiveL@CPhoneState@@QAEHXZ @ 181 NONAME ; int CPhoneState::IsAnyQueryActiveL(void)
+	?State@CPhoneStateMachine@@UAEPAVMPhoneState@@XZ @ 182 NONAME ; class MPhoneState * CPhoneStateMachine::State(void)
+	?SetHandsfreeModeL@CPhoneState@@IAEXH@Z @ 183 NONAME ; void CPhoneState::SetHandsfreeModeL(int)
+	?IsCustomizedDialerVisibleL@CPhoneState@@QBEHXZ @ 184 NONAME ; int CPhoneState::IsCustomizedDialerVisibleL(void) const
+	?UpdateInCallCbaL@CPhoneStateCallSetup@@MAEXXZ @ 185 NONAME ; void CPhoneStateCallSetup::UpdateInCallCbaL(void)
+	?HandleNumberEntryClearedL@CPhoneStateInCall@@MAEXXZ @ 186 NONAME ; void CPhoneStateInCall::HandleNumberEntryClearedL(void)
+	??0CPhoneStateIncoming@@IAE@PAVMPhoneStateMachine@@PAVMPhoneViewCommandHandle@@PAVMPhoneCustomization@@@Z @ 187 NONAME ; CPhoneStateIncoming::CPhoneStateIncoming(class MPhoneStateMachine *, class MPhoneViewCommandHandle *, class MPhoneCustomization *)
+	??1CPhoneStateIncoming@@UAE@XZ @ 188 NONAME ; CPhoneStateIncoming::~CPhoneStateIncoming(void)
+	?DeleteTouchPaneButtons@CPhoneState@@IAEXXZ @ 189 NONAME ; void CPhoneState::DeleteTouchPaneButtons(void)
+	?ProcessCommandL@CPhoneStateIdle@@UAEHH@Z @ 190 NONAME ; int CPhoneStateIdle::ProcessCommandL(int)
+	?IsNoteVisibleL@CPhoneState@@MAEHXZ @ 191 NONAME ; int CPhoneState::IsNoteVisibleL(void)
+	?DynInitMenuBarL@CPhoneUIController@@UAEXHPAVCEikMenuBar@@@Z @ 192 NONAME ; void CPhoneUIController::DynInitMenuBarL(int, class CEikMenuBar *)
+	?IsAlphanumericSupportedAndCharInput@CPhoneState@@MAEHABUTKeyEvent@@@Z @ 193 NONAME ; int CPhoneState::IsAlphanumericSupportedAndCharInput(struct TKeyEvent const &)
+	?HandlePhoneEngineMessageL@CPhoneStateStartup@@UAEXHH@Z @ 194 NONAME ; void CPhoneStateStartup::HandlePhoneEngineMessageL(int, int)
+	?HandleKeyEventL@CPhoneStateIncoming@@UAEXABUTKeyEvent@@W4TEventCode@@@Z @ 195 NONAME ; void CPhoneStateIncoming::HandleKeyEventL(struct TKeyEvent const &, enum TEventCode)
+	?HandleKeyEventL@CPhoneStateStartup@@UAEXABUTKeyEvent@@W4TEventCode@@@Z @ 196 NONAME ; void CPhoneStateStartup::HandleKeyEventL(struct TKeyEvent const &, enum TEventCode)
+	?HandleNumberEntryClearedL@CPhoneState@@MAEXXZ @ 197 NONAME ; void CPhoneState::HandleNumberEntryClearedL(void)
+	?OnlyHashInNumberEntryL@CPhoneState@@MAEXXZ @ 198 NONAME ; void CPhoneState::OnlyHashInNumberEntryL(void)
+	?IncreaseAudioVolumeL@CPhoneState@@IAEXXZ @ 199 NONAME ; void CPhoneState::IncreaseAudioVolumeL(void)
+	?ConstructL@CPhoneStateIdle@@MAEXXZ @ 200 NONAME ; void CPhoneStateIdle::ConstructL(void)
+	?CheckIfShowCallTerminationNote@CPhoneState@@MAEHXZ @ 201 NONAME ; int CPhoneState::CheckIfShowCallTerminationNote(void)
+	?SetCallHeaderType@CPhoneState@@IAEXW4TPhoneCallTypeFlags@CBubbleManager@@@Z @ 202 NONAME ; void CPhoneState::SetCallHeaderType(enum CBubbleManager::TPhoneCallTypeFlags)
+	?SendGlobalInfoNoteL@CPhoneState@@QAEXH@Z @ 203 NONAME ; void CPhoneState::SendGlobalInfoNoteL(int)
+	?DisplayIdleScreenL@CPhoneState@@IAEXXZ @ 204 NONAME ; void CPhoneState::DisplayIdleScreenL(void)
+	?StartShowSecurityNoteL@CPhoneState@@IAEXXZ @ 205 NONAME ; void CPhoneState::StartShowSecurityNoteL(void)
+	?StoreNumberEntryContentL@CPhoneState@@IAEXXZ @ 206 NONAME ; void CPhoneState::StoreNumberEntryContentL(void)
+	?SetBTHandsfreeModeL@CPhoneState@@IAEXH@Z @ 207 NONAME ; void CPhoneState::SetBTHandsfreeModeL(int)
+	?HandlePhoneEngineMessageL@CPhoneStateIncoming@@UAEXHH@Z @ 208 NONAME ; void CPhoneStateIncoming::HandlePhoneEngineMessageL(int, int)
+	?SetDefaultFlagsL@CPhoneState@@IAEXXZ @ 209 NONAME ; void CPhoneState::SetDefaultFlagsL(void)
+	?HandleCommandL@CPhoneStateInCall@@UAEHH@Z @ 210 NONAME ; int CPhoneStateInCall::HandleCommandL(int)
+	?DialVoiceCallL@CPhoneStateIdle@@IAEXXZ @ 211 NONAME ; void CPhoneStateIdle::DialVoiceCallL(void)
+	?UpdateRemoteInfoDataL@CPhoneState@@IAEXH@Z @ 212 NONAME ; void CPhoneState::UpdateRemoteInfoDataL(int)
+	?GetRingingCallL@CPhoneStateInCall@@MAEHXZ @ 213 NONAME ; int CPhoneStateInCall::GetRingingCallL(void)
+	?HandleIdleForegroundEventL@CPhoneUIController@@UAEXXZ @ 214 NONAME ; void CPhoneUIController::HandleIdleForegroundEventL(void)
+	?HandlePhoneForegroundEventL@CPhoneState@@UAEXXZ @ 215 NONAME ; void CPhoneState::HandlePhoneForegroundEventL(void)
+	?HandleForegroundEventL@CPhoneState@@UAEXH@Z @ 216 NONAME ; void CPhoneState::HandleForegroundEventL(int)
+	?DisplayIncomingCallL@CPhoneStateIdle@@IAEXH@Z @ 217 NONAME ; void CPhoneStateIdle::DisplayIncomingCallL(int)
+	?SetSecurityMessageHandler@CPhoneStateMachine@@UAEXPAVMPhoneSecurityMessageHandler@@@Z @ 218 NONAME ; void CPhoneStateMachine::SetSecurityMessageHandler(class MPhoneSecurityMessageHandler *)
+	?HandleRemConCommandL@CPhoneState@@UAEHW4TRemConCoreApiOperationId@@W4TRemConCoreApiButtonAction@@@Z @ 219 NONAME ; int CPhoneState::HandleRemConCommandL(enum TRemConCoreApiOperationId, enum TRemConCoreApiButtonAction)
+	??1CPhoneStateIdle@@UAE@XZ @ 220 NONAME ; CPhoneStateIdle::~CPhoneStateIdle(void)
+	?IsDialingExtensionInFocusL@CPhoneState@@QBEHXZ @ 221 NONAME ; int CPhoneState::IsDialingExtensionInFocusL(void) const
+	?Initialize@CPhoneSecurityModeObserver@@UAEXXZ @ 222 NONAME ; void CPhoneSecurityModeObserver::Initialize(void)
+	?PhoneNumberFromEntryLC@CPhoneState@@IAEPAVHBufC16@@XZ @ 223 NONAME ; class HBufC16 * CPhoneState::PhoneNumberFromEntryLC(void)
+	?BaseConstructL@CPhoneState@@QAEXXZ @ 224 NONAME ; void CPhoneState::BaseConstructL(void)
+	?HandlePhoneStartupL@CPhoneUIController@@UAEXXZ @ 225 NONAME ; void CPhoneUIController::HandlePhoneStartupL(void)
+	?SpeedDialL@CPhoneStateIdle@@IAEXABIW4TDialInitiationMethod@1@@Z @ 226 NONAME ; void CPhoneStateIdle::SpeedDialL(unsigned int const &, enum CPhoneStateIdle::TDialInitiationMethod)
+	?SetTouchPaneButtonEnabled@CPhoneState@@IAEXH@Z @ 227 NONAME ; void CPhoneState::SetTouchPaneButtonEnabled(int)
+	?SetPhoneEngine@CPhoneStateMachine@@UAEXPAVMPEPhoneModel@@@Z @ 228 NONAME ; void CPhoneStateMachine::SetPhoneEngine(class MPEPhoneModel *)
+	?SpeedDialCanceledL@CPhoneStateIdle@@IAEXABI@Z @ 229 NONAME ; void CPhoneStateIdle::SpeedDialCanceledL(unsigned int const &)
+	?CloseDTMFEditorL@CPhoneState@@IAEXXZ @ 230 NONAME ; void CPhoneState::CloseDTMFEditorL(void)
+	?SetTouchPaneVisible@CPhoneState@@IAEXH@Z @ 231 NONAME ; void CPhoneState::SetTouchPaneVisible(int)
+	?HandlePhoneFocusLostEventL@CPhoneUIController@@UAEXXZ @ 232 NONAME ; void CPhoneUIController::HandlePhoneFocusLostEventL(void)
+	??0CPhoneStateMachine@@IAE@PAVMPhoneViewCommandHandle@@@Z @ 233 NONAME ; CPhoneStateMachine::CPhoneStateMachine(class MPhoneViewCommandHandle *)
+	??1CPhoneStateStartup@@UAE@XZ @ 234 NONAME ; CPhoneStateStartup::~CPhoneStateStartup(void)
+	?HandleKeyMessageL@CPhoneState@@UAEXW4TPhoneKeyEventMessages@MPhoneKeyEvents@@W4TKeyCode@@@Z @ 235 NONAME ; void CPhoneState::HandleKeyMessageL(enum MPhoneKeyEvents::TPhoneKeyEventMessages, enum TKeyCode)
 
--- a/phoneapp/phoneuicontrol/eabi/phoneuicontrolu.def	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneuicontrol/eabi/phoneuicontrolu.def	Wed Mar 31 21:30:06 2010 +0300
@@ -160,300 +160,310 @@
 	_ZN17CPhoneStateInCallD2Ev @ 159 NONAME
 	_ZN18CPhoneStateMachine11ChangeStateEi @ 160 NONAME
 	_ZN18CPhoneStateMachine11PhoneEngineEv @ 161 NONAME
-	_ZN18CPhoneStateMachine14SetPhoneEngineEP13MPEPhoneModel @ 162 NONAME
-	_ZN18CPhoneStateMachine15PhoneEngineInfoEv @ 163 NONAME
-	_ZN18CPhoneStateMachine18CreatePhoneEngineLER14MEngineMonitor @ 164 NONAME
-	_ZN18CPhoneStateMachine22SendPhoneEngineMessageEi @ 165 NONAME
-	_ZN18CPhoneStateMachine5StateEv @ 166 NONAME
-	_ZN18CPhoneStateMachine9SetCallIdEi @ 167 NONAME
-	_ZN18CPhoneStateMachineC1EP23MPhoneViewCommandHandle @ 168 NONAME
-	_ZN18CPhoneStateMachineC2EP23MPhoneViewCommandHandle @ 169 NONAME
-	_ZN18CPhoneStateMachineD0Ev @ 170 NONAME
-	_ZN18CPhoneStateMachineD1Ev @ 171 NONAME
-	_ZN18CPhoneStateMachineD2Ev @ 172 NONAME
-	_ZN18CPhoneStateStartup10ConstructLEv @ 173 NONAME
-	_ZN18CPhoneStateStartup15HandleKeyEventLERK9TKeyEvent10TEventCode @ 174 NONAME
-	_ZN18CPhoneStateStartup17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 175 NONAME
-	_ZN18CPhoneStateStartup18HandleDtmfKeyToneLERK9TKeyEvent10TEventCode @ 176 NONAME
-	_ZN18CPhoneStateStartup19HandlePhoneStartupLEv @ 177 NONAME
-	_ZN18CPhoneStateStartup24HandleCreateNumberEntryLERK9TKeyEvent10TEventCode @ 178 NONAME
-	_ZN18CPhoneStateStartup25HandlePhoneEngineMessageLEii @ 179 NONAME
-	_ZN18CPhoneStateStartup26HandleIdleForegroundEventLEv @ 180 NONAME
-	_ZN18CPhoneStateStartup26HandlePEConstructionReadyLEi @ 181 NONAME
-	_ZN18CPhoneStateStartup4NewLEP18MPhoneStateMachineP23MPhoneViewCommandHandleP19MPhoneCustomization @ 182 NONAME
-	_ZN18CPhoneStateStartupC1EP18MPhoneStateMachineP23MPhoneViewCommandHandleP19MPhoneCustomization @ 183 NONAME
-	_ZN18CPhoneStateStartupC2EP18MPhoneStateMachineP23MPhoneViewCommandHandleP19MPhoneCustomization @ 184 NONAME
-	_ZN18CPhoneStateStartupD0Ev @ 185 NONAME
-	_ZN18CPhoneStateStartupD1Ev @ 186 NONAME
-	_ZN18CPhoneStateStartupD2Ev @ 187 NONAME
-	_ZN18CPhoneUIController11HandleErrorERK12TPEErrorInfo @ 188 NONAME
-	_ZN18CPhoneUIController13HandleMessageEii @ 189 NONAME
-	_ZN18CPhoneUIController14HandleCommandLEi @ 190 NONAME
-	_ZN18CPhoneUIController15DynInitMenuBarLEiP11CEikMenuBar @ 191 NONAME
-	_ZN18CPhoneUIController15HandleKeyEventLERK9TKeyEvent10TEventCode @ 192 NONAME
-	_ZN18CPhoneUIController15ProcessCommandLEi @ 193 NONAME
-	_ZN18CPhoneUIController16DynInitMenuPaneLEiP12CEikMenuPane @ 194 NONAME
-	_ZN18CPhoneUIController18HandleSystemEventLERK8TWsEvent @ 195 NONAME
-	_ZN18CPhoneUIController19HandlePhoneStartupLEv @ 196 NONAME
-	_ZN18CPhoneUIController22HandleForegroundEventLEi @ 197 NONAME
-	_ZN18CPhoneUIController24HandleEnvironmentChangeLEi @ 198 NONAME
-	_ZN18CPhoneUIController26HandleIdleForegroundEventLEv @ 199 NONAME
-	_ZN18CPhoneUIController26HandlePhoneFocusLostEventLEv @ 200 NONAME
-	_ZN18CPhoneUIController27HandlePhoneForegroundEventLEv @ 201 NONAME
-	_ZN18CPhoneUIController4NewLEP23MPhoneViewCommandHandle @ 202 NONAME
-	_ZN18CPhoneUIControllerD0Ev @ 203 NONAME
-	_ZN18CPhoneUIControllerD1Ev @ 204 NONAME
-	_ZN18CPhoneUIControllerD2Ev @ 205 NONAME
-	_ZN19CPhoneStateIncoming10ConstructLEv @ 206 NONAME
-	_ZN19CPhoneStateIncoming14HandleCommandLEi @ 207 NONAME
-	_ZN19CPhoneStateIncoming15HandleKeyEventLERK9TKeyEvent10TEventCode @ 208 NONAME
-	_ZN19CPhoneStateIncoming16DynInitMenuPaneLEiP12CEikMenuPane @ 209 NONAME
-	_ZN19CPhoneStateIncoming17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 210 NONAME
-	_ZN19CPhoneStateIncoming23HandleAudioPlayStoppedLEv @ 211 NONAME
-	_ZN19CPhoneStateIncoming23HandleKeyPressDurationLE8TKeyCode25TTimeIntervalMicroSeconds @ 212 NONAME
-	_ZN19CPhoneStateIncoming25HandleNumberEntryClearedLEv @ 213 NONAME
-	_ZN19CPhoneStateIncoming25HandlePhoneEngineMessageLEii @ 214 NONAME
-	_ZN19CPhoneStateIncomingC1EP18MPhoneStateMachineP23MPhoneViewCommandHandleP19MPhoneCustomization @ 215 NONAME
-	_ZN19CPhoneStateIncomingC2EP18MPhoneStateMachineP23MPhoneViewCommandHandleP19MPhoneCustomization @ 216 NONAME
-	_ZN19CPhoneStateIncomingD0Ev @ 217 NONAME
-	_ZN19CPhoneStateIncomingD1Ev @ 218 NONAME
-	_ZN19CPhoneStateIncomingD2Ev @ 219 NONAME
-	_ZN20CPhoneReconnectQuery19ShowReconnectQueryLEi @ 220 NONAME
-	_ZN20CPhoneReconnectQuery9InstanceLEv @ 221 NONAME
-	_ZN20CPhoneStateCallSetup10ConstructLEv @ 222 NONAME
-	_ZN20CPhoneStateCallSetup10UpdateCbaLEi @ 223 NONAME
-	_ZN20CPhoneStateCallSetup12OpenMenuBarLEv @ 224 NONAME
-	_ZN20CPhoneStateCallSetup14HandleCommandLEi @ 225 NONAME
-	_ZN20CPhoneStateCallSetup15HandleKeyEventLERK9TKeyEvent10TEventCode @ 226 NONAME
-	_ZN20CPhoneStateCallSetup16UpdateInCallCbaLEv @ 227 NONAME
-	_ZN20CPhoneStateCallSetup17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 228 NONAME
-	_ZN20CPhoneStateCallSetup24HandleCreateNumberEntryLERK9TKeyEvent10TEventCode @ 229 NONAME
-	_ZN20CPhoneStateCallSetup25HandleNumberEntryClearedLEv @ 230 NONAME
-	_ZN20CPhoneStateCallSetup25HandlePhoneEngineMessageLEii @ 231 NONAME
-	_ZN20CPhoneStateCallSetupC1EP18MPhoneStateMachineP23MPhoneViewCommandHandleP19MPhoneCustomization @ 232 NONAME
-	_ZN20CPhoneStateCallSetupC2EP18MPhoneStateMachineP23MPhoneViewCommandHandleP19MPhoneCustomization @ 233 NONAME
-	_ZN20CPhoneStateCallSetupD0Ev @ 234 NONAME
-	_ZN20CPhoneStateCallSetupD1Ev @ 235 NONAME
-	_ZN20CPhoneStateCallSetupD2Ev @ 236 NONAME
-	_ZNK11CPhoneState11IsKeyLockOnEv @ 237 NONAME
-	_ZNK11CPhoneState12IsAutoLockOnEv @ 238 NONAME
-	_ZNK11CPhoneState14IsSwivelClosedEv @ 239 NONAME
-	_ZNK11CPhoneState17IsMenuBarVisibleLEv @ 240 NONAME
-	_ZNK11CPhoneState18TopAppIsDisplayedLEv @ 241 NONAME
-	_ZNK11CPhoneState20IsDTMFEditorVisibleLEv @ 242 NONAME
-	_ZNK11CPhoneState25IsOnScreenDialerSupportedEv @ 243 NONAME
-	_ZNK11CPhoneState26IsCustomizedDialerVisibleLEv @ 244 NONAME
-	_ZNK11CPhoneState26IsDialingExtensionInFocusLEv @ 245 NONAME
-	_ZNK11CPhoneState28NeedToReturnToForegroundAppLEv @ 246 NONAME
-	_ZNK11CPhoneState8SimStateEv @ 247 NONAME
-	_ZNK15CPhoneStateIdle17IsSpeedDialNumberERK7TDesC16 @ 248 NONAME
-	_ZTI11CPhoneState @ 249 NONAME
-	_ZTI15CPhoneStateIdle @ 250 NONAME
-	_ZTI17CPhoneStateHandle @ 251 NONAME
-	_ZTI17CPhoneStateInCall @ 252 NONAME
-	_ZTI18CPhoneStateMachine @ 253 NONAME
-	_ZTI18CPhoneStateStartup @ 254 NONAME
-	_ZTI18CPhoneUIController @ 255 NONAME
-	_ZTI19CPhoneStateIncoming @ 256 NONAME
-	_ZTI20CPhoneReconnectQuery @ 257 NONAME
-	_ZTI20CPhoneStateCallSetup @ 258 NONAME
-	_ZTI23CPhoneDtmfWaitCharTimer @ 259 NONAME
-	_ZTI23CPhoneKeyEventForwarder @ 260 NONAME
-	_ZTI24CPhoneSystemEventHandler @ 261 NONAME
-	_ZTI26CPhoneRemoteControlHandler @ 262 NONAME
-	_ZTI27CPhoneBtaaDisconnectHandler @ 263 NONAME
-	_ZTV11CPhoneState @ 264 NONAME
-	_ZTV15CPhoneStateIdle @ 265 NONAME
-	_ZTV17CPhoneStateHandle @ 266 NONAME
-	_ZTV17CPhoneStateInCall @ 267 NONAME
-	_ZTV18CPhoneStateMachine @ 268 NONAME
-	_ZTV18CPhoneStateStartup @ 269 NONAME
-	_ZTV18CPhoneUIController @ 270 NONAME
-	_ZTV19CPhoneStateIncoming @ 271 NONAME
-	_ZTV20CPhoneReconnectQuery @ 272 NONAME
-	_ZTV20CPhoneStateCallSetup @ 273 NONAME
-	_ZTV23CPhoneDtmfWaitCharTimer @ 274 NONAME
-	_ZTV23CPhoneKeyEventForwarder @ 275 NONAME
-	_ZTV24CPhoneSystemEventHandler @ 276 NONAME
-	_ZTV26CPhoneRemoteControlHandler @ 277 NONAME
-	_ZTV27CPhoneBtaaDisconnectHandler @ 278 NONAME
-	_ZThn12_N11CPhoneState15DynInitMenuBarLEiP11CEikMenuBar @ 279 NONAME
-	_ZThn12_N11CPhoneState16DynInitMenuPaneLEiP12CEikMenuPane @ 280 NONAME
-	_ZThn12_N11CPhoneState18HandleSystemEventLERK8TWsEvent @ 281 NONAME
-	_ZThn12_N11CPhoneState19HandleCenRepChangeLERK4TUidj @ 282 NONAME
-	_ZThn12_N11CPhoneState19HandlePhoneStartupLEv @ 283 NONAME
-	_ZThn12_N11CPhoneState22HandleForegroundEventLEi @ 284 NONAME
-	_ZThn12_N11CPhoneState22HandlePropertyChangedLERK4TUidji @ 285 NONAME
-	_ZThn12_N11CPhoneState24HandleEnvironmentChangeLEi @ 286 NONAME
-	_ZThn12_N11CPhoneState26HandleIdleForegroundEventLEv @ 287 NONAME
-	_ZThn12_N11CPhoneState26HandlePhoneFocusLostEventLEv @ 288 NONAME
-	_ZThn12_N11CPhoneState27HandlePhoneForegroundEventLEv @ 289 NONAME
-	_ZThn12_N11CPhoneStateD0Ev @ 290 NONAME
-	_ZThn12_N11CPhoneStateD1Ev @ 291 NONAME
-	_ZThn12_N15CPhoneStateIdle26HandleIdleForegroundEventLEv @ 292 NONAME
-	_ZThn12_N15CPhoneStateIdle26HandlePhoneFocusLostEventLEv @ 293 NONAME
-	_ZThn12_N15CPhoneStateIdle27HandlePhoneForegroundEventLEv @ 294 NONAME
-	_ZThn12_N15CPhoneStateIdleD0Ev @ 295 NONAME
-	_ZThn12_N15CPhoneStateIdleD1Ev @ 296 NONAME
-	_ZThn12_N17CPhoneStateInCall22HandlePropertyChangedLERK4TUidji @ 297 NONAME
-	_ZThn12_N17CPhoneStateInCallD0Ev @ 298 NONAME
-	_ZThn12_N17CPhoneStateInCallD1Ev @ 299 NONAME
-	_ZThn12_N18CPhoneStateStartup19HandlePhoneStartupLEv @ 300 NONAME
-	_ZThn12_N18CPhoneStateStartup26HandleIdleForegroundEventLEv @ 301 NONAME
-	_ZThn12_N18CPhoneStateStartupD0Ev @ 302 NONAME
-	_ZThn12_N18CPhoneStateStartupD1Ev @ 303 NONAME
-	_ZThn12_N18CPhoneUIController15DynInitMenuBarLEiP11CEikMenuBar @ 304 NONAME
-	_ZThn12_N18CPhoneUIController16DynInitMenuPaneLEiP12CEikMenuPane @ 305 NONAME
-	_ZThn12_N18CPhoneUIController18HandleSystemEventLERK8TWsEvent @ 306 NONAME
-	_ZThn12_N18CPhoneUIController19HandlePhoneStartupLEv @ 307 NONAME
-	_ZThn12_N18CPhoneUIController22HandleForegroundEventLEi @ 308 NONAME
-	_ZThn12_N18CPhoneUIController24HandleEnvironmentChangeLEi @ 309 NONAME
-	_ZThn12_N18CPhoneUIController26HandleIdleForegroundEventLEv @ 310 NONAME
-	_ZThn12_N18CPhoneUIController26HandlePhoneFocusLostEventLEv @ 311 NONAME
-	_ZThn12_N18CPhoneUIController27HandlePhoneForegroundEventLEv @ 312 NONAME
-	_ZThn12_N18CPhoneUIControllerD0Ev @ 313 NONAME
-	_ZThn12_N18CPhoneUIControllerD1Ev @ 314 NONAME
-	_ZThn12_N19CPhoneStateIncoming16DynInitMenuPaneLEiP12CEikMenuPane @ 315 NONAME
-	_ZThn12_N19CPhoneStateIncomingD0Ev @ 316 NONAME
-	_ZThn12_N19CPhoneStateIncomingD1Ev @ 317 NONAME
-	_ZThn12_N20CPhoneStateCallSetupD0Ev @ 318 NONAME
-	_ZThn12_N20CPhoneStateCallSetupD1Ev @ 319 NONAME
-	_ZThn16_N11CPhoneState14HandleCommandLEi @ 320 NONAME
-	_ZThn16_N11CPhoneState15ProcessCommandLEi @ 321 NONAME
-	_ZThn16_N11CPhoneStateD0Ev @ 322 NONAME
-	_ZThn16_N11CPhoneStateD1Ev @ 323 NONAME
-	_ZThn16_N15CPhoneStateIdle14HandleCommandLEi @ 324 NONAME
-	_ZThn16_N15CPhoneStateIdle15ProcessCommandLEi @ 325 NONAME
-	_ZThn16_N15CPhoneStateIdleD0Ev @ 326 NONAME
-	_ZThn16_N15CPhoneStateIdleD1Ev @ 327 NONAME
-	_ZThn16_N17CPhoneStateInCall14HandleCommandLEi @ 328 NONAME
-	_ZThn16_N17CPhoneStateInCallD0Ev @ 329 NONAME
-	_ZThn16_N17CPhoneStateInCallD1Ev @ 330 NONAME
-	_ZThn16_N18CPhoneStateStartupD0Ev @ 331 NONAME
-	_ZThn16_N18CPhoneStateStartupD1Ev @ 332 NONAME
-	_ZThn16_N18CPhoneUIController14HandleCommandLEi @ 333 NONAME
-	_ZThn16_N18CPhoneUIController15ProcessCommandLEi @ 334 NONAME
-	_ZThn16_N18CPhoneUIControllerD0Ev @ 335 NONAME
-	_ZThn16_N18CPhoneUIControllerD1Ev @ 336 NONAME
-	_ZThn16_N19CPhoneStateIncoming14HandleCommandLEi @ 337 NONAME
-	_ZThn16_N19CPhoneStateIncomingD0Ev @ 338 NONAME
-	_ZThn16_N19CPhoneStateIncomingD1Ev @ 339 NONAME
-	_ZThn16_N20CPhoneStateCallSetup14HandleCommandLEi @ 340 NONAME
-	_ZThn16_N20CPhoneStateCallSetupD0Ev @ 341 NONAME
-	_ZThn16_N20CPhoneStateCallSetupD1Ev @ 342 NONAME
-	_ZThn20_N11CPhoneState20HandleRemConCommandLE25TRemConCoreApiOperationId26TRemConCoreApiButtonAction @ 343 NONAME
-	_ZThn20_N11CPhoneStateD0Ev @ 344 NONAME
-	_ZThn20_N11CPhoneStateD1Ev @ 345 NONAME
-	_ZThn20_N15CPhoneStateIdle20HandleRemConCommandLE25TRemConCoreApiOperationId26TRemConCoreApiButtonAction @ 346 NONAME
-	_ZThn20_N15CPhoneStateIdleD0Ev @ 347 NONAME
-	_ZThn20_N15CPhoneStateIdleD1Ev @ 348 NONAME
-	_ZThn20_N17CPhoneStateInCallD0Ev @ 349 NONAME
-	_ZThn20_N17CPhoneStateInCallD1Ev @ 350 NONAME
-	_ZThn20_N18CPhoneStateStartupD0Ev @ 351 NONAME
-	_ZThn20_N18CPhoneStateStartupD1Ev @ 352 NONAME
-	_ZThn20_N19CPhoneStateIncomingD0Ev @ 353 NONAME
-	_ZThn20_N19CPhoneStateIncomingD1Ev @ 354 NONAME
-	_ZThn20_N20CPhoneStateCallSetupD0Ev @ 355 NONAME
-	_ZThn20_N20CPhoneStateCallSetupD1Ev @ 356 NONAME
-	_ZThn24_N11CPhoneState19SetDivertIndicationEi @ 357 NONAME
-	_ZThn24_N11CPhoneStateD0Ev @ 358 NONAME
-	_ZThn24_N11CPhoneStateD1Ev @ 359 NONAME
-	_ZThn24_N15CPhoneStateIdleD0Ev @ 360 NONAME
-	_ZThn24_N15CPhoneStateIdleD1Ev @ 361 NONAME
-	_ZThn24_N17CPhoneStateInCallD0Ev @ 362 NONAME
-	_ZThn24_N17CPhoneStateInCallD1Ev @ 363 NONAME
-	_ZThn24_N18CPhoneStateStartupD0Ev @ 364 NONAME
-	_ZThn24_N18CPhoneStateStartupD1Ev @ 365 NONAME
-	_ZThn24_N19CPhoneStateIncomingD0Ev @ 366 NONAME
-	_ZThn24_N19CPhoneStateIncomingD1Ev @ 367 NONAME
-	_ZThn24_N20CPhoneStateCallSetupD0Ev @ 368 NONAME
-	_ZThn24_N20CPhoneStateCallSetupD1Ev @ 369 NONAME
-	_ZThn28_N11CPhoneState25HandleNumberEntryClearedLEv @ 370 NONAME
-	_ZThn28_N15CPhoneStateIdle25HandleNumberEntryClearedLEv @ 371 NONAME
-	_ZThn28_N17CPhoneStateInCall25HandleNumberEntryClearedLEv @ 372 NONAME
-	_ZThn28_N19CPhoneStateIncoming25HandleNumberEntryClearedLEv @ 373 NONAME
-	_ZThn28_N20CPhoneStateCallSetup25HandleNumberEntryClearedLEv @ 374 NONAME
-	_ZThn32_N11CPhoneState23HandleNumberEntryEditedEv @ 375 NONAME
-	_ZThn32_N11CPhoneStateD0Ev @ 376 NONAME
-	_ZThn32_N11CPhoneStateD1Ev @ 377 NONAME
-	_ZThn32_N15CPhoneStateIdleD0Ev @ 378 NONAME
-	_ZThn32_N15CPhoneStateIdleD1Ev @ 379 NONAME
-	_ZThn32_N17CPhoneStateInCallD0Ev @ 380 NONAME
-	_ZThn32_N17CPhoneStateInCallD1Ev @ 381 NONAME
-	_ZThn32_N18CPhoneStateStartupD0Ev @ 382 NONAME
-	_ZThn32_N18CPhoneStateStartupD1Ev @ 383 NONAME
-	_ZThn32_N19CPhoneStateIncomingD0Ev @ 384 NONAME
-	_ZThn32_N19CPhoneStateIncomingD1Ev @ 385 NONAME
-	_ZThn32_N20CPhoneStateCallSetupD0Ev @ 386 NONAME
-	_ZThn32_N20CPhoneStateCallSetupD1Ev @ 387 NONAME
-	_ZThn36_NK11CPhoneState11IsKeyLockOnEv @ 388 NONAME
-	_ZThn36_NK11CPhoneState12IsAutoLockOnEv @ 389 NONAME
-	_ZThn4_N11CPhoneState12HandleErrorLERK12TPEErrorInfo @ 390 NONAME
-	_ZThn4_N11CPhoneState25HandlePhoneEngineMessageLEii @ 391 NONAME
-	_ZThn4_N11CPhoneStateD0Ev @ 392 NONAME
-	_ZThn4_N11CPhoneStateD1Ev @ 393 NONAME
-	_ZThn4_N15CPhoneStateIdle25HandlePhoneEngineMessageLEii @ 394 NONAME
-	_ZThn4_N15CPhoneStateIdleD0Ev @ 395 NONAME
-	_ZThn4_N15CPhoneStateIdleD1Ev @ 396 NONAME
-	_ZThn4_N17CPhoneStateInCall25HandlePhoneEngineMessageLEii @ 397 NONAME
-	_ZThn4_N17CPhoneStateInCallD0Ev @ 398 NONAME
-	_ZThn4_N17CPhoneStateInCallD1Ev @ 399 NONAME
-	_ZThn4_N18CPhoneStateMachine11ChangeStateEi @ 400 NONAME
-	_ZThn4_N18CPhoneStateMachine11PhoneEngineEv @ 401 NONAME
-	_ZThn4_N18CPhoneStateMachine14SetPhoneEngineEP13MPEPhoneModel @ 402 NONAME
-	_ZThn4_N18CPhoneStateMachine15PhoneEngineInfoEv @ 403 NONAME
-	_ZThn4_N18CPhoneStateMachine18CreatePhoneEngineLER14MEngineMonitor @ 404 NONAME
-	_ZThn4_N18CPhoneStateMachine22SendPhoneEngineMessageEi @ 405 NONAME
-	_ZThn4_N18CPhoneStateMachine5StateEv @ 406 NONAME
-	_ZThn4_N18CPhoneStateMachine9SetCallIdEi @ 407 NONAME
-	_ZThn4_N18CPhoneStateMachineD0Ev @ 408 NONAME
-	_ZThn4_N18CPhoneStateMachineD1Ev @ 409 NONAME
-	_ZThn4_N18CPhoneStateStartup25HandlePhoneEngineMessageLEii @ 410 NONAME
-	_ZThn4_N18CPhoneStateStartupD0Ev @ 411 NONAME
-	_ZThn4_N18CPhoneStateStartupD1Ev @ 412 NONAME
-	_ZThn4_N18CPhoneUIController11HandleErrorERK12TPEErrorInfo @ 413 NONAME
-	_ZThn4_N18CPhoneUIController13HandleMessageEii @ 414 NONAME
-	_ZThn4_N19CPhoneStateIncoming25HandlePhoneEngineMessageLEii @ 415 NONAME
-	_ZThn4_N19CPhoneStateIncomingD0Ev @ 416 NONAME
-	_ZThn4_N19CPhoneStateIncomingD1Ev @ 417 NONAME
-	_ZThn4_N20CPhoneStateCallSetup25HandlePhoneEngineMessageLEii @ 418 NONAME
-	_ZThn4_N20CPhoneStateCallSetupD0Ev @ 419 NONAME
-	_ZThn4_N20CPhoneStateCallSetupD1Ev @ 420 NONAME
-	_ZThn8_N11CPhoneState14IsNoteVisibleLEv @ 421 NONAME
-	_ZThn8_N11CPhoneState15HandleKeyEventLERK9TKeyEvent10TEventCode @ 422 NONAME
-	_ZThn8_N11CPhoneState15HandleLongHashLEv @ 423 NONAME
-	_ZThn8_N11CPhoneState17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 424 NONAME
-	_ZThn8_N11CPhoneState18HandleDtmfKeyToneLERK9TKeyEvent10TEventCode @ 425 NONAME
-	_ZThn8_N11CPhoneState23HandleKeyPressDurationLE8TKeyCode25TTimeIntervalMicroSeconds @ 426 NONAME
-	_ZThn8_N11CPhoneState24HandleCreateNumberEntryLERK9TKeyEvent10TEventCode @ 427 NONAME
-	_ZThn8_N11CPhoneState35IsAlphanumericSupportedAndCharInputERK9TKeyEvent @ 428 NONAME
-	_ZThn8_N11CPhoneStateD0Ev @ 429 NONAME
-	_ZThn8_N11CPhoneStateD1Ev @ 430 NONAME
-	_ZThn8_N15CPhoneStateIdle15HandleKeyEventLERK9TKeyEvent10TEventCode @ 431 NONAME
-	_ZThn8_N15CPhoneStateIdle17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 432 NONAME
-	_ZThn8_N15CPhoneStateIdleD0Ev @ 433 NONAME
-	_ZThn8_N15CPhoneStateIdleD1Ev @ 434 NONAME
-	_ZThn8_N17CPhoneStateInCall17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 435 NONAME
-	_ZThn8_N17CPhoneStateInCallD0Ev @ 436 NONAME
-	_ZThn8_N17CPhoneStateInCallD1Ev @ 437 NONAME
-	_ZThn8_N18CPhoneStateStartup15HandleKeyEventLERK9TKeyEvent10TEventCode @ 438 NONAME
-	_ZThn8_N18CPhoneStateStartup17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 439 NONAME
-	_ZThn8_N18CPhoneStateStartup18HandleDtmfKeyToneLERK9TKeyEvent10TEventCode @ 440 NONAME
-	_ZThn8_N18CPhoneStateStartup24HandleCreateNumberEntryLERK9TKeyEvent10TEventCode @ 441 NONAME
-	_ZThn8_N18CPhoneStateStartupD0Ev @ 442 NONAME
-	_ZThn8_N18CPhoneStateStartupD1Ev @ 443 NONAME
-	_ZThn8_N18CPhoneUIController15HandleKeyEventLERK9TKeyEvent10TEventCode @ 444 NONAME
-	_ZThn8_N18CPhoneUIControllerD0Ev @ 445 NONAME
-	_ZThn8_N18CPhoneUIControllerD1Ev @ 446 NONAME
-	_ZThn8_N19CPhoneStateIncoming15HandleKeyEventLERK9TKeyEvent10TEventCode @ 447 NONAME
-	_ZThn8_N19CPhoneStateIncoming17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 448 NONAME
-	_ZThn8_N19CPhoneStateIncoming23HandleKeyPressDurationLE8TKeyCode25TTimeIntervalMicroSeconds @ 449 NONAME
-	_ZThn8_N19CPhoneStateIncomingD0Ev @ 450 NONAME
-	_ZThn8_N19CPhoneStateIncomingD1Ev @ 451 NONAME
-	_ZThn8_N20CPhoneStateCallSetup15HandleKeyEventLERK9TKeyEvent10TEventCode @ 452 NONAME
-	_ZThn8_N20CPhoneStateCallSetup17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 453 NONAME
-	_ZThn8_N20CPhoneStateCallSetup24HandleCreateNumberEntryLERK9TKeyEvent10TEventCode @ 454 NONAME
-	_ZThn8_N20CPhoneStateCallSetupD0Ev @ 455 NONAME
-	_ZThn8_N20CPhoneStateCallSetupD1Ev @ 456 NONAME
-	_ZThn8_NK11CPhoneState17IsMenuBarVisibleLEv @ 457 NONAME
+	_ZN18CPhoneStateMachine12SecurityModeEv @ 162 NONAME
+	_ZN18CPhoneStateMachine14SetPhoneEngineEP13MPEPhoneModel @ 163 NONAME
+	_ZN18CPhoneStateMachine15PhoneEngineInfoEv @ 164 NONAME
+	_ZN18CPhoneStateMachine18CreatePhoneEngineLER14MEngineMonitor @ 165 NONAME
+	_ZN18CPhoneStateMachine22HandlePropertyChangedLERK4TUidji @ 166 NONAME
+	_ZN18CPhoneStateMachine22SendPhoneEngineMessageEi @ 167 NONAME
+	_ZN18CPhoneStateMachine23SetSecurityModeObserverEP26MPhoneSecurityModeObserver @ 168 NONAME
+	_ZN18CPhoneStateMachine25HandlePhoneEngineMessageLEii @ 169 NONAME
+	_ZN18CPhoneStateMachine25SetSecurityMessageHandlerEP28MPhoneSecurityMessageHandler @ 170 NONAME
+	_ZN18CPhoneStateMachine5StateEv @ 171 NONAME
+	_ZN18CPhoneStateMachine9SetCallIdEi @ 172 NONAME
+	_ZN18CPhoneStateMachineC1EP23MPhoneViewCommandHandle @ 173 NONAME
+	_ZN18CPhoneStateMachineC2EP23MPhoneViewCommandHandle @ 174 NONAME
+	_ZN18CPhoneStateMachineD0Ev @ 175 NONAME
+	_ZN18CPhoneStateMachineD1Ev @ 176 NONAME
+	_ZN18CPhoneStateMachineD2Ev @ 177 NONAME
+	_ZN18CPhoneStateStartup10ConstructLEv @ 178 NONAME
+	_ZN18CPhoneStateStartup15HandleKeyEventLERK9TKeyEvent10TEventCode @ 179 NONAME
+	_ZN18CPhoneStateStartup17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 180 NONAME
+	_ZN18CPhoneStateStartup18HandleDtmfKeyToneLERK9TKeyEvent10TEventCode @ 181 NONAME
+	_ZN18CPhoneStateStartup19HandlePhoneStartupLEv @ 182 NONAME
+	_ZN18CPhoneStateStartup24HandleCreateNumberEntryLERK9TKeyEvent10TEventCode @ 183 NONAME
+	_ZN18CPhoneStateStartup25HandlePhoneEngineMessageLEii @ 184 NONAME
+	_ZN18CPhoneStateStartup26HandleIdleForegroundEventLEv @ 185 NONAME
+	_ZN18CPhoneStateStartup26HandlePEConstructionReadyLEi @ 186 NONAME
+	_ZN18CPhoneStateStartup4NewLEP18MPhoneStateMachineP23MPhoneViewCommandHandleP19MPhoneCustomization @ 187 NONAME
+	_ZN18CPhoneStateStartupC1EP18MPhoneStateMachineP23MPhoneViewCommandHandleP19MPhoneCustomization @ 188 NONAME
+	_ZN18CPhoneStateStartupC2EP18MPhoneStateMachineP23MPhoneViewCommandHandleP19MPhoneCustomization @ 189 NONAME
+	_ZN18CPhoneStateStartupD0Ev @ 190 NONAME
+	_ZN18CPhoneStateStartupD1Ev @ 191 NONAME
+	_ZN18CPhoneStateStartupD2Ev @ 192 NONAME
+	_ZN18CPhoneUIController11HandleErrorERK12TPEErrorInfo @ 193 NONAME
+	_ZN18CPhoneUIController13HandleMessageEii @ 194 NONAME
+	_ZN18CPhoneUIController14HandleCommandLEi @ 195 NONAME
+	_ZN18CPhoneUIController15DynInitMenuBarLEiP11CEikMenuBar @ 196 NONAME
+	_ZN18CPhoneUIController15HandleKeyEventLERK9TKeyEvent10TEventCode @ 197 NONAME
+	_ZN18CPhoneUIController15ProcessCommandLEi @ 198 NONAME
+	_ZN18CPhoneUIController16DynInitMenuPaneLEiP12CEikMenuPane @ 199 NONAME
+	_ZN18CPhoneUIController18HandleSystemEventLERK8TWsEvent @ 200 NONAME
+	_ZN18CPhoneUIController19HandlePhoneStartupLEv @ 201 NONAME
+	_ZN18CPhoneUIController22HandleForegroundEventLEi @ 202 NONAME
+	_ZN18CPhoneUIController24HandleEnvironmentChangeLEi @ 203 NONAME
+	_ZN18CPhoneUIController26HandleIdleForegroundEventLEv @ 204 NONAME
+	_ZN18CPhoneUIController26HandlePhoneFocusLostEventLEv @ 205 NONAME
+	_ZN18CPhoneUIController27HandlePhoneForegroundEventLEv @ 206 NONAME
+	_ZN18CPhoneUIController4NewLER20CPhoneViewController @ 207 NONAME
+	_ZN18CPhoneUIControllerD0Ev @ 208 NONAME
+	_ZN18CPhoneUIControllerD1Ev @ 209 NONAME
+	_ZN18CPhoneUIControllerD2Ev @ 210 NONAME
+	_ZN19CPhoneStateIncoming10ConstructLEv @ 211 NONAME
+	_ZN19CPhoneStateIncoming14HandleCommandLEi @ 212 NONAME
+	_ZN19CPhoneStateIncoming15HandleKeyEventLERK9TKeyEvent10TEventCode @ 213 NONAME
+	_ZN19CPhoneStateIncoming16DynInitMenuPaneLEiP12CEikMenuPane @ 214 NONAME
+	_ZN19CPhoneStateIncoming17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 215 NONAME
+	_ZN19CPhoneStateIncoming23HandleAudioPlayStoppedLEv @ 216 NONAME
+	_ZN19CPhoneStateIncoming23HandleKeyPressDurationLE8TKeyCode25TTimeIntervalMicroSeconds @ 217 NONAME
+	_ZN19CPhoneStateIncoming25HandleNumberEntryClearedLEv @ 218 NONAME
+	_ZN19CPhoneStateIncoming25HandlePhoneEngineMessageLEii @ 219 NONAME
+	_ZN19CPhoneStateIncomingC1EP18MPhoneStateMachineP23MPhoneViewCommandHandleP19MPhoneCustomization @ 220 NONAME
+	_ZN19CPhoneStateIncomingC2EP18MPhoneStateMachineP23MPhoneViewCommandHandleP19MPhoneCustomization @ 221 NONAME
+	_ZN19CPhoneStateIncomingD0Ev @ 222 NONAME
+	_ZN19CPhoneStateIncomingD1Ev @ 223 NONAME
+	_ZN19CPhoneStateIncomingD2Ev @ 224 NONAME
+	_ZN20CPhoneReconnectQuery19ShowReconnectQueryLEi @ 225 NONAME
+	_ZN20CPhoneReconnectQuery9InstanceLEv @ 226 NONAME
+	_ZN20CPhoneStateCallSetup10ConstructLEv @ 227 NONAME
+	_ZN20CPhoneStateCallSetup10UpdateCbaLEi @ 228 NONAME
+	_ZN20CPhoneStateCallSetup12OpenMenuBarLEv @ 229 NONAME
+	_ZN20CPhoneStateCallSetup14HandleCommandLEi @ 230 NONAME
+	_ZN20CPhoneStateCallSetup15HandleKeyEventLERK9TKeyEvent10TEventCode @ 231 NONAME
+	_ZN20CPhoneStateCallSetup16UpdateInCallCbaLEv @ 232 NONAME
+	_ZN20CPhoneStateCallSetup17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 233 NONAME
+	_ZN20CPhoneStateCallSetup24HandleCreateNumberEntryLERK9TKeyEvent10TEventCode @ 234 NONAME
+	_ZN20CPhoneStateCallSetup25HandleNumberEntryClearedLEv @ 235 NONAME
+	_ZN20CPhoneStateCallSetup25HandlePhoneEngineMessageLEii @ 236 NONAME
+	_ZN20CPhoneStateCallSetupC1EP18MPhoneStateMachineP23MPhoneViewCommandHandleP19MPhoneCustomization @ 237 NONAME
+	_ZN20CPhoneStateCallSetupC2EP18MPhoneStateMachineP23MPhoneViewCommandHandleP19MPhoneCustomization @ 238 NONAME
+	_ZN20CPhoneStateCallSetupD0Ev @ 239 NONAME
+	_ZN20CPhoneStateCallSetupD1Ev @ 240 NONAME
+	_ZN20CPhoneStateCallSetupD2Ev @ 241 NONAME
+	_ZNK11CPhoneState11IsKeyLockOnEv @ 242 NONAME
+	_ZNK11CPhoneState12IsAutoLockOnEv @ 243 NONAME
+	_ZNK11CPhoneState14IsSwivelClosedEv @ 244 NONAME
+	_ZNK11CPhoneState17IsMenuBarVisibleLEv @ 245 NONAME
+	_ZNK11CPhoneState18TopAppIsDisplayedLEv @ 246 NONAME
+	_ZNK11CPhoneState20IsDTMFEditorVisibleLEv @ 247 NONAME
+	_ZNK11CPhoneState25IsOnScreenDialerSupportedEv @ 248 NONAME
+	_ZNK11CPhoneState26IsCustomizedDialerVisibleLEv @ 249 NONAME
+	_ZNK11CPhoneState26IsDialingExtensionInFocusLEv @ 250 NONAME
+	_ZNK11CPhoneState28NeedToReturnToForegroundAppLEv @ 251 NONAME
+	_ZNK11CPhoneState8SimStateEv @ 252 NONAME
+	_ZNK15CPhoneStateIdle17IsSpeedDialNumberERK7TDesC16 @ 253 NONAME
+	_ZTI11CPhoneState @ 254 NONAME
+	_ZTI15CPhoneStateIdle @ 255 NONAME
+	_ZTI17CPhoneStateHandle @ 256 NONAME
+	_ZTI17CPhoneStateInCall @ 257 NONAME
+	_ZTI18CPhoneStateMachine @ 258 NONAME
+	_ZTI18CPhoneStateStartup @ 259 NONAME
+	_ZTI18CPhoneUIController @ 260 NONAME
+	_ZTI19CPhoneStateIncoming @ 261 NONAME
+	_ZTI20CPhoneReconnectQuery @ 262 NONAME
+	_ZTI20CPhoneStateCallSetup @ 263 NONAME
+	_ZTI23CPhoneDtmfWaitCharTimer @ 264 NONAME
+	_ZTI23CPhoneKeyEventForwarder @ 265 NONAME
+	_ZTI24CPhoneSystemEventHandler @ 266 NONAME
+	_ZTI26CPhoneRemoteControlHandler @ 267 NONAME
+	_ZTI27CPhoneBtaaDisconnectHandler @ 268 NONAME
+	_ZTV11CPhoneState @ 269 NONAME
+	_ZTV15CPhoneStateIdle @ 270 NONAME
+	_ZTV17CPhoneStateHandle @ 271 NONAME
+	_ZTV17CPhoneStateInCall @ 272 NONAME
+	_ZTV18CPhoneStateMachine @ 273 NONAME
+	_ZTV18CPhoneStateStartup @ 274 NONAME
+	_ZTV18CPhoneUIController @ 275 NONAME
+	_ZTV19CPhoneStateIncoming @ 276 NONAME
+	_ZTV20CPhoneReconnectQuery @ 277 NONAME
+	_ZTV20CPhoneStateCallSetup @ 278 NONAME
+	_ZTV23CPhoneDtmfWaitCharTimer @ 279 NONAME
+	_ZTV23CPhoneKeyEventForwarder @ 280 NONAME
+	_ZTV24CPhoneSystemEventHandler @ 281 NONAME
+	_ZTV26CPhoneRemoteControlHandler @ 282 NONAME
+	_ZTV27CPhoneBtaaDisconnectHandler @ 283 NONAME
+	_ZThn12_N11CPhoneState15DynInitMenuBarLEiP11CEikMenuBar @ 284 NONAME
+	_ZThn12_N11CPhoneState16DynInitMenuPaneLEiP12CEikMenuPane @ 285 NONAME
+	_ZThn12_N11CPhoneState18HandleSystemEventLERK8TWsEvent @ 286 NONAME
+	_ZThn12_N11CPhoneState19HandleCenRepChangeLERK4TUidj @ 287 NONAME
+	_ZThn12_N11CPhoneState19HandlePhoneStartupLEv @ 288 NONAME
+	_ZThn12_N11CPhoneState22HandleForegroundEventLEi @ 289 NONAME
+	_ZThn12_N11CPhoneState22HandlePropertyChangedLERK4TUidji @ 290 NONAME
+	_ZThn12_N11CPhoneState24HandleEnvironmentChangeLEi @ 291 NONAME
+	_ZThn12_N11CPhoneState26HandleIdleForegroundEventLEv @ 292 NONAME
+	_ZThn12_N11CPhoneState26HandlePhoneFocusLostEventLEv @ 293 NONAME
+	_ZThn12_N11CPhoneState27HandlePhoneForegroundEventLEv @ 294 NONAME
+	_ZThn12_N11CPhoneStateD0Ev @ 295 NONAME
+	_ZThn12_N11CPhoneStateD1Ev @ 296 NONAME
+	_ZThn12_N15CPhoneStateIdle26HandleIdleForegroundEventLEv @ 297 NONAME
+	_ZThn12_N15CPhoneStateIdle26HandlePhoneFocusLostEventLEv @ 298 NONAME
+	_ZThn12_N15CPhoneStateIdle27HandlePhoneForegroundEventLEv @ 299 NONAME
+	_ZThn12_N15CPhoneStateIdleD0Ev @ 300 NONAME
+	_ZThn12_N15CPhoneStateIdleD1Ev @ 301 NONAME
+	_ZThn12_N17CPhoneStateInCall22HandlePropertyChangedLERK4TUidji @ 302 NONAME
+	_ZThn12_N17CPhoneStateInCallD0Ev @ 303 NONAME
+	_ZThn12_N17CPhoneStateInCallD1Ev @ 304 NONAME
+	_ZThn12_N18CPhoneStateStartup19HandlePhoneStartupLEv @ 305 NONAME
+	_ZThn12_N18CPhoneStateStartup26HandleIdleForegroundEventLEv @ 306 NONAME
+	_ZThn12_N18CPhoneStateStartupD0Ev @ 307 NONAME
+	_ZThn12_N18CPhoneStateStartupD1Ev @ 308 NONAME
+	_ZThn12_N18CPhoneUIController15DynInitMenuBarLEiP11CEikMenuBar @ 309 NONAME
+	_ZThn12_N18CPhoneUIController16DynInitMenuPaneLEiP12CEikMenuPane @ 310 NONAME
+	_ZThn12_N18CPhoneUIController18HandleSystemEventLERK8TWsEvent @ 311 NONAME
+	_ZThn12_N18CPhoneUIController19HandlePhoneStartupLEv @ 312 NONAME
+	_ZThn12_N18CPhoneUIController22HandleForegroundEventLEi @ 313 NONAME
+	_ZThn12_N18CPhoneUIController24HandleEnvironmentChangeLEi @ 314 NONAME
+	_ZThn12_N18CPhoneUIController26HandleIdleForegroundEventLEv @ 315 NONAME
+	_ZThn12_N18CPhoneUIController26HandlePhoneFocusLostEventLEv @ 316 NONAME
+	_ZThn12_N18CPhoneUIController27HandlePhoneForegroundEventLEv @ 317 NONAME
+	_ZThn12_N18CPhoneUIControllerD0Ev @ 318 NONAME
+	_ZThn12_N18CPhoneUIControllerD1Ev @ 319 NONAME
+	_ZThn12_N19CPhoneStateIncoming16DynInitMenuPaneLEiP12CEikMenuPane @ 320 NONAME
+	_ZThn12_N19CPhoneStateIncomingD0Ev @ 321 NONAME
+	_ZThn12_N19CPhoneStateIncomingD1Ev @ 322 NONAME
+	_ZThn12_N20CPhoneStateCallSetupD0Ev @ 323 NONAME
+	_ZThn12_N20CPhoneStateCallSetupD1Ev @ 324 NONAME
+	_ZThn16_N11CPhoneState14HandleCommandLEi @ 325 NONAME
+	_ZThn16_N11CPhoneState15ProcessCommandLEi @ 326 NONAME
+	_ZThn16_N11CPhoneStateD0Ev @ 327 NONAME
+	_ZThn16_N11CPhoneStateD1Ev @ 328 NONAME
+	_ZThn16_N15CPhoneStateIdle14HandleCommandLEi @ 329 NONAME
+	_ZThn16_N15CPhoneStateIdle15ProcessCommandLEi @ 330 NONAME
+	_ZThn16_N15CPhoneStateIdleD0Ev @ 331 NONAME
+	_ZThn16_N15CPhoneStateIdleD1Ev @ 332 NONAME
+	_ZThn16_N17CPhoneStateInCall14HandleCommandLEi @ 333 NONAME
+	_ZThn16_N17CPhoneStateInCallD0Ev @ 334 NONAME
+	_ZThn16_N17CPhoneStateInCallD1Ev @ 335 NONAME
+	_ZThn16_N18CPhoneStateStartupD0Ev @ 336 NONAME
+	_ZThn16_N18CPhoneStateStartupD1Ev @ 337 NONAME
+	_ZThn16_N18CPhoneUIController14HandleCommandLEi @ 338 NONAME
+	_ZThn16_N18CPhoneUIController15ProcessCommandLEi @ 339 NONAME
+	_ZThn16_N18CPhoneUIControllerD0Ev @ 340 NONAME
+	_ZThn16_N18CPhoneUIControllerD1Ev @ 341 NONAME
+	_ZThn16_N19CPhoneStateIncoming14HandleCommandLEi @ 342 NONAME
+	_ZThn16_N19CPhoneStateIncomingD0Ev @ 343 NONAME
+	_ZThn16_N19CPhoneStateIncomingD1Ev @ 344 NONAME
+	_ZThn16_N20CPhoneStateCallSetup14HandleCommandLEi @ 345 NONAME
+	_ZThn16_N20CPhoneStateCallSetupD0Ev @ 346 NONAME
+	_ZThn16_N20CPhoneStateCallSetupD1Ev @ 347 NONAME
+	_ZThn20_N11CPhoneState20HandleRemConCommandLE25TRemConCoreApiOperationId26TRemConCoreApiButtonAction @ 348 NONAME
+	_ZThn20_N11CPhoneStateD0Ev @ 349 NONAME
+	_ZThn20_N11CPhoneStateD1Ev @ 350 NONAME
+	_ZThn20_N15CPhoneStateIdle20HandleRemConCommandLE25TRemConCoreApiOperationId26TRemConCoreApiButtonAction @ 351 NONAME
+	_ZThn20_N15CPhoneStateIdleD0Ev @ 352 NONAME
+	_ZThn20_N15CPhoneStateIdleD1Ev @ 353 NONAME
+	_ZThn20_N17CPhoneStateInCallD0Ev @ 354 NONAME
+	_ZThn20_N17CPhoneStateInCallD1Ev @ 355 NONAME
+	_ZThn20_N18CPhoneStateStartupD0Ev @ 356 NONAME
+	_ZThn20_N18CPhoneStateStartupD1Ev @ 357 NONAME
+	_ZThn20_N19CPhoneStateIncomingD0Ev @ 358 NONAME
+	_ZThn20_N19CPhoneStateIncomingD1Ev @ 359 NONAME
+	_ZThn20_N20CPhoneStateCallSetupD0Ev @ 360 NONAME
+	_ZThn20_N20CPhoneStateCallSetupD1Ev @ 361 NONAME
+	_ZThn24_N11CPhoneState19SetDivertIndicationEi @ 362 NONAME
+	_ZThn24_N11CPhoneStateD0Ev @ 363 NONAME
+	_ZThn24_N11CPhoneStateD1Ev @ 364 NONAME
+	_ZThn24_N15CPhoneStateIdleD0Ev @ 365 NONAME
+	_ZThn24_N15CPhoneStateIdleD1Ev @ 366 NONAME
+	_ZThn24_N17CPhoneStateInCallD0Ev @ 367 NONAME
+	_ZThn24_N17CPhoneStateInCallD1Ev @ 368 NONAME
+	_ZThn24_N18CPhoneStateStartupD0Ev @ 369 NONAME
+	_ZThn24_N18CPhoneStateStartupD1Ev @ 370 NONAME
+	_ZThn24_N19CPhoneStateIncomingD0Ev @ 371 NONAME
+	_ZThn24_N19CPhoneStateIncomingD1Ev @ 372 NONAME
+	_ZThn24_N20CPhoneStateCallSetupD0Ev @ 373 NONAME
+	_ZThn24_N20CPhoneStateCallSetupD1Ev @ 374 NONAME
+	_ZThn28_N11CPhoneState25HandleNumberEntryClearedLEv @ 375 NONAME
+	_ZThn28_N15CPhoneStateIdle25HandleNumberEntryClearedLEv @ 376 NONAME
+	_ZThn28_N17CPhoneStateInCall25HandleNumberEntryClearedLEv @ 377 NONAME
+	_ZThn28_N19CPhoneStateIncoming25HandleNumberEntryClearedLEv @ 378 NONAME
+	_ZThn28_N20CPhoneStateCallSetup25HandleNumberEntryClearedLEv @ 379 NONAME
+	_ZThn32_N11CPhoneState23HandleNumberEntryEditedEv @ 380 NONAME
+	_ZThn32_N11CPhoneStateD0Ev @ 381 NONAME
+	_ZThn32_N11CPhoneStateD1Ev @ 382 NONAME
+	_ZThn32_N15CPhoneStateIdleD0Ev @ 383 NONAME
+	_ZThn32_N15CPhoneStateIdleD1Ev @ 384 NONAME
+	_ZThn32_N17CPhoneStateInCallD0Ev @ 385 NONAME
+	_ZThn32_N17CPhoneStateInCallD1Ev @ 386 NONAME
+	_ZThn32_N18CPhoneStateStartupD0Ev @ 387 NONAME
+	_ZThn32_N18CPhoneStateStartupD1Ev @ 388 NONAME
+	_ZThn32_N19CPhoneStateIncomingD0Ev @ 389 NONAME
+	_ZThn32_N19CPhoneStateIncomingD1Ev @ 390 NONAME
+	_ZThn32_N20CPhoneStateCallSetupD0Ev @ 391 NONAME
+	_ZThn32_N20CPhoneStateCallSetupD1Ev @ 392 NONAME
+	_ZThn36_NK11CPhoneState11IsKeyLockOnEv @ 393 NONAME
+	_ZThn36_NK11CPhoneState12IsAutoLockOnEv @ 394 NONAME
+	_ZThn4_N11CPhoneState12HandleErrorLERK12TPEErrorInfo @ 395 NONAME
+	_ZThn4_N11CPhoneState25HandlePhoneEngineMessageLEii @ 396 NONAME
+	_ZThn4_N11CPhoneStateD0Ev @ 397 NONAME
+	_ZThn4_N11CPhoneStateD1Ev @ 398 NONAME
+	_ZThn4_N15CPhoneStateIdle25HandlePhoneEngineMessageLEii @ 399 NONAME
+	_ZThn4_N15CPhoneStateIdleD0Ev @ 400 NONAME
+	_ZThn4_N15CPhoneStateIdleD1Ev @ 401 NONAME
+	_ZThn4_N17CPhoneStateInCall25HandlePhoneEngineMessageLEii @ 402 NONAME
+	_ZThn4_N17CPhoneStateInCallD0Ev @ 403 NONAME
+	_ZThn4_N17CPhoneStateInCallD1Ev @ 404 NONAME
+	_ZThn4_N18CPhoneStateMachine11ChangeStateEi @ 405 NONAME
+	_ZThn4_N18CPhoneStateMachine11PhoneEngineEv @ 406 NONAME
+	_ZThn4_N18CPhoneStateMachine12SecurityModeEv @ 407 NONAME
+	_ZThn4_N18CPhoneStateMachine14SetPhoneEngineEP13MPEPhoneModel @ 408 NONAME
+	_ZThn4_N18CPhoneStateMachine15PhoneEngineInfoEv @ 409 NONAME
+	_ZThn4_N18CPhoneStateMachine18CreatePhoneEngineLER14MEngineMonitor @ 410 NONAME
+	_ZThn4_N18CPhoneStateMachine22HandlePropertyChangedLERK4TUidji @ 411 NONAME
+	_ZThn4_N18CPhoneStateMachine22SendPhoneEngineMessageEi @ 412 NONAME
+	_ZThn4_N18CPhoneStateMachine23SetSecurityModeObserverEP26MPhoneSecurityModeObserver @ 413 NONAME
+	_ZThn4_N18CPhoneStateMachine25HandlePhoneEngineMessageLEii @ 414 NONAME
+	_ZThn4_N18CPhoneStateMachine25SetSecurityMessageHandlerEP28MPhoneSecurityMessageHandler @ 415 NONAME
+	_ZThn4_N18CPhoneStateMachine5StateEv @ 416 NONAME
+	_ZThn4_N18CPhoneStateMachine9SetCallIdEi @ 417 NONAME
+	_ZThn4_N18CPhoneStateMachineD0Ev @ 418 NONAME
+	_ZThn4_N18CPhoneStateMachineD1Ev @ 419 NONAME
+	_ZThn4_N18CPhoneStateStartup25HandlePhoneEngineMessageLEii @ 420 NONAME
+	_ZThn4_N18CPhoneStateStartupD0Ev @ 421 NONAME
+	_ZThn4_N18CPhoneStateStartupD1Ev @ 422 NONAME
+	_ZThn4_N18CPhoneUIController11HandleErrorERK12TPEErrorInfo @ 423 NONAME
+	_ZThn4_N18CPhoneUIController13HandleMessageEii @ 424 NONAME
+	_ZThn4_N19CPhoneStateIncoming25HandlePhoneEngineMessageLEii @ 425 NONAME
+	_ZThn4_N19CPhoneStateIncomingD0Ev @ 426 NONAME
+	_ZThn4_N19CPhoneStateIncomingD1Ev @ 427 NONAME
+	_ZThn4_N20CPhoneStateCallSetup25HandlePhoneEngineMessageLEii @ 428 NONAME
+	_ZThn4_N20CPhoneStateCallSetupD0Ev @ 429 NONAME
+	_ZThn4_N20CPhoneStateCallSetupD1Ev @ 430 NONAME
+	_ZThn8_N11CPhoneState14IsNoteVisibleLEv @ 431 NONAME
+	_ZThn8_N11CPhoneState15HandleKeyEventLERK9TKeyEvent10TEventCode @ 432 NONAME
+	_ZThn8_N11CPhoneState15HandleLongHashLEv @ 433 NONAME
+	_ZThn8_N11CPhoneState17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 434 NONAME
+	_ZThn8_N11CPhoneState18HandleDtmfKeyToneLERK9TKeyEvent10TEventCode @ 435 NONAME
+	_ZThn8_N11CPhoneState23HandleKeyPressDurationLE8TKeyCode25TTimeIntervalMicroSeconds @ 436 NONAME
+	_ZThn8_N11CPhoneState24HandleCreateNumberEntryLERK9TKeyEvent10TEventCode @ 437 NONAME
+	_ZThn8_N11CPhoneState35IsAlphanumericSupportedAndCharInputERK9TKeyEvent @ 438 NONAME
+	_ZThn8_N11CPhoneStateD0Ev @ 439 NONAME
+	_ZThn8_N11CPhoneStateD1Ev @ 440 NONAME
+	_ZThn8_N15CPhoneStateIdle15HandleKeyEventLERK9TKeyEvent10TEventCode @ 441 NONAME
+	_ZThn8_N15CPhoneStateIdle17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 442 NONAME
+	_ZThn8_N15CPhoneStateIdleD0Ev @ 443 NONAME
+	_ZThn8_N15CPhoneStateIdleD1Ev @ 444 NONAME
+	_ZThn8_N17CPhoneStateInCall17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 445 NONAME
+	_ZThn8_N17CPhoneStateInCallD0Ev @ 446 NONAME
+	_ZThn8_N17CPhoneStateInCallD1Ev @ 447 NONAME
+	_ZThn8_N18CPhoneStateStartup15HandleKeyEventLERK9TKeyEvent10TEventCode @ 448 NONAME
+	_ZThn8_N18CPhoneStateStartup17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 449 NONAME
+	_ZThn8_N18CPhoneStateStartup18HandleDtmfKeyToneLERK9TKeyEvent10TEventCode @ 450 NONAME
+	_ZThn8_N18CPhoneStateStartup24HandleCreateNumberEntryLERK9TKeyEvent10TEventCode @ 451 NONAME
+	_ZThn8_N18CPhoneStateStartupD0Ev @ 452 NONAME
+	_ZThn8_N18CPhoneStateStartupD1Ev @ 453 NONAME
+	_ZThn8_N18CPhoneUIController15HandleKeyEventLERK9TKeyEvent10TEventCode @ 454 NONAME
+	_ZThn8_N18CPhoneUIControllerD0Ev @ 455 NONAME
+	_ZThn8_N18CPhoneUIControllerD1Ev @ 456 NONAME
+	_ZThn8_N19CPhoneStateIncoming15HandleKeyEventLERK9TKeyEvent10TEventCode @ 457 NONAME
+	_ZThn8_N19CPhoneStateIncoming17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 458 NONAME
+	_ZThn8_N19CPhoneStateIncoming23HandleKeyPressDurationLE8TKeyCode25TTimeIntervalMicroSeconds @ 459 NONAME
+	_ZThn8_N19CPhoneStateIncomingD0Ev @ 460 NONAME
+	_ZThn8_N19CPhoneStateIncomingD1Ev @ 461 NONAME
+	_ZThn8_N20CPhoneStateCallSetup15HandleKeyEventLERK9TKeyEvent10TEventCode @ 462 NONAME
+	_ZThn8_N20CPhoneStateCallSetup17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 463 NONAME
+	_ZThn8_N20CPhoneStateCallSetup24HandleCreateNumberEntryLERK9TKeyEvent10TEventCode @ 464 NONAME
+	_ZThn8_N20CPhoneStateCallSetupD0Ev @ 465 NONAME
+	_ZThn8_N20CPhoneStateCallSetupD1Ev @ 466 NONAME
+	_ZThn8_NK11CPhoneState17IsMenuBarVisibleLEv @ 467 NONAME
 
--- a/phoneapp/phoneuicontrol/group/phoneuicontrol.mmp	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneuicontrol/group/phoneuicontrol.mmp	Wed Mar 31 21:30:06 2010 +0300
@@ -52,7 +52,8 @@
 SOURCE          tphonecallheaderparam.cpp
 SOURCE          cphonecallheadermanager.cpp 
 SOURCE          cphonenumberentrymanager.cpp
-SOURCE          cphonecbamanager.cpp 
+SOURCE          cphonecbamanager.cpp
+SOURCE          cphonesecuritymodeobserver.cpp
 
 /* Languages */
 LANG SC
--- a/phoneapp/phoneuicontrol/inc/cphonekeyeventforwarder.h	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneuicontrol/inc/cphonekeyeventforwarder.h	Wed Mar 31 21:30:06 2010 +0300
@@ -28,6 +28,8 @@
 class MPhoneKeyEventHandler;
 class MPhoneViewCommandHandle;
 class CPhoneTimer;
+class CPhoneQwertyHandler;
+class MPhoneQwertyModeObserver;
 
 // CLASS DECLARATION
 
@@ -228,6 +230,12 @@
          * Zeroed in HandleEventKeyUpL.
          */
         TInt iScanCode;
+
+        /*
+        * Has information of used qwerty keyboard.
+        * Own.
+        */
+        CPhoneQwertyHandler* iQwertyHandler;
     };
 
 #endif      // CPHONEKEYEVENTFORWARDER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneapp/phoneuicontrol/inc/cphonesecuritymodeobserver.h	Wed Mar 31 21:30:06 2010 +0300
@@ -0,0 +1,207 @@
+/*
+* Copyright (c) 2005-2010 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 dynamic state class for security mode.
+*
+*/
+
+#ifndef CPHONESECURITYMODEOBSERVER_H
+#define CPHONESECURITYMODEOBSERVER_H
+
+#include "mphonesecuritymodeobserver.h"
+#include "mphonesecuritymessagehandler.h"
+#include "mphonesecuritymodechangeobserver.h"
+#include <e32base.h>
+#include <pevirtualengine.h>
+#include <startupdomainpskeys.h>
+#include <coreapplicationuisdomainpskeys.h>
+#include <e32cmn.h>
+
+// Forward Declarations
+class MPEEngineInfo;
+
+/**
+ * Dynamic state class for security mode.
+ * 
+ */
+NONSHARABLE_CLASS( CPhoneSecurityModeObserver ) : public CBase,
+	public MPhoneSecurityModeObserver,
+	public MPhoneSecurityMessageHandler
+	{
+public:
+	
+	/**
+	 * Default static two-phased constructor.
+	 * 
+	 * @return Pointer to new instance.
+	 */
+	static CPhoneSecurityModeObserver* NewL();
+	
+	/**
+	 * Default static two-phased constructor.
+	 * 
+	 * @return Pointer to new instance.
+	 */
+	static CPhoneSecurityModeObserver* NewLC();
+	
+	/**
+	 * Destructor.
+	 */
+	~CPhoneSecurityModeObserver();
+	
+	/**
+	 * Sets pointer to phone engine info interface.
+	 * 
+	 * @param aEngineInfo Pointer to engine info interface.
+	 */
+	void SetPhoneEngineInfo( MPEEngineInfo* aEngineInfo );
+	
+	// From MPhoneSecurityModeState
+	
+	/**
+	 * Register state observer.
+	 * 
+	 * @param aObserver Reference to state observer instance.
+	 */
+	IMPORT_C void RegisterStateObserver( MPhoneSecurityModeChangeObserver& aObserver );
+	
+	/**
+	 * Remove state observer
+	 * 
+	 * @param aObserver Reference to state observer instance.
+	 */
+	IMPORT_C void RemoveStateObserver( MPhoneSecurityModeChangeObserver& aObserver );
+	
+	/**
+	 * Checks if autolock is enabled.
+	 * 
+	 * @return ETrue if enabled. EFalse otherwise.
+	 */
+	IMPORT_C TBool IsAutolockEnabled();
+	
+	/**
+	 * Checks if security mode is enabled.
+	 * 
+	 * @return ETrue if enabled. EFalse otherwise.
+	 */
+	IMPORT_C TBool IsSecurityMode();
+	
+	/**
+	 * Initializes state instance. This should be called when dynamic security
+	 * mode observers are ready.
+	 */
+	IMPORT_C void Initialize();
+	
+	/**
+	 * Handles phone engine message. Dynamic state object listens phone engine
+	 * message to determinate sim states.
+	 * 
+	 * @param aMessage Message enumeration.
+	 * @param aCallId Call identifier.
+	 */
+	void HandlePhoneEngineMessageL( const TInt aMessage, TInt aCallId );
+	
+	/**
+	 * Handle property change. Dynamic state object listens P&S key changes
+	 * to determinate autolock and sim security states.
+	 * 
+	 * @param aCategory Unique identifer category reference.
+	 * @param aKey Key as unsigned integer.
+	 * @param aValue Key value as integer.
+	 */
+	void HandlePropertyChangedL(const TUid& aCategory,
+	     const TUint aKey,
+	     const TInt aValue );
+	
+private:
+	
+	/**
+	 * Default C++ constructor.
+	 */
+	CPhoneSecurityModeObserver();
+	
+	/**
+	 * Defines iSecurityMode with corresponding logic implementation.
+	 */
+	void DefineSecurityModeState();
+	
+	/**
+	 * Handles security mode state change. Basicly calls observer functions.
+	 */
+	void HandleStateChange();
+	
+	/**
+	 * Checks if sim security status is enabled.
+	 * 
+	 * @return ETrue if enabled.
+	 */
+	TBool IsSimSecurityStatus();
+	
+	/**
+	 * Checks if sim security status is accepted, not in security mode.
+	 * 
+	 * @return ETrue if not in security mode.
+	 */
+	TBool IsEngineSimStateAccepted();
+	
+	/**
+	 * Checks if simless features are supported.
+	 * 
+	 * @return ETrue if features are supported.
+	 */
+	TBool AreSimlessFeaturesSupported();
+	
+private:
+	
+    // Phone sim security state. Used to define dialer security mode and
+    // usability restrictions dynamically.
+    TPSSimSecurityStatus iSimState;
+    
+    // Telephony engine sim state. Used to define dialer security mode and
+    // usability restrictions dynamically.
+    TPESimState iEngineCurrentSimState;
+    
+    // Some special cases requires that we know previous sim state to 
+    // calculate security mode.
+    TPESimState iEnginePreviousSimState;
+            
+    // Phone device lock state. Used to define dialer security mode and
+    // usability restrictions dynamically.
+    TPSAutolockStatus iDeviceLockState;
+    
+    // Security mode status flag. This is calculated from iSimState and
+    // iDeviceLockState
+    TBool iSecurityMode;
+    
+    /**
+     * Pointer array for observers. This dynamic security mode state object
+     * doesn't own the observer instances. 
+     */
+    RPointerArray< MPhoneSecurityModeChangeObserver > iObserverArray;
+    
+    /**
+     * Pointer to Phone Engine info instance. This object doens't own the
+     * engine info instance.
+     */
+    MPEEngineInfo* iEngineInfo;
+    
+    /**
+     * Flag to determinate if this security mode state object has been fully
+     * initialized.
+     */
+    TBool iInitialized;
+	
+	};
+
+#endif
--- a/phoneapp/phoneuicontrol/inc/cphonestatemachine.h	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneuicontrol/inc/cphonestatemachine.h	Wed Mar 31 21:30:06 2010 +0300
@@ -30,6 +30,8 @@
 
 // FORWARD DECLARATIONS
 class MPhoneState;
+class MPhoneSecurityModeObserver;
+class MPhoneSecurityMessageHandler;
 
 // CLASS DECLARATION
 
@@ -100,6 +102,47 @@
         */    
         IMPORT_C void SetCallId( const TInt aCallId );
 
+   
+        /**
+         * Getter for security mode observer interface.
+         * 
+         * @return Pointer to security mode interface.
+         */
+        IMPORT_C MPhoneSecurityModeObserver* SecurityMode();
+        
+		/**
+		 * Setter for security mode observer interface.
+		 *
+		 * @param aObserver Pointer to observer interface.
+		 */
+		IMPORT_C void SetSecurityModeObserver( MPhoneSecurityModeObserver* aObserver );
+
+		/**
+		 * Set security message handler for security message observations.
+		 * 
+		 * @param aHandler Pointer to handler instance. 
+		 */
+		IMPORT_C void SetSecurityMessageHandler( MPhoneSecurityMessageHandler* aHandler );
+		
+        /**
+         * Handle phone engine message.
+         * 
+         * @param aMessage Message
+         * @param aCallId Call id
+         */
+        IMPORT_C void HandlePhoneEngineMessageL(const TInt aMessage, 
+             	TInt aCallId );
+        
+        /**
+          * 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 void HandlePropertyChangedL(const TUid& aCategory,
+         	const TUint aKey,
+         	const TInt aValue );
+
     protected:
 
         /**
@@ -137,6 +180,19 @@
 
         // Idle state which is hold in memory all the time
         MPhoneState* iIdleState;
+        
+        /**
+         * Security mode state
+         * Not own.
+         */
+        MPhoneSecurityModeObserver* iSecurityModeObserver;
+        
+        /**
+         * Security message handling interface.
+         * Not own.
+         */
+        MPhoneSecurityMessageHandler* iSecurityMessageHandler;
+        
     };
 
 #endif      // CPHONESTATEMACHINE_H
--- a/phoneapp/phoneuicontrol/inc/cphoneuicontroller.h	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneuicontrol/inc/cphoneuicontroller.h	Wed Mar 31 21:30:06 2010 +0300
@@ -39,6 +39,8 @@
 class CPEPhoneModel;
 class CPhoneRemoteControlHandler;
 class CPhoneKeyEventForwarder;
+class CPhoneSecurityModeObserver;
+class CPhoneViewController;
 
 class CPhoneUIController : 
     public CBase, 
@@ -52,8 +54,7 @@
         /**
         * Two-phased constructor.
         */
-        IMPORT_C static CPhoneUIController* NewL( 
-            MPhoneViewCommandHandle* aViewCommandHandle );
+        IMPORT_C static CPhoneUIController* NewL( CPhoneViewController& aViewCommandHandle );
         
         /**
         * Destructor.
@@ -158,7 +159,6 @@
         */
         IMPORT_C TBool ProcessCommandL( TInt aCommand );
 
-        
     private:
         
         /**
@@ -169,12 +169,12 @@
         /**
         * By default EPOC constructor is private.
         */
-        void ConstructL( MPhoneViewCommandHandle* aViewCommandHandle );
+        void ConstructL( CPhoneViewController& aController );
         
         /**
         * Creates correct protocol DLL depending of the variation.
         */
-        void CreateProtocolDllL( MPhoneViewCommandHandle* aViewCommandHandle );
+        void CreateProtocolDllL( CPhoneViewController& aController );
         /**
         * CallBack for Phone Number Editor
         */
@@ -231,7 +231,13 @@
         * iKeyEventForwarder
         */
         CPhoneKeyEventForwarder* iKeyEventForwarder;
-        
+
+		/**
+		 * Security mode observer.
+		 * Own.
+		 */
+		CPhoneSecurityModeObserver* iSecurityModeObserver;
+		
     };
 
 #endif      // CPHONEUICONTROLLER_H   
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneapp/phoneuicontrol/inc/mphonesecuritymessagehandler.h	Wed Mar 31 21:30:06 2010 +0300
@@ -0,0 +1,49 @@
+/*
+* Copyright (c) 2010-2010 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 dynamic state class for security mode.
+*
+*/
+
+#ifndef MPHONESECURITYMESSAGEHANDLER_H
+#define MPHONESECURITYMESSAGEHANDLER_H
+
+class TUid;
+
+class MPhoneSecurityMessageHandler
+	{
+	public:
+	/**
+	 * Handles phone engine message. Dynamic state object listens phone engine
+	 * message to determinate sim states.
+	 * 
+	 * @param aMessage Message enumeration.
+	 * @param aCallId Call identifier.
+	 */
+	virtual void HandlePhoneEngineMessageL( const TInt aMessage, TInt aCallId ) = 0;
+	
+	/**
+	 * Handle property change. Dynamic state object listens P&S key changes
+	 * to determinate autolock and sim security states.
+	 * 
+	 * @param aCategory Unique identifer category reference.
+	 * @param aKey Key as unsigned integer.
+	 * @param aValue Key value as integer.
+	 */
+	virtual void HandlePropertyChangedL(const TUid& aCategory,
+	     const TUint aKey,
+	     const TInt aValue ) = 0;
+	};
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneapp/phoneuicontrol/inc/mphonesecuritymodechangeobserver.h	Wed Mar 31 21:30:06 2010 +0300
@@ -0,0 +1,41 @@
+/* 
+* Copyright (c) 2005-2010 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 dynamic security mode state class observer interface.
+*
+*/
+
+#ifndef MPHONESECURITYMODECHANGEOBSERVER_H
+#define MPHONESECURITYMODECHANGEOBSERVER_H
+
+#include <e32def.h>
+
+/**
+ * Observer interface to observe dynamic security mode state changes.
+ */
+class MPhoneSecurityModeChangeObserver
+	{
+public:
+	/**
+	 * Handles security mode state change. This is called only when state
+	 * actually changes.
+	 * 
+	 * @param aIsEnabled Defines if security mode is enabled.
+	 */
+	virtual void HandleSecurityModeChanged( TBool aIsEnabled ) = 0;
+	};
+
+#endif
+
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneapp/phoneuicontrol/inc/mphonesecuritymodeobserver.h	Wed Mar 31 21:30:06 2010 +0300
@@ -0,0 +1,70 @@
+/* 
+* Copyright (c) 2005-2010 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:
+*     An interface for dynamic security mode state class.
+*
+*/
+
+#ifndef MPHONESECURITYMODEOBSERVER_H
+#define MPHONESECURITYMODEOBSERVER_H
+
+#include <e32def.h>
+
+// Forward declarations
+class MPhoneSecurityModeChangeObserver;
+
+/**
+ * Interface for dynamic security mode state class.
+ */
+class MPhoneSecurityModeObserver
+	{
+public :
+	
+	/**
+	 * Checks if autolock is enabled.
+	 * 
+	 * @return ETrue if autolock is enabled. EFalse otherwise.
+	 */
+	virtual TBool IsAutolockEnabled() = 0;
+	
+	/**
+	 * Checks if security mode is enabled.
+	 * 
+	 * @return ETrue if enabled, otherwise EFalse.
+	 */
+	virtual TBool IsSecurityMode() = 0;
+	
+	/**
+	 * Registers security mode state observer to observer state changes.
+	 *  
+	 * @param aObserver Reference to state observer instance..
+	 */
+	virtual void RegisterStateObserver( MPhoneSecurityModeChangeObserver& aObserver ) = 0;
+	
+	/** 
+	 * Removes registered state observer.
+	 * 
+	 * @param aObserver Reference to observer instance.
+	 */
+	virtual void RemoveStateObserver( MPhoneSecurityModeChangeObserver& aObserver ) = 0;
+	
+	/**
+	 * Initializes dynamic security mode state observer.
+	 */
+	virtual void Initialize() = 0;
+	};
+
+#endif
+
+// End of file
--- a/phoneapp/phoneuicontrol/inc/mphonestatemachine.h	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneuicontrol/inc/mphonestatemachine.h	Wed Mar 31 21:30:06 2010 +0300
@@ -30,6 +30,8 @@
 class MPEPhoneModel;
 class MPEEngineInfo;
 class CSpdiaControl;
+class MPhoneSecurityMessageHandler;
+class MPhoneSecurityModeObserver;
 
 /**
 *  Describes the interface for setting and getting active state
@@ -85,7 +87,47 @@
         * @param aCallId
         */    
         virtual void SetCallId( TInt aCallId ) = 0;
+    
+        /**
+         * Getter for security mode observer interface.
+         * 
+         * @return Pointer to security mode interface.
+         */
+        virtual MPhoneSecurityModeObserver* SecurityMode() = 0;
         
+		/**
+		 * Sets security mode observer. Doesn't transfer ownership.
+		 *
+		 * @param aObserver Pointer to observer instance.
+		 */
+		virtual void SetSecurityModeObserver( MPhoneSecurityModeObserver* aObserver ) = 0;
+		
+		/**
+		 * Set security message handler for security message observations.
+		 * 
+		 * @param aHandler Pointer to handler instance. 
+		 */
+		virtual void SetSecurityMessageHandler( MPhoneSecurityMessageHandler* aHandler ) = 0;
+		
+        /**
+         * Handle phone engine message.
+         * 
+         * @param aMessage Message
+         * @param aCallId Call id
+         */
+        virtual void HandlePhoneEngineMessageL(const TInt aMessage, 
+        	TInt aCallId ) = 0;
+        
+        /**
+         * 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
+         */
+        virtual void HandlePropertyChangedL(const TUid& aCategory,
+        	const TUint aKey,
+        	const TInt aValue ) = 0;
+
     };
 
 #endif // MPHONESTATEMACHINE_H
--- a/phoneapp/phoneuicontrol/src/cphonecbamanager.cpp	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneuicontrol/src/cphonecbamanager.cpp	Wed Mar 31 21:30:06 2010 +0300
@@ -38,6 +38,7 @@
 #include "tphonecmdparamboolean.h"
 #include "tphonecmdparaminteger.h"
 #include "tphonecmdparamcallstatedata.h"
+#include "mphonesecuritymodeobserver.h"
 
 
 // ======== MEMBER FUNCTIONS ========
@@ -115,6 +116,7 @@
         EPEBTAudioAccessory );
 
     // Call setup cases
+    
     if ( EPhoneCallHandlingCallSetupCBA == aResource )
         {
         if ( !FeatureManager::FeatureSupported( KFeatureIdTouchCallHandling) )
@@ -249,10 +251,16 @@
         &softRejectParam );
 
     TInt incomingCbaResourceId;
+    
+    TBool securityMode = iStateMachine.SecurityMode()->IsSecurityMode();
 
     if ( iState->IsSwivelClosed() )
         {
-        if ( !callIsAlerting || iRingtoneSilenced )
+        if ( securityMode )
+        	{
+        	incomingCbaResourceId = EPhoneCallHandlingIncomingSilentSliderCBA;
+        	}
+        else if ( !callIsAlerting || iRingtoneSilenced )
             {
             incomingCbaResourceId = EPhoneCallHandlingIncomingSilentSwivelClosedCBA;
             }
@@ -264,7 +272,12 @@
 
     else if ( coverHideSendEndKey )
         {
-        if ( callIsAlerting )
+        if ( securityMode )
+        	{
+        	// Set CBA to Options..Reject
+        	incomingCbaResourceId = EPhoneCallHandlingIncomingSilentSliderCBA;
+        	}
+        else if ( callIsAlerting )
             {
             // Set CBA to Options..Silence
             incomingCbaResourceId = EPhoneCallHandlingIncomingSliderCBA;
@@ -283,7 +296,11 @@
 
     else
         {
-        if ( callIsAlerting )
+        if ( securityMode )
+        	{
+        	incomingCbaResourceId = EPhoneCallHandlingIncomingRejectCBA;
+        	}
+        else if ( callIsAlerting )
             {
             incomingCbaResourceId = GetIncomingCallSilenceCBA( softRejectActivated );
             }
@@ -443,7 +460,11 @@
     touchpaneButtonsParam.SetInteger( CPhoneMainResourceResolver::Instance()->
                              ResolveResourceID( EPhoneIncomingCallButtons ) );
 
-    if ( touchpaneButtonsParam.Integer() 
+    if ( iStateMachine.SecurityMode()->IsSecurityMode() )
+    	{
+    	ret = EPhoneCallHandlingIncomingRejectCBA;
+    	}
+    else if ( touchpaneButtonsParam.Integer() 
          == R_PHONEUI_INCOMING_CALL_SILENCE_BUTTONS )
         {
         aSoftRejectActivated ? 
--- a/phoneapp/phoneuicontrol/src/cphoneenginehandler.cpp	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneuicontrol/src/cphoneenginehandler.cpp	Wed Mar 31 21:30:06 2010 +0300
@@ -54,7 +54,7 @@
     __PHONELOG2( EBasic, EPhoneControl,
         "CPhoneEngineHandler::DoHandleMessageL - Message received (aMessage=%d aCallId=%d)",
             aMessage, aCallId );
-    iStateMachine->State()->HandlePhoneEngineMessageL( aMessage, aCallId );
+    iStateMachine->HandlePhoneEngineMessageL( aMessage, aCallId );
     }
 
 //  End of File  
--- a/phoneapp/phoneuicontrol/src/cphonekeyeventforwarder.cpp	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneuicontrol/src/cphonekeyeventforwarder.cpp	Wed Mar 31 21:30:06 2010 +0300
@@ -31,6 +31,11 @@
 #include "cphonetimer.h"
 #include "phonelogger.h"
 #include "phoneui.pan"
+#include "mphoneviewcommandhandle.h"
+#include "cphoneqwertyhandler.h"
+#include "tphonecmdparampointer.h"
+#include "mphoneqwertymodeobserver.h"
+#include "cdialer.h"
 
 // CONSTANTS
 
@@ -73,6 +78,8 @@
         env->EikAppUi()->RemoveFromStack( this );
         }
     delete iLongPressKeyEventTimer;
+    
+    delete iQwertyHandler;
     }
 
 // -----------------------------------------------------------------------------
@@ -199,6 +206,17 @@
 
     // Create the long press key event timer
     iLongPressKeyEventTimer = CPhoneTimer::NewL();
+    
+    // Create qwerty mode handler
+    iQwertyHandler = CPhoneQwertyHandler::NewL(); 
+    
+    TPhoneCmdParamPointer ptrParam;
+    iViewCommandHandle->ExecuteCommand( EPhoneViewGetQwertyModeObserver, &ptrParam );
+    CDialer* qwertyObserver = 
+            static_cast<CDialer*>( ptrParam.Pointer() );
+            
+    iQwertyHandler->AddQwertyModeObserverL( *qwertyObserver );
+
     }
 
 // -----------------------------------------------------------------------------
@@ -294,6 +312,24 @@
         default:
             break;
         }
+    
+    // Check if keyEvent is simulated in Dialer.
+    const TBool simulatedByDialer = 
+        ( ( aKeyEvent.iModifiers & ( EModifierNumLock | EModifierKeypad ) ) 
+                == ( EModifierNumLock | EModifierKeypad ) );
+    
+    if(  simulatedByDialer && iQwertyHandler->IsQwertyInput() )
+        {
+        // When dialler key was pressed and
+        // qwerty is open and editor is alphanumeric
+        //  -Dont let FEP to handle key events 
+        //    -> Multitapping doesnt work
+        //    -> Numbers are inserted to dialler without modifications
+        // Also effects # / * - key handling 
+        iStateMachine->State()->HandleKeyEventL( aKeyEvent, aType );
+        response = EKeyWasConsumed;
+        }
+    
     return response;
     }
 
--- a/phoneapp/phoneuicontrol/src/cphonenumberentrymanager.cpp	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneuicontrol/src/cphonenumberentrymanager.cpp	Wed Mar 31 21:30:06 2010 +0300
@@ -40,6 +40,7 @@
 #include "phoneviewcommanddefinitions.h"
 #include "phoneappcommands.hrh"
 #include "phonelogger.h"
+#include "mphonesecuritymodeobserver.h"
 
 const TInt  KPhoneKeyStart            = 33;
 const TInt  KPhoneKeyEnd              = 127;
@@ -224,12 +225,12 @@
     {
     __LOGMETHODSTARTEND( EPhoneControl, "CPhoneNumberEntryManager::HandleCreateNumberEntryL() ");
     
-    const TBool autoLcokOn = iState->IsAutoLockOn();
+    const TBool autoLockOn = iStateMachine.SecurityMode()->IsSecurityMode();
     const TBool idleVal = CPhonePubSubProxy::Instance()->Value( KPSUidAiInformation, KActiveIdleState );
     const TBool queryActive = iState->IsAnyQueryActiveL();
     const TBool menuBarVisible = iState->IsMenuBarVisibleL();
     
-    if( autoLcokOn || 
+    if( autoLockOn || 
         ( idleVal == EPSAiForeground ) ||
         ( menuBarVisible || queryActive ) )
         {
@@ -237,7 +238,7 @@
              "CPhoneNumberEntryManager::HandleCreateNumberEntryL() NE NOT CREATED" );
         __PHONELOG2( EBasic, EPhoneControl, 
              "CPhoneNumberEntryManager::HandleCreateNumberEntryL() autoLcokOn(%d) idleVal(%d)", 
-             autoLcokOn, idleVal );
+             autoLockOn, idleVal );
         __PHONELOG2( EBasic, EPhoneControl, 
              "CPhoneNumberEntryManager::HandleCreateNumberEntryL() queryActive(%d) menuBarVisible(%d)", 
              queryActive, menuBarVisible );
@@ -257,9 +258,7 @@
                 iViewCommandHandle.ExecuteCommandL( EPhoneViewRemoveNote );
                 }
             
-            TPhoneCmdParamBoolean isSecurityMode;      
-            iViewCommandHandle.ExecuteCommandL( EPhoneViewGetSecurityModeStatus, &isSecurityMode );
-            if( isSecurityMode.Boolean() )
+            if( iStateMachine.SecurityMode()->IsSecurityMode() )
                 {
                 iState->HandleCommandL( EPhoneNumberAcqSecurityDialer );
                 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneapp/phoneuicontrol/src/cphonesecuritymodeobserver.cpp	Wed Mar 31 21:30:06 2010 +0300
@@ -0,0 +1,342 @@
+/*
+* Copyright (c) 2005-2010 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: Implementation of CPhoneSecurityModeState class.
+*
+*/
+
+#include "cphonesecuritymodeobserver.h"
+#include "mphonesecuritymodechangeobserver.h"
+#include "cphonelogger.h"
+#include "CPhonePubSubProxy.h"
+
+#include <mpeengineinfo.h>
+#include <featmgr.h>
+#include <e32cmn.h>
+
+// -----------------------------------------------------------
+// CPhoneSecurityModeObserver::NewL
+// -----------------------------------------------------------
+CPhoneSecurityModeObserver* CPhoneSecurityModeObserver::NewL()
+	{
+	return new( ELeave )CPhoneSecurityModeObserver;
+	}
+
+// -----------------------------------------------------------
+// CPhoneSecurityModeObserver::NewLC
+// -----------------------------------------------------------
+CPhoneSecurityModeObserver* CPhoneSecurityModeObserver::NewLC()
+	{
+	CPhoneSecurityModeObserver* self = new( ELeave )CPhoneSecurityModeObserver;
+	CleanupStack::PushL( self );
+	return self;
+	}
+
+// -----------------------------------------------------------
+// CPhoneSecurityModeObserver::~CPhoneSecurityModeObserver
+// -----------------------------------------------------------
+CPhoneSecurityModeObserver::~CPhoneSecurityModeObserver()
+	{
+	iObserverArray.Reset();
+	iObserverArray.Close();
+	}
+
+// -----------------------------------------------------------
+// CPhoneSecurityModeObserver::SetPhoneEngineInfo
+// -----------------------------------------------------------
+void CPhoneSecurityModeObserver::SetPhoneEngineInfo( MPEEngineInfo* aEngineInfo )
+	{
+	iEngineInfo = aEngineInfo;
+	}
+
+// -----------------------------------------------------------
+// CPhoneSecurityModeObserver::RegisterStateObserver
+// -----------------------------------------------------------
+void CPhoneSecurityModeObserver::RegisterStateObserver( MPhoneSecurityModeChangeObserver& aObserver )
+	{
+	iObserverArray.Append( &aObserver );
+	if ( iInitialized )
+		{
+		// Notify observer with registration call, if state instance is initialized.
+		aObserver.HandleSecurityModeChanged( iSecurityMode );
+		}
+	}
+	
+// -----------------------------------------------------------
+// CPhoneSecurityModeObserver::RemoveStateObserver
+// -----------------------------------------------------------
+void CPhoneSecurityModeObserver::RemoveStateObserver( MPhoneSecurityModeChangeObserver& aObserver )
+	{
+	TInt index = iObserverArray.Find( &aObserver );
+	if ( KErrNotFound != index )
+		{
+		iObserverArray.Remove( index );
+		}
+	}
+
+// -----------------------------------------------------------
+// CPhoneSecurityModeObserver::IsAutolockEnabled
+// -----------------------------------------------------------
+TBool CPhoneSecurityModeObserver::IsAutolockEnabled()
+	{
+	// Autolock is enabled in uninitialized state also.
+	return ( iDeviceLockState > EAutolockOff
+		|| EAutolockStatusUninitialized == iDeviceLockState );
+	}
+
+// -----------------------------------------------------------
+// CPhoneSecurityModeObserver::IsSecurityMode
+// -----------------------------------------------------------
+TBool CPhoneSecurityModeObserver::IsSecurityMode()
+	{
+	return iSecurityMode;
+	}
+
+// -----------------------------------------------------------
+// CPhoneSecurityModeObserver::HandlePhoneEngineMessageL
+// -----------------------------------------------------------
+void CPhoneSecurityModeObserver::HandlePhoneEngineMessageL( const TInt aMessage,
+	TInt /*aCallId*/ )
+	{
+	TBool previousSecurityMode = iSecurityMode;
+	switch( aMessage )
+		{
+		case MEngineMonitor::EPEMessageSIMStateChanged:
+			{
+			__PHONELOG( EBasic,
+				EPhoneControl,
+				"CPhoneSecurityModeObserver::HandlePhoneEngineMessageL() " );
+	
+			// Register new sim states.
+			iEnginePreviousSimState = iEngineCurrentSimState;
+			if ( iEngineInfo )
+				{
+				iEngineCurrentSimState = iEngineInfo->SimState();
+				DefineSecurityModeState();
+				}
+			}
+		break;
+		}
+		
+	// Notify observers for state change.
+	if ( previousSecurityMode != iSecurityMode )
+		{
+		HandleStateChange();
+		}
+	}
+
+// -----------------------------------------------------------
+// CPhoneSecurityModeObserver::HandlePropertyChangedL
+// -----------------------------------------------------------
+void CPhoneSecurityModeObserver::HandlePropertyChangedL(const TUid& aCategory,
+	const TUint aKey,
+	const TInt aValue )
+	{
+	__PHONELOG( EBasic,
+		EPhoneControl,
+		"CPhoneSecurityModeObserver::HandlePropertyChangedL() " );
+	
+	// Register sim security and autolock value changes.
+	TBool previousSecurityMode = iSecurityMode;
+	if ( KPSUidStartup == aCategory && KStartupSimSecurityStatus == aKey )
+		{
+		iSimState = ( TPSSimSecurityStatus )aValue;
+		DefineSecurityModeState();
+		}
+	else if ( KPSUidCoreApplicationUIs == aCategory 
+	    && KCoreAppUIsAutolockStatus == aKey )
+		{
+		iDeviceLockState = ( TPSAutolockStatus )aValue;
+		DefineSecurityModeState();
+		}
+		
+	// Notify observer for state change.
+	if ( previousSecurityMode != iSecurityMode )
+		{
+		HandleStateChange();
+		}
+	}
+
+// -----------------------------------------------------------
+// CPhoneSecurityModeObserver::Initialize
+// -----------------------------------------------------------
+void CPhoneSecurityModeObserver::Initialize()
+	{
+	__PHONELOG1( EBasic,
+		EPhoneControl,
+		"CPhoneSecurityModeObserver::Initialize() %d ", iSecurityMode );
+	if ( !iInitialized )
+		{
+		if ( !iEngineInfo )
+			{
+			// Do not initialize if engine info data interface hasn't been set.
+			return;
+			}
+			
+		// Get current values for sim states and autolock value.
+		iEngineCurrentSimState = iEngineInfo->SimState();
+		iSimState = ( TPSSimSecurityStatus )CPhonePubSubProxy::Instance()->Value(
+			KPSUidStartup,
+			KStartupSimSecurityStatus );
+		iDeviceLockState = ( TPSAutolockStatus )CPhonePubSubProxy::Instance()->Value(
+			KPSUidCoreApplicationUIs,
+			KCoreAppUIsAutolockStatus );
+		iInitialized = ETrue;
+		DefineSecurityModeState();
+		HandleStateChange();
+		}
+		
+	}
+
+// -----------------------------------------------------------
+// CPhoneSecurityModeObserver::CPhoneSecurityModeObserver
+// -----------------------------------------------------------
+CPhoneSecurityModeObserver::CPhoneSecurityModeObserver() :
+	iSimState( ESimSecurityStatusUninitialized ),
+	iEngineCurrentSimState( EPESimStatusUninitialized ),
+	iEnginePreviousSimState(EPESimStatusUninitialized ),
+	iDeviceLockState( EAutolockStatusUninitialized )
+	{
+	
+	}
+
+// -----------------------------------------------------------
+// CPhoneSecurityModeObserver::DefineSecurityModeState
+// -----------------------------------------------------------
+void CPhoneSecurityModeObserver::DefineSecurityModeState()
+	{
+	// Device lock 
+	if ( IsAutolockEnabled() )
+		{
+		iSecurityMode = ETrue;
+		}
+	
+	// Sim security status
+	else if ( IsSimSecurityStatus() )
+		{
+		iSecurityMode = ETrue;
+		}
+		
+	// Phone engine sim state
+	else if ( !IsEngineSimStateAccepted() )
+		{
+		iSecurityMode = ETrue;
+		}
+	
+	else
+		{
+		iSecurityMode = EFalse;
+		}
+	
+	
+	__PHONELOG1( EBasic,
+		EPhoneControl,
+		"CPhoneSecurityModeObserver::DefineSecurityModeState(), iEngineCurrentSimState( %d )",
+		iEngineCurrentSimState );
+		
+	__PHONELOG1( EBasic,
+		EPhoneControl,
+		"CPhoneSecurityModeObserver::DefineSecurityModeState(), iEnginePreviousSimState( %d )",
+		iEnginePreviousSimState );
+		
+	__PHONELOG1( EBasic,
+		EPhoneControl,
+		"CPhoneSecurityModeObserver::DefineSecurityModeState(), iSimState( %d )",
+		iSimState );
+		
+	__PHONELOG1( EBasic,
+		EPhoneControl,
+		"CPhoneSecurityModeObserver::DefineSecurityModeState(), iDeviceLockState( %d )",
+		iDeviceLockState );
+		
+	__PHONELOG1( EBasic,
+		EPhoneControl,
+		"CPhoneSecurityModeObserver::DefineSecurityModeState(), iSecurityMode( %d )",
+		iSecurityMode );
+	}
+
+// -----------------------------------------------------------
+// CPhoneSecurityModeObserver::HandleStateChange
+// -----------------------------------------------------------
+void CPhoneSecurityModeObserver::HandleStateChange()
+	{
+	__PHONELOG2( EBasic,
+		EPhoneControl,
+		"CPhoneSecurityModeObserver::HandleStateChange() %d, %d observers ", iSecurityMode, iObserverArray.Count() );
+	if ( iInitialized )
+		{
+		for( TInt i( 0 ); i < iObserverArray.Count(); i++ )
+			{
+			MPhoneSecurityModeChangeObserver& observer = *( iObserverArray[ i ] );
+			observer.HandleSecurityModeChanged( iSecurityMode );
+			}
+		}
+	}
+
+// -----------------------------------------------------------
+// CPhoneSecurityModeObserver::HandleStateChange
+// -----------------------------------------------------------
+TBool CPhoneSecurityModeObserver::IsSimSecurityStatus()
+	{
+	TBool securityStatus( EFalse );
+	if ( ESimRejected == iSimState )
+		{
+		securityStatus = ETrue;
+		}
+	else if ( ESimUnaccepted == iSimState )
+		{
+		securityStatus = ETrue;
+		}
+	else if ( ESimInvalid == iSimState )
+		{
+		securityStatus = ETrue;
+		}
+	return securityStatus;
+	}
+	
+// -----------------------------------------------------------
+// CPhoneSecurityModeObserver::HandleStateChange
+// -----------------------------------------------------------
+TBool CPhoneSecurityModeObserver::IsEngineSimStateAccepted()
+	{
+	TBool accepted( ETrue );
+	if ( ( EPESimNotPresent == iEngineCurrentSimState )
+		&& ( ( EPESimUsable == iEnginePreviousSimState )
+		|| ( EPESimReadable == iEnginePreviousSimState )
+		|| ( EPESimNotReady == iEnginePreviousSimState ) ) )
+		{
+		accepted = EFalse;
+		}
+	else if ( EPESimNotSupported == iEngineCurrentSimState )
+		{
+		accepted = EFalse;
+		}
+	else if ( EPESimNotPresent == iEngineCurrentSimState &&
+		!AreSimlessFeaturesSupported() )
+		{
+		accepted = EFalse;
+		}
+	return accepted;
+	}
+	
+// -----------------------------------------------------------
+// CPhoneSecurityModeObserver::HandleStateChange
+// -----------------------------------------------------------
+TBool CPhoneSecurityModeObserver::AreSimlessFeaturesSupported()
+	{
+	return FeatureManager::FeatureSupported( KFeatureIdOfflineMode )
+		&&FeatureManager::FeatureSupported( KFeatureIdFfSimlessOfflineSupport );
+	}
+	
+
+// END OF FILE
--- a/phoneapp/phoneuicontrol/src/cphonestate.cpp	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneuicontrol/src/cphonestate.cpp	Wed Mar 31 21:30:06 2010 +0300
@@ -104,6 +104,7 @@
 #include "cphonecontinueemergencycallcommand.h"
 #include "cphonecallheadermanager.h"
 #include "cphonenumberentrymanager.h"
+#include "mphonesecuritymodeobserver.h"
 #include "easydialingcommands.hrh"
 
 
@@ -674,7 +675,13 @@
     TBool numericMode = iViewCommandHandle->HandleCommandL(
       EPhoneViewIsNumberEntryNumericMode ) == EPhoneViewResponseSuccess;
 
-    if ( ( aKeyEvent.iModifiers & EModifierSpecial ) != 0 || !numericMode )
+    // Key presses simulated by dialer are played even if in alphanumeric mode.
+    const TBool simulatedByDialer = 
+        ( ( aKeyEvent.iModifiers & ( EModifierNumLock | EModifierKeypad ) ) 
+                == ( EModifierNumLock | EModifierKeypad ) );
+
+
+    if ( ( ( aKeyEvent.iModifiers & EModifierSpecial ) != 0 || !numericMode ) && !simulatedByDialer )
         {
         return EFalse;
         }
@@ -1339,10 +1346,7 @@
 
         else
             {
-            TPhoneCmdParamBoolean isSecurityMode;
-            iViewCommandHandle->ExecuteCommandL( EPhoneViewGetSecurityModeStatus, &isSecurityMode );
-
-            if ( !isSecurityMode.Boolean() )
+            if ( !iStateMachine->SecurityMode()->IsSecurityMode() )
                 {
                 __PHONELOG( EBasic, EPhoneControl,
                   "CPhoneState::HandlePhoneForegroundEventL - Force Idle to the foreground" );
@@ -1522,12 +1526,6 @@
     switch( aCommand )
         {
         case EPhoneEmergencyCmdExit:
-            {
-            //cancel emergency mode.
-            TPhoneCmdParamBoolean booleanParam;
-            booleanParam.SetBoolean( EFalse );
-            iViewCommandHandle->ExecuteCommandL( EPhoneViewSetRestrictedDialer, &booleanParam );
-            }
             // this should be bypasses?
         case EPhoneDialerCallHandling:
         case EPhoneCmdBack:
@@ -1646,30 +1644,6 @@
             }
             break;
 
-        case EPhoneNumberAcqSecurityDialer:
-            {
-            if ( IsOnScreenDialerSupported() && !IsNumberEntryUsedL() )
-                {
-                iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNote );
-                TPhoneCmdParamBoolean visibleMode;
-                visibleMode.SetBoolean( ETrue );
-                iViewCommandHandle->ExecuteCommandL(
-                            EPhoneViewSetStatusPaneVisible, &visibleMode );
-
-
-                // Set emergency CBA, empty - exit
-                iCbaManager->SetCbaL( EPhoneEmergencyModeNoteCBA );
-
-                // Set dialer to restricted mode.
-                TPhoneCmdParamBoolean booleanParam;
-                booleanParam.SetBoolean( ETrue );
-                iViewCommandHandle->ExecuteCommandL( EPhoneViewSetRestrictedDialer, &booleanParam );
-
-                NumberEntryManagerL()->CreateNumberEntryL();
-                }
-            }
-            break;
-
         case EPhoneDialerCmdContacts:
             {
             // Launch Phonebook application
@@ -3386,9 +3360,7 @@
 //
 EXPORT_C TBool CPhoneState::IsSimStateNotPresentWithSecurityModeEnabled()
     {
-    TPhoneCmdParamBoolean isSecurityMode;
-    TRAP_IGNORE( iViewCommandHandle->ExecuteCommandL( EPhoneViewGetSecurityModeStatus, &isSecurityMode ) );
-    if ( SimState() == EPESimNotPresent && isSecurityMode.Boolean() )
+    if ( SimState() == EPESimNotPresent && iStateMachine->SecurityMode()->IsSecurityMode() )
         {
         return ETrue;
         }
@@ -3443,11 +3415,6 @@
     {
     __LOGMETHODSTARTEND( EPhoneControl, "CPhoneState::StartShowSecurityNoteL ");
 
-    // Set security mode on.
-    TPhoneCmdParamBoolean securityMode;
-    securityMode.SetBoolean( ETrue );
-    iViewCommandHandle->ExecuteCommandL( EPhoneViewSetSecurityMode, &securityMode );
-
     // Remove number entry from screen
     iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNumberEntry );
 
@@ -3874,10 +3841,7 @@
 
     if( neLength == 1 )
         {
-        TPhoneCmdParamBoolean isSecurityMode;
-        iViewCommandHandle->ExecuteCommandL( EPhoneViewGetSecurityModeStatus, &isSecurityMode );
-
-        if ( !isSecurityMode.Boolean() )
+         if ( !iStateMachine->SecurityMode()->IsSecurityMode() )
             {
             OnlyHashInNumberEntryL();
             }
@@ -4085,9 +4049,7 @@
         &globalNotifierParam );
 
     // uncapture App and Camera keys if not security mode
-    TPhoneCmdParamBoolean isSecurityMode;
-    iViewCommandHandle->ExecuteCommandL( EPhoneViewGetSecurityModeStatus, &isSecurityMode );
-    if ( !isSecurityMode.Boolean() )
+    if ( !iStateMachine->SecurityMode()->IsSecurityMode() )
         {
         CaptureKeysDuringCallNotificationL( EFalse );
         }
--- a/phoneapp/phoneuicontrol/src/cphonestateidle.cpp	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneuicontrol/src/cphonestateidle.cpp	Wed Mar 31 21:30:06 2010 +0300
@@ -59,6 +59,7 @@
 #include "phoneconstants.h"
 #include "mphonecustomization.h"
 #include <easydialingcommands.hrh>
+#include "mphonesecuritymodeobserver.h"
 
 //CONSTANTS
 const TInt  KMaxParamLength = 1024;
@@ -127,19 +128,15 @@
     TEventCode aEventCode )
     {
     __LOGMETHODSTARTEND(EPhoneControl, "CPhoneStateIdle::HandleKeyEventL( ) ");
-    // Security mode check
-    TPhoneCmdParamBoolean isSecurityMode;      
-    iViewCommandHandle->ExecuteCommandL( EPhoneViewGetSecurityModeStatus, &isSecurityMode );  
     
- 
     // Number entry is blocked, if active Query
     if ( !IsAnyQueryActiveL() )
         {
         // Handle numeric keys when key events are received in idle state
         HandleNumericKeyEventL( aKeyEvent, aEventCode );  
         }
-    else if ( isSecurityMode.Boolean() && CPhoneKeys::IsNumericKey( 
-        aKeyEvent, aEventCode ) )
+    else if ( iStateMachine->SecurityMode()->IsSecurityMode()
+    	&& CPhoneKeys::IsNumericKey( aKeyEvent, aEventCode ) )
         {
         iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNote );
         // Handle numeric keys when key events are received in single state
@@ -213,10 +210,7 @@
                 {
                 if ( IsNumberEntryUsedL() )
                     {
-                    // Security mode check
-                    TPhoneCmdParamBoolean isSecurityMode;      
-                    iViewCommandHandle->ExecuteCommandL( EPhoneViewGetSecurityModeStatus, &isSecurityMode );
-
+                   
                     TPhoneCmdParamInteger numberEntryCountParam;
                     iViewCommandHandle->ExecuteCommandL( EPhoneViewGetNumberEntryCount,
                     &numberEntryCountParam );
@@ -233,7 +227,7 @@
                         return;
                         }
                     
-                    else if ( neLength == 0 && !isSecurityMode.Boolean())
+                    else if ( neLength == 0 && !iStateMachine->SecurityMode()->IsSecurityMode() )
                         {
                         // start logs
                         iViewCommandHandle->HandleCommandL( 
@@ -245,17 +239,12 @@
                 // If dialer is not open but phone is in foreground and phone receives
                 // send-key event we have to check if security mode is true and if it
                 // is then open emergency dialer.
-                else if ( !IsNumberEntryUsedL() )
+                else if ( !IsNumberEntryUsedL() ) 
                     {
-                    // Security mode check
-                    TPhoneCmdParamBoolean isSecurityMode;      
-                    iViewCommandHandle->ExecuteCommandL( EPhoneViewGetSecurityModeStatus, &isSecurityMode );
-
-                    if ( isSecurityMode.Boolean())
-                        {
-                        // launch dialer.
-                        HandleCommandL(EPhoneNumberAcqSecurityDialer);
-                        }
+                   if ( iStateMachine->SecurityMode()->IsSecurityMode() )
+						{
+						iViewCommandHandle->HandleCommandL( EPhoneViewOpenNumberEntry );
+						}
                     }           
                 }
             else // iOnScreenDialer false, non-touch.
@@ -266,16 +255,12 @@
             
         case EKeyApplication0:
             {
-            // Security mode
-            TPhoneCmdParamBoolean isSecurityMode;      
-            iViewCommandHandle->ExecuteCommandL( EPhoneViewGetSecurityModeStatus, &isSecurityMode );
-            	
             // If dialer is not open but phone is in foreground and phone receives
             // applicaion-key event we have to open emergency dialer. 
             // Securitymode check because Applicationkey only open dialer in securitymode.
-            if ( isSecurityMode.Boolean() && !IsNumberEntryUsedL() )
+            if ( iStateMachine->SecurityMode()->IsSecurityMode() && !IsNumberEntryUsedL() )
                 {
-                HandleCommandL(EPhoneNumberAcqSecurityDialer);
+                iViewCommandHandle->HandleCommandL( EPhoneViewOpenNumberEntry );
                 }           
             }
             break;
@@ -601,13 +586,7 @@
                EPhoneViewMenuBarOpen, &integerParam );
            commandStatus = ETrue;
            }
-           break;  
-                     
-       case EPhoneViewOpenNumberEntry:	
-           BeginTransEffectLC( ENumberEntryOpen );
-           commandStatus = CPhoneState::ProcessCommandL( aCommand );
-           EndTransEffect();
-           break;
+           break;       
            
        default:
            commandStatus = CPhoneState::ProcessCommandL( aCommand );
@@ -848,9 +827,6 @@
     {
     __LOGMETHODSTARTEND(EPhoneControl, "CPhoneStateIdle::HandlePhoneForegroundEventL( ) ");
     
-    TPhoneCmdParamBoolean isSecurityMode;      
-    iViewCommandHandle->ExecuteCommandL( EPhoneViewGetSecurityModeStatus, &isSecurityMode );
-
     TBool activatePhone = CPhonePubSubProxy::Instance()->Value(
                     KPSUidAiInformation, KActiveIdleState ) == EPSAiNumberEntry;
     
@@ -878,7 +854,7 @@
         // If dialer is open add icon to FSW list.
         iViewCommandHandle->ExecuteCommandL( EPhoneViewUpdateFSW );
         }
-    else if ( !IsNumberEntryUsedL() && !isSecurityMode.Boolean() )
+    else if ( !IsNumberEntryUsedL() && !iStateMachine->SecurityMode()->IsSecurityMode() )
         {
         // Bring Idle app to the foreground
         iViewCommandHandle->ExecuteCommandL( EPhoneViewBringIdleToForeground );
--- a/phoneapp/phoneuicontrol/src/cphonestateincoming.cpp	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneuicontrol/src/cphonestateincoming.cpp	Wed Mar 31 21:30:06 2010 +0300
@@ -54,6 +54,7 @@
 #include "cphonemediatorsender.h"
 #include "cphonereleasecommand.h"
 #include "mphonecustomization.h"
+#include "mphonesecuritymodeobserver.h"
 
 // ================= MEMBER FUNCTIONS =======================
 
@@ -413,6 +414,11 @@
         {
         resourceId = EPhoneNumberAcqCBA;
         }
+    else if ( iStateMachine->SecurityMode()->IsSecurityMode() )
+    	{
+		// Use 'answer & reject' softkeys if security mode is enabled.
+    	resourceId = EPhoneCallHandlingIncomingRejectCBA;
+    	}
     else if ( softRejectParam.Boolean() )
         {
         resourceId = EPhoneCallHandlingIncomingSoftRejectCBA;
--- a/phoneapp/phoneuicontrol/src/cphonestatemachine.cpp	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneuicontrol/src/cphonestatemachine.cpp	Wed Mar 31 21:30:06 2010 +0300
@@ -29,6 +29,8 @@
 #include "cphonestateincall.h"
 #include "phonestatedefinitions.h"
 #include "phonelogger.h"
+#include "mphonesecuritymodeobserver.h"
+#include "mphonesecuritymessagehandler.h"
 
 // ================= MEMBER FUNCTIONS =======================
 
@@ -55,29 +57,14 @@
     {
 	if( iState == iIdleState )
 		{
-		delete iState;
-		iState = NULL;
+		// Avoid deleting idle state instance twice.
+		// If state is idle, iState points to idle state instance.
 		iIdleState = NULL;			
 		}
-	else
-		{
-	    if( iState )
-		    {
-		    delete iState;
-		    iState = NULL;	    	
-		    }
-		if( iIdleState )
-			{
-		    delete iIdleState;
-		    iIdleState = NULL;			
-			}			
-		}
-	if( iPhoneEngine )
-		{
-	    delete iPhoneEngine;
-	    iPhoneEngine = NULL;			
-		}
-    }
+	delete iState;
+	delete iIdleState;
+	delete iPhoneEngine;
+	}
 
 // ---------------------------------------------------------
 // CPhoneStateMachine::SetPhoneEngine
@@ -176,4 +163,66 @@
     PhoneEngineInfo()->SetCallId( aCallId );
     }
 
+
+// -----------------------------------------------------------
+// CPhoneStateMachine::SecurityMode
+// -----------------------------------------------------------
+//
+EXPORT_C MPhoneSecurityModeObserver* CPhoneStateMachine::SecurityMode()
+	{
+	return iSecurityModeObserver;
+	}
+	
+// -----------------------------------------------------------
+// CPhoneStateMachine::SetSecurityModeObserver
+// -----------------------------------------------------------
+//
+EXPORT_C void CPhoneStateMachine::SetSecurityModeObserver( MPhoneSecurityModeObserver* aObserver )
+	{
+	iSecurityModeObserver = aObserver;
+	}
+
+// -----------------------------------------------------------
+// CPhoneStateMachine::SetSecurityMessageHandler
+// -----------------------------------------------------------
+//
+EXPORT_C void CPhoneStateMachine::SetSecurityMessageHandler( MPhoneSecurityMessageHandler* aHandler )
+	{
+	iSecurityMessageHandler = aHandler;
+	}
+
+// -----------------------------------------------------------
+// CPhoneStateMachine::HandlePhoneEngineMessageL
+// -----------------------------------------------------------
+//
+EXPORT_C void CPhoneStateMachine::HandlePhoneEngineMessageL(const TInt aMessage, 
+     TInt aCallId )
+	{
+	// Forward engine messages to security mode state and current phone state
+	// instance.
+	if ( iSecurityMessageHandler )
+		{
+		iSecurityMessageHandler->HandlePhoneEngineMessageL( aMessage, aCallId );
+		}
+	
+	State()->HandlePhoneEngineMessageL( aMessage, aCallId );
+	}
+
+// -----------------------------------------------------------
+// CPhoneStateMachine::HandlePropertyChangedL
+// -----------------------------------------------------------
+//
+EXPORT_C void CPhoneStateMachine::HandlePropertyChangedL(const TUid& aCategory,
+     const TUint aKey,
+     const TInt aValue )
+	{
+	// Forward P&S key changes to security mode state and current phone state
+	// instance.
+	if ( iSecurityMessageHandler )
+		{
+		iSecurityMessageHandler->HandlePropertyChangedL( aCategory, aKey, aValue );
+		}
+	State()->HandlePropertyChangedL( aCategory, aKey, aValue );
+	}
+	
 // End of File
--- a/phoneapp/phoneuicontrol/src/cphonestatestartup.cpp	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneuicontrol/src/cphonestatestartup.cpp	Wed Mar 31 21:30:06 2010 +0300
@@ -24,6 +24,7 @@
 #include "tphonecmdparamboolean.h"
 #include "phonelogger.h"
 #include "phonerssbase.h"
+#include "mphonesecuritymodeobserver.h"
 
 // ================= MEMBER FUNCTIONS =======================
 
@@ -228,15 +229,9 @@
     {
     __LOGMETHODSTARTEND(EPhoneControl, "CPhoneStateStartup::HandleIdleForegroundEventL( ) ");
     // Security mode check. 
-    TPhoneCmdParamBoolean isSecurityMode;      
-    iViewCommandHandle->ExecuteCommandL( EPhoneViewGetSecurityModeStatus, &isSecurityMode );        
-    if ( !isSecurityMode.Boolean() && !IsSimOk() )
+    if ( !iStateMachine->SecurityMode()->IsSecurityMode() && !IsSimOk() )
         {
-        TPhoneCmdParamBoolean securityMode;
-        securityMode.SetBoolean( ETrue );
-        iViewCommandHandle->ExecuteCommandL( EPhoneViewSetSecurityMode, &securityMode );
         iCreateNote = CIdle::NewL( CActive::EPriorityHigh );
-        
         CreateAndShowNoteAfterIdle(); 
         }
     }
@@ -281,26 +276,17 @@
 void CPhoneStateStartup::InitializationReadyL()
     {
     __LOGMETHODSTARTEND(EPhoneControl, "CPhoneStateStartup::InitializationReady() ");
-
-     // Security mode check.
-    TPhoneCmdParamBoolean isSecurityMode;      
-    iViewCommandHandle->ExecuteCommandL( EPhoneViewGetSecurityModeStatus, &isSecurityMode );
-    if ( !isSecurityMode.Boolean() && !IsSimOk() )
+	iStateMachine->SecurityMode()->Initialize();
+ if ( !iStateMachine->SecurityMode()->IsSecurityMode() && !IsSimOk() )
         {
-        TPhoneCmdParamBoolean securityMode;
-        securityMode.SetBoolean( ETrue );
-        iViewCommandHandle->ExecuteCommandL( EPhoneViewSetSecurityMode, &securityMode );
         iCreateNote = CIdle::NewL( CActive::EPriorityHigh );
-        
         CreateAndShowNoteAfterIdle(); 
         }
     // Go to idle state
     SetDefaultFlagsL();
     iCbaManager->UpdateCbaL( EPhoneEmptyCBA );
-    
     iViewCommandHandle->ExecuteCommand( EPhoneViewPrepareIcons );
     iViewCommandHandle->ExecuteCommand( EPhoneViewLoadPlugins );
-    
     iStateMachine->ChangeState( EPhoneStateIdle );   
     }
 
--- a/phoneapp/phoneuicontrol/src/cphonesystemeventhandler.cpp	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneuicontrol/src/cphonesystemeventhandler.cpp	Wed Mar 31 21:30:06 2010 +0300
@@ -22,7 +22,7 @@
 #include <UikonInternalPSKeys.h>
 #include <startupdomainpskeys.h>
 #include <hwrmdomainpskeys.h>
-#include <oem/SimLockUiKeys.h>
+#include <oem/simlockuikeys.h>
 #include <featmgr.h>
 #include <coreapplicationuisdomainpskeys.h>
 
@@ -90,6 +90,13 @@
         KPSUidStartup,
         KStartupSimSecurityStatus,
         this );
+    
+    // Set up notifications for autolock state changes.
+    CPhonePubSubProxy::Instance()->NotifyChangeL(
+    	KPSUidCoreApplicationUIs,
+    	KCoreAppUIsAutolockStatus,
+    	this );
+    
 
     if ( CPhoneCenRepProxy::Instance()->IsTelephonyFeatureSupported(
             KTelephonyLVFlagSwivelInDevice ))
@@ -223,7 +230,7 @@
     const TUint aKey,
     const TInt aValue )
     {
-    iStateMachine->State()->HandlePropertyChangedL( aCategory, aKey, aValue );
+    iStateMachine->HandlePropertyChangedL( aCategory, aKey, aValue );
     }
 
 // -----------------------------------------------------------
--- a/phoneapp/phoneuicontrol/src/cphoneuicontroller.cpp	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneuicontrol/src/cphoneuicontroller.cpp	Wed Mar 31 21:30:06 2010 +0300
@@ -19,6 +19,7 @@
 // INCLUDE FILES
 #include <featmgr.h>        // for FeatureManager
 #include <settingsinternalcrkeys.h>
+#include <phoneappcommands.hrh>
 
 #include "cphoneuicontroller.h"
 #include "pevirtualengine.h"
@@ -26,7 +27,6 @@
 #include "cphoneenginehandler.h"
 #include "cphonesystemeventhandler.h"
 #include "cphoneremotecontrolhandler.h"
-#include "mphoneviewcommandhandle.h"
 #include "phonestatedefinitions.h"
 #include "phonelogger.h"
 #include "phoneconstants.h"
@@ -35,7 +35,8 @@
 #include "cphonecenrepproxy.h"
 #include "cphonemediatorfactory.h"
 #include "tphonecmdparamnumberentryobserver.h"
-#include <phoneappcommands.hrh>
+#include "cphonesecuritymodeobserver.h"
+#include "cphoneviewcontroller.h"
 
 // ================= MEMBER FUNCTIONS =======================
 
@@ -54,12 +55,11 @@
 // (other items were commented in a header).
 // -----------------------------------------------------------
 //
-void CPhoneUIController::ConstructL( 
-    MPhoneViewCommandHandle* aViewCommandHandle )
+void CPhoneUIController::ConstructL( CPhoneViewController& aViewController )
     {
     __LOGMETHODSTARTEND(EPhoneControl, "CPhoneUIController::ConstructL()");
     // Creates correct protocol DLL
-    CreateProtocolDllL( aViewCommandHandle );
+    CreateProtocolDllL( aViewController );
 
     // Reference the phone state machine
     iStateMachine = CPhoneStateHandle::Instance()->StateMachine();
@@ -72,7 +72,7 @@
     iRemoteControlHandler = CPhoneRemoteControlHandler::NewL( iStateMachine );
     // Create the key event forwarder
     iKeyEventForwarder = CPhoneKeyEventForwarder::NewL( 
-        CEikonEnv::Static()->EikAppUi()->ClientRect(), iStateMachine, aViewCommandHandle );
+        CEikonEnv::Static()->EikAppUi()->ClientRect(), iStateMachine, &aViewController );
 
     TInt leaveCode( 0 );
     TInt retry( 0 );
@@ -112,13 +112,22 @@
 
     // Store the phone engine information in the state machine
     iStateMachine->SetPhoneEngine( iPhoneEngine );
-
+	
+	// Set up security mode observer.
+	iSecurityModeObserver = CPhoneSecurityModeObserver::NewL();
+	iSecurityModeObserver->SetPhoneEngineInfo( iPhoneEngine->EngineInfo() );
+	iStateMachine->SetSecurityModeObserver( iSecurityModeObserver );
+	iStateMachine->SetSecurityMessageHandler( iSecurityModeObserver );
+	
     // Set Number Entry observer
     TPhoneCmdParamNumberEntryObserver cmdParamNumberEntryObserver;
     cmdParamNumberEntryObserver.SetObserver( TCallBack( HandlePhoneNumberEditorCallBack, this ) );
-    aViewCommandHandle->ExecuteCommand( EPhoneViewSetNumberEntryObserver, 
+    aViewController.ExecuteCommand( EPhoneViewSetNumberEntryObserver, 
                                             &cmdParamNumberEntryObserver);
     
+	// Set up controller to observe security mode state changes.
+    iStateMachine->SecurityMode()->RegisterStateObserver( aViewController );
+	
     // Go to the startup state
     iStateMachine->ChangeState( EPhoneStateStartup );
 
@@ -132,12 +141,10 @@
 // -----------------------------------------------------------------------------
 //
 EXPORT_C CPhoneUIController* CPhoneUIController::NewL( 
-    MPhoneViewCommandHandle* aViewCommandHandle )
+    CPhoneViewController& aViewCommandHandle )
     {
-	__ASSERT_DEBUG( aViewCommandHandle,
-		Panic( EPhoneCtrlParameterNotInitialized ) );
-    
-    CPhoneUIController* self = new( ELeave ) CPhoneUIController;
+
+    CPhoneUIController* self = new( ELeave ) CPhoneUIController();
     
     CleanupStack::PushL( self );
     self->ConstructL( aViewCommandHandle );
@@ -154,6 +161,7 @@
 EXPORT_C CPhoneUIController::~CPhoneUIController()
     {
     __LOGMETHODSTARTEND(EPhoneControl, "CPhoneUIController::~CPhoneUIController()");
+	delete iSecurityModeObserver;
 	delete iRemoteControlHandler;
 	delete iSystemEventHandler;
 	delete iEngineHandler;
@@ -324,7 +332,6 @@
     {
     __ASSERT_DEBUG( iStateMachine->State(), Panic( EPhoneCtrlInvariant ) );
 
-    
 	// Send key up message to engine so that we wouldn't accidentally play
 	// any DTMF tone.
     
@@ -353,8 +360,7 @@
 // CPhoneUIController::CreateProtocolDllL
 // ---------------------------------------------------------
 //
-void CPhoneUIController::CreateProtocolDllL( 
-	MPhoneViewCommandHandle* aViewCommandHandle )
+void CPhoneUIController::CreateProtocolDllL( CPhoneViewController& aViewController )
 	{
 	TBool voipSupported( EFalse );
 
@@ -373,14 +379,14 @@
     if( voipSupported )
 	    {
 	    iStateHandle = CPhoneStateHandle::CreateL(
-	        aViewCommandHandle,
+	        &aViewController,
 	        KVoIPExtension,
 	        KUidAppVoIPExtensionStates );				    	
 	    }
 	else
 		{
 	    iStateHandle = CPhoneStateHandle::CreateL(
-	        aViewCommandHandle,
+	        &aViewController,
 	        KGSMProtocol,
 	        KUidAppGSMStates );			
 		}		
--- a/phoneapp/phoneuistates/inc/cphoneemergency.h	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneuistates/inc/cphoneemergency.h	Wed Mar 31 21:30:06 2010 +0300
@@ -195,11 +195,7 @@
        void HandlePhoneStartupL();
          
     private:
-        /**
-        * Is device lock on/off
-        */
-        TBool iDeviceLockOn;
-        
+ 
         /**
         * If true update emergency call wait note
         */
--- a/phoneapp/phoneuistates/src/cphoneemergency.cpp	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneuistates/src/cphoneemergency.cpp	Wed Mar 31 21:30:06 2010 +0300
@@ -41,6 +41,7 @@
 #include "cphonepubsubproxy.h"
 #include "cphonekeys.h"
 #include "tphonecmdparamaudiooutput.h"
+#include "cphonesecuritymodeobserver.h"
 
 // ================= MEMBER FUNCTIONS =======================
 
@@ -234,7 +235,7 @@
             }
         else
             {
-            if ( !TopAppIsDisplayedL() || iDeviceLockOn  )
+            if ( !TopAppIsDisplayedL() || iStateMachine->SecurityMode()->IsAutolockEnabled() )
                 {
                 // Continue displaying current app but set up the
                 // idle screen in the background
@@ -293,9 +294,7 @@
                 {
                 UpdateCbaL( EPhoneEmptyCBA );
 
-                TPhoneCmdParamBoolean securityMode;
-                iViewCommandHandle->ExecuteCommandL( EPhoneViewGetSecurityModeStatus, &securityMode );
-                if ( !securityMode.Boolean() )
+                if ( !iStateMachine->SecurityMode()->IsSecurityMode() )
                     {
                     // Setup idle as next active app.
                     SetupIdleScreenInBackgroundL();
@@ -335,8 +334,6 @@
             iViewCommandHandle->ExecuteCommandL( EPhoneViewSetStatusPaneVisible, &visibleMode );
             }
 
-        iDeviceLockOn = IsAutoLockOn();
-
         // Close menu bar, if it is displayed
         iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose );
 
@@ -414,7 +411,7 @@
             CaptureKeysDuringCallNotificationL( EFalse );
             }
         }
-    else if ( !iDeviceLockOn && SimState() == EPESimUsable )
+    else if ( !iStateMachine->SecurityMode()->IsAutolockEnabled() && SimState() == EPESimUsable )
         {
         // Stop capturing keys
         CaptureKeysDuringCallNotificationL( EFalse );
@@ -544,7 +541,9 @@
             resourceId = EPhoneInCallNumberAcqCBA;
             }
         }
-    else if ( iDeviceLockOn || SimState() != EPESimUsable || iStartupInterrupted )
+    else if ( iStateMachine->SecurityMode()->IsAutolockEnabled()
+    	|| SimState() != EPESimUsable
+    	|| iStartupInterrupted )
         {
         if ( TouchCallHandlingSupported() )
         	{
@@ -637,7 +636,8 @@
                 {
                 CPhoneGsmInCall::HandleKeyMessageL( aMessage, aCode ); 
                 }
-            else if ( !iDeviceLockOn && SimState() == EPESimUsable )   
+            else if ( !iStateMachine->SecurityMode()->IsAutolockEnabled()
+            	&& SimState() == EPESimUsable )   
                 {
                 // do base operation
                 CPhoneGsmInCall::HandleKeyMessageL( aMessage, aCode );
@@ -775,7 +775,8 @@
         }
     else
         {
-		 if ( iDeviceLockOn && CPhoneKeys::IsNumericKey( aKeyEvent, aEventCode ) )
+		 if ( iStateMachine->SecurityMode()->IsAutolockEnabled()
+			&& CPhoneKeys::IsNumericKey( aKeyEvent, aEventCode ) )
 			{
 			// Send the key event to the phone engine
 			SendKeyEventL( aKeyEvent, aEventCode );
--- a/phoneapp/phoneuistates/src/cphonegsmincall.cpp	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneuistates/src/cphonegsmincall.cpp	Wed Mar 31 21:30:06 2010 +0300
@@ -139,7 +139,14 @@
 			
             // Needed also in non-touch, if call waiting request (*43#) 
             // is sent during active call at least.
-    	    UpdateCbaL( EPhoneCallHandlingInCallCBA );
+			if ( aMessage == MEngineMonitor::EPEMessageIncCallIsForw )
+				{
+				UpdateCbaL( EPhoneCallHandlingCallWaitingCBA );
+				}
+			else 
+				{
+				UpdateCbaL( EPhoneCallHandlingInCallCBA );
+				}						
 			}
 			break;
 			
--- a/phoneapp/phoneuistates/src/cphonesingleandwaiting.cpp	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneuistates/src/cphonesingleandwaiting.cpp	Wed Mar 31 21:30:06 2010 +0300
@@ -630,11 +630,6 @@
 
             UpdateCbaL( EPhoneCallHandlingInCallCBA );
             }
-        else
-            {
-            // Show the number entry if it exists.
-            SetNumberEntryVisibilityL(ETrue);
-            }
         }
     else
         {
--- a/phoneapp/phoneuistates/src/cphonestartupsimlockui.cpp	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneuistates/src/cphonestartupsimlockui.cpp	Wed Mar 31 21:30:06 2010 +0300
@@ -20,12 +20,12 @@
 #include "phonelogger.h"
 #include "cphonestartupsimlockui.h"
 #include "tphonecmdparamappinfo.h"
-#include "TPhoneCmdParamBoolean.h"
+#include "tphonecmdparamboolean.h"
 #include "phoneconstants.h"
 #include "cphonestatestartup.h"
 #include "phonestatedefinitions.h"
 #include "mphonestatemachine.h"
-#include "tphonecmdparamkeycapture.h"
+#include "tphonecmdparamKeycapture.h"
 #include "tphonecmdparamboolean.h"
 #include "cphonepubsubproxy.h"
 #include "phoneconstants.h"
--- a/phoneapp/phoneuiutils/bwins/phoneuiutilsu.def	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneuiutils/bwins/phoneuiutilsu.def	Wed Mar 31 21:30:06 2010 +0300
@@ -324,4 +324,5 @@
 	?SetTone@TPhoneCmdParamGlobalNote@@QAEXH@Z @ 323 NONAME ; void TPhoneCmdParamGlobalNote::SetTone(int)
 	?After@CPhoneTimer@@QAEXVTTimeIntervalMicroSeconds32@@VTCallBack@@@Z @ 324 NONAME ; void CPhoneTimer::After(class TTimeIntervalMicroSeconds32, class TCallBack)
 	?ContactMatcher@TPhoneCmdParamReconnectQuery@@QBEPAVCPhCntMatcher@@XZ @ 325 NONAME ; class CPhCntMatcher * TPhoneCmdParamReconnectQuery::ContactMatcher(void) const
+	?AddQwertyModeObserverL@CPhoneQwertyHandler@@QAEXAAVMPhoneQwertyModeObserver@@@Z @ 326 NONAME ; void CPhoneQwertyHandler::AddQwertyModeObserverL(class MPhoneQwertyModeObserver &)
 
--- a/phoneapp/phoneuiutils/eabi/phoneuiutilsu.def	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneuiutils/eabi/phoneuiutilsu.def	Wed Mar 31 21:30:06 2010 +0300
@@ -416,4 +416,5 @@
 	_ZThn4_N26CPhoneResourceResolverBaseD0Ev @ 415 NONAME
 	_ZThn4_N26CPhoneResourceResolverBaseD1Ev @ 416 NONAME
 	_ZThn4_NK26CPhoneResourceResolverBase17ResolveResourceIDERKi @ 417 NONAME
+	_ZN19CPhoneQwertyHandler22AddQwertyModeObserverLER24MPhoneQwertyModeObserver @ 418 NONAME
 
--- a/phoneapp/phoneuiutils/inc/cphoneqwertyhandler.h	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneuiutils/inc/cphoneqwertyhandler.h	Wed Mar 31 21:30:06 2010 +0300
@@ -68,6 +68,11 @@
         */
         IMPORT_C TInt NumericKeyCode( const TKeyEvent& aKeyEvent );
 
+        /**
+        * Add qwerty mode observer. 
+        */
+        IMPORT_C void AddQwertyModeObserverL( MPhoneQwertyModeObserver& aObserver );
+
     private:
     
         /**
--- a/phoneapp/phoneuiutils/inc/cphonestorage.h	Mon Mar 15 12:40:24 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,106 +0,0 @@
-/*
-* Copyright (c) 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:  Storage of data
-*
-*/
-
-
-#ifndef CPHONESTORAGE_H
-#define CPHONESTORAGE_H
-
-#include "mphonestorage.h"
-#include <e32base.h>
-
-
-// CLASS DECLARATION
-
-/**
- *  Data storage.
- *
- *  @lib PhoneUIUtils.lib
- *  @since S60 v5.0
- */
-class CPhoneStorage : 
-    public CBase, public MPhoneStorage
-    {
-public:
-
-    IMPORT_C static CPhoneStorage* NewL();
-
-    IMPORT_C virtual ~CPhoneStorage();
-    
-    /**
-     * AppendBlockedKeysListL.
-     *
-     * @since S60 v5.0
-     */
-    IMPORT_C void AppendBlockedKeysListL( TStdScanCode aScanCode );
-    
-    /**
-     * GetBlockedKeyList.
-     *
-     * @since S60 v5.0
-     */
-    IMPORT_C const RArray<TInt>& GetBlockedKeyList() const;
-
-    /**
-     * ResetBlockedKeysList.
-     *
-     * @since S60 v5.0
-     */
-    IMPORT_C void ResetBlockedKeysList();
-
-    /**
-     * IsBlockedKeysListEmpty.
-     */
-    IMPORT_C TBool IsBlockedKeysListEmpty();
-
-    /**
-     * SetScreenLocked.
-     */
-    IMPORT_C void SetScreenLocked( TBool aLocked );
-    
-    /**
-     * IsScreenLocked.
-     */
-    IMPORT_C TBool IsScreenLocked();
-    
-    /**
-     * SetNeedToEnableKeylock.
-     */
-    IMPORT_C void SetNeedToEnableKeylock( TBool aNeedToEnableKeylock );
-
-    /**
-     * NeedToEnableKeylock.
-     */
-    IMPORT_C TBool NeedToEnableKeylock();
-    
-private:
-
-    CPhoneStorage();
-    
-    void ConstructL();
-    
-private: // data
-
-     // Blocked key list
-     RArray<TInt> iBlockedKeysScanCode;
-     
-     // Is touch screen locked there is an incoming call
-     TBool iIsScreenLocked;
-     
-     // ETrue, if keylock must enable when call ends
-     TBool iNeedToEnableKeylock;
-    };
-#endif // CPHONESTORAGE_H
--- a/phoneapp/phoneuiutils/inc/mphonestorage.h	Mon Mar 15 12:40:24 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-/*
-* Copyright (c) 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:  Storage for data.
-*
-*/
-
-
-#ifndef __MPHONESTORAGE_H
-#define __MPHONESTORAGE_H
-
-// INCLUDES
-
-#include <e32base.h>
-#include <e32keys.h>
-
-// CLASS DECLARATION
-
-class MPhoneStorage
-    {
-    public:
-
-        /**
-        * Destructor.
-        */
-        virtual ~MPhoneStorage() {};
-
-        virtual void AppendBlockedKeysListL( TStdScanCode aScanCode ) = 0;
-        
-        virtual const RArray<TInt>& GetBlockedKeyList() const = 0;
-        
-        virtual void ResetBlockedKeysList() = 0;
-        
-        virtual TBool IsBlockedKeysListEmpty() = 0;
-        
-        virtual void SetScreenLocked( TBool aLocked ) = 0;
-        
-        virtual TBool IsScreenLocked() = 0;
-        
-        virtual TBool NeedToEnableKeylock() = 0;
-        
-        virtual void SetNeedToEnableKeylock( TBool aEnableKeylock ) = 0;
-    };
-
-#endif // __MPHONESTORAGE_H
-
-// End of File
--- a/phoneapp/phoneuiutils/inc/phoneloggerviewcommands.h	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneuiutils/inc/phoneloggerviewcommands.h	Wed Mar 31 21:30:06 2010 +0300
@@ -433,6 +433,8 @@
 		EPhoneViewGetNeedToReturnToForegroundAppStatus,
 		/** EPhoneViewSetNeedToReturnToForegroundAppStatus */
 		EPhoneViewSetNeedToReturnToForegroundAppStatus,
+		/** EPhoneViewGetQwertyModeObserver */
+		EPhoneViewGetQwertyModeObserver,
 		/** , // Don't remove this, this should always be the last in list. */
 		EPhoneAmountOfCommands
 		};
--- a/phoneapp/phoneuiutils/src/cphoneqwertyhandler.cpp	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneuiutils/src/cphoneqwertyhandler.cpp	Wed Mar 31 21:30:06 2010 +0300
@@ -228,4 +228,18 @@
     return EKeyNull;         
     }           
 
+// -----------------------------------------------------------------------------
+// CPhoneQwertyHandler::AddQwertyModeObserverL
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CPhoneQwertyHandler::AddQwertyModeObserverL( 
+        MPhoneQwertyModeObserver& aObserver )
+    {
+    iQwertyModeMonitor->AddObserverL( aObserver );
+    
+    // Observer need to be notified with a current qwerty status so that
+    // status dependent objects would get correct initial value.
+    aObserver.HandleQwertyModeChange( iQwertyMode );
+    }
+
 //  End of File  
--- a/phoneapp/phoneuiutils/src/cphoneqwertymodemonitor.cpp	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneuiutils/src/cphoneqwertymodemonitor.cpp	Wed Mar 31 21:30:06 2010 +0300
@@ -126,6 +126,9 @@
         if ( aKey == KAknQwertyInputModeActive )
             {
             iQwertyMode = aValue;
+            
+            __PHONELOG1( EBasic, EPhoneUIUtils, 
+                    "CPhoneQwertyModeMonitor::HandlePropertyChangedL KAknQwertyInputModeActive = %d", aValue  );
 
             for ( TInt i = 0; i < iObserverArray.Count(); i++ ) 
                 {
@@ -136,6 +139,9 @@
 #ifdef RD_INTELLIGENT_TEXT_INPUT        
         else if ( aKey == KAknKeyBoardLayout )
             {
+            __PHONELOG1( EBasic, EPhoneUIUtils, 
+                    "CPhoneQwertyModeMonitor::HandlePropertyChangedL KAknKeyBoardLayout = %d", aValue  );
+
             for ( TInt i = 0; i < iObserverArray.Count(); i++ ) 
                 {
                 iKeyboard = aValue;
--- a/phoneapp/phoneuiutils/src/cphonestorage.cpp	Mon Mar 15 12:40:24 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,154 +0,0 @@
-/*
-* Copyright (c) 2009 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:  Storage of data
-*
-*/
-
-
-#include <eikappui.h>
-#include <eikenv.h>
-#include "cphonestorage.h"
-#include "phonelogger.h"
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// Constructor
-// ---------------------------------------------------------------------------
-//
-CPhoneStorage::CPhoneStorage()
-    : iIsScreenLocked( EFalse ),
-    iNeedToEnableKeylock( EFalse )
-    {
-    __LOGMETHODSTARTEND(EPhoneUIUtils, "CPhoneStorage::CPhoneStorage()");
-    }
-
-// ---------------------------------------------------------------------------
-// Second phase constructor
-// ---------------------------------------------------------------------------
-//
-void CPhoneStorage::ConstructL()
-    {
-    __LOGMETHODSTARTEND(EPhoneUIUtils, "CPhoneStorage::ConstructL()");
-    }
-
-// ---------------------------------------------------------------------------
-// Static constructor
-// ---------------------------------------------------------------------------
-//
-EXPORT_C CPhoneStorage* CPhoneStorage::NewL()
-    {
-    __LOGMETHODSTARTEND(EPhoneUIUtils, "CPhoneStorage::NewL()");
-    CPhoneStorage* self = 
-        new (ELeave) CPhoneStorage();
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// Destructor
-// ---------------------------------------------------------------------------
-//
-EXPORT_C CPhoneStorage::~CPhoneStorage()
-    {
-    __LOGMETHODSTARTEND(EPhoneUIUtils, "CPhoneStorage::~CPhoneStorage()");
-    iBlockedKeysScanCode.Reset();
-    iBlockedKeysScanCode.Close();
-    }
-
-// ---------------------------------------------------------------------------
-// CPhoneStorage::AppendBlockedKeysListL
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CPhoneStorage::AppendBlockedKeysListL( TStdScanCode aScanCode )
-    {
-    __LOGMETHODSTARTEND(EPhoneUIUtils, "CPhoneStorage::AppendBlockedKeysListL()");
-    iBlockedKeysScanCode.AppendL( aScanCode );
-    }
-
-// -----------------------------------------------------------
-// CPhoneStorage::GetBlockedKeyList
-// -----------------------------------------------------------
-//
-EXPORT_C const RArray<TInt>& CPhoneStorage::GetBlockedKeyList() const
-    {
-    __LOGMETHODSTARTEND(EPhoneUIUtils, "CPhoneStorage::GetBlockedKeyList()");
-    return iBlockedKeysScanCode;
-    }
-
-// -----------------------------------------------------------
-// CPhoneStorage::ResetBlockedKeysList
-// -----------------------------------------------------------
-//
-EXPORT_C void CPhoneStorage::ResetBlockedKeysList()
-    {
-    __LOGMETHODSTARTEND(EPhoneUIUtils, "CPhoneStorage::ResetBlockedKeysList()");
-    iBlockedKeysScanCode.Reset();
-    }
-
-// -----------------------------------------------------------
-// CPhoneStorage::IsBlockedKeysListSet
-// -----------------------------------------------------------
-//
-EXPORT_C TBool CPhoneStorage::IsBlockedKeysListEmpty()
-    {
-    __LOGMETHODSTARTEND(EPhoneUIUtils, "CPhoneStorage::IsBlockedKeysListSet()");
-    TBool ret = ETrue;
-    if( iBlockedKeysScanCode.Count() )
-        {
-        ret = EFalse;
-        }
-    return ret;
-    }
-
-// -----------------------------------------------------------
-// CPhoneStorage::SetScreenLocked
-// -----------------------------------------------------------
-//
-EXPORT_C void CPhoneStorage::SetScreenLocked( TBool aLocked )
-    {
-    iIsScreenLocked = aLocked;
-    }
-
-// -----------------------------------------------------------
-// CPhoneStorage::IsScreenLocked
-// -----------------------------------------------------------
-//
-EXPORT_C TBool CPhoneStorage::IsScreenLocked()
-    {
-    return iIsScreenLocked;
-    }
-
-// -----------------------------------------------------------
-// CPhoneStorage::NeedToEnableKeylock
-// -----------------------------------------------------------
-//
-EXPORT_C TBool CPhoneStorage::NeedToEnableKeylock()
-    {
-    return iNeedToEnableKeylock;
-    }
-
-
-// -----------------------------------------------------------
-// CPhoneStorage::NeedToEnableKeylock
-// -----------------------------------------------------------
-//
-EXPORT_C void CPhoneStorage::SetNeedToEnableKeylock( TBool aNeedToEnableKeylock )
-    {
-    iNeedToEnableKeylock = aNeedToEnableKeylock;
-    }
-
-// END
--- a/phoneapp/phoneuiutils/src/phoneloggerviewcommands.cpp	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneuiutils/src/phoneloggerviewcommands.cpp	Wed Mar 31 21:30:06 2010 +0300
@@ -227,7 +227,8 @@
 _STLIT8(K198, "EPhoneViewGetEasyDialingCbaId");
 _STLIT8(K199, "EPhoneViewGetNeedToReturnToForegroundAppStatus");
 _STLIT8(K200, "EPhoneViewSetNeedToReturnToForegroundAppStatus");
-_STLIT8(K201, ", // Don't remove this, this should always be the last in list.");
+_STLIT8(K201, "EPhoneViewGetQwertyModeObserver");
+_STLIT8(K202, ", // Don't remove this, this should always be the last in list.");
 
 // Intermediate
 const void * const KStringPointers[] =
@@ -432,8 +433,9 @@
 	(const void*)&K198,
 	(const void*)&K199,
 	(const void*)&K200,
-	(const void*)&K201
+	(const void*)&K201,
+	(const void*)&K202
 	};
 
-const TStringTable PhoneLoggerviewCommands::Table = {201, KStringPointers, EFalse};
+const TStringTable PhoneLoggerviewCommands::Table = {202, KStringPointers, EFalse};
 
--- a/phoneapp/phoneuiutils/src/phoneloggerviewcommands.st	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneuiutils/src/phoneloggerviewcommands.st	Wed Mar 31 21:30:06 2010 +0300
@@ -200,4 +200,5 @@
 EPhoneViewGetEasyDialingCbaId EPhoneViewGetEasyDialingCbaId
 EPhoneViewGetNeedToReturnToForegroundAppStatus EPhoneViewGetNeedToReturnToForegroundAppStatus
 EPhoneViewSetNeedToReturnToForegroundAppStatus EPhoneViewSetNeedToReturnToForegroundAppStatus
+EPhoneViewGetQwertyModeObserver EPhoneViewGetQwertyModeObserver
 EPhoneAmountOfCommands, // Don't remove this, this should always be the last in list.
--- a/phoneapp/phoneuiview/bwins/phoneuiviewu.def	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneuiview/bwins/phoneuiviewu.def	Wed Mar 31 21:30:06 2010 +0300
@@ -1,39 +1,40 @@
 EXPORTS
 	?HandleResourceChangeL@CPhoneViewController@@QAEXH@Z @ 1 NONAME ; void CPhoneViewController::HandleResourceChangeL(int)
-	?ExecuteCommand@CPhoneViewController@@UAEXHPAVTPhoneCommandParam@@@Z @ 2 NONAME ; void CPhoneViewController::ExecuteCommand(int, class TPhoneCommandParam *)
-	?DoFetchForegroundApplicationWindowGroupIdL@CPhoneViewController@@SAHAAVCEikonEnv@@@Z @ 3 NONAME ; int CPhoneViewController::DoFetchForegroundApplicationWindowGroupIdL(class CEikonEnv &)
-	?ExecuteCommandL@CPhoneViewController@@UAEXHHPAVTPhoneCommandParam@@@Z @ 4 NONAME ; void CPhoneViewController::ExecuteCommandL(int, int, class TPhoneCommandParam *)
-	?SetBlockingDialogIsDisplayed@CPhoneViewController@@UAEXH@Z @ 5 NONAME ; void CPhoneViewController::SetBlockingDialogIsDisplayed(int)
-	?BlockingDialogIsDisplayed@CPhoneViewController@@QBEHXZ @ 6 NONAME ; int CPhoneViewController::BlockingDialogIsDisplayed(void) const
-	?NewL@CPhoneSingleItemFetch@@SAPAV1@AAVCEikonEnv@@AAVCPhoneViewController@@AAVCPhoneContactController@@AAVCPhoneStatusPane@@@Z @ 7 NONAME ; class CPhoneSingleItemFetch * CPhoneSingleItemFetch::NewL(class CEikonEnv &, class CPhoneViewController &, class CPhoneContactController &, class CPhoneStatusPane &)
-	?HelpContext@CPhoneViewController@@QAEABVTDesC16@@XZ @ 8 NONAME ; class TDesC16 const & CPhoneViewController::HelpContext(void)
-	?ExecuteCommandL@CPhoneViewController@@UAEXHH@Z @ 9 NONAME ; void CPhoneViewController::ExecuteCommandL(int, int)
-	?IdleWindowGroupId@CPhoneViewController@@QAEHXZ @ 10 NONAME ; int CPhoneViewController::IdleWindowGroupId(void)
-	?ExecuteCommandL@CPhoneViewController@@UAEXHHAAVTDesC16@@@Z @ 11 NONAME ; void CPhoneViewController::ExecuteCommandL(int, int, class TDesC16 &)
-	?PhoneView@CPhoneViewController@@QAEPAVCPhoneView@@XZ @ 12 NONAME ; class CPhoneView * CPhoneViewController::PhoneView(void)
-	?SetHiddenL@CPhoneViewController@@QAEXH@Z @ 13 NONAME ; void CPhoneViewController::SetHiddenL(int)
-	?HandleLayoutChange@CPhoneViewController@@QAEXVTRect@@@Z @ 14 NONAME ; void CPhoneViewController::HandleLayoutChange(class TRect)
-	?HandleCommandL@CPhoneViewController@@UAEHHPAVTPhoneCommandParam@@@Z @ 15 NONAME ; int CPhoneViewController::HandleCommandL(int, class TPhoneCommandParam *)
-	?ApplicationWindowGroupId@CPhoneViewController@@QAEHXZ @ 16 NONAME ; int CPhoneViewController::ApplicationWindowGroupId(void)
-	?NewL@CPhoneViewController@@SAPAV1@VTRect@@@Z @ 17 NONAME ; class CPhoneViewController * CPhoneViewController::NewL(class TRect)
-	?ExecuteCommand@CPhoneViewController@@UAEXH@Z @ 18 NONAME ; void CPhoneViewController::ExecuteCommand(int)
-	?ForegroundApplicationWindowGroupId@CPhoneViewController@@QAEHXZ @ 19 NONAME ; int CPhoneViewController::ForegroundApplicationWindowGroupId(void)
-	?StatusPaneDisplayed@CPhoneViewController@@QAEHXZ @ 20 NONAME ; int CPhoneViewController::StatusPaneDisplayed(void)
-	??1CPhoneViewController@@UAE@XZ @ 21 NONAME ; CPhoneViewController::~CPhoneViewController(void)
-	?ExecuteCommandL@CPhoneViewController@@UAEXH@Z @ 22 NONAME ; void CPhoneViewController::ExecuteCommandL(int)
-	?ExecuteCommandL@CPhoneViewController@@UAEXHPAVTPhoneCommandParam@@@Z @ 23 NONAME ; void CPhoneViewController::ExecuteCommandL(int, class TPhoneCommandParam *)
-	?FetchContent@CPhoneViewController@@UAEABVTDesC16@@XZ @ 24 NONAME ; class TDesC16 const & CPhoneViewController::FetchContent(void)
-	?HandleCommandL@CPhoneViewController@@UAEHH@Z @ 25 NONAME ; int CPhoneViewController::HandleCommandL(int)
-	?ButtonState@CPhoneDialerController@@UBEHW4TButtonIndex@MPhoneDialerController@@@Z @ 26 NONAME ; int CPhoneDialerController::ButtonState(enum MPhoneDialerController::TButtonIndex) const
-	?ConstructL@CPhoneDialerController@@IAEXXZ @ 27 NONAME ; void CPhoneDialerController::ConstructL(void)
-	??0CPhoneDialerController@@IAE@PAVCPhoneBubbleWrapper@@AAVCCoeEnv@@@Z @ 28 NONAME ; CPhoneDialerController::CPhoneDialerController(class CPhoneBubbleWrapper *, class CCoeEnv &)
-	?SetNumberEntryIsEmpty@CPhoneDialerController@@UAEXH@Z @ 29 NONAME ; void CPhoneDialerController::SetNumberEntryIsEmpty(int)
-	?EasyDialingAllowed@CPhoneDialerController@@UBEHXZ @ 30 NONAME ; int CPhoneDialerController::EasyDialingAllowed(void) const
-	?EmergencyCallActive@CPhoneDialerController@@IBEHXZ @ 31 NONAME ; int CPhoneDialerController::EmergencyCallActive(void) const
-	??1CPhoneDialerController@@UAE@XZ @ 32 NONAME ; CPhoneDialerController::~CPhoneDialerController(void)
-	?CbaResourceId@CPhoneDialerController@@UBEHXZ @ 33 NONAME ; int CPhoneDialerController::CbaResourceId(void) const
-	?NumberEntryPromptTextL@CPhoneDialerController@@UAEABVTDesC16@@XZ @ 34 NONAME ; class TDesC16 const & CPhoneDialerController::NumberEntryPromptTextL(void)
-	?MenuResourceId@CPhoneDialerController@@UBEHXZ @ 35 NONAME ; int CPhoneDialerController::MenuResourceId(void) const
-	?ButtonDimmed@CPhoneDialerController@@UBEHW4TButtonIndex@MPhoneDialerController@@@Z @ 36 NONAME ; int CPhoneDialerController::ButtonDimmed(enum MPhoneDialerController::TButtonIndex) const
-	?GetButtonData@CPhoneDialerController@@UBEHW4TButtonIndex@MPhoneDialerController@@AAV?$RPointerArray@VCButtonData@MPhoneDialerController@@@@@Z @ 37 NONAME ; int CPhoneDialerController::GetButtonData(enum MPhoneDialerController::TButtonIndex, class RPointerArray<class MPhoneDialerController::CButtonData> &) const
+	?DoFetchForegroundApplicationWindowGroupIdL@CPhoneViewController@@SAHAAVCEikonEnv@@@Z @ 2 NONAME ; int CPhoneViewController::DoFetchForegroundApplicationWindowGroupIdL(class CEikonEnv &)
+	?SetBlockingDialogIsDisplayed@CPhoneViewController@@UAEXH@Z @ 3 NONAME ; void CPhoneViewController::SetBlockingDialogIsDisplayed(int)
+	?BlockingDialogIsDisplayed@CPhoneViewController@@QBEHXZ @ 4 NONAME ; int CPhoneViewController::BlockingDialogIsDisplayed(void) const
+	?ButtonState@CPhoneDialerController@@UBEHW4TButtonIndex@MPhoneDialerController@@@Z @ 5 NONAME ; int CPhoneDialerController::ButtonState(enum MPhoneDialerController::TButtonIndex) const
+	?ExecuteCommandL@CPhoneViewController@@UAEXHHAAVTDesC16@@@Z @ 6 NONAME ; void CPhoneViewController::ExecuteCommandL(int, int, class TDesC16 &)
+	?ConstructL@CPhoneDialerController@@IAEXXZ @ 7 NONAME ; void CPhoneDialerController::ConstructL(void)
+	?SetHiddenL@CPhoneViewController@@QAEXH@Z @ 8 NONAME ; void CPhoneViewController::SetHiddenL(int)
+	??0CPhoneDialerController@@IAE@PAVCPhoneBubbleWrapper@@AAVCCoeEnv@@@Z @ 9 NONAME ; CPhoneDialerController::CPhoneDialerController(class CPhoneBubbleWrapper *, class CCoeEnv &)
+	?HandleLayoutChange@CPhoneViewController@@QAEXVTRect@@@Z @ 10 NONAME ; void CPhoneViewController::HandleLayoutChange(class TRect)
+	?SetNumberEntryIsEmpty@CPhoneDialerController@@UAEXH@Z @ 11 NONAME ; void CPhoneDialerController::SetNumberEntryIsEmpty(int)
+	?ApplicationWindowGroupId@CPhoneViewController@@QAEHXZ @ 12 NONAME ; int CPhoneViewController::ApplicationWindowGroupId(void)
+	?EasyDialingAllowed@CPhoneDialerController@@UBEHXZ @ 13 NONAME ; int CPhoneDialerController::EasyDialingAllowed(void) const
+	?EmergencyCallActive@CPhoneDialerController@@IBEHXZ @ 14 NONAME ; int CPhoneDialerController::EmergencyCallActive(void) const
+	?ExecuteCommand@CPhoneViewController@@UAEXH@Z @ 15 NONAME ; void CPhoneViewController::ExecuteCommand(int)
+	?ForegroundApplicationWindowGroupId@CPhoneViewController@@QAEHXZ @ 16 NONAME ; int CPhoneViewController::ForegroundApplicationWindowGroupId(void)
+	?GetButtonData@CPhoneDialerController@@UBEHW4TButtonIndex@MPhoneDialerController@@AAV?$RPointerArray@VCButtonData@MPhoneDialerController@@@@@Z @ 17 NONAME ; int CPhoneDialerController::GetButtonData(enum MPhoneDialerController::TButtonIndex, class RPointerArray<class MPhoneDialerController::CButtonData> &) const
+	??1CPhoneDialerController@@UAE@XZ @ 18 NONAME ; CPhoneDialerController::~CPhoneDialerController(void)
+	?CbaResourceId@CPhoneDialerController@@UBEHXZ @ 19 NONAME ; int CPhoneDialerController::CbaResourceId(void) const
+	?ExecuteCommand@CPhoneViewController@@UAEXHPAVTPhoneCommandParam@@@Z @ 20 NONAME ; void CPhoneViewController::ExecuteCommand(int, class TPhoneCommandParam *)
+	?ExecuteCommandL@CPhoneViewController@@UAEXHHPAVTPhoneCommandParam@@@Z @ 21 NONAME ; void CPhoneViewController::ExecuteCommandL(int, int, class TPhoneCommandParam *)
+	?NumberEntryPromptTextL@CPhoneDialerController@@UAEABVTDesC16@@XZ @ 22 NONAME ; class TDesC16 const & CPhoneDialerController::NumberEntryPromptTextL(void)
+	?ExecuteCommandL@CPhoneViewController@@UAEXHH@Z @ 23 NONAME ; void CPhoneViewController::ExecuteCommandL(int, int)
+	?HelpContext@CPhoneViewController@@QAEABVTDesC16@@XZ @ 24 NONAME ; class TDesC16 const & CPhoneViewController::HelpContext(void)
+	?NewL@CPhoneSingleItemFetch@@SAPAV1@AAVCEikonEnv@@AAVCPhoneViewController@@AAVCPhoneContactController@@AAVCPhoneStatusPane@@@Z @ 25 NONAME ; class CPhoneSingleItemFetch * CPhoneSingleItemFetch::NewL(class CEikonEnv &, class CPhoneViewController &, class CPhoneContactController &, class CPhoneStatusPane &)
+	?IdleWindowGroupId@CPhoneViewController@@QAEHXZ @ 26 NONAME ; int CPhoneViewController::IdleWindowGroupId(void)
+	?MenuResourceId@CPhoneDialerController@@UBEHXZ @ 27 NONAME ; int CPhoneDialerController::MenuResourceId(void) const
+	?PhoneView@CPhoneViewController@@QAEPAVCPhoneView@@XZ @ 28 NONAME ; class CPhoneView * CPhoneViewController::PhoneView(void)
+	?HandleSecurityModeChanged@CPhoneViewController@@UAEXH@Z @ 29 NONAME ; void CPhoneViewController::HandleSecurityModeChanged(int)
+	?ButtonDimmed@CPhoneDialerController@@UBEHW4TButtonIndex@MPhoneDialerController@@@Z @ 30 NONAME ; int CPhoneDialerController::ButtonDimmed(enum MPhoneDialerController::TButtonIndex) const
+	?HandleCommandL@CPhoneViewController@@UAEHHPAVTPhoneCommandParam@@@Z @ 31 NONAME ; int CPhoneViewController::HandleCommandL(int, class TPhoneCommandParam *)
+	?NewL@CPhoneViewController@@SAPAV1@VTRect@@@Z @ 32 NONAME ; class CPhoneViewController * CPhoneViewController::NewL(class TRect)
+	?StatusPaneDisplayed@CPhoneViewController@@QAEHXZ @ 33 NONAME ; int CPhoneViewController::StatusPaneDisplayed(void)
+	??1CPhoneViewController@@UAE@XZ @ 34 NONAME ; CPhoneViewController::~CPhoneViewController(void)
+	?ExecuteCommandL@CPhoneViewController@@UAEXH@Z @ 35 NONAME ; void CPhoneViewController::ExecuteCommandL(int)
+	?ExecuteCommandL@CPhoneViewController@@UAEXHPAVTPhoneCommandParam@@@Z @ 36 NONAME ; void CPhoneViewController::ExecuteCommandL(int, class TPhoneCommandParam *)
+	?FetchContent@CPhoneViewController@@UAEABVTDesC16@@XZ @ 37 NONAME ; class TDesC16 const & CPhoneViewController::FetchContent(void)
+	?HandleCommandL@CPhoneViewController@@UAEHH@Z @ 38 NONAME ; int CPhoneViewController::HandleCommandL(int)
 
--- a/phoneapp/phoneuiview/eabi/phoneuiviewu.def	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneuiview/eabi/phoneuiviewu.def	Wed Mar 31 21:30:06 2010 +0300
@@ -16,121 +16,123 @@
 	_ZN20CPhoneViewController19StatusPaneDisplayedEv @ 15 NONAME
 	_ZN20CPhoneViewController21HandleResourceChangeLEi @ 16 NONAME
 	_ZN20CPhoneViewController24ApplicationWindowGroupIdEv @ 17 NONAME
-	_ZN20CPhoneViewController28SetBlockingDialogIsDisplayedEi @ 18 NONAME
-	_ZN20CPhoneViewController34ForegroundApplicationWindowGroupIdEv @ 19 NONAME
-	_ZN20CPhoneViewController42DoFetchForegroundApplicationWindowGroupIdLER9CEikonEnv @ 20 NONAME
-	_ZN20CPhoneViewController4NewLE5TRect @ 21 NONAME
-	_ZN20CPhoneViewController9PhoneViewEv @ 22 NONAME
-	_ZN21CPhoneSingleItemFetch4NewLER9CEikonEnvR20CPhoneViewControllerR23CPhoneContactControllerR16CPhoneStatusPane @ 23 NONAME
-	_ZN22CPhoneDialerController10ConstructLEv @ 24 NONAME
-	_ZN22CPhoneDialerController21SetNumberEntryIsEmptyEi @ 25 NONAME
-	_ZN22CPhoneDialerController22NumberEntryPromptTextLEv @ 26 NONAME
-	_ZN22CPhoneDialerControllerC1EP19CPhoneBubbleWrapperR7CCoeEnv @ 27 NONAME
-	_ZN22CPhoneDialerControllerC2EP19CPhoneBubbleWrapperR7CCoeEnv @ 28 NONAME
-	_ZN22CPhoneDialerControllerD0Ev @ 29 NONAME
-	_ZN22CPhoneDialerControllerD1Ev @ 30 NONAME
-	_ZN22CPhoneDialerControllerD2Ev @ 31 NONAME
-	_ZNK20CPhoneViewController25BlockingDialogIsDisplayedEv @ 32 NONAME
-	_ZNK22CPhoneDialerController11ButtonStateEN22MPhoneDialerController12TButtonIndexE @ 33 NONAME
-	_ZNK22CPhoneDialerController12ButtonDimmedEN22MPhoneDialerController12TButtonIndexE @ 34 NONAME
-	_ZNK22CPhoneDialerController13CbaResourceIdEv @ 35 NONAME
-	_ZNK22CPhoneDialerController13GetButtonDataEN22MPhoneDialerController12TButtonIndexER13RPointerArrayINS0_11CButtonDataEE @ 36 NONAME
-	_ZNK22CPhoneDialerController14MenuResourceIdEv @ 37 NONAME
-	_ZNK22CPhoneDialerController18EasyDialingAllowedEv @ 38 NONAME
-	_ZNK22CPhoneDialerController19EmergencyCallActiveEv @ 39 NONAME
-	_ZTI10CPhoneNote @ 40 NONAME
-	_ZTI10CPhoneView @ 41 NONAME
-	_ZTI15CPhoneTextQuery @ 42 NONAME
-	_ZTI16CPhoneDialerView @ 43 NONAME
-	_ZTI16CPhoneStatusPane @ 44 NONAME
-	_ZTI17CPhoneAudioPlayer @ 45 NONAME
-	_ZTI17CPhoneQueryDialog @ 46 NONAME
-	_ZTI17CPhoneRingingTone @ 47 NONAME
-	_ZTI17CPhoneVmbxHandler @ 48 NONAME
-	_ZTI18CPhoneProgressNote @ 49 NONAME
-	_ZTI19CPhoneBubbleMapping @ 50 NONAME
-	_ZTI19CPhoneBubbleWrapper @ 51 NONAME
-	_ZTI19CPhoneTextTitlePane @ 52 NONAME
-	_ZTI20CPhoneMenuController @ 53 NONAME
-	_ZTI20CPhoneNoteController @ 54 NONAME
-	_ZTI20CPhoneViewController @ 55 NONAME
-	_ZTI21CPhoneApplicationExit @ 56 NONAME
-	_ZTI21CPhoneAudioController @ 57 NONAME
-	_ZTI21CPhoneBubbleExtension @ 58 NONAME
-	_ZTI21CPhoneDtmfSendingNote @ 59 NONAME
-	_ZTI21CPhoneIncallIndicator @ 60 NONAME
-	_ZTI21CPhoneListQueryDialog @ 61 NONAME
-	_ZTI21CPhoneQueryController @ 62 NONAME
-	_ZTI21CPhoneSingleItemFetch @ 63 NONAME
-	_ZTI22CPhoneDialerController @ 64 NONAME
-	_ZTI23CPhoneContactController @ 65 NONAME
-	_ZTI25CPhoneBubbleExtensionData @ 66 NONAME
-	_ZTI25CPhoneDtmfNumberListQuery @ 67 NONAME
-	_ZTI25CPhoneRingingTonePlayerAO @ 68 NONAME
-	_ZTI26CPhoneKeyCaptureController @ 69 NONAME
-	_ZTI28CPhoneBubbleExtensionManager @ 70 NONAME
-	_ZTI29CPhoneCallHeaderTextAnimation @ 71 NONAME
-	_ZTIN21CPhoneApplicationExit11CElementUidE @ 72 NONAME
-	_ZTIN21CPhoneApplicationExit13CElementBasicE @ 73 NONAME
-	_ZTIN21CPhoneApplicationExit13CElementDriveE @ 74 NONAME
-	_ZTV10CPhoneNote @ 75 NONAME
-	_ZTV10CPhoneView @ 76 NONAME
-	_ZTV15CPhoneTextQuery @ 77 NONAME
-	_ZTV16CPhoneDialerView @ 78 NONAME
-	_ZTV16CPhoneStatusPane @ 79 NONAME
-	_ZTV17CPhoneAudioPlayer @ 80 NONAME
-	_ZTV17CPhoneQueryDialog @ 81 NONAME
-	_ZTV17CPhoneRingingTone @ 82 NONAME
-	_ZTV17CPhoneVmbxHandler @ 83 NONAME
-	_ZTV18CPhoneProgressNote @ 84 NONAME
-	_ZTV19CPhoneBubbleMapping @ 85 NONAME
-	_ZTV19CPhoneBubbleWrapper @ 86 NONAME
-	_ZTV19CPhoneTextTitlePane @ 87 NONAME
-	_ZTV20CPhoneMenuController @ 88 NONAME
-	_ZTV20CPhoneNoteController @ 89 NONAME
-	_ZTV20CPhoneViewController @ 90 NONAME
-	_ZTV21CPhoneApplicationExit @ 91 NONAME
-	_ZTV21CPhoneAudioController @ 92 NONAME
-	_ZTV21CPhoneBubbleExtension @ 93 NONAME
-	_ZTV21CPhoneDtmfSendingNote @ 94 NONAME
-	_ZTV21CPhoneIncallIndicator @ 95 NONAME
-	_ZTV21CPhoneListQueryDialog @ 96 NONAME
-	_ZTV21CPhoneQueryController @ 97 NONAME
-	_ZTV21CPhoneSingleItemFetch @ 98 NONAME
-	_ZTV22CPhoneDialerController @ 99 NONAME
-	_ZTV23CPhoneContactController @ 100 NONAME
-	_ZTV25CPhoneBubbleExtensionData @ 101 NONAME
-	_ZTV25CPhoneDtmfNumberListQuery @ 102 NONAME
-	_ZTV25CPhoneRingingTonePlayerAO @ 103 NONAME
-	_ZTV26CPhoneKeyCaptureController @ 104 NONAME
-	_ZTV28CPhoneBubbleExtensionManager @ 105 NONAME
-	_ZTV29CPhoneCallHeaderTextAnimation @ 106 NONAME
-	_ZTVN21CPhoneApplicationExit11CElementUidE @ 107 NONAME
-	_ZTVN21CPhoneApplicationExit13CElementBasicE @ 108 NONAME
-	_ZTVN21CPhoneApplicationExit13CElementDriveE @ 109 NONAME
-	_ZThn12_N20CPhoneViewController28SetBlockingDialogIsDisplayedEi @ 110 NONAME
-	_ZThn4_N20CPhoneViewController12FetchContentEv @ 111 NONAME
-	_ZThn4_N20CPhoneViewController14ExecuteCommandEi @ 112 NONAME
-	_ZThn4_N20CPhoneViewController14ExecuteCommandEiP18TPhoneCommandParam @ 113 NONAME
-	_ZThn4_N20CPhoneViewController14HandleCommandLEi @ 114 NONAME
-	_ZThn4_N20CPhoneViewController14HandleCommandLEiP18TPhoneCommandParam @ 115 NONAME
-	_ZThn4_N20CPhoneViewController15ExecuteCommandLEi @ 116 NONAME
-	_ZThn4_N20CPhoneViewController15ExecuteCommandLEiP18TPhoneCommandParam @ 117 NONAME
-	_ZThn4_N20CPhoneViewController15ExecuteCommandLEii @ 118 NONAME
-	_ZThn4_N20CPhoneViewController15ExecuteCommandLEiiP18TPhoneCommandParam @ 119 NONAME
-	_ZThn4_N20CPhoneViewController15ExecuteCommandLEiiR7TDesC16 @ 120 NONAME
-	_ZThn4_N22CPhoneDialerController21SetNumberEntryIsEmptyEi @ 121 NONAME
-	_ZThn4_N22CPhoneDialerController22NumberEntryPromptTextLEv @ 122 NONAME
-	_ZThn4_NK22CPhoneDialerController11ButtonStateEN22MPhoneDialerController12TButtonIndexE @ 123 NONAME
-	_ZThn4_NK22CPhoneDialerController12ButtonDimmedEN22MPhoneDialerController12TButtonIndexE @ 124 NONAME
-	_ZThn4_NK22CPhoneDialerController13CbaResourceIdEv @ 125 NONAME
-	_ZThn4_NK22CPhoneDialerController13GetButtonDataEN22MPhoneDialerController12TButtonIndexER13RPointerArrayINS0_11CButtonDataEE @ 126 NONAME
-	_ZThn4_NK22CPhoneDialerController14MenuResourceIdEv @ 127 NONAME
-	_ZThn4_NK22CPhoneDialerController18EasyDialingAllowedEv @ 128 NONAME
-	_ZTI23CPhoneRingingToneServer @ 129 NONAME
-	_ZTI28CPhoneRingingToneSrvPlayerAO @ 130 NONAME
-	_ZTI30CPhoneRingingToneServerSession @ 131 NONAME
-	_ZTV23CPhoneRingingToneServer @ 132 NONAME
-	_ZTV28CPhoneRingingToneSrvPlayerAO @ 133 NONAME
-	_ZTV30CPhoneRingingToneServerSession @ 134 NONAME
+	_ZN20CPhoneViewController25HandleSecurityModeChangedEi @ 18 NONAME
+	_ZN20CPhoneViewController28SetBlockingDialogIsDisplayedEi @ 19 NONAME
+	_ZN20CPhoneViewController34ForegroundApplicationWindowGroupIdEv @ 20 NONAME
+	_ZN20CPhoneViewController42DoFetchForegroundApplicationWindowGroupIdLER9CEikonEnv @ 21 NONAME
+	_ZN20CPhoneViewController4NewLE5TRect @ 22 NONAME
+	_ZN20CPhoneViewController9PhoneViewEv @ 23 NONAME
+	_ZN21CPhoneSingleItemFetch4NewLER9CEikonEnvR20CPhoneViewControllerR23CPhoneContactControllerR16CPhoneStatusPane @ 24 NONAME
+	_ZN22CPhoneDialerController10ConstructLEv @ 25 NONAME
+	_ZN22CPhoneDialerController21SetNumberEntryIsEmptyEi @ 26 NONAME
+	_ZN22CPhoneDialerController22NumberEntryPromptTextLEv @ 27 NONAME
+	_ZN22CPhoneDialerControllerC1EP19CPhoneBubbleWrapperR7CCoeEnv @ 28 NONAME
+	_ZN22CPhoneDialerControllerC2EP19CPhoneBubbleWrapperR7CCoeEnv @ 29 NONAME
+	_ZN22CPhoneDialerControllerD0Ev @ 30 NONAME
+	_ZN22CPhoneDialerControllerD1Ev @ 31 NONAME
+	_ZN22CPhoneDialerControllerD2Ev @ 32 NONAME
+	_ZNK20CPhoneViewController25BlockingDialogIsDisplayedEv @ 33 NONAME
+	_ZNK22CPhoneDialerController11ButtonStateEN22MPhoneDialerController12TButtonIndexE @ 34 NONAME
+	_ZNK22CPhoneDialerController12ButtonDimmedEN22MPhoneDialerController12TButtonIndexE @ 35 NONAME
+	_ZNK22CPhoneDialerController13CbaResourceIdEv @ 36 NONAME
+	_ZNK22CPhoneDialerController13GetButtonDataEN22MPhoneDialerController12TButtonIndexER13RPointerArrayINS0_11CButtonDataEE @ 37 NONAME
+	_ZNK22CPhoneDialerController14MenuResourceIdEv @ 38 NONAME
+	_ZNK22CPhoneDialerController18EasyDialingAllowedEv @ 39 NONAME
+	_ZNK22CPhoneDialerController19EmergencyCallActiveEv @ 40 NONAME
+	_ZTI10CPhoneNote @ 41 NONAME
+	_ZTI10CPhoneView @ 42 NONAME
+	_ZTI15CPhoneTextQuery @ 43 NONAME
+	_ZTI16CPhoneDialerView @ 44 NONAME
+	_ZTI16CPhoneStatusPane @ 45 NONAME
+	_ZTI17CPhoneAudioPlayer @ 46 NONAME
+	_ZTI17CPhoneQueryDialog @ 47 NONAME
+	_ZTI17CPhoneRingingTone @ 48 NONAME
+	_ZTI17CPhoneVmbxHandler @ 49 NONAME
+	_ZTI18CPhoneProgressNote @ 50 NONAME
+	_ZTI19CPhoneBubbleMapping @ 51 NONAME
+	_ZTI19CPhoneBubbleWrapper @ 52 NONAME
+	_ZTI19CPhoneTextTitlePane @ 53 NONAME
+	_ZTI20CPhoneMenuController @ 54 NONAME
+	_ZTI20CPhoneNoteController @ 55 NONAME
+	_ZTI20CPhoneViewController @ 56 NONAME
+	_ZTI21CPhoneApplicationExit @ 57 NONAME
+	_ZTI21CPhoneAudioController @ 58 NONAME
+	_ZTI21CPhoneBubbleExtension @ 59 NONAME
+	_ZTI21CPhoneDtmfSendingNote @ 60 NONAME
+	_ZTI21CPhoneIncallIndicator @ 61 NONAME
+	_ZTI21CPhoneListQueryDialog @ 62 NONAME
+	_ZTI21CPhoneQueryController @ 63 NONAME
+	_ZTI21CPhoneSingleItemFetch @ 64 NONAME
+	_ZTI22CPhoneDialerController @ 65 NONAME
+	_ZTI23CPhoneContactController @ 66 NONAME
+	_ZTI23CPhoneRingingToneServer @ 67 NONAME
+	_ZTI25CPhoneBubbleExtensionData @ 68 NONAME
+	_ZTI25CPhoneDtmfNumberListQuery @ 69 NONAME
+	_ZTI25CPhoneRingingTonePlayerAO @ 70 NONAME
+	_ZTI26CPhoneKeyCaptureController @ 71 NONAME
+	_ZTI28CPhoneBubbleExtensionManager @ 72 NONAME
+	_ZTI28CPhoneRingingToneSrvPlayerAO @ 73 NONAME
+	_ZTI29CPhoneCallHeaderTextAnimation @ 74 NONAME
+	_ZTI30CPhoneRingingToneServerSession @ 75 NONAME
+	_ZTIN21CPhoneApplicationExit11CElementUidE @ 76 NONAME
+	_ZTIN21CPhoneApplicationExit13CElementBasicE @ 77 NONAME
+	_ZTIN21CPhoneApplicationExit13CElementDriveE @ 78 NONAME
+	_ZTV10CPhoneNote @ 79 NONAME
+	_ZTV10CPhoneView @ 80 NONAME
+	_ZTV15CPhoneTextQuery @ 81 NONAME
+	_ZTV16CPhoneDialerView @ 82 NONAME
+	_ZTV16CPhoneStatusPane @ 83 NONAME
+	_ZTV17CPhoneAudioPlayer @ 84 NONAME
+	_ZTV17CPhoneQueryDialog @ 85 NONAME
+	_ZTV17CPhoneRingingTone @ 86 NONAME
+	_ZTV17CPhoneVmbxHandler @ 87 NONAME
+	_ZTV18CPhoneProgressNote @ 88 NONAME
+	_ZTV19CPhoneBubbleMapping @ 89 NONAME
+	_ZTV19CPhoneBubbleWrapper @ 90 NONAME
+	_ZTV19CPhoneTextTitlePane @ 91 NONAME
+	_ZTV20CPhoneMenuController @ 92 NONAME
+	_ZTV20CPhoneNoteController @ 93 NONAME
+	_ZTV20CPhoneViewController @ 94 NONAME
+	_ZTV21CPhoneApplicationExit @ 95 NONAME
+	_ZTV21CPhoneAudioController @ 96 NONAME
+	_ZTV21CPhoneBubbleExtension @ 97 NONAME
+	_ZTV21CPhoneDtmfSendingNote @ 98 NONAME
+	_ZTV21CPhoneIncallIndicator @ 99 NONAME
+	_ZTV21CPhoneListQueryDialog @ 100 NONAME
+	_ZTV21CPhoneQueryController @ 101 NONAME
+	_ZTV21CPhoneSingleItemFetch @ 102 NONAME
+	_ZTV22CPhoneDialerController @ 103 NONAME
+	_ZTV23CPhoneContactController @ 104 NONAME
+	_ZTV23CPhoneRingingToneServer @ 105 NONAME
+	_ZTV25CPhoneBubbleExtensionData @ 106 NONAME
+	_ZTV25CPhoneDtmfNumberListQuery @ 107 NONAME
+	_ZTV25CPhoneRingingTonePlayerAO @ 108 NONAME
+	_ZTV26CPhoneKeyCaptureController @ 109 NONAME
+	_ZTV28CPhoneBubbleExtensionManager @ 110 NONAME
+	_ZTV28CPhoneRingingToneSrvPlayerAO @ 111 NONAME
+	_ZTV29CPhoneCallHeaderTextAnimation @ 112 NONAME
+	_ZTV30CPhoneRingingToneServerSession @ 113 NONAME
+	_ZTVN21CPhoneApplicationExit11CElementUidE @ 114 NONAME
+	_ZTVN21CPhoneApplicationExit13CElementBasicE @ 115 NONAME
+	_ZTVN21CPhoneApplicationExit13CElementDriveE @ 116 NONAME
+	_ZThn12_N20CPhoneViewController28SetBlockingDialogIsDisplayedEi @ 117 NONAME
+	_ZThn20_N20CPhoneViewController25HandleSecurityModeChangedEi @ 118 NONAME
+	_ZThn4_N20CPhoneViewController12FetchContentEv @ 119 NONAME
+	_ZThn4_N20CPhoneViewController14ExecuteCommandEi @ 120 NONAME
+	_ZThn4_N20CPhoneViewController14ExecuteCommandEiP18TPhoneCommandParam @ 121 NONAME
+	_ZThn4_N20CPhoneViewController14HandleCommandLEi @ 122 NONAME
+	_ZThn4_N20CPhoneViewController14HandleCommandLEiP18TPhoneCommandParam @ 123 NONAME
+	_ZThn4_N20CPhoneViewController15ExecuteCommandLEi @ 124 NONAME
+	_ZThn4_N20CPhoneViewController15ExecuteCommandLEiP18TPhoneCommandParam @ 125 NONAME
+	_ZThn4_N20CPhoneViewController15ExecuteCommandLEii @ 126 NONAME
+	_ZThn4_N20CPhoneViewController15ExecuteCommandLEiiP18TPhoneCommandParam @ 127 NONAME
+	_ZThn4_N20CPhoneViewController15ExecuteCommandLEiiR7TDesC16 @ 128 NONAME
+	_ZThn4_N22CPhoneDialerController21SetNumberEntryIsEmptyEi @ 129 NONAME
+	_ZThn4_N22CPhoneDialerController22NumberEntryPromptTextLEv @ 130 NONAME
+	_ZThn4_NK22CPhoneDialerController11ButtonStateEN22MPhoneDialerController12TButtonIndexE @ 131 NONAME
+	_ZThn4_NK22CPhoneDialerController12ButtonDimmedEN22MPhoneDialerController12TButtonIndexE @ 132 NONAME
+	_ZThn4_NK22CPhoneDialerController13CbaResourceIdEv @ 133 NONAME
+	_ZThn4_NK22CPhoneDialerController13GetButtonDataEN22MPhoneDialerController12TButtonIndexER13RPointerArrayINS0_11CButtonDataEE @ 134 NONAME
+	_ZThn4_NK22CPhoneDialerController14MenuResourceIdEv @ 135 NONAME
+	_ZThn4_NK22CPhoneDialerController18EasyDialingAllowedEv @ 136 NONAME
 
--- a/phoneapp/phoneuiview/inc/cphonedialerview.h	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneuiview/inc/cphonedialerview.h	Wed Mar 31 21:30:06 2010 +0300
@@ -76,20 +76,6 @@
         * @return aControl The control.
         */
         CCoeControl* Control() const;
-       
-        /**
-        * Sets the security mode flag ETrue or EFalse
-        * @param aStatus ETrue for the security mode. EFalse for the 
-        * normal mode.
-        */ 
-        void SetSecurityMode( TBool aStatus );
-        
-        /**
-        * Get state of the security mode flag
-        * @return aStatus ETrue for the security mode. EFalse for the 
-        * normal mode.
-        */         
-        TBool IsSecurityMode();
         
     public:  // Functions from base classes
         
@@ -207,9 +193,7 @@
         
         //MainPane
         TRect iMainPane;
-        
-        //Is security mode or not
-        TBool iSecurityMode;
+  
         };
 
 #endif // __CPHONEDIALERVIEW_H
--- a/phoneapp/phoneuiview/inc/cphonemenucontroller.h	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneuiview/inc/cphonemenucontroller.h	Wed Mar 31 21:30:06 2010 +0300
@@ -122,6 +122,8 @@
         void SetInvalidCsPhoneNumberFlag( TPhoneCommandParam* aCommandParam );
 	        
         void GetInvalidCsPhoneNumberFlag( TPhoneCommandParam* aCommandParam );
+		
+		void SetSecurityMode( TBool aMode );
 
     public: //from base class 
         
@@ -189,7 +191,7 @@
         TBool iVoipEnabledFlag;  
         TBool iHideVideoCallDTMFVisibility;
         TBool iInvalidCsPhoneNumber;
-
+		TBool iSecurityMode;
         // Eikon environment delivered from CPhoneViewController
         CEikonEnv& iEikEnv;       
         // Pointer to AIW service handler. OWNED.
--- a/phoneapp/phoneuiview/inc/cphoneuidisablednote.h	Mon Mar 15 12:40:24 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,88 +0,0 @@
-/*
-* Copyright (c) 2005 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:  PhoneUI Note
-*
-*/
-
-/*
-*/
-
-#ifndef CPHONEUIDISABLEDNOTE_H
-#define CPHONEUIDISABLEDNOTE_H
-
-
-//  INCLUDES
-#include "tphonecmdparamnote.h"
-#include "cphonenote.h"
-
-// FORWARD DECLARATIONS
-class CAknNoteDialog;
-
-class CPhoneUIDisabledNote : public CPhoneNote
-    {
-    public:  // Constructors and destructor
-
-        /**
-         * Constructor.
-         * 
-         * @param    aSelfPtr            Pointer to self. 
-         *                               This pointer is set to NULL when the note is destroyed by the framework.
-         * @param    aCommandObserver    Observer to receive command events from the note.
-         */
-        CPhoneUIDisabledNote( CEikDialog** aSelfPtr, MEikCommandObserver& aCommandObserver );  
-        
-        /**
-        * Destructor.
-        */
-        virtual ~CPhoneUIDisabledNote();  
-
-        /**
-        * Sets the type of the note.
-        */
-        void SetNoteType( TPhoneNoteType aNoteType );
-
-        /**
-        * Gets the type of the note.
-        */
-        TPhoneNoteType NoteType();
-        
-        /**
-        * Updates softkeys to note
-        * @param    aResourceId     Resource id
-        */
-        void UpdateSoftkeysL( TInt aResourceId );
-        
-    protected:
-
-        TKeyResponse OfferKeyEventL( 
-            const TKeyEvent& aKeyEvent,
-            TEventCode aType );
-
-        TBool OkToExitL( TInt aCommand );
-
-        void HandlePointerEventL( 
-            const TPointerEvent& aPointerEvent );
-
-        void SetSizeAndPosition( const TSize& aSize );
-        
-    protected:  // Data
-        
-        //The type of note. Not necessarily set.
-        //Used in security view
-        TPhoneNoteType iNoteType;
-    };
-
-#endif // CPHONEUIDISABLEDNOTE_H   
-            
-// End of File
--- a/phoneapp/phoneuiview/inc/cphoneview.h	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneuiview/inc/cphoneview.h	Wed Mar 31 21:30:06 2010 +0300
@@ -92,13 +92,6 @@
         void SetSecurityMode ( TBool aStatus );
         
         /**
-        * Get state of the security mode flag
-        * @return aStatus ETrue for the security mode. EFalse for the 
-        * normal mode.
-        */         
-        TBool IsSecurityMode();
-        
-        /**
         * Gets the previous app flag value.
         */ 
         TBool GetActivatePreviousApp();
--- a/phoneapp/phoneuiview/inc/cphoneviewcontroller.h	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneuiview/inc/cphoneviewcontroller.h	Wed Mar 31 21:30:06 2010 +0300
@@ -34,6 +34,7 @@
 
 #include "mphoneviewblockingdialogobserver.h"
 #include "mnumberentry.h"
+#include "mphonesecuritymodechangeobserver.h"
 
 // FORWARD DECLARATIONS
 class CPhoneButtonsController;
@@ -84,7 +85,8 @@
     public MPhoneViewCommandHandle,
     public MPhoneStatusPaneObserver,
     public MPhoneViewBlockingDialogObserver,
-    public MNumberEntryObserver
+    public MNumberEntryObserver,
+	public MPhoneSecurityModeChangeObserver
     {
     public:  // Constructors and destructor
 
@@ -254,8 +256,19 @@
          */
         void NumberEntryStateChanged( TBool aEntryHasText );    
 
+// From MPhoneSecurityModeChangeObserver
+
+		IMPORT_C void HandleSecurityModeChanged( TBool aIsEnabled );
+
     private:     // New functions
 
+		/**
+		 * Set security mode
+		 *
+		 * @param aMode ETrue if mode should be set enabled.
+		 */
+    	void SetSecurityMode( TBool aMode );
+    	
         /**
         * read IdleApplicationUid from PubSub
         */
@@ -508,16 +521,6 @@
         /**
         * Set security mode to view and statuspane
         */
-        void SetSecurityMode( TPhoneCommandParam* aCommandParam );
-
-        /**
-        * Get security mode status
-        */
-        void GetSecurityModeStatus ( TPhoneCommandParam* aCommandParam );
-
-        /**
-        * Set security mode to view and statuspane
-        */
         void SetStatusPaneVisible( TPhoneCommandParam* aCommandParam );
 
         /**
@@ -759,6 +762,11 @@
         TInt iPrevious;
 
         TBool iPriotityChanged;
+		
+		/**
+		 * Internal flag to define if security mode is enabled.
+		 */
+        TBool iSecurityMode;
         
         // Boolean flag. ETrue if the application needs to return
         // to the foreground after call ended
--- a/phoneapp/phoneuiview/inc/phoneringingtonesrvplayerao.h	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneuiview/inc/phoneringingtonesrvplayerao.h	Wed Mar 31 21:30:06 2010 +0300
@@ -23,9 +23,9 @@
 #include <e32base.h>
 #include <Profile.hrh>
 
-#include "MPhoneAudioPlayerObserver.h"
-#include "MPhoneTimer.h"
-#include "CPhoneAudioPlayer.h"
+#include "mphoneaudioplayerobserver.h"
+#include "mphonetimer.h"
+#include "cphoneaudioplayer.h"
 
 // FORWARD DECLARATIONS
 class RFs;
--- a/phoneapp/phoneuiview/inc/phoneviewcommanddefinitions.h	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneuiview/inc/phoneviewcommanddefinitions.h	Wed Mar 31 21:30:06 2010 +0300
@@ -137,8 +137,6 @@
     EPhoneViewSendMessage,
     EPhoneViewSetBlockingDialogStatus,
     EPhoneViewSetPhoneNumberAvailableInPhoneEngine,
-    EPhoneViewSetSecurityMode,
-    EPhoneViewGetSecurityModeStatus,
     EPhoneViewSetStatusPaneVisible, // 110
     EPhoneViewEnableKeyLock,
     EPhoneViewLaunchFaxModem,
@@ -234,6 +232,7 @@
     EPhoneViewSetNeedToReturnToForegroundAppStatus,
     EPhoneViewSetConferenceAndWaitingVideo,
     EPhoneViewLaunchMultimediaSharing,
+    EPhoneViewGetQwertyModeObserver,
 
     EPhoneAmountOfCommands, // Don't remove this, this should always be the last in list.
 };
--- a/phoneapp/phoneuiview/src/cphonedialercontroller.cpp	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneuiview/src/cphonedialercontroller.cpp	Wed Mar 31 21:30:06 2010 +0300
@@ -359,13 +359,25 @@
     switch ( aIndex )
         {
         case ECallButton:
-            dimmed = iRestrictedDialer;
-            if ( !dimmed )
-                {
-                // Prevent calling but don't prevent log during emergency call
-                dimmed = ( iNumberAvailable && EmergencyCallActive() );
-                }
-            break;
+			{
+        	if ( iNumberAvailable )
+        		{
+        		// Dim send key if emergency call is active. 
+        		// Do not dim send key if emergency call is not active,
+        		// user must be able to make an emergency call whether 
+        		// security mode is enabled or disabled.
+        		dimmed = EmergencyCallActive();
+        		}
+        	else
+        		{
+        		// If there's no number available in dialer, we should dim
+        		// send key if security mode is enabled.
+        		// User cannot launch logs application.
+        		dimmed = iRestrictedDialer;
+        		}
+			}
+        	break;
+            
         case EPhonebookButton:
             dimmed = iRestrictedDialer;
             break;
--- a/phoneapp/phoneuiview/src/cphonedialerview.cpp	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneuiview/src/cphonedialerview.cpp	Wed Mar 31 21:30:06 2010 +0300
@@ -65,8 +65,7 @@
 // might leave.
 // -----------------------------------------------------------------------------
 //
-CPhoneDialerView::CPhoneDialerView() :
-    iSecurityMode ( EFalse )
+CPhoneDialerView::CPhoneDialerView()
     {
     }
 
@@ -240,8 +239,7 @@
         MAknsSkinInstance* skin = AknsUtils::SkinInstance();
         MAknsControlContext* cc = AknsDrawUtils::ControlContext( this );
         
-        if ( iSecurityMode || 
-            !AknsDrawUtils::Background( skin, cc, this, gc, aRect ) )
+        if ( !AknsDrawUtils::Background( skin, cc, this, gc, aRect ) )
             {
             gc.SetPenStyle(CGraphicsContext::ENullPen);
             gc.SetBrushColor( AKN_LAF_COLOR( 0 ) ); // 0 for white
@@ -362,26 +360,4 @@
     CCoeControl::MakeVisible( aVisible );
     }
 
-// -----------------------------------------------------------------------------
-// CPhoneDialerView::SetSecurityMode
-// -----------------------------------------------------------------------------
-//
-void CPhoneDialerView::SetSecurityMode ( TBool aStatus )
-    {
-    if ( iSecurityMode != aStatus ) 
-        {
-        iSecurityMode = aStatus;
-        SizeChanged();    
-        }
-    }
-    
-// -----------------------------------------------------------------------------
-// CPhoneDialerView::IsSecurityMode
-// -----------------------------------------------------------------------------
-//
-TBool CPhoneDialerView::IsSecurityMode()    
-    {
-    return iSecurityMode;
-    }
-
 // End of File
--- a/phoneapp/phoneuiview/src/cphonemenucontroller.cpp	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneuiview/src/cphonemenucontroller.cpp	Wed Mar 31 21:30:06 2010 +0300
@@ -285,28 +285,37 @@
                 break;
  
             case EPhoneNumberAcqCmdSendMessage:            
-                if ( iNumberEntryEmpty || iInvalidCsPhoneNumber )
+                if ( iNumberEntryEmpty || iInvalidCsPhoneNumber || iSecurityMode )
                     {
                     menuPane->DeleteMenuItem( menuItemArray[ i ] ); 
                     }
-                break;                    
+                break;    
+                
+            case EPhoneInCallCmdSendToCallerMenu:
+            	{
+            	if ( iSecurityMode )
+            		{
+            		menuPane->DeleteMenuItem( menuItemArray[ i ] ); 
+            		}
+            	}
+            break;
                                 
             case EPhoneNumberAcqCmdSendCommand:
-                if ( !iServiceCodeFlag || iNumberEntryEmpty )
+                if ( !iServiceCodeFlag || iNumberEntryEmpty || iInvalidCsPhoneNumber )
                     {
                     menuPane->DeleteMenuItem( menuItemArray[ i ] );
                     }
                 break;
                 
             case EPhoneNumberAcqCmdToggleNeAlphaMode:
-                if ( iAlphaMode )
+                if ( iAlphaMode || iSecurityMode )
                     {
                     menuPane->DeleteMenuItem( menuItemArray[ i ] );
                     }
                 break;
                          
             case EPhoneNumberAcqCmdToggleNeNumericMode:
-                if ( !iAlphaMode )
+                if ( !iAlphaMode || iSecurityMode )
                     {
                     menuPane->DeleteMenuItem( menuItemArray[ i ] );
                     }
@@ -314,7 +323,7 @@
                 
                 
             case EPhoneInCallCmdGoToIdle:
-                if ( iNEVisible )
+                if ( iNEVisible || iSecurityMode )
                     {
                     menuPane->DeleteMenuItem( menuItemArray[ i ] );    
                     }
@@ -365,7 +374,7 @@
                 break;
                 
             case EPhoneCallComingCmdSoftReject:
-                if ( !iSoftRejectFlag )
+                if ( !iSoftRejectFlag || iSecurityMode )
                     {
                     menuPane->DeleteMenuItem( menuItemArray[ i ] );
                     }
@@ -470,7 +479,7 @@
                 break;
             case EPhoneDialerCmdLog:
                 {
-                if ( onScreenDialer && !iNumberEntryEmpty  )
+                if ( ( onScreenDialer && !iNumberEntryEmpty  )  || iSecurityMode )
                     {
                     menuPane->DeleteMenuItem( menuItemArray[i] );                    
                     }                
@@ -478,7 +487,7 @@
                 break;
             case EPhoneDialerCmdContacts:
                 {
-                if ( onScreenDialer && !iNumberEntryEmpty   )
+                if ( ( onScreenDialer && !iNumberEntryEmpty  ) || iSecurityMode ) 
                     {
                     menuPane->DeleteMenuItem( menuItemArray[i] );                    
                     }                
@@ -487,7 +496,7 @@
 
             case EPhoneNumberAcqCmdAddToContacts:
                 {
-                if ( onScreenDialer && iNumberEntryEmpty )
+                if ( ( onScreenDialer && iNumberEntryEmpty ) || iSecurityMode )
                     {
                     menuPane->DeleteMenuItem( menuItemArray[i] );                    
                     }                
@@ -495,7 +504,7 @@
                 break;
             case EPhoneDialerCmdSpeedDial:
                 {
-                if ( onScreenDialer && !iNumberEntryEmpty )
+                if ( ( onScreenDialer && !iNumberEntryEmpty ) || iSecurityMode )
                     {
                     menuPane->DeleteMenuItem( menuItemArray[i] );                         
                     }
@@ -882,7 +891,8 @@
          aResourceId == R_PHONEUI_INCOMINGCALL_MENUBAR_WITH_NUMBERENTRY ||
          aResourceId == R_PHONEUI_INCOMINGVIDEOCALL_MENUBAR_WITH_NUMBERENTRY ||
          aResourceId == R_PHONEUI_WAITING_LOCK_MENUBAR ||
-         aResourceId == R_PHONEUI_TWOSINGLES_WAITING_LOCK_MENUBAR  )
+         aResourceId == R_PHONEUI_TWOSINGLES_WAITING_LOCK_MENUBAR ||
+         iSecurityMode )
         {
         iMenu->SetMenuType( CEikMenuBar::EMenuOptionsNoTaskSwapper );
         }
@@ -1070,6 +1080,16 @@
 // CPhoneMenuController::HandlePropertyChangedL
 // ---------------------------------------------------------
 //
+void CPhoneMenuController::SetSecurityMode( TBool aIsEnabled )
+	{
+	__PHONELOG1( EBasic, EPhoneUIView, "CPhoneViewController::SetSecurityMode %d ", aIsEnabled );
+	iSecurityMode = aIsEnabled;
+	}
+
+// ---------------------------------------------------------
+// CPhoneMenuController::HandlePropertyChangedL
+// ---------------------------------------------------------
+//
 void CPhoneMenuController::HandlePropertyChangedL( 
         const TUid& aCategory,
         const TUint aKey,
--- a/phoneapp/phoneuiview/src/cphoneuidisablednote.cpp	Mon Mar 15 12:40:24 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,131 +0,0 @@
-/*
-* Copyright (c) 2005 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: Implementation of CPhoneUIDisabledNote class.
-*
-*/
-
-
-// INCLUDE FILES
-#include "cphoneuidisablednote.h"
-#include "aknnotedialog.h"
-#include "phoneui.hrh"
-#include <featmgr.h>
-#include <aknnotedialog.h>
-#include <eikdialg.h>
-#include <aknnotecontrol.h>
-
-
-// ================= MEMBER FUNCTIONS =======================
-// C++ default constructor can NOT contain any code, that
-// might leave.
-//
-CPhoneUIDisabledNote::CPhoneUIDisabledNote( CEikDialog** aSelfPtr, MEikCommandObserver& aCommandObserver )
-    : CPhoneNote( aSelfPtr, aCommandObserver ) 
-    {
-    }
-
-// ---------------------------------------------------------
-// Destructor
-// ---------------------------------------------------------
-// 
-CPhoneUIDisabledNote::~CPhoneUIDisabledNote()
-    {
-    }
-
-// ---------------------------------------------------------
-// CPhoneUIDisabledNote::OfferKeyEventL
-// ---------------------------------------------------------
-//
-TKeyResponse CPhoneUIDisabledNote::OfferKeyEventL( 
-    const TKeyEvent& aKeyEvent,
-    TEventCode /*aType*/ )
-    {
-    // Let key events be handled by the application
-	return EKeyWasNotConsumed;
-    }
-
-// ---------------------------------------------------------
-// CPhoneUIDisabledNote::OkToExitL
-// ---------------------------------------------------------
-//
-TBool CPhoneUIDisabledNote::OkToExitL( TInt aCommand )
-    {
-    // Let the command observer process the command
-    iCommandObserver.ProcessCommandL( aCommand );
-
-    return EFalse; // so that the dialog will not disappear
-    }
-    
-// ---------------------------------------------------------
-// CPhoneUIDisabledNote::SetNoteType
-// ---------------------------------------------------------
-//
-void CPhoneUIDisabledNote::SetNoteType( TPhoneNoteType aNoteType )
-    {
-    iNoteType = aNoteType;
-    }
-
-// ---------------------------------------------------------
-// CPhoneUIDisabledNote::NoteType
-// ---------------------------------------------------------
-//
-TPhoneNoteType CPhoneUIDisabledNote::NoteType()
-    {
-    return iNoteType;
-    }
-
-// ---------------------------------------------------------
-// CPhoneUIDisabledNote::HandlePointerEventL
-// ---------------------------------------------------------
-//
-void CPhoneUIDisabledNote::HandlePointerEventL( 
-    const TPointerEvent& /* aPointerEvent */ )
-    {
-    }
-
-// ---------------------------------------------------------
-// CPhoneUIDisabledNote::UpdateSoftkeysL
-// ---------------------------------------------------------
-//
-void CPhoneUIDisabledNote::UpdateSoftkeysL( TInt aResourceId )
-    {
-    CEikButtonGroupContainer& buttonGroup = ButtonGroupContainer();
-    buttonGroup.SetCommandSetL( aResourceId );
-    
-    buttonGroup.DrawDeferred();
-    }
-
-// ---------------------------------------------------------
-// CPhoneUIDisabledNote::SetSizeAndPosition
-// ---------------------------------------------------------
-//
-void CPhoneUIDisabledNote::SetSizeAndPosition( const TSize& aSize )
-    {
-    CAknNoteDialog::SetSizeAndPosition( aSize );
-    
-	// Override the original layout position to prevent note to hide the call bubble
-	// Will be changed when layout is available	
-    TRect clientRect = CEikonEnv::Static()->EikAppUi()->ClientRect();
-    TRect noteRect;
-    TInt leftMargin = (TInt) ( (clientRect.Width() - aSize.iWidth) / 2);    // Set note to center
-
-    noteRect.SetRect( leftMargin,                // iTl.iX
-            clientRect.iBr.iY - aSize.iHeight,   // iTl.iY
-            leftMargin + aSize.iWidth,           // iBr.iX
-            clientRect.iBr.iY );                 // iBr.iY
-    
-    SetRect( noteRect );
-    }
-
-// End of File
--- a/phoneapp/phoneuiview/src/cphoneview.cpp	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneuiview/src/cphoneview.cpp	Wed Mar 31 21:30:06 2010 +0300
@@ -66,11 +66,7 @@
 // -----------------------------------------------------------------------------
 //
 CPhoneView::CPhoneView( CEikButtonGroupContainer& aCba ) :
-    iSecurityMode ( EFalse ),
-    iActivatePreviousApp( EFalse ),
-    iPhoneAppViewToDialer( EFalse ),
-    iCba ( aCba ),
-    iDialerActivation( EFalse )
+    iCba ( aCba )
     {
     }
 
@@ -151,7 +147,7 @@
                 if ( iSecurityMode )
                     {
                     static_cast<MEikCommandObserver*>( iEikonEnv->EikAppUi() )
-                    ->ProcessCommandL( EPhoneNumberAcqSecurityDialer );
+						->ProcessCommandL( EPhoneViewOpenNumberEntry );
                     return;
                     }
                  else
@@ -313,8 +309,7 @@
         }
     else
         {
-        if ( Layout_Meta_Data::IsLandscapeOrientation() ||
-             iSecurityMode )
+        if ( Layout_Meta_Data::IsLandscapeOrientation() )
             {
             // In landscape and in security mode aRect is ok.
             CCoeControl::SetRect( aRect );    
@@ -371,8 +366,7 @@
         MAknsSkinInstance* skin = AknsUtils::SkinInstance();
         MAknsControlContext* cc = AknsDrawUtils::ControlContext( this );
         
-        if ( iSecurityMode || 
-            !AknsDrawUtils::Background( skin, cc, this, gc, aRect ) )
+        if ( !AknsDrawUtils::Background( skin, cc, this, gc, aRect ) )
             {
             gc.SetPenStyle(CGraphicsContext::ENullPen);
             gc.SetBrushColor( AKN_LAF_COLOR( 0 ) ); // 0 for white
@@ -502,23 +496,10 @@
 //
 void CPhoneView::SetSecurityMode ( TBool aStatus )
     {
-    if ( iSecurityMode != aStatus ) 
-        {
-        iSecurityMode = aStatus;
-        SizeChanged();    
-        }
+    iSecurityMode = aStatus;
     }
     
 // -----------------------------------------------------------------------------
-// CPhoneView::IsSecurityMode
-// -----------------------------------------------------------------------------
-//
-TBool CPhoneView::IsSecurityMode()    
-    {
-    return iSecurityMode;
-    }
-
-// -----------------------------------------------------------------------------
 // CPhoneView::GetActivatePreviousApp
 // -----------------------------------------------------------------------------
 //
--- a/phoneapp/phoneuiview/src/cphoneviewcontroller.cpp	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneuiview/src/cphoneviewcontroller.cpp	Wed Mar 31 21:30:06 2010 +0300
@@ -980,14 +980,6 @@
             iStatusPane->SetTitlePanePictureL( aCommandParam );
             break;
 
-       case EPhoneViewSetSecurityMode:
-            SetSecurityMode( aCommandParam );
-            break;
-
-       case EPhoneViewGetSecurityModeStatus:
-            GetSecurityModeStatus( aCommandParam );
-            break;
-
        case EPhoneViewSetStatusPaneVisible:
             SetStatusPaneVisible( aCommandParam );
             break;
@@ -1088,18 +1080,7 @@
             break;
             }
 
-        case EPhoneViewSetRestrictedDialer:
-            {
-            if ( iDialer )
-                {
-                TPhoneCmdParamBoolean* booleanParam =
-                    static_cast<TPhoneCmdParamBoolean*>( aCommandParam );
-                iDialerController->SetRestrictedDialer(
-                                                booleanParam->Boolean() );
-                }
-            break;
-            }
-        case EPhoneViewSetDtmfOptionsFlag:
+         case EPhoneViewSetDtmfOptionsFlag:
             {
             TPhoneCmdParamBoolean*  booleanParam =
                 static_cast<TPhoneCmdParamBoolean*>( aCommandParam );
@@ -1511,6 +1492,13 @@
             iToolbarController->SetToolbarButtonDimmed( integerParam->Integer(), EFalse );
             }
             break;
+            
+        case EPhoneViewGetQwertyModeObserver:
+            {
+            TPhoneCmdParamPointer* ptrParam = static_cast<TPhoneCmdParamPointer*>( aCommandParam );
+            ptrParam->SetPointer( static_cast<TAny*>( iDialer ) );
+            }
+            break;
 
         default:
             __PHONELOG( EBasic, EPhonePhoneapp, "CPhoneViewController::ExecuteCommand -> UnHandledMessage !!! " );
@@ -1688,8 +1676,19 @@
                     }
                 // Set Number Entry CBA
                 TPhoneCmdParamInteger integerParam;
-                integerParam.SetInteger( CPhoneMainResourceResolver::Instance()->
-                    ResolveResourceID( EPhoneNumberAcqCBA ) );
+                if ( iSecurityMode )
+                	{
+                    iNoteController->DestroyNote();
+                    integerParam.SetInteger(
+                    CPhoneMainResourceResolver::Instance()->
+                              		ResolveResourceID( EPhoneEmergencyModeNoteCBA ) );
+                              	}
+                              else
+                              	{
+                              	integerParam.SetInteger(
+                              		CPhoneMainResourceResolver::Instance()->
+                              		ResolveResourceID( EPhoneNumberAcqCBA ) );
+                              	}
                 ExecuteCommandL( EPhoneViewUpdateCba, &integerParam );
                 // Set flag to false because dialler is set to open status.
                 iPhoneView->SetPhoneAppViewToDialer( EFalse );
@@ -1896,7 +1895,7 @@
                 }
             else
                 {
-                TBool status;
+                TBool status( EFalse );
                 TRAP( err, status = GetNumberFromSpeedDialLocationL( aCommandParam ))
                 if ( err )
                     {
@@ -2151,6 +2150,28 @@
     }
 
 // ---------------------------------------------------------------------------
+// CPhoneViewController::HandleSecurityModeChanged
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CPhoneViewController::HandleSecurityModeChanged( TBool aIsEnabled )
+	{
+	 __PHONELOG1( EBasic, EPhoneUIView,
+            "CPhoneViewController::SetSecurityMode Mode = (%d)", aIsEnabled );
+    iToolbarController->DimToolbar( aIsEnabled );			
+	iPhoneView->SetSecurityMode( aIsEnabled );
+	iMenuController->SetSecurityMode( aIsEnabled );
+	if ( iDialer )
+		{
+		iDialerController->SetRestrictedDialer( aIsEnabled );
+		if ( iSecurityMode != aIsEnabled )
+			{
+			iDialer->RelayoutAndDraw();
+			}
+		}
+	iSecurityMode = aIsEnabled;
+	}
+
+// ---------------------------------------------------------------------------
 // CPhoneViewController::IdleAppUid
 // ---------------------------------------------------------------------------
 //
@@ -2208,20 +2229,7 @@
         }
     }
 
-// ---------------------------------------------------------------------------
-// CPhoneViewController::GetSecurityModeStatus
-// ---------------------------------------------------------------------------
-//
-void CPhoneViewController::GetSecurityModeStatus(
-    TPhoneCommandParam* aCommandParam )
-    {
-    if( aCommandParam->ParamId() == TPhoneCommandParam::EPhoneParamIdBoolean )
-        {
-        TPhoneCmdParamBoolean* booleanValue =
-            static_cast<TPhoneCmdParamBoolean*>( aCommandParam );
-        booleanValue->SetBoolean( iPhoneView->IsSecurityMode() );
-        }
-    }
+
 
 // ---------------------------------------------------------------------------
 // CPhoneViewController::SendToBackgroundL
@@ -3459,21 +3467,6 @@
     CleanupStack::PopAndDestroy( phoneNumber );
     }
 
-// ---------------------------------------------------------------------------
-// CPhoneViewController::SetSecurityMode
-// ---------------------------------------------------------------------------
-//
-void CPhoneViewController::SetSecurityMode(
-                                        TPhoneCommandParam* aCommandParam )
-    {
-    __LOGMETHODSTARTEND(EPhoneUIView,
-        "CPhoneViewController::SetSecurityMode()" );
-    TPhoneCmdParamBoolean* booleanParam = static_cast<TPhoneCmdParamBoolean*>(
-        aCommandParam );
-    iPhoneView->SetSecurityMode( booleanParam->Boolean() );
-    iStatusPane->StatusPane().MakeVisible( !booleanParam->Boolean() );
-    }
-
 // -----------------------------------------------------------
 // CPhoneViewController::SetStatusPaneVisible
 // -----------------------------------------------------------
@@ -3688,11 +3681,7 @@
     {
     __LOGMETHODSTARTEND(EPhoneUIView,
         "CPhoneViewController::SwapEmptyIndicatorPaneInSecureStateL()" );
-
-    TPhoneCmdParamBoolean security;
-    GetSecurityModeStatus( &security );
-
-    if ( security.Boolean() )
+    if ( iSecurityMode )
         {
         if ( aSwapEmpty )
             {
@@ -3800,7 +3789,11 @@
         // Don't make dialer view visible before status pane is updated.
         // This prevents unnecessary resizings.
         iDialerView->MakeVisible( ETrue );
-        iDialerView->DrawDeferred();
+        // Number entry is emptied when dialer is hidden but drawing doesn't
+        // succeed at that point as dialer is hidden first. So must draw
+        // dialer as soon as it becomes visible to prevent the flashing of
+        // number entry (DrawDeferred() isn't fast enough here).
+        iDialerView->DrawNow();
         }
     }
 
@@ -3813,9 +3806,8 @@
     __PHONELOG1( EBasic, EPhoneUIView,
         "CPhoneViewController::SetControltoCallHandlingL iDialerActive (%d)", iDialerActive );
 
-    // Do not show toolbar if securitymode or emergency call active
-    if ( !iPhoneView->IsSecurityMode() && 
-         !iIncallIndicator->IsEmergencyCall() )
+    // Do not show toolbar if emergency call is active
+    if ( !iIncallIndicator->IsEmergencyCall() )
         {
         iToolbarController->ShowToolbar();
         }
--- a/phoneapp/phoneuiview/src/phoneringingtonesrvplayerao.cpp	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneuiview/src/phoneringingtonesrvplayerao.cpp	Wed Mar 31 21:30:06 2010 +0300
@@ -19,10 +19,10 @@
 // INCLUDE FILES
 #include <e32base.h>
 #include <f32file.h>
-#include <Utility.h>
+#include <utility.h>
 #include <AudioPreference.h>
 
-#include "PhoneUI.pan"
+#include "phoneui.pan"
 #include "cphoneringingtone.h"
 #include "cphoneaudioplayer.h"
 #include "cphonetimer.h"
--- a/phoneapp/phoneuiview/src/phoneringingtonesrvsession.cpp	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneuiview/src/phoneringingtonesrvsession.cpp	Wed Mar 31 21:30:06 2010 +0300
@@ -20,9 +20,9 @@
 #include <e32base.h>
 #include <e32svr.h>
 
-#include "MPhoneRingingToneSrv.h"
-#include "PhoneRingingToneSrv.hrh"
-#include "PhoneRingingToneSrvSession.h"
+#include "mphoneringingtonesrv.h"
+#include "phoneringingtonesrv.hrh"
+#include "phoneringingtonesrvsession.h"
 #include "phoneuiviewtrace.h"
 
 // ============================ MEMBER FUNCTIONS ===============================
--- a/phoneapp/phoneuivoipextension/inc/cphonevcchandler.h	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneuivoipextension/inc/cphonevcchandler.h	Wed Mar 31 21:30:06 2010 +0300
@@ -68,7 +68,12 @@
             RArray<CTelMenuExtension::TCallInfo>& aArray, 
             TInt aResourceId,
             CEikMenuPane& aMenuPane );
-         
+       
+        /**
+        * CancelHandoverNoteTimer if running
+        */ 
+        void CancelHandoverNoteTimerL();
+        
     protected:
 
         CPhoneVccHandler( 
@@ -85,11 +90,6 @@
         void StartHandoverNoteTimerL();
        
         /**
-        * CancelHandoverNoteTimer if running
-        */ 
-        void CancelHandoverNoteTimerL();
-        
-        /**
         * Callback function for launching Handover wait note
         * This is called when HO note timer timeout is
         * reached
@@ -108,7 +108,7 @@
         */
         void HandoverInProgressNoteL( TInt aCommand );
 
-		// From MVccPsPropertyListenerObserver        
+// From MVccPsPropertyListenerObserver        
         /**
         *  Gets called when PS key is changed
         * @param aKeyId 
@@ -157,8 +157,14 @@
         // Handover not allowed if multicall
         TBool iNoHoIfMultiCall;
         
-        // Listens for the hand-over commands
-        CVccUiPsPropertyListener* iPropListener; 
+        // Listens for the hand-over status commands
+        CVccUiPsPropertyListener* iPropListener;
+        
+        // Listens for the hand-over request commands
+        CVccUiPsPropertyListener* iPropListenerReq;
+         
+        // Status of Handover failure
+        TBool iHOFailure;
         };
 
 #endif // C_CPHONEVCCHANDLER_H
--- a/phoneapp/phoneuivoipextension/src/cphoneresourceresolvervoip.cpp	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneuivoipextension/src/cphoneresourceresolvervoip.cpp	Wed Mar 31 21:30:06 2010 +0300
@@ -279,8 +279,7 @@
             retVal = R_PHONEUI_VOIP_QUERY_HEADER_MOVED_PERMANENTLY;
             break;
         case EPhoneVoIPMovedPermanentlySoftkeys:
-            //retVal = R_PHONE_VOIP_SOFTKEYS_OK_END_CALL;
-            retVal = R_AVKON_SOFTKEYS_OK_CANCEL;
+            retVal = R_AVKON_SOFTKEYS_OK_ENDCALL;
             break;
         case EPhoneVoIPMultipleChoicesListQuery:
             retVal = R_PHONE_VOIP_MULTIPLE_CHOICES_LIST_QUERY;
--- a/phoneapp/phoneuivoipextension/src/cphonevcchandler.cpp	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneapp/phoneuivoipextension/src/cphonevcchandler.cpp	Wed Mar 31 21:30:06 2010 +0300
@@ -56,7 +56,8 @@
     MPhoneStateMachine& aStateMachine,
     MPhoneViewCommandHandle& aViewCommandHandle ) : 
     iStateMachine( aStateMachine ),
-    iViewCommandHandle( aViewCommandHandle ), iVccHoReady( ETrue )
+    iViewCommandHandle( aViewCommandHandle ), iVccHoReady( ETrue ),
+    iHOFailure ( EFalse )
     {
     }
 
@@ -68,6 +69,7 @@
 CPhoneVccHandler::~CPhoneVccHandler()
     {
     delete iPropListener;
+    delete iPropListenerReq;
     TRAPD( err, CancelHandoverNoteTimerL() );
     if ( err != KErrNone )
         {
@@ -85,7 +87,12 @@
     {
     iPropListener = CVccUiPsPropertyListener::NewL( KVccPropKeyHoStatus );
     iPropListener->AddObserverL( *this );
- 	iPropListener->Start();
+    iPropListener->Start();
+
+    iPropListenerReq = CVccUiPsPropertyListener::NewL( KVccPropKeyHoRequest );
+    iPropListenerReq->AddObserverL( *this );
+    iPropListenerReq->Start();
+ 	
     }
 
 // -----------------------------------------------------------
@@ -274,7 +281,15 @@
         
     if ( iVccHoReady && !iHandoverNoteTimer )
         {
-        iViewCommandHandle.ExecuteCommandL( EPhoneViewRemoveGlobalNote );            
+        iViewCommandHandle.ExecuteCommandL( EPhoneViewRemoveGlobalNote );
+        if ( iHOFailure )
+            {
+            iHOFailure = EFalse;
+            CPhoneState* phoneState = 
+            static_cast< CPhoneState* >( iStateMachine.State() ); 
+            phoneState->SendGlobalInfoNoteL( EPhoneVoIPHandoverFail );
+            
+            }
         } 
     }
     
@@ -284,10 +299,16 @@
 //
 void CPhoneVccHandler::HandoverInProgressNoteL( TInt aCommand )
     {
-     TPhoneCmdParamGlobalNote globalNoteParam;  
+    __LOGMETHODSTARTEND( PhoneUIVoIPExtension, 
+            "CPhoneVccHandler::HandoverInProgressNoteL()");
+    
+    TPhoneCmdParamGlobalNote globalNoteParam;  
           
-// Check notification tone user setting
-     TInt tone = GetHoNotifToneModeL();
+    // Check notification tone user setting
+    TInt tone = GetHoNotifToneModeL();
+    
+    __PHONELOG1( EBasic, EPhoneControl,
+                "CPhoneVccHandler::HandoverInProgressNoteL - tone: %d", tone );
     
       if ( tone == 1 )
            {
@@ -324,6 +345,41 @@
     __PHONELOG1( EBasic, EPhoneControl,
             "CPhoneVccHandler::VccPropertyChangedL - key: %d", aValue );
 
+    if( aKeyId == KVccPropKeyHoRequest )
+        {
+        switch( aValue )
+            {
+            case  EVccAutomaticStartPsToCsHoRequest:
+                {
+                __PHONELOG( EBasic, PhoneUIVoIPExtension,
+                    "CPhoneVccHandler::VccPropertyChangedL VccPropertyChangedL -- EVccAutomaticStartPsToCsHoRequest" );
+                // Do not show if already started since the wait note is 
+                // already visible
+                if ( iVccHoReady && !iHandoverNoteTimer )
+                    {
+                    iVccHoReady = EFalse;
+                    HandoverInProgressNoteL( EPhoneVoIPWaitHandoverFromWlan );
+                    }
+                }
+                break;
+            case EVccAutomaticStartCsToPsHoRequest:
+                {
+                __PHONELOG( EBasic, PhoneUIVoIPExtension,
+                    "CPhoneVccHandler::VccPropertyChangedL VccPropertyChangedL -- EVccAutomaticStartCsToPsHoRequest" );
+                // Do not show if already started since the wait note is 
+                // already visible
+                if ( iVccHoReady && !iHandoverNoteTimer )
+                    {
+                    iVccHoReady = EFalse;
+                    HandoverInProgressNoteL( EPhoneVoIPWaitHandoverFromGsm );
+                    }
+                }                
+                break;
+            default:
+                // none
+                break;
+            }
+        }
     
     if( aKeyId == KVccPropKeyHoStatus )
   		{
@@ -338,11 +394,12 @@
                 if( !iVccHoReady )
                     {
                     iVccHoReady = ETrue;
-                    CPhoneState* phoneState = 
-                               static_cast< CPhoneState* >( iStateMachine.State() ); 
-                    CancelHandoverNoteTimerL();
-                    phoneState->SendGlobalInfoNoteL( EPhoneVoIPHandoverFail );
-                    }
+                    iHOFailure = ETrue;
+                    if ( !iHandoverNoteTimer )
+                        {
+                        RemoveHandoverNoteL();
+                        }
+                     }
                  }
                 break;
             case EVccCsToPsHoSuccessful:
@@ -358,9 +415,9 @@
                 {
                 __PHONELOG( EBasic, PhoneUIVoIPExtension,
                     "CPhoneVccHandler::VccPropertyChangedL VccPropertyChangedL -- CsToPsHoStarted" );
-                // Do not show if manually started since the wait note is 
+                // Do not show if already started since the wait note is 
                 // already visible
-                if ( iVccHoReady )
+                if ( iVccHoReady && !iHandoverNoteTimer )
                     {
                     iVccHoReady = EFalse;
                     HandoverInProgressNoteL( EPhoneVoIPWaitHandoverFromGsm );
@@ -371,9 +428,9 @@
                 {
                 __PHONELOG( EBasic, PhoneUIVoIPExtension,
                     "CPhoneVccHandler::VccPropertyChangedL VccPropertyChangedL -- PsToCsHoStarted" );
-                // Do not show if manually started since the wait note is 
+                // Do not show if already started since the wait note is 
                 // already visible
-                if ( iVccHoReady )
+                if ( iVccHoReady && !iHandoverNoteTimer )
                     {
                     iVccHoReady = EFalse;
                     HandoverInProgressNoteL( EPhoneVoIPWaitHandoverFromWlan);
@@ -401,6 +458,14 @@
                 iVccHoAllowedToWlan = ETrue;
                 iNoHoIfMultiCall = EFalse;
                 iVccUnavailable = EFalse;
+                if( !iVccHoReady )
+                    {
+                    iVccHoReady = ETrue;
+                    if ( !iHandoverNoteTimer )
+                        {
+                        RemoveHandoverNoteL();
+                        }
+                     }
                 break;
                 }
             case EVccCsToPsNotAllowed:
@@ -470,6 +535,9 @@
 //
 TInt CPhoneVccHandler::GetHoNotifToneModeL()
     {
+    __LOGMETHODSTARTEND( PhoneUIVoIPExtension, 
+            "CPhoneVccHandler::GetHoNotifToneModeL() ");
+    
     // Find out VCC service id
      CSPProperty* property = CSPProperty::NewLC();
     
@@ -484,6 +552,9 @@
     TInt voipId;
     TInt error = property->GetValue( voipId );
     
+    __PHONELOG1( EBasic, EPhoneControl,
+        "CPhoneVccHandler::GetHoNotifToneModeL - voipId: %d", voipId ); 
+    
     // Find and get the HO notification tone property
     TInt tone = 0;
     RBuf value;
--- a/phoneengine/PhoneCntFinder/ContactService/inc/cphcntcontactdataselection.h	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneengine/PhoneCntFinder/ContactService/inc/cphcntcontactdataselection.h	Wed Mar 31 21:30:06 2010 +0300
@@ -20,7 +20,7 @@
 #define CPHCNTCONTACTDATASELECTION_H
 
 #include <e32base.h>
-#include "mphcntmatch.h"
+#include "MPhCntMatch.h"
 
 NONSHARABLE_CLASS( CPhCntSelectedData ) : public CBase
     {
--- a/phoneengine/PhoneCntFinder/inc/Misc/MPhCntThumbnailLoaderObserver.h	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneengine/PhoneCntFinder/inc/Misc/MPhCntThumbnailLoaderObserver.h	Wed Mar 31 21:30:06 2010 +0300
@@ -21,7 +21,7 @@
 
 // INCLUDES
 #include    <e32base.h>
-#include    "cphcntthumbnailloader.h"
+#include    "CPhCntThumbnailLoader.h"
 
 // FORWARD DECLARATIONS
 class CFbsBitmap;
--- a/phoneengine/servicehandling/src/cpeservicehandling.cpp	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneengine/servicehandling/src/cpeservicehandling.cpp	Wed Mar 31 21:30:06 2010 +0300
@@ -130,6 +130,9 @@
 	                  "PE CPEServiceHandling::EnableServiceL, Error: %d"
 	                  , error );
 	         SendErrorMessage( error );
+	       
+             iCurrentServiceId = KErrNotFound;
+             service->RemoveObserver( *this );	
 	         }
 	    }
 	
--- a/phoneuis/dialer/bwins/dialeru.def	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneuis/dialer/bwins/dialeru.def	Wed Mar 31 21:30:06 2010 +0300
@@ -8,5 +8,8 @@
 	??1CDialer@@UAE@XZ @ 7 NONAME ; CDialer::~CDialer(void)
 	?GetEasyDialingInterface@CDialer@@QBEPAVCDialingExtensionInterface@@XZ @ 8 NONAME ; class CDialingExtensionInterface * CDialer::GetEasyDialingInterface(void) const
 	?SetControllerL@CDialer@@QAEXPAVMPhoneDialerController@@@Z @ 9 NONAME ; void CDialer::SetControllerL(class MPhoneDialerController *)
-	??1CVideoDTMFDialer@@UAE@XZ @ 10 NONAME ; CVideoDTMFDialer::~CVideoDTMFDialer(void)
+	?RelayoutAndDraw@CDialer@@QAEXXZ @ 10 NONAME ; void CDialer::RelayoutAndDraw(void)
+	??1CVideoDTMFDialer@@UAE@XZ @ 11 NONAME ; CVideoDTMFDialer::~CVideoDTMFDialer(void)
+	?HandleKeyboardLayoutChange@CDialer@@UAEXXZ @ 12 NONAME ; void CDialer::HandleKeyboardLayoutChange(void)
+	?HandleQwertyModeChange@CDialer@@UAEXH@Z @ 13 NONAME ; void CDialer::HandleQwertyModeChange(int)
 
--- a/phoneuis/dialer/eabi/dialeru.def	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneuis/dialer/eabi/dialeru.def	Wed Mar 31 21:30:06 2010 +0300
@@ -7,11 +7,16 @@
 	_ZN7CDialer11NumberEntryEv @ 6 NONAME
 	_ZN7CDialer13UpdateToolbarEv @ 7 NONAME
 	_ZN7CDialer14SetControllerLEP22MPhoneDialerController @ 8 NONAME
-	_ZN7CDialer22SetNumberEntryObserverER20MNumberEntryObserver @ 9 NONAME
-	_ZN7CDialer4NewLERK11CCoeControlRK5TRectP22MPhoneDialerController @ 10 NONAME
-	_ZN7CDialerD0Ev @ 11 NONAME
-	_ZN7CDialerD1Ev @ 12 NONAME
-	_ZN7CDialerD2Ev @ 13 NONAME
-	_ZNK7CDialer23GetEasyDialingInterfaceEv @ 14 NONAME
-	_ZThn52_N7CDialer22SetNumberEntryObserverER20MNumberEntryObserver @ 15 NONAME
+	_ZN7CDialer15RelayoutAndDrawEv @ 9 NONAME
+	_ZN7CDialer22SetNumberEntryObserverER20MNumberEntryObserver @ 10 NONAME
+	_ZN7CDialer4NewLERK11CCoeControlRK5TRectP22MPhoneDialerController @ 11 NONAME
+	_ZN7CDialerD0Ev @ 12 NONAME
+	_ZN7CDialerD1Ev @ 13 NONAME
+	_ZN7CDialerD2Ev @ 14 NONAME
+	_ZNK7CDialer23GetEasyDialingInterfaceEv @ 15 NONAME
+	_ZThn52_N7CDialer22SetNumberEntryObserverER20MNumberEntryObserver @ 16 NONAME
+	_ZN7CDialer22HandleQwertyModeChangeEi @ 17 NONAME
+	_ZN7CDialer26HandleKeyboardLayoutChangeEv @ 18 NONAME
+	_ZThn64_N7CDialer22HandleQwertyModeChangeEi @ 19 NONAME
+	_ZThn64_N7CDialer26HandleKeyboardLayoutChangeEv @ 20 NONAME
 
--- a/phoneuis/dialer/group/dialer.mmp	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneuis/dialer/group/dialer.mmp	Wed Mar 31 21:30:06 2010 +0300
@@ -50,6 +50,7 @@
 
 USERINCLUDE ../inc 
 USERINCLUDE ../data 
+USERINCLUDE ../../../phoneapp/phoneuiutils/inc 
 
 APP_LAYER_SYSTEMINCLUDE
 
@@ -72,7 +73,7 @@
 LIBRARY PtiEngine.lib
 LIBRARY centralrepository.lib
 LIBRARY cenrepnotifhandler.lib 
-
+LIBRARY serviceprovidersettings.lib
 
 // Keypad resources. Header is generated only for the
 // default variant, all the variants use the same header.
--- a/phoneuis/dialer/inc/cdialer.h	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneuis/dialer/inc/cdialer.h	Wed Mar 31 21:30:06 2010 +0300
@@ -25,6 +25,7 @@
 #include <coemain.h>
 
 #include "mnumberentry.h"
+#include "mphoneqwertymodeobserver.h"
 
 // CONSTANTS
 
@@ -118,7 +119,11 @@
     delete dialer;
 *
 */
-NONSHARABLE_CLASS(CDialer) : public CCoeControl, public MNumberEntry, public MCoeControlObserver // easy dialing change
+NONSHARABLE_CLASS(CDialer) : 
+	public CCoeControl, 
+	public MNumberEntry, 
+	public MCoeControlObserver,
+	public MPhoneQwertyModeObserver
     {
     public:  // Constructors and destructor
 
@@ -177,6 +182,18 @@
          */
         IMPORT_C void UpdateToolbar();
         
+        /**
+         * Updates number entry editor to correct state. State depends on
+         * qwerty availability and easydialing and voip settings. 
+         */
+        void UpdateNumberEntryConfiguration();
+        
+		
+		/**
+		 * Relayout and draw control. Also updates toolbar.
+		 */
+		IMPORT_C void RelayoutAndDraw();
+
     public: // from MNumberEntry 
 
         /**
@@ -255,6 +272,17 @@
         */             
         void EnableTactileFeedback( const TBool aEnable );
 
+        /**
+        * Handle Qwerty mode change.
+        * @param aMode 0 = off, 1 = on
+        */
+        IMPORT_C void HandleQwertyModeChange( TInt aMode );
+
+        /**
+        * @see MIdleQwertyModeObserver.
+        */
+        IMPORT_C void HandleKeyboardLayoutChange();
+
     private: // Functions from MCoeControlObserver
         
         void HandleControlEventL( CCoeControl* aControl, TCoeEvent aEventType );
@@ -349,13 +377,21 @@
          * Returns edwin state
          * @return Pointer to CAknEdwinState
          */
-        CAknEdwinState* EdwinState();
+        CAknEdwinState* EdwinState() const;
         
+        /** Editor types. */
+        enum TEditorType
+            {
+            ENumericEditor,
+            EAlphanumericEditor,
+            EVirtualKeyboardEditor
+            };
+                
         /**
          * Updates editor flags for virtual
          * keyboard.
          */
-        void UpdateVkbEditorFlagsL();
+        void UpdateEdwinState( TEditorType aType );
 
         /**
          * Loads easydialing plugin. If loading fails (for instance when
@@ -376,7 +412,7 @@
          * the availability and state of Easy dialing. 
          */
         void LayoutNumberEntry( const TRect& aParent, TInt aVariety );
-        
+                
     private:    // Data
           
         // Keypad container  - owned
@@ -421,6 +457,11 @@
          * Not owned.
          */
         MPhoneDialerController* iController;
+        
+        /*
+         * Is qwerty mode on.
+         */
+        TBool iQwertyMode;
     };
 
 #endif      // CDIALER_H
--- a/phoneuis/dialer/inc/cdialerkeypadbutton.h	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneuis/dialer/inc/cdialerkeypadbutton.h	Wed Mar 31 21:30:06 2010 +0300
@@ -35,6 +35,16 @@
 */
 NONSHARABLE_CLASS( CDialerKeyPadButton ) : public CAknButton
     {
+    public: // Enumerations
+
+        enum TDialerKeyPadButtonEvent
+            {
+            /* Reported to the observer when pointer is dragged outside
+             * the button's area.
+             */
+            EEventDraggingOutsideButton = 200
+            };
+        
     public:
     
         /**
@@ -134,6 +144,11 @@
          */
         void SizeChanged();
         
+        /**
+         * @see CAknButton
+         */
+        void HandlePointerEventL( const TPointerEvent& aPointerEvent );
+        
     private:
 
         void UpdateIconL();
@@ -213,6 +228,9 @@
         
         /** Rect inside the button where icon is drawn (if available) */
         TRect iIconRect;
+        
+        /** Own variable for counting drag events, cannot use the one in base class */
+        TInt iDragEventCounter;
     };
 
 #endif // C_CDIALERKEYPADBUTTON_H
--- a/phoneuis/dialer/inc/cdialerkeypadcontainer.h	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneuis/dialer/inc/cdialerkeypadcontainer.h	Wed Mar 31 21:30:06 2010 +0300
@@ -193,6 +193,13 @@
          * Helper to manage keypad button labels
          */
         CDialerKeyPadLabelManager* iKeyLabelManager;
+        
+        /**
+         * True if key up event has been simulated in order to cancel
+         * long tap action due to dragging pointer outside of
+         * pressed button.
+         */
+        TBool iKeyUpSimulatedDueToDragging;
     };
 
 #endif      // CDIALERKEYPADCONTAINER_H
--- a/phoneuis/dialer/inc/cdialernumberentry.h	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneuis/dialer/inc/cdialernumberentry.h	Wed Mar 31 21:30:06 2010 +0300
@@ -294,7 +294,7 @@
         CAknPhoneNumberEditor* iEditor;
         
         //Prompt text label for number entry.
-        CEikLabel* iLabel;        
+        CEikLabel* iLabel;
         
         // NE Font.
         CFbsFont* iNEFont;
@@ -309,9 +309,9 @@
         
         TRect iInnerRect;
         
-        MNumberEntryObserver* iObserver;    
+        MNumberEntryObserver* iObserver;
         
-        TBool iNumberContents;  
+        TBool iNumberContents;
         
         TBuf<KDialerPhoneNumberEntryBufferSize> iPreviousNumberEntryContent;
 
--- a/phoneuis/dialer/inc/dialercommon.h	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneuis/dialer/inc/dialercommon.h	Wed Mar 31 21:30:06 2010 +0300
@@ -53,7 +53,8 @@
     EDialerPanicChineseScriptError,
     EDialerPanicLabelNotFound,
     EDialerPanicToolbarButtonNotFound,
-    EDialerPanicNullController
+    EDialerPanicNullController,
+    EDialerPanicEventFromUnknownControl
     };
 
 #endif // DIALERCOMMON_H
--- a/phoneuis/dialer/src/cdialer.cpp	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneuis/dialer/src/cdialer.cpp	Wed Mar 31 21:30:06 2010 +0300
@@ -31,6 +31,7 @@
 #include <data_caging_path_literals.hrh>    // for KDC_APP_RESOURCE_DIR
 #include <bautils.h>                        // for BaflUtils
 #include <aknedsts.h>
+#include <spsettings.h>
 #include <dialingextensioninterface.h>
 #include <easydialingcommands.hrh>
 #include <dialer.rsg>
@@ -212,6 +213,48 @@
         }
     }
 
+// ---------------------------------------------------------------------------
+// CDialer::UpdateNumberEntryConfiguration
+// ---------------------------------------------------------------------------
+//
+void CDialer::UpdateNumberEntryConfiguration()
+    {
+    TEditorType editorType = ENumericEditor;
+    if ( iQwertyMode && iController->EasyDialingAllowed() )
+        {
+        TBool voipSupported( EFalse );
+        CSPSettings* serviceProviderSettings = NULL;
+        TRAPD( err, serviceProviderSettings = CSPSettings::NewL() );
+        if ( !err )
+            {
+            voipSupported = serviceProviderSettings->IsFeatureSupported( 
+                ESupportInternetCallFeature );            
+            delete serviceProviderSettings;
+            }
+
+        if ( EasyDialingEnabled() || voipSupported )
+            {
+            editorType = EAlphanumericEditor;
+            }
+        }
+    
+    UpdateEdwinState( editorType );
+    }
+
+// ---------------------------------------------------------------------------
+// CDialer::RelayoutAndDraw
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CDialer::RelayoutAndDraw()
+	{
+	if ( iIsUsed )
+		{
+		SetSize( Size() );
+		DrawDeferred();
+		UpdateToolbar();
+		}
+	}
+
 // Methods from MNumberEntry
 
 // ---------------------------------------------------------------------------
@@ -226,6 +269,8 @@
     
     iIsUsed = ETrue;    
 
+    UpdateNumberEntryConfiguration();
+    
     DIALER_PRINT("CDialer::CreateNumberEntry>");        
     }
     
@@ -319,7 +364,7 @@
 void CDialer::OpenVkbL()
     {
     iVirtualKeyBoardOpen = ETrue;
-    UpdateVkbEditorFlagsL();
+    UpdateEdwinState( EVirtualKeyboardEditor );
     
     iNumberEntry->HandleCommandL( EDialerCmdTouchInput );
     }
@@ -331,7 +376,8 @@
 //
 TInt CDialer::GetEditorMode() const
     {
-    return iVirtualKeyBoardOpen ? EAknEditorTextInputMode : 
+    TBool vkbOpen = EdwinState()->Flags() & EAknEditorFlagTouchInputModeOpened;
+    return ( iQwertyMode || vkbOpen ) ? EAknEditorTextInputMode : 
                                   EAknEditorNumericInputMode;
     }
     
@@ -365,6 +411,24 @@
     iKeypadArea->EnableTactileFeedback( aEnable );
     }
 
+// ---------------------------------------------------------
+// CDialer::HandleQwertyModeChange
+// ---------------------------------------------------------
+//
+EXPORT_C void CDialer::HandleQwertyModeChange( TInt aMode )
+    {
+    iQwertyMode = aMode;
+    UpdateNumberEntryConfiguration();
+    }
+
+// ---------------------------------------------------------
+// CDialer::HandleKeyboardLayoutChange
+// ---------------------------------------------------------
+// 
+EXPORT_C void CDialer::HandleKeyboardLayoutChange()
+    {
+    }
+
 // ---------------------------------------------------------------------------
 // CDialer::HandleControlEventL
 // ---------------------------------------------------------------------------
@@ -547,9 +611,7 @@
         // Clear editor flags and report
         // edwin state changed.
         iVirtualKeyBoardOpen = EFalse;
-        iNumberEntry->ClearEditorFlags();
-        EdwinState()->ReportAknEdStateEventL(
-                MAknEdStateObserver::EAknEdwinStateEventStateUpdate );
+        UpdateNumberEntryConfiguration();
         }
     }
 
@@ -653,7 +715,7 @@
 //  
 // ---------------------------------------------------------------------------
 //
-CAknEdwinState* CDialer::EdwinState()
+CAknEdwinState* CDialer::EdwinState() const
     {
     MCoeFepAwareTextEditor_Extension1* extension = 
         static_cast<MCoeFepAwareTextEditor_Extension1*>
@@ -663,31 +725,71 @@
     } 
 
 // ---------------------------------------------------------------------------
-// CDialer::UpdateVkbEditorFlagsL
+// CDialer::UpdateEdwinState
 //  
 // ---------------------------------------------------------------------------
 //
-void CDialer::UpdateVkbEditorFlagsL()
+void CDialer::UpdateEdwinState( TEditorType aType )
     {
     CAknEdwinState* edwinState = EdwinState();
-    // Set flags, input mode, SCT, permitted modes,
-    // keymapping and menu for alphanumeric virtual
-    // keyboard.
-    edwinState->SetCurrentInputMode( EAknEditorTextInputMode );
-    edwinState->SetSpecialCharacterTableResourceId( 
-        R_AVKON_URL_SPECIAL_CHARACTER_TABLE_DIALOG );    
-    edwinState->SetFlags( EAknEditorFlagNoT9 |
-                          EAknEditorFlagLatinInputModesOnly | 
-                          EAknEditorFlagNoEditIndicators );            
-    edwinState->SetPermittedInputModes( 
-                          EAknEditorNumericInputMode |
-                          EAknEditorTextInputMode );    
-    edwinState->SetNumericKeymap( EAknEditorAlphanumericNumberModeKeymap );    
-    edwinState->SetMenu();
     
-    // Report state updated
-    edwinState->ReportAknEdStateEventL(
-                    MAknEdStateObserver::EAknEdwinStateEventStateUpdate );
+    switch ( aType )
+        {
+        case ENumericEditor:
+            {
+            iNumberEntry->ClearEditorFlags();
+            }
+            break;
+        
+        case EAlphanumericEditor:
+        case EVirtualKeyboardEditor:
+            // intended fall-through
+            {
+            TBool vkbOpen = edwinState->Flags() & EAknEditorFlagTouchInputModeOpened;
+            TInt flags = EAknEditorFlagNoT9 | 
+                         EAknEditorFlagLatinInputModesOnly |
+                         EAknEditorFlagSelectionVisible;
+            edwinState->SetDefaultInputMode( EAknEditorTextInputMode );
+            edwinState->SetCurrentInputMode( EAknEditorTextInputMode );
+            
+            if ( EVirtualKeyboardEditor == aType || vkbOpen )
+                {
+                // Indicators would be shown after closing VKB unless disabled
+                // here.
+                flags = ( flags |= EAknEditorFlagNoEditIndicators );
+                }
+            else
+                {
+                iVirtualKeyBoardOpen = EFalse;
+                }
+            
+            edwinState->SetFlags( flags );
+            edwinState->SetPermittedInputModes( 
+                EAknEditorNumericInputMode | EAknEditorTextInputMode );
+            edwinState->SetPermittedCases( 
+                EAknEditorUpperCase | EAknEditorLowerCase );
+            edwinState->SetDefaultCase( EAknEditorLowerCase );
+            edwinState->SetCurrentCase( EAknEditorLowerCase );
+            edwinState->SetSpecialCharacterTableResourceId( 
+                R_AVKON_URL_SPECIAL_CHARACTER_TABLE_DIALOG );
+            edwinState->SetNumericKeymap( 
+                EAknEditorAlphanumericNumberModeKeymap );
+            edwinState->SetMenu();
+            }
+            break;
+        
+        default:
+            DIALER_PRINT( "CDialer::ConfigureEditorSettings, DEFAULT" )
+            ASSERT( EFalse );
+        }
+    
+    TRAPD( result, edwinState->ReportAknEdStateEventL(
+        MAknEdStateObserver::EAknEdwinStateEventStateUpdate ) );
+    
+    if ( KErrNone != result )
+        {
+        DIALER_PRINTF( "CDialer::ConfigureEditorSettings, RESULT: %d", result )
+        }
     }
 
 // ---------------------------------------------------------------------------
--- a/phoneuis/dialer/src/cdialerkeypadbutton.cpp	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneuis/dialer/src/cdialerkeypadbutton.cpp	Wed Mar 31 21:30:06 2010 +0300
@@ -19,17 +19,17 @@
 
 // INCLUDE FILES
 #include <gulicon.h>
-#include <aknutils.h>
+#include <AknUtils.h>
 #include <aknbutton.h>
-#include <akncontrol.h>
-#include <aknsutils.h>
-#include <aknsskininstance.h>
-#include <aknsdrawutils.h>
+#include <AknControl.h>
+#include <AknsUtils.h>
+#include <AknsSkinInstance.h>
+#include <AknsDrawUtils.h>
 #include <data_caging_path_literals.hrh> // for KDC_APP_RESOURCE_DIR
 #include <touchfeedback.h>
 #include <aknlayoutscalable_avkon.cdl.h>
 #include <aknlayoutscalable_apps.cdl.h>
-#include <aknsframebackgroundcontrolcontext.h>
+#include <AknsFrameBackgroundControlContext.h>
 
 #include "dialercommon.h"
 #include "dialertrace.h"
@@ -52,6 +52,9 @@
 
 static const TInt KCent = 100;
 
+// Copied from CAknButton
+const TInt KDragEventSensitivity = 1;
+
 // ---------------------------------------------------------------------------
 // C++ default constructor
 // ---------------------------------------------------------------------------
@@ -233,6 +236,49 @@
     SetIconLayout( buttonRect );
     }
 
+// ---------------------------------------------------------------------------
+// Pointer event handling. Implemented here just to detect when touch is 
+// dragged outside pressed button as no appropriate control event is sent 
+// by CAknButton when this happens.
+// ---------------------------------------------------------------------------
+// 
+void CDialerKeyPadButton::HandlePointerEventL( const TPointerEvent& aPointerEvent )
+    {   
+    // Do the check before forwarding events to base class as it will update
+    // iButtonPressed member variable used here. 
+    // Own drag event counter has to be used.
+    // Logic here to determine whether pointer is dragged outside button is 
+    // the same as used in CAknButton.
+    
+    if ( State() && IsVisible() )
+        {
+        if ( aPointerEvent.iType == TPointerEvent::EButton1Down )
+            {
+            iDragEventCounter = 0;
+            }
+         else if ( aPointerEvent.iType == TPointerEvent::EDrag )
+            {
+            iDragEventCounter++;
+            if ( iDragEventCounter >= KDragEventSensitivity  )
+                {
+                iDragEventCounter = 0;
+                
+                TBool buttonEvent( Rect().Contains( aPointerEvent.iPosition ) );
+                
+                // Pointer is dragged outside the pressed button area
+                if ( !buttonEvent && iButtonPressed && Observer() )
+                    {
+                    Observer()->HandleControlEventL( this,
+                            static_cast<MCoeControlObserver::TCoeEvent>( 
+                            CDialerKeyPadButton::EEventDraggingOutsideButton ) );
+                    }
+                }
+            }
+        }
+
+    CAknButton::HandlePointerEventL( aPointerEvent );
+    }
+
 // -----------------------------------------------------------------------------
 // Gets the correct text color.
 // -----------------------------------------------------------------------------
--- a/phoneuis/dialer/src/cdialerkeypadcontainer.cpp	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneuis/dialer/src/cdialerkeypadcontainer.cpp	Wed Mar 31 21:30:06 2010 +0300
@@ -33,7 +33,7 @@
 #include <data_caging_path_literals.hrh> // for KDC_APP_RESOURCE_DIR
 #include <touchfeedback.h>
 #include <aknlayoutscalable_avkon.cdl.h>
-#include <aknsframebackgroundcontrolcontext.h>
+#include <AknsFrameBackgroundControlContext.h>
 
 #include "cdialerkeypadcontainer.h"
 #include "dialercommon.h"
@@ -176,7 +176,8 @@
 
     if ( aPointerEvent.iType == TPointerEvent::EButton1Down ) 
         {
-        iPointerEvent = aPointerEvent;    
+        iPointerEvent = aPointerEvent; 
+        iKeyUpSimulatedDueToDragging = EFalse;
         }
     DIALER_PRINT("KeyPadContainer::HandlePointerEventL>");     
     }
@@ -352,8 +353,7 @@
     {
     DIALER_PRINT("KeyPadContainer::CreateButtonsL<");
     
-    TInt flags ( KAknButtonReportOnLongPress|
-                 KAknButtonReportOnKeyDown  |
+    TInt flags ( KAknButtonReportOnKeyDown  |
                  KAknButtonRequestExitOnButtonUpEvent );
     
     for ( TInt i = 0; i < KNumberOfButtons; i++ )
@@ -400,9 +400,10 @@
     DIALER_PRINTF("KeyPadContainer::HandleControlEventL.EventType=",
                  (TInt)aEventType);
     
-   if ( aEventType == EEventStateChanged   || 
-        aEventType == EEventRequestCancel ||
-        aEventType == EEventRequestExit)
+    if ( aEventType == EEventStateChanged   || 
+         aEventType == EEventRequestCancel ||
+         aEventType == EEventRequestExit ||
+         aEventType == CDialerKeyPadButton::EEventDraggingOutsideButton )
         
         {
         // Find tapped control 
@@ -417,15 +418,18 @@
                 }    
             }
         
-        __ASSERT_ALWAYS( tappedButton, 
-        _L("CDialerKeyPadContainer::HandleControlEventL, invalid button handle")); // TODO: This is meaningless statement, use either Panic or make this only comment.
+        if ( !tappedButton )
+            {
+            __ASSERT_DEBUG( EFalse, DialerPanic( EDialerPanicEventFromUnknownControl ) );
+            return;
+            }
         
         // Send key event to phone.
         TKeyEvent keyEvent;
         keyEvent.iScanCode = tappedButton->ScanCode();
         keyEvent.iModifiers = ( EModifierNumLock | EModifierKeypad ); // Mark that this event is dialer simulated
-        keyEvent.iRepeats = 0;  
-             
+        keyEvent.iRepeats = 0;
+        
         switch ( aEventType )
             {
             case EEventRequestExit:
@@ -433,10 +437,15 @@
                 {
                 DIALER_PRINT("HandleControlEventL.EEventRequestExit");
                 iButtonPressedDown = EFalse;
-                keyEvent.iCode = 0;
-                ControlEnv()->SimulateKeyEventL( keyEvent, EEventKeyUp );
+                if ( !iKeyUpSimulatedDueToDragging )
+                    {
+                    keyEvent.iCode = 0;
+                    ControlEnv()->SimulateKeyEventL( keyEvent, EEventKeyUp );
+                    }
+                iKeyUpSimulatedDueToDragging = EFalse;
                 }
                 break;
+                
             case EEventStateChanged:
                 {    
                 DIALER_PRINT("HandleControlEventL.EEventStateChanged");
@@ -444,7 +453,7 @@
                 keyEvent.iCode = tappedButton->KeyCode();
                 iParentControl.PrepareForFocusGainL();
 
-                ControlEnv()->SimulateKeyEventL( keyEvent, EEventKeyDown );    
+                ControlEnv()->SimulateKeyEventL( keyEvent, EEventKeyDown );
 
                 if( iButtonPressedDown )
                     {
@@ -453,13 +462,29 @@
                     }
                 }
                 break;
+            
+            case CDialerKeyPadButton::EEventDraggingOutsideButton:
+                {
+                DIALER_PRINT("HandleControlEventL.EEventDraggingOutsideButton");
+                // User hasn't released touch yet but in order to cancel
+                // long press action handled and initiated by parent control, 
+                // we must send key up event now.
+                if ( !iKeyUpSimulatedDueToDragging )
+                    {
+                    keyEvent.iCode = 0;
+                    ControlEnv()->SimulateKeyEventL( keyEvent, EEventKeyUp );
+                    iKeyUpSimulatedDueToDragging = ETrue;
+                    }
+                }
+                break;
+                
             default:
             break;
             }
         }
-    DIALER_PRINT("KeyPadContainer::HandleControlEventL>");        
+    DIALER_PRINT("KeyPadContainer::HandleControlEventL>");
     }
-    
+
 // ---------------------------------------------------------------------------
 // CDialerKeyPadContainer::HandleResourceChange
 //
@@ -575,7 +600,7 @@
     {
     for ( TInt i=0; i < iButtons.Count(); i++ )
         {
-        (( CDialerKeyPadButton* )iButtons[i])->EnableAudioFeedback( aEnable );
+        iButtons[i]->EnableAudioFeedback( aEnable );
         }
 
     }
--- a/phoneuis/dialer/src/cdialernumberentry.cpp	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneuis/dialer/src/cdialernumberentry.cpp	Wed Mar 31 21:30:06 2010 +0300
@@ -92,14 +92,14 @@
     ConstructEditorFromResourceL( reader );
     
     iFrameContext = CAknsFrameBackgroundControlContext::NewL(
-            KAknsIIDNone, TRect(0,0,4,4), TRect(1,1,3,3), EFalse );    
+            KAknsIIDNone, TRect(0,0,4,4), TRect(1,1,3,3), EFalse );
             
-    iFrameContext->SetFrame( KAknsIIDQsnFrCall2Rect );      
+    iFrameContext->SetFrame( KAknsIIDQsnFrCall2Rect );
     
     iFrameContext->SetParentContext( 
-        AknsDrawUtils::ControlContextOfParent(this) );           
+        AknsDrawUtils::ControlContextOfParent(this) );
                 
-    CleanupStack::PopAndDestroy();    // reader    
+    CleanupStack::PopAndDestroy();    // reader
     iEditor->SetObserver( this );
     
     iLabel = new( ELeave ) CEikLabel;
@@ -107,7 +107,7 @@
     iLabel->SetParent( this );
     iLabel->SetMopParent( this ); 
     iLabel->SetTextL( KNullDesC );
-    iLabel->MakeVisible( EFalse );    
+    iLabel->MakeVisible( EFalse );
     CheckLabelSkinningColor();
     
     iAppUi = iEikonEnv->EikAppUi();
@@ -215,7 +215,7 @@
     {
     DIALER_PRINT("numberentry::SetTextToNumberEntry<");
     
-    iEditor->SetText( aDesC );   
+    iEditor->SetText( aDesC );
     
     if ( iEasyDialer && iOperationMode == EModeEasyDialing )
         {
@@ -325,12 +325,12 @@
         {
         HandleEditorFormatting();
         
-        InformNumberEntryState();        
+        InformNumberEntryState();
         
         iEditor->DrawDeferred();
         }
     
-    DIALER_PRINT("numberentry::HandleControlEventL>");                
+    DIALER_PRINT("numberentry::HandleControlEventL>");
     }
 
 // ---------------------------------------------------------------------------
@@ -494,14 +494,14 @@
     HBufC* truncation = aReader.ReadHBufCL();
     CleanupStack::PushL( truncation );
     TInt formatCount = aReader.ReadInt16();
-    iEditor->ConstructL( maxChars, maxLines, formatCount, *truncation );  
-    CleanupStack::PopAndDestroy( truncation );       
+    iEditor->ConstructL( maxChars, maxLines, formatCount, *truncation );
+    CleanupStack::PopAndDestroy( truncation );
     iFormatCount = formatCount;
 
     for ( TInt ii = 0; ii < iFormatCount; ii++ )
         {
         CAknPhoneNumberEditor::TFormat format( aReader );
-	    CalculateLayout( format, ii );
+        CalculateLayout( format, ii );
         iEditor->AddFormat( format );
         }
 
@@ -520,7 +520,7 @@
     for ( TInt ii = 0; ii < iFormatCount; ii++ )
         {
         CAknPhoneNumberEditor::TFormat format( iEditor->Format( ii ) );
-		CalculateLayout( format, ii );
+        CalculateLayout( format, ii );
         iEditor->Format( ii ) = format;
         }
 
@@ -620,7 +620,22 @@
     // text.
     if ( iEditor->IsFocused() )
         {
-        CCoeControl::HandlePointerEventL( aPointerEvent );
+        // If user hits the margin area between this control and the actual editor
+        // control, then the event position is moved to be inside the editor region.
+        // This makes it easier to move cursor with finger touch, especially in
+        // both ends of the number field.
+        TPoint eventPos( aPointerEvent.iPosition );
+        TRect editorRect( iEditor->Rect() );
+        editorRect.Shrink( 1, 1 ); // take rect which is fully inside the editor rect
+        eventPos.iX = Min( eventPos.iX, editorRect.iBr.iX );
+        eventPos.iX = Max( eventPos.iX, editorRect.iTl.iX );
+        eventPos.iY = Min( eventPos.iY, editorRect.iBr.iY );
+        eventPos.iY = Max( eventPos.iY, editorRect.iTl.iY );
+    
+        TPointerEvent modEvent( aPointerEvent );
+        modEvent.iPosition = eventPos;
+        
+        CCoeControl::HandlePointerEventL( modEvent );
         }
     }
 
@@ -640,8 +655,8 @@
     if ( iEditor->CurrentFormatIndex() != format )
         {
         iEditor->DrawDeferred();
-        iEditor->SetFormat( format );              
-        iFrameContext->SetRect( Rect() );                
+        iEditor->SetFormat( format );
+        iFrameContext->SetRect( Rect() );
         }
     
     }
@@ -687,43 +702,49 @@
         TAknLayoutRect innerRectLayout;
         innerRectLayout.LayoutRect( aOuterRect, AknLayoutScalable_Apps::bg_dia3_numentry_pane_g1() );
         aInnerRect = innerRectLayout.Rect();
+        
+        // Add a bit of margin to left and right ends of the entry field if layout
+        // doens't define enough. This is to enhance the touch usability.
+        static const TInt KMinMargin( 10 );
+        aInnerRect.iTl.iX = Max( aInnerRect.iTl.iX, aOuterRect.iTl.iX + KMinMargin );
+        aInnerRect.iBr.iX = Min( aInnerRect.iBr.iX, aOuterRect.iBr.iX - KMinMargin );
         }
     else
         {
         if ( Layout_Meta_Data::IsMirrored() )
             {
-            TAknLayoutRect frameTopRight;        
+            TAknLayoutRect frameTopRight;
             frameTopRight.LayoutRect( 
              aFrameRect, 
-             AknLayoutScalable_Apps::bg_popup_call2_rect_pane_g3().LayoutLine() );                
+             AknLayoutScalable_Apps::bg_popup_call2_rect_pane_g3().LayoutLine() );
                     
-            TAknLayoutRect frameBottomLeft;        
+            TAknLayoutRect frameBottomLeft;
             frameBottomLeft.LayoutRect( 
              aFrameRect, 
-             AknLayoutScalable_Apps::bg_popup_call2_rect_pane_g4().LayoutLine() );                        
+             AknLayoutScalable_Apps::bg_popup_call2_rect_pane_g4().LayoutLine() );
     
             aOuterRect = TRect( frameTopRight.Rect().iTl, 
                                 frameBottomLeft.Rect().iBr );
                     
             aInnerRect = TRect( frameTopRight.Rect().iBr, 
-                                frameBottomLeft.Rect().iTl );    
+                                frameBottomLeft.Rect().iTl );
             }
         else
             {
-            TAknLayoutRect frameTopLeft;        
+            TAknLayoutRect frameTopLeft;
             frameTopLeft.LayoutRect( 
-             aFrameRect, 
-             AknLayoutScalable_Apps::bg_popup_call2_rect_pane_g2().LayoutLine() );
+                aFrameRect, 
+                AknLayoutScalable_Apps::bg_popup_call2_rect_pane_g2().LayoutLine() );
     
-            TAknLayoutRect frameBottomRight;        
+            TAknLayoutRect frameBottomRight;
             frameBottomRight.LayoutRect( 
-             aFrameRect, 
-             AknLayoutScalable_Apps::bg_popup_call2_rect_pane_g5().LayoutLine() );
+                aFrameRect, 
+                AknLayoutScalable_Apps::bg_popup_call2_rect_pane_g5().LayoutLine() );
             
             aOuterRect = TRect( frameTopLeft.Rect().iTl, 
                                 frameBottomRight.Rect().iBr );
             aInnerRect = TRect( frameTopLeft.Rect().iBr, 
-                                frameBottomRight.Rect().iTl );    
+                                frameBottomRight.Rect().iTl );
             }
         }
     }    
@@ -799,8 +820,7 @@
         TRAP_IGNORE( iLabel->OverrideColorL( EColorLabelText, skinColor ) );
         }   
     }
-    
-    
+
 // -----------------------------------------------------------------------------
 // CDialerNumberEntry::MakeVisible( TBool aVisible )
 // -----------------------------------------------------------------------------
@@ -810,8 +830,7 @@
 	CCoeControl::MakeVisible( aVisible );
 	iEditor->MakeVisible( aVisible );
 	}
-	
-	
+
 // -----------------------------------------------------------------------------
 // CDialerNumberEntry::SetEasyDialingPlugin
 // -----------------------------------------------------------------------------
--- a/phoneuis/dialer/src/cdialerstub.cpp	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneuis/dialer/src/cdialerstub.cpp	Wed Mar 31 21:30:06 2010 +0300
@@ -126,7 +126,16 @@
     {
     // empty
     }
-
+	
+// ---------------------------------------------------------------------------
+// CDialer::RelayoutAndDraw
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CDialer::RelayoutAndDraw()
+	{
+	// Empty
+	}
+	
 // Methods from MNumberEntry
 
 // ---------------------------------------------------------------------------
@@ -264,6 +273,24 @@
     }
 
 
+// ---------------------------------------------------------
+// CDialer::HandleQwertyModeChange
+// ---------------------------------------------------------
+//
+EXPORT_C void CDialer::HandleQwertyModeChange( TInt /*aMode*/ )
+    {
+    // Empty
+    }
+
+// ---------------------------------------------------------
+// CDialer::HandleKeyboardLayoutChange
+// ---------------------------------------------------------
+// 
+EXPORT_C void CDialer::HandleKeyboardLayoutChange()
+    {
+     // Empty
+   }
+
 // ---------------------------------------------------------------------------
 // CDialer::HandleControlEventL
 // ---------------------------------------------------------------------------
@@ -416,17 +443,17 @@
 //  
 // ---------------------------------------------------------------------------
 //
-CAknEdwinState* CDialer::EdwinState()
+CAknEdwinState* CDialer::EdwinState() const
     {
     return NULL;
     } 
 
 // ---------------------------------------------------------------------------
-// CDialer::UpdateVkbEditorFlagsL
+// CDialer::UpdateEdwinState
 //  
 // ---------------------------------------------------------------------------
 //
-void CDialer::UpdateVkbEditorFlagsL()
+void CDialer::UpdateEdwinState( TEditorType /* aType */ )
     {
     // Empty
     }
--- a/phoneuis/dialer/src/cdialingextensionobserver.cpp	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneuis/dialer/src/cdialingextensionobserver.cpp	Wed Mar 31 21:30:06 2010 +0300
@@ -100,6 +100,7 @@
         case MDialingExtensionObserver::EEasyDialingEnabled:
             {
             // order dialer to refresh its layout
+            iDialer->UpdateNumberEntryConfiguration();
             iDialer->SetSize( iDialer->Size() );
             if (iDialingExtension && iNumberEntry)
                 {
@@ -113,6 +114,7 @@
         case MDialingExtensionObserver::EEasyDialingDisabled:
             {
             // order parent to refresh its layout
+            iDialer->UpdateNumberEntryConfiguration();
             iDialer->SetSize( iDialer->Size() );
             iDialer->DrawDeferred();
             }
--- a/phoneuis/easydialing/group/easydialingplugin.mmp	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneuis/easydialing/group/easydialingplugin.mmp	Wed Mar 31 21:30:06 2010 +0300
@@ -89,6 +89,9 @@
 LIBRARY cdlengine.lib
 LIBRARY aknlayout2.lib
 
+// Transition effects
+LIBRARY gfxtrans.lib
+
 // AIW library
 LIBRARY servicehandler.lib
 
--- a/phoneuis/easydialing/inc/easydialingcontactdatamanager.h	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneuis/easydialing/inc/easydialingcontactdatamanager.h	Wed Mar 31 21:30:06 2010 +0300
@@ -26,6 +26,7 @@
 #include <MVPbkContactViewBase.h>
 #include <TPbk2ImageManagerParams.h>
 #include <MPbkGlobalSetting.h> // For name order setting
+#include <MVPbkContactViewObserver.h>
 #include "easydialingcontactdata.h"
 
 // FORWARD DECLARATIONS
@@ -47,7 +48,8 @@
         public MVPbkContactStoreObserver,
         public MVPbkOperationErrorObserver,
         public MVPbkOperationResultObserver<MVPbkContactViewBase*>,
-        public MPbkGlobalSettingObserver
+        public MPbkGlobalSettingObserver,
+        public MVPbkContactViewObserver
         
     {
 public:
@@ -279,6 +281,33 @@
             MVPbkContactOperationBase* aOperation,
             MVPbkContactViewBase* aOperationResult );
 
+    
+private:
+    /**
+     * From MVPbkContactViewObserver.
+     * For observing changes to favourites view.
+     */
+    virtual void ContactViewReady(
+            MVPbkContactViewBase& aView );
+
+    virtual void ContactViewUnavailable(
+            MVPbkContactViewBase& aView );
+
+    virtual void ContactAddedToView(
+            MVPbkContactViewBase& aView, 
+            TInt aIndex, 
+            const MVPbkContactLink& aContactLink );
+
+    virtual void ContactRemovedFromView(
+            MVPbkContactViewBase& aView, 
+            TInt aIndex, 
+            const MVPbkContactLink& aContactLink );
+
+    virtual void ContactViewError(
+            MVPbkContactViewBase& aView, 
+            TInt aError, 
+            TBool aErrorNotified );
+
 private:
        
     void InitReady();
@@ -296,6 +325,8 @@
     void GetAvailableServicesL( MVPbkStoreContact* aContact, TInt aIndex );
     
     void InformObserver();
+    
+    void UpdateNameOrderL();
 
 private:
     /** Array that contains all loaded contact data. Owned. */
@@ -343,6 +374,9 @@
     /** View to vpbk containing all favourite contacts. Owned. */
     MVPbkContactViewBase* iFavsView;
         
+    /** Favourites view is ready to be used. */
+    TBool iFavsViewReady;
+    
     /** Virtual phonebook operation handle for getting favourites. Owned. */
     MVPbkContactOperationBase* iFavsOperation;
     
--- a/phoneuis/easydialing/inc/easydialingplugin.h	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneuis/easydialing/inc/easydialingplugin.h	Wed Mar 31 21:30:06 2010 +0300
@@ -255,6 +255,11 @@
     void NameOrderChanged();
     
     /**
+    * From MContactDataManagerObserver.
+    */
+    void FavouritesChanged();
+    
+    /**
     * From MEDContactorObserver.
     */
     void InformContactorEvent( MEDContactorObserver::TEvent aEvent );
@@ -368,7 +373,8 @@
         EVideoCallCurrentContact,
         ESendMessageCurrentContact,
         ELaunchCurrentContact,
-		ELaunchSearch
+        ELaunchSearch,
+        EInitializePcs
         };
  
    /**
@@ -393,6 +399,21 @@
      */
     void CancelActionLaunchAndInputBlock();
     
+    /**
+     * Handles change events from contact database and favourites view.
+     */
+    void DoHandleContactsChangedL();
+    
+    /**
+     * Makes contact listbox visible. Effect is used if feasible.
+     */  
+    void ShowContactListBoxWithEffect();
+    
+    /**
+     * Makes contact listbox invisible. Effect is used if feasible.
+     */  
+    void HideContactListBoxWithEffect();
+    
     
 private:
 
--- a/phoneuis/easydialing/inc/mcontactdatamanagerobserver.h	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneuis/easydialing/inc/mcontactdatamanagerobserver.h	Wed Mar 31 21:30:06 2010 +0300
@@ -20,7 +20,7 @@
 
 /**
  *  MContactDataManagerObserver
- *  Thumbnail manager observer interface
+ *  Contact data manager observer interface
  */
 class MContactDataManagerObserver
     {
@@ -28,6 +28,8 @@
     virtual void AllContactDataLoaded() = 0;
     
     virtual void NameOrderChanged() = 0;
+    
+    virtual void FavouritesChanged() = 0;
     };
 
 #endif //__MCONTACTDATAMANAGEROBSERVER_H__
--- a/phoneuis/easydialing/src/easydialingcontactdatamanager.cpp	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneuis/easydialing/src/easydialingcontactdatamanager.cpp	Wed Mar 31 21:30:06 2010 +0300
@@ -115,17 +115,10 @@
     
     iPbkSettings = PbkGlobalSettingFactory::CreatePersistentSettingL();
     iPbkSettings->ConnectL( MPbkGlobalSetting::EGeneralSettingCategory );
-    
-    /*
-    * Phonebook name ordering flag, integer value, possible values:
-    * 0: name order Lastname Firstname
-    * 1: name order Firstname Lastname
-    * 2: name order undefined
-    */
-    TInt nameOrderSetting;
-    iPbkSettings->Get( MPbkGlobalSetting::ENameOrdering, nameOrderSetting );
-    iNameOrder = ( nameOrderSetting == 0 ? ELastnameFirstname : EFirstnameLastname );
     iPbkSettings->RegisterObserverL( this );
+
+    // Get name order from Phonebook settings
+    UpdateNameOrderL();
     }
 
 // ---------------------------------------------------------------------------
@@ -195,7 +188,7 @@
     TUint idVal(0);
     TLex lex(aId);
     lex.Val(idVal, EHex);
-	
+    
     TBool retVal;
     
     CEasyDialingContactData* thumbnail = iContactDataArray[idVal];
@@ -211,7 +204,7 @@
         retVal = EFalse;
         if (iWaitingContacts.Find(idVal) == KErrNotFound)
             {
-            LOGSTRING1("iWaitingContacts.Append %d", idVal);            
+            LOGSTRING1("iWaitingContacts.Append %d", idVal);
             iWaitingContacts.Append(idVal);
             TRAPD(err, LoadNextContactDataL());
             if (err)
@@ -230,7 +223,7 @@
 //
 TBool CEasyDialingContactDataManager::IsFavL( MVPbkContactLink* aLink )
     {
-    if ( iFavsView && iFavsView->IndexOfLinkL( *aLink ) > KErrNotFound )
+    if ( iFavsView && iFavsViewReady && iFavsView->IndexOfLinkL( *aLink ) > KErrNotFound )
         {
         return ETrue;
         }
@@ -246,7 +239,7 @@
 //
 TInt CEasyDialingContactDataManager::NumberOfFavsL()
     {
-    if ( iFavsView )
+    if ( iFavsView && iFavsViewReady )
         {
         return iFavsView->ContactCountL();
         }
@@ -262,7 +255,7 @@
 //
 MVPbkContactLink* CEasyDialingContactDataManager::FavLinkLC( TInt aIndex )
     {
-    if ( !iFavsView )
+    if ( !iFavsView || !iFavsViewReady )
         {
         // LC function should not return normally unless it has actually
         // put something to cleanup stack
@@ -450,9 +443,7 @@
     {
     if ( aKey == MPbkGlobalSetting::ENameOrdering )
         {
-        TInt nameOrderSetting;
-        iPbkSettings->Get( MPbkGlobalSetting::ENameOrdering, nameOrderSetting );
-        iNameOrder = ( nameOrderSetting == 0 ? ELastnameFirstname : EFirstnameLastname );
+        UpdateNameOrderL();
         if ( iObserver )
             {
             iObserver->NameOrderChanged();
@@ -461,6 +452,54 @@
     }
 
 // ---------------------------------------------------------------------------
+// CEasyDialingContactDataManager::UpdateNameOrderL
+// Update name order according to Phonebook setting
+// ---------------------------------------------------------------------------
+//
+void CEasyDialingContactDataManager::UpdateNameOrderL()
+    {
+    /*
+    * Phonebook name ordering flag, integer value, possible values:
+    * 0: name order Lastname Firstname
+    * 1: name order Firstname Lastname
+    * 2: name order undefined
+    */
+    TInt nameOrderSetting;
+    iPbkSettings->Get( MPbkGlobalSetting::ENameOrdering, nameOrderSetting );
+    
+    switch ( nameOrderSetting )
+        {
+        case 0:
+            {
+            iNameOrder = ELastnameFirstname;
+            break;
+            }
+        case 1:
+            {
+            iNameOrder = EFirstnameLastname;
+            break;
+            }
+        case 2:
+        default:
+            {
+            // Decide name order based on UI language: lastname-firstname
+            // for Chinese, firstname-lastname for the rest of languages.
+            TLanguage uiLang = User::Language();
+            if ( uiLang == ELangPrcChinese || 
+                 uiLang == ELangHongKongChinese ||
+                 uiLang == ELangTaiwanChinese )
+                {
+                iNameOrder = ELastnameFirstname;
+                }
+            else
+                {
+                iNameOrder = EFirstnameLastname;
+                }
+            }
+        }
+    }
+
+// ---------------------------------------------------------------------------
 // CEasyDialingContactDataManager::DoHandleImageGetCompleteL
 // ---------------------------------------------------------------------------
 //
@@ -594,7 +633,16 @@
     iImageOperation = NULL;
     delete iContactOperation;
     iContactOperation = NULL;
-    if (iObserver)
+    
+    // Also mark all contact data as loaded. Otherwise it would just be
+    // loaded again, which would cause infinite loop if there is a permanent
+    // problem.
+    for ( TInt i = 0; i < iContactDataArray.Count(); i++ )
+        {
+        iContactDataArray[i]->LoadingComplete();
+        }
+    
+    if ( iObserver )
         {
         iObserver->AllContactDataLoaded();
         }
@@ -666,6 +714,7 @@
     iFavsOperation = NULL;        
     delete iFavsView;
     iFavsView = NULL;
+    iFavsViewReady = EFalse;
 
     InitReady();
     }
@@ -682,11 +731,102 @@
     iFavsOperation = NULL;
     delete iFavsView;
     iFavsView = aOperationResult;
+    iFavsViewReady = ETrue;
+    
+    // Leave can be safely ignored. Notifications of favourites view changes
+    // will not work, but otherwise Easydialing will work correctly.
+    TRAP_IGNORE( iFavsView->AddObserverL( *this ) );
     
     InitReady();
     }
 
 // ---------------------------------------------------------------------------
+// CEasyDialingContactDataManager::ContactViewReady
+// From MVPbkContactViewObserver.
+// ---------------------------------------------------------------------------
+//
+void CEasyDialingContactDataManager::ContactViewReady(
+        MVPbkContactViewBase& aView )
+    {
+    LOGSTRING("CEasyDialingContactDataManager: ContactViewReady");
+    
+    if ( iFavsView == &aView )
+        {
+        iFavsViewReady = ETrue;
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// CEasyDialingContactDataManager::ContactViewUnavailable
+// From MVPbkContactViewObserver.
+// ---------------------------------------------------------------------------
+//
+void CEasyDialingContactDataManager::ContactViewUnavailable(
+        MVPbkContactViewBase& aView )
+    {
+    LOGSTRING("CEasyDialingContactDataManager: ContactViewUnavailable");
+    
+    if ( iFavsView == &aView )
+        {
+        iFavsViewReady = EFalse;
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// CEasyDialingContactDataManager::ContactAddedToView
+// From MVPbkContactViewObserver.
+// ---------------------------------------------------------------------------
+//
+void CEasyDialingContactDataManager::ContactAddedToView(
+        MVPbkContactViewBase& aView, 
+        TInt /*aIndex*/, 
+        const MVPbkContactLink& /*aContactLink*/ )
+    {
+    LOGSTRING("CEasyDialingContactDataManager: ContactAddedToView");
+    
+    if ( iFavsView == &aView )
+        {
+        iObserver->FavouritesChanged();
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// CEasyDialingContactDataManager::ContactRemovedFromView
+// From MVPbkContactViewObserver.
+// ---------------------------------------------------------------------------
+//
+void CEasyDialingContactDataManager::ContactRemovedFromView(
+        MVPbkContactViewBase& aView, 
+        TInt /*aIndex*/, 
+        const MVPbkContactLink& /*aContactLink*/ )
+    {
+    LOGSTRING("CEasyDialingContactDataManager: ContactRemovedFromView");
+    
+    if ( iFavsView == &aView )
+        {
+        iObserver->FavouritesChanged();
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// CEasyDialingContactDataManager::ContactViewError
+// From MVPbkContactViewObserver.
+// ---------------------------------------------------------------------------
+//
+void CEasyDialingContactDataManager::ContactViewError(
+        MVPbkContactViewBase& aView, 
+        TInt /*aError*/, 
+        TBool /*aErrorNotified*/ )
+    {
+    LOGSTRING("CEasyDialingContactDataManager: ContactViewError");
+    
+    if ( iFavsView == &aView )
+        {
+        iFavsViewReady = EFalse;
+        }
+    }
+
+// ---------------------------------------------------------------------------
 // CEasyDialingContactDataManager::DoHandleContactOperationCompleteL
 // ---------------------------------------------------------------------------
 //
@@ -731,7 +871,7 @@
         }
     else
         {
-        // Protective coding. If aContact is NULL, act like opening the contact link failed.
+        // Opening contact failed. Mark contact data loaded, so it's not opened again.
         CEasyDialingContactData *tn = iContactDataArray[aIndex];
         tn->LoadingComplete();
         LOGSTRING1("iWaitingContacts.Remove %d", iWaitingContacts[0]);            
@@ -800,12 +940,18 @@
 //
 void CEasyDialingContactDataManager::VPbkSingleContactOperationFailed(
         MVPbkContactOperationBase& /*aOperation*/, 
-        TInt aError )
+        TInt /*aError*/ )
     {
     LOGSTRING("CEasyDialingContactDataManager: VPbkSingleContactOperationFailed");
     delete iContactOperation;
     iContactOperation = NULL;
-    HandleError(aError);
+    TInt index = iWaitingContacts[0];
+    LOGSTRING1("VPbkSingleContactOperationFailed, Index=%d", index);
+    TRAPD(err, DoHandleContactOperationCompleteL(NULL, index));
+    if (err)
+        {
+        HandleError(err);
+        }
     LOGSTRING("CEasyDialingContactDataManager: VPbkSingleContactOperationFailed Exit");
     }
 
@@ -836,7 +982,7 @@
 //
 TBool CEasyDialingContactDataManager::GetContactThumbnailSetting( )
     {
-     return iContactThumbnailSetting;
+    return iContactThumbnailSetting;
     }
 
 // ---------------------------------------------------------------------------
@@ -846,13 +992,13 @@
 void  CEasyDialingContactDataManager::Reload( )
     {
     LOGSTRING("CEasyDialingContactDataManager: Reload");
+    
     for ( TInt i = 0 ; i < iContactDataArray.Count() ; i++ )
         {
         iContactDataArray[ i ]->DeleteThumbnail();
         }
     }
 
-// TODO: open item: sorting of favourites
 
 //  End of File
 
--- a/phoneuis/easydialing/src/easydialinglistbox.cpp	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneuis/easydialing/src/easydialinglistbox.cpp	Wed Mar 31 21:30:06 2010 +0300
@@ -279,46 +279,57 @@
     {
     CEikFormattedCellListBox::SizeChanged();
     
+    TRect parentRect = Rect();
+    
     // Set the listbox colors.
     // For some reason, calling this in HandleResourceChange is not enough, it does
     // not get called in situation it should.
     ItemDrawer()->SetColors();
-   
-    // resize scroll bar
+    
+    // Get all the layout rects
+    TAknLayoutRect rect;
+    TInt variety = ( Layout_Meta_Data::IsLandscapeOrientation() ? 1 : 0 );
+
+    TAknWindowComponentLayout viewLayout( AknLayoutScalable_Apps::dia3_list_pane( variety ) );
+    rect.LayoutRect(parentRect, viewLayout );
+    TRect viewRect( rect.Rect() );
+    // Add a bit of margin around the view as layout doesn't define any
+    viewRect.Shrink( KListBoxMarginWidth, KListBoxMarginWidth );
+    
+    TAknWindowComponentLayout scrollBarLayout( AknLayoutScalable_Apps::scroll_pane_cp12() );
+    rect.LayoutRect( parentRect, scrollBarLayout );
+    TRect scrollBarRect( rect.Rect() );
+
+    TRect viewAndScrollBarRect( viewRect );
+    if ( AknLayoutUtils::LayoutMirrored() )
+        {
+        viewAndScrollBarRect.iTl.iX = scrollBarRect.iTl.iX + KListBoxMarginWidth;
+        }
+    else
+        {
+        viewAndScrollBarRect.iBr.iX = scrollBarRect.iBr.iX - KListBoxMarginWidth;
+        }
+
+    // If scrollbar is not needed, then we can use all the space for the list view
+    if ( GetHeightBasedOnNumberOfItems( iNumberOfNames ) <= parentRect.Height() )
+        {
+        viewRect = viewAndScrollBarRect;
+        scrollBarRect.SetWidth( 0 );
+        }
+
+    // Set view rect
+    iView->SetViewRect( viewRect );
+    
+    // Set scroll bar rect
     if ( iSBFrame )
         {
-        TAknLayoutRect rect;
-        TInt variety = ( Layout_Meta_Data::IsLandscapeOrientation() ? 1 : 0 );
-    
-        TAknWindowComponentLayout viewLayout( AknLayoutScalable_Apps::dia3_list_pane( variety ) );
-        rect.LayoutRect( Rect(), viewLayout );
-        TRect viewRect( rect.Rect() );
-        // Add a bit of margin around the view as layout doesn't define any
-        viewRect.Shrink( KListBoxMarginWidth, KListBoxMarginWidth );
-        
-        TAknWindowComponentLayout scrollBarLayout( AknLayoutScalable_Apps::scroll_pane_cp12() );
-        rect.LayoutRect( Rect(), scrollBarLayout );
-        TRect scrollBarRect( rect.Rect() );
-
-        iView->SetViewRect( viewRect );
-        
         CAknDoubleSpanScrollBar* scrollbar = static_cast <CAknDoubleSpanScrollBar*>( iSBFrame->VerticalScrollBar() );
-
         scrollbar->SetFixedLayoutRect( scrollBarRect );
         scrollbar->SetRect( scrollBarRect );
-        
-        TRect viewAndScrollBarRect( viewRect );
-        
-        if ( AknLayoutUtils::LayoutMirrored() )
-            {
-            viewAndScrollBarRect.iTl = scrollBarRect.iTl;
-            }
-        else
-            {
-            viewAndScrollBarRect.iBr = scrollBarRect.iBr;
-            }
-        iBGContext->SetFrameRects( Rect(), viewAndScrollBarRect );
+        scrollbar->MakeVisible( scrollBarRect.Width() != 0 );
         }
+
+    iBGContext->SetFrameRects( parentRect, viewAndScrollBarRect );
     }
 
 
--- a/phoneuis/easydialing/src/easydialinglistboxdata.cpp	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneuis/easydialing/src/easydialinglistboxdata.cpp	Wed Mar 31 21:30:06 2010 +0300
@@ -466,9 +466,8 @@
         DrawArrowIcon( aGc, arrowRect );
         }
 
-    TInt textWidth( 0 );
     TInt err( KErrNone );
-    TRAP( err, textWidth = DrawTextWithMatchHighlightL(
+    TRAP( err, DrawTextWithMatchHighlightL(
             boundingBox, aGc, cellText, iContactNameFont, aColors, aHighlight ) );
 
     if ( !err && TextUtils::ColumnText( cellText , 2, aText ) == KErrNone ) 
--- a/phoneuis/easydialing/src/easydialinglistboxitemdrawer.cpp	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneuis/easydialing/src/easydialinglistboxitemdrawer.cpp	Wed Mar 31 21:30:06 2010 +0300
@@ -27,7 +27,7 @@
 #include <aknlistboxtfxinternal.h>
 #include <aknlistboxtfx.h>
 #include <akntransitionutils.h>
-#include <aknutils.h>
+#include <AknUtils.h>
 
 // EXTERNAL DATA STRUCTURES
 
--- a/phoneuis/easydialing/src/easydialingplugin.cpp	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneuis/easydialing/src/easydialingplugin.cpp	Wed Mar 31 21:30:06 2010 +0300
@@ -75,6 +75,9 @@
 #include <phoneappcommands.hrh>
 #include <bautils.h>    // for BaflUtils
 
+// Transition effects
+#include <gfxtranseffect/gfxtranseffect.h>
+
 // EXTERNAL DATA STRUCTURES
 
 // EXTERNAL FUNCTION PROTOTYPES
@@ -101,6 +104,11 @@
 
 const TInt KMaxRunInfoArrayCount = 20;
 
+// Transition context_uid for dialer_list component effects
+#define KGfxContactListBoxUid TUid::Uid( 0x2000B47B )
+const TInt KGfxContactListBoxOpenEffect  = 3;
+const TInt KGfxContactListBoxCloseEffect = 4;
+
 // MACROS
 
 // LOCAL CONSTANTS AND MACROS
@@ -190,12 +198,6 @@
     iContactDataManager->ConstructL();
     iContactDataManager->SetObserver(this);
 
-    PERF_MEASURE_START
-
-    InitPredictiveContactSearchL();
-
-    PERF_MEASURE_STOP
- 
     // Find a handle to ca launcher extension MCCAConnectionExt.
     // Easydialing has to use the extension API, because it needs function CloseAppL
     // only found in extension.
@@ -260,6 +262,11 @@
 
     delete iListBoxModel;
     
+    if ( iContactListBox )
+        {
+        GfxTransEffect::Deregister( iContactListBox );
+        }
+    
     delete iContactListBox;
 
     if (iContactLauncher)
@@ -313,12 +320,20 @@
     model->SetItemTextArray( iListBoxModel );
     model->SetOwnershipType( ELbmDoesNotOwnItemArray );
 
-
     iContactListBox->MakeVisible( EFalse );
     
     SetFocus( EFalse );    
     iContactListBox->ActivateL();
-
+    
+    GfxTransEffect::Register( iContactListBox, 
+                              KGfxContactListBoxUid, EFalse );
+    
+    // Do delayed initialization of PCS. PCS constructions takes a long time.
+    // On the other hand, easy dialing initialization is done in phone application
+    // constructor, so it contributes the whole system boot time. These are good 
+    // reasons not to construct PCS in easy dialing constructor, but do it later as
+    // an asynchronous operation.
+    AsyncActionLaunchL( EInitializePcs );
     }
 
 
@@ -635,9 +650,14 @@
     // It's assumed later on in the code that string is not just empty space.
     TLex searchString( aSearchString );
     searchString.SkipSpace();
-    if ( searchString.Eos() )
+    if ( searchString.Eos() ) // the end of the string reached after skipping empty space
         {
-        // the end of the string reached after skipping empty space
+        // It's assumed here that if we get here due to switching to call
+        // handling etc, then dialer and thus ed is already set invisible
+        // and effect will not be shown as listbox is already invisible.
+        // However if user empties number entry, then it's feasible to show
+        // effect.
+        HideContactListBoxWithEffect();
         Reset();
         }
     else // proper search string
@@ -703,35 +723,15 @@
         case TVPbkContactStoreEvent::EContactDeleted:
         case TVPbkContactStoreEvent::EContactChanged:
             {
-            if ( iSearchString.Length() > 0 )
-                {
-                if ( iContactLauncherActive )
-                    {
-                    // Set the flag to make a search when communication launcher exits.
-                    iNewSearchNeeded = ETrue;                   
-                    }
-                else
-                    {
-                    // We get here if user e.g. leaves dialer open and goes to Contacts
-                    // application and does some editing.
-                    iContactDataManager->Reload(); // to update thumbnails
-                    AsyncActionLaunchL( ELaunchSearch );
-                    }
-                }
+            DoHandleContactsChangedL();
             }
-            
             break;
        
         default:
-            
             break;
         }
-    
-
-    
     }
 
-
 // -----------------------------------------------------------------------------
 // CEasyDialingPlugin::OpenComplete
 // From MVPbkContactStoreListObserver.
@@ -797,6 +797,16 @@
     }
 
 // -----------------------------------------------------------------------------
+// FavouritesChanged
+// From MContactDataManagerObserver
+// -----------------------------------------------------------------------------
+//
+void CEasyDialingPlugin::FavouritesChanged()
+    {
+    TRAP_IGNORE( DoHandleContactsChangedL() );
+    }
+
+// -----------------------------------------------------------------------------
 // InformContactorEvent
 // From MEDContactorObserver
 // -----------------------------------------------------------------------------
@@ -846,7 +856,7 @@
 //
 void CEasyDialingPlugin::LaunchSearchL()
     {
-    if ( iSearchString.Length() == 0 )
+    if ( iSearchString.Length() == 0 || !iPredictiveContactSearchHandler )
         {
         return;
         }
@@ -1092,11 +1102,11 @@
         iContactListBox->HandleItemAdditionL();
         // Scroll the list to bottom
         iContactListBox->ScrollToMakeItemVisible( iNumberOfNames-1 );
-        iContactListBox->MakeVisible( ETrue );
+        ShowContactListBoxWithEffect();
         }
     else
-        {
-        iContactListBox->MakeVisible( EFalse );
+        {  
+        HideContactListBoxWithEffect();
         }
 
     if ( IsFocused() )
@@ -1611,6 +1621,14 @@
         LaunchSearchL();
         return;
         }
+    else if ( iActionToBeLaunched == EInitializePcs )
+        {
+        PERF_MEASURE_START
+        InitPredictiveContactSearchL();
+        PERF_MEASURE_STOP
+ 
+        return;
+        }
     
     // If not for launching current contact or performing search, 
     // the action is launching some communication method.
@@ -1759,6 +1777,79 @@
      iInputBlocker = NULL;
      }
 
+// -----------------------------------------------------------------------------
+// CEasyDialingPlugin::DoHandleContactsChangedL
+// -----------------------------------------------------------------------------
+//
+void CEasyDialingPlugin::DoHandleContactsChangedL()
+    {
+    if ( iSearchString.Length() > 0 )
+        {
+        if ( iContactLauncherActive )
+            {
+            // Set the flag to make a search when communication launcher exits.
+            iNewSearchNeeded = ETrue;                   
+            }
+        else
+            {
+            // We get here if user e.g. leaves dialer open and goes to Contacts
+            // application and does some editing.
+            iContactDataManager->Reload(); // to update thumbnails
+            AsyncActionLaunchL( ELaunchSearch );
+            }
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CEasyDialingPlugin::ShowContactListBoxWithEffect
+// Use appear/disappear effects when in foreground and when listbox truly
+// changes visiblity.
+// -----------------------------------------------------------------------------
+//
+void CEasyDialingPlugin::ShowContactListBoxWithEffect()
+    {  
+    CAknAppUi* appUi = static_cast<CAknAppUi*>( iCoeEnv->AppUi() );
+       
+    // Show effect only if listbox is about to come visible.
+    if ( !iContactListBox->IsVisible() &&
+         appUi && appUi->IsForeground() && 
+         GfxTransEffect::IsRegistered( iContactListBox ) )
+        {
+        GfxTransEffect::Begin( iContactListBox, KGfxContactListBoxOpenEffect );
+        iContactListBox->MakeVisible( ETrue );
+        GfxTransEffect::SetDemarcation( iContactListBox, iContactListBox->Rect() );
+        GfxTransEffect::End( iContactListBox );
+        }
+    else
+        {
+        iContactListBox->MakeVisible( ETrue );
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CEasyDialingPlugin::HideContactListBoxWithEffect
+// -----------------------------------------------------------------------------
+//
+void CEasyDialingPlugin::HideContactListBoxWithEffect()
+    {
+    CAknAppUi* appUi = static_cast<CAknAppUi*>( iCoeEnv->AppUi() );
+           
+    // Show effect only if listbox is about to disappear from the screen.
+    if ( iContactListBox->IsVisible() &&
+         appUi && appUi->IsForeground() && 
+         GfxTransEffect::IsRegistered( iContactListBox ) )
+        {
+        GfxTransEffect::Begin( iContactListBox, KGfxContactListBoxCloseEffect );
+        iContactListBox->MakeVisible( EFalse );
+        GfxTransEffect::SetDemarcation( iContactListBox, iContactListBox->Rect() );
+        GfxTransEffect::End( iContactListBox );
+        }
+    else
+        {
+        iContactListBox->MakeVisible( EFalse );
+        }
+    }
+
 /*
  * ==============================================================================
  * 
--- a/phoneuis/easydialing/traces/OstTraceDefinitions.h	Mon Mar 15 12:40:24 2010 +0200
+++ b/phoneuis/easydialing/traces/OstTraceDefinitions.h	Wed Mar 31 21:30:06 2010 +0300
@@ -19,5 +19,5 @@
 // OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
 // REMOVE BEFORE CHECK-IN TO VERSION CONTROL
 // #define OST_TRACE_COMPILER_IN_USE
-#include <OpenSystemTrace.h>
+#include <opensystemtrace.h>
 #endif