Revision: 201015
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Mon, 03 May 2010 13:01:45 +0300
changeset 15 d7fc66ccd6fb
parent 13 e32024264ebb
child 16 d219857afeec
child 19 e44a8c097b15
Revision: 201015 Kit: 201018
cbs/CbsServer/ServerSrc/CCbsSatRefresh.cpp
cellular/SSSettings/src/CSSSettingsRefreshHandler.cpp
cellular/SSSettings/xqbindings/sssettingswrapper/src/sssettingswrapper.cpp
cellular/SSSettings/xqbindings/sssettingswrapper/src/sssettingswrapper_p.cpp
cellular/SSSettings/xqbindings/sssettingswrapper/src/sssettingswrapper_p.h
cellular/SSSettings/xqbindings/sssettingswrapper/tsrc/run_auto_tests_qt.bat
cellular/telephonysettings/inc/MCallDiverting.h
cellular/telephonysettings/inc/PSetCallDivertingBasicImpl.h
cellular/telephonysettings/inc/PSetUtility.h
cellular/telephonysettings/src/PSetCallDivertingBasicImpl.cpp
cellular/telephonysettings/xqbindings/bwins/psetwrapperu.def
cellular/telephonysettings/xqbindings/eabi/psetwrapperu.def
cellular/telephonysettings/xqbindings/psetwrapper/src/psetcallbarringwrapper.cpp
cellular/telephonysettings/xqbindings/psetwrapper/src/psetcallbarringwrapper_p.cpp
cellular/telephonysettings/xqbindings/psetwrapper/src/psetcallbarringwrapper_p.h
cellular/telephonysettings/xqbindings/psetwrapper/src/psetcalldivertingwrapper_p.cpp
cellular/telephonysettings/xqbindings/psetwrapper/src/psetcalldivertingwrapper_p.h
cellular/telephonysettings/xqbindings/psetwrapper/tsrc/mocks/mock_psetcallbarringwrapper.cpp
cellular/telephonysettings/xqbindings/psetwrapper/tsrc/run_auto_tests_qt.bat
cellular/telephonysettings/xqbindings/psetwrapper/tsrc/ut_psetcallbarringwrapper/ut_psetcallbarringwrapper.cpp
cellular/telephonysettings/xqbindings/psetwrapper/tsrc/ut_psetcallbarringwrapper/ut_psetcallbarringwrapper.h
convergedcallengine/group/bld.inf
convergedcallengine/serviceselector/inc/cssconnectionhandler.h
convergedcallengine/serviceselector/src/cssconnectionhandler.cpp
networkhandling/networkhandlingengine/Group/networkhandling.mmp
networkhandling/networkhandlingengine/NetworkHandlingGsmSrc/CNWNetworkMCNEngine.cpp
networkhandling/networkhandlingengine/NetworkHandlingGsmSrc/CNWNetworkViagRefresh.cpp
networkhandling/networkhandlingengine/NetworkHandlingInc/CNWDynamicCapsMonitor.h
networkhandling/networkhandlingengine/NetworkHandlingSrc/CNWDynamicCapsMonitor.cpp
networkhandling/networkhandlingengine/NetworkHandlingSrc/CNWMessageHandler.cpp
networkhandling/networkhandlingengine/NetworkHandlingSrc/CNWNetworkRegistrationStatusMonitor.cpp
phoneclientserver/CallUI/Rom/CallUI.iby
phoneclientserver/CallUI/Rom/CallUIResources.iby
phoneclientserver/CallUI/Rom/CallUI_Variant.iby
phoneclientserver/CallUI/Src/CaUiEngine/CaUiActiveObject.cpp
phoneclientserver/CallUI/Src/CaUiEngine/CaUiDialDataContainer.cpp
phoneclientserver/CallUI/Src/CaUiEngine/CaUiDialogs.cpp
phoneclientserver/CallUI/Src/CaUiEngine/CaUiEngFactImpl.cpp
phoneclientserver/CallUI/Src/CaUiEngine/CaUiEngine.cpp
phoneclientserver/CallUI/Src/CaUiEngine/CaUiEngineMain.cpp
phoneclientserver/CallUI/Src/CaUiEngine/CaUiEngineStub.cpp
phoneclientserver/CallUI/Src/CaUiEngine/CaUiMessageSender.cpp
phoneclientserver/CallUI/Src/CaUiEngine/CaUiMessageSenderStub.cpp
phoneclientserver/CallUI/Src/CaUiEngine/CaUiQuery.cpp
phoneclientserver/CallUI/Src/CaUiEngine/CaUiVoIPExtension.cpp
phoneclientserver/CallUI/Src/CaUiEngine/ccauireconnectquery.cpp
phoneclientserver/CallUI/Src/CaUiEngine/ccauireconnectqueryimpl.cpp
phoneclientserver/CallUI/Src/CaUiPlugin/CaUIMain.cpp
phoneclientserver/CallUI/Src/CaUiPlugin/CaUiPlugin.cpp
phoneclientserver/EnPolicy/Inc/CEmergencyNumberPolicy.h
phoneclientserver/EnPolicy/Src/SosEnPolicy/CSosEnPolicySimStatusMonitor.cpp
phoneclientserver/dialutils/group/dialutils.mmp
phoneclientserver/phoneclient/Group/PhoneClient.mmp
phoneclientserver/phoneclient/Inc/UssdWrapper/CPhCltUssdNoteController.h
phoneclientserver/phoneclient/Inc/UssdWrapper/MPhCltUssdNoteControllerCallBack.h
phoneclientserver/phoneclient/Inc/UssdWrapper/Ussd_Ext/CPhCltUssdImp.h
phoneclientserver/phoneclient/Src/UssdWrapper/CPhCltUssdImp.cpp
phoneclientserver/phoneclient/Src/UssdWrapper/CPhCltUssdNoteController.cpp
phoneclientserver/phoneclient/inc/ussdwrapper/cphcltussdcommonconstant.h
phoneclientserver/phoneclient/inc/ussdwrapper/tflogger.h
phoneclientserver/phoneclient/tsrc/public/basic/ut_ussd/etel_mock.cpp
phoneclientserver/phoneclient/tsrc/public/basic/ut_ussd/main.cpp
phoneclientserver/phoneclient/tsrc/public/basic/ut_ussd/phoneclientserver_stubs.cpp
phoneclientserver/phoneclient/tsrc/public/basic/ut_ussd/readme.txt
phoneclientserver/phoneclient/tsrc/public/basic/ut_ussd/rphcltussd_glue.cpp
phoneclientserver/phoneclient/tsrc/public/basic/ut_ussd/ut_cphcltussdnotecontroller.cpp
phoneclientserver/phoneclient/tsrc/public/basic/ut_ussd/ut_cphcltussdnotecontroller.h
phoneclientserver/phoneclient/tsrc/public/basic/ut_ussd/ut_testenv.cpp
phoneclientserver/phoneclient/tsrc/public/basic/ut_ussd/ut_testenv.h
phoneclientserver/phoneclient/tsrc/public/basic/ut_ussd/ut_ussd.cpp
phoneclientserver/phoneclient/tsrc/public/basic/ut_ussd/ut_ussd.h
phoneclientserver/phoneclient/tsrc/public/basic/ut_ussd/ut_ussd.pro
phoneclientserver/phoneserver/Group/PhoneServer.mmp
phoneclientserver/phoneserver/Inc/Ussd/CPhSrvUssdManager.h
phoneclientserver/phoneserver/Src/Ussd/CPhSrvUssdManager.cpp
phonecmdhandler/phonecmdhnlr/group/PhoneCmdHandler.mmp
phonecmdhandler/phonecmdhnlr/group/bld.inf
phonecmdhandler/phonecmdhnlr/inc/PhoneHandlerControl.h
phonesrv.pro
phonesrv_plat/call_information_api/tsrc/run_auto_tests.bat
phonesrv_plat/network_handling_engine_api/inc/CNWSession.h
phonesrv_plat/network_handling_engine_api/inc/NWHandlingEngine.h
phonesrv_plat/network_handling_engine_api/inc/NetworkHandlingProxy.h
phonesrv_plat/phone_client_ussd_api/tsrc/mt_ussd.cpp
phonesrv_plat/phone_client_ussd_api/tsrc/mt_ussd.h
phonesrv_plat/phone_client_ussd_api/tsrc/mt_ussd.pro
phonesrv_plat/phone_client_ussd_internal_api/tsrc/mt_ussdinternal.pro
phonesrv_plat/phone_client_ussd_internal_api/tsrc/mt_ussdsat.cpp
phonesrv_plat/phone_client_ussd_internal_api/tsrc/mt_ussdsat.h
phonesrv_plat/phone_settings_api/inc/psetcallbarringwrapper.h
phonesrv_plat/phone_settings_api/inc/psetcalldivertingwrapper.h
phonesrv_plat/sat_client_api/group/bld.inf
phonesrv_plat/sat_client_api/tsrc/group/satclientapitest.mmp
phonesrv_plat/sat_client_api/tsrc/inc/satclientapitest.h
phonesrv_plat/sat_client_api/tsrc/src/satclientapitest.cpp
phonesrv_plat/sat_configuration_api/group/bld.inf
phonesrv_plat/sat_refresh_api/group/bld.inf
phonesrv_plat/sat_refresh_api/inc/RSatRefresh.h
phonesrv_plat/sat_refresh_api/tsrc/group/satrefreshapitest.mmp
phonesrv_plat/sat_refresh_api/tsrc/inc/satrefreshapitest.h
phonesrv_plat/sat_refresh_api/tsrc/inc/satrefreshobserver.h
phonesrv_plat/ss_settings_api/inc/MSSSettingsObserver.h
satengine/SatServer/Commands/LaunchBrowserCmd/src/CLaunchBrowserHandler.cpp
satengine/SatServer/Commands/OpenChannelCmd/src/COpenChannelHandler.cpp
satengine/SatServer/Commands/SendSSCmd/src/CSendSsHandler.cpp
satengine/SatServer/Commands/SendSmCmd/src/CSendSmHandler.cpp
satengine/SatServer/Commands/SendUSSDCmd/src/CSendUssdHandler.cpp
satengine/SatServer/Engine/inc/CSatApnHandler.h
satengine/SatServer/Engine/src/CSatApnHandler.cpp
satengine/SatServer/Engine/src/CSatCommandContainer.cpp
satengine/SatServer/Engine/src/CSatCommandHandler.cpp
satengine/SatServer/Engine/src/CSatSIconSubSession.cpp
satengine/SatServer/Engine/src/CSatSUiSubSession.cpp
satengine/SatServer/SatClient/src/CSatAllowRefreshMonitor.cpp
satengine/SatServer/SatClient/src/CSatRefreshMonitor.cpp
satengine/SatServer/SatClient/src/RSatRefresh.cpp
satengine/SatServer/SatClient/src/RSatSession.cpp
satengine/SatServer/SatClient/src/rsatservice.cpp
satengine/SatServer/SatInternalClient/src/RSatUiSession.cpp
satengine/SatServer/SystemState/src/CSatSystemState.cpp
satengine/SatServer/inc/CSatCommandHandler.h
satengine/SatServer/inc/MSatApnHandler.h
satui/satapp/inc/csatuiobserver.h
satui/satapp/inc/satappcommandhandler.h
satui/satapp/inc/satappcommonconstant.h
satui/satapp/inc/satappeventprovider.h
satui/satapp/inc/satappgetinkeynote.h
satui/satapp/inc/satappplaytoneprovider.h
satui/satapp/inc/satappuiprovider.h
satui/satapp/resource/qgn_menu_sat.svg
satui/satapp/resource/sat_text_map.xls
satui/satapp/resource/satapp.qrc
satui/satapp/resource/satapp_en.qm
satui/satapp/resource/satapp_en.ts
satui/satapp/rom/satapp.iby
satui/satapp/rom/satapp.pkg
satui/satapp/rom/satapp_stub.pkg
satui/satapp/rom/satapp_stub.sis
satui/satapp/satapp.pro
satui/satapp/sis/satapp.pkg
satui/satapp/src/csatuiobserver.cpp
satui/satapp/src/main.cpp
satui/satapp/src/satappcommandhandler.cpp
satui/satapp/src/satappeventprovider.cpp
satui/satapp/src/satappgetinkeynote.cpp
satui/satapp/src/satappmainhandler.cpp
satui/satapp/src/satappplaytoneprovider.cpp
satui/satapp/src/satappuiprovider.cpp
satui/satapp/src/satappview.cpp
satui/satapp/tsrc/ut_satapp/inc/dummyeventprovider.h
satui/satapp/tsrc/ut_satapp/inc/dummyplaytoneprovider.h
satui/satapp/tsrc/ut_satapp/inc/ut_csatuiobserver.h
satui/satapp/tsrc/ut_satapp/inc/ut_playtoneprovider.h
satui/satapp/tsrc/ut_satapp/inc/ut_satappeventhandler.h
satui/satapp/tsrc/ut_satapp/inc/ut_satappmainhandler.h
satui/satapp/tsrc/ut_satapp/src/dummyeventprovider.cpp
satui/satapp/tsrc/ut_satapp/src/dummyplaytoneprovider.cpp
satui/satapp/tsrc/ut_satapp/src/main.cpp
satui/satapp/tsrc/ut_satapp/src/ut_csatuiobserver.cpp
satui/satapp/tsrc/ut_satapp/src/ut_playtoneprovider.cpp
satui/satapp/tsrc/ut_satapp/src/ut_satappeventhandler.cpp
satui/satapp/tsrc/ut_satapp/src/ut_satappmainhandler.cpp
satui/satapp/tsrc/ut_satapp/ut_satapp.pro
telutils/dialpad/dialpad.qrc
telutils/dialpad/inc/dialpadbluetootheventfilter.h
telutils/dialpad/inc/dialpadbutton.h
telutils/dialpad/inc/dialpadsymbianwrapper.h
telutils/dialpad/inc/dialpadsymbianwrapper_p.h
telutils/dialpad/inc/dialpadsymbianwrapper_p_stub.h
telutils/dialpad/inc/dialpadvoicemailboxeventfilter.h
telutils/dialpad/resources/dialpad_color.css
telutils/dialpad/src/dialpad.cpp
telutils/dialpad/src/dialpadbluetootheventfilter.cpp
telutils/dialpad/src/dialpadbutton.cpp
telutils/dialpad/src/dialpadbuttonstyle.cpp
telutils/dialpad/src/dialpadinputfield.cpp
telutils/dialpad/src/dialpadkeypad.cpp
telutils/dialpad/src/dialpadsymbianwrapper.cpp
telutils/dialpad/src/dialpadvoicemailboxeventfilter.cpp
telutils/dialpad/tsrc/dialpadtest/dialpadtestview.cpp
telutils/dialpad/tsrc/unit/unit.pro
telutils/dialpad/tsrc/unit/ut_dialpadbluetootheventfilter/ut_dialpadbluetootheventfilter.pro
telutils/dialpad/tsrc/unit/ut_dialpadbutton/ut_dialpadbutton.cpp
telutils/dialpad/tsrc/unit/ut_dialpadbutton/ut_dialpadbutton.pro
telutils/dialpad/tsrc/unit/ut_dialpadbuttonstyle/ut_dialpadbuttonstyle.cpp
telutils/dialpad/tsrc/unit/ut_dialpadvoicemailboxeventfilter/ut_dialpadvoicemailboxeventfilter.pro
vmbx/vmbxengine/inc/vmbxsatrefreshobserver.h
--- a/cbs/CbsServer/ServerSrc/CCbsSatRefresh.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/cbs/CbsServer/ServerSrc/CCbsSatRefresh.cpp	Mon May 03 13:01:45 2010 +0300
@@ -21,8 +21,8 @@
 // INCLUDE FILES
 #include "CCbsSatRefresh.h"
 #include "CCbsServer.h"
-#include <RSatRefresh.h>
-#include <RSatSession.h>
+#include <rsatrefresh.h>
+#include <rsatsession.h>
 
 #include "CbsLogger.h"
 
--- a/cellular/SSSettings/src/CSSSettingsRefreshHandler.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/cellular/SSSettings/src/CSSSettingsRefreshHandler.cpp	Mon May 03 13:01:45 2010 +0300
@@ -231,6 +231,17 @@
         iRSSSettings.HandleRefresh();
         }
 
+    TBool cspEfFound =  
+        aFiles.Locate( KCsp1Ef ) != KErrNotFound || 
+        aFiles.Locate( KCsp2Ef ) != KErrNotFound; 
+
+    // KCspEf is no longer provided by SAT but GS and PS seem to depend on it, 
+    // handled here for now. 
+    TBool fileFound =  
+        aFiles.Locate( iNotifyInfo->iObservedFile ) != KErrNotFound || 
+        cspEfFound && iNotifyInfo->iObservedFile == KCspEf; 
+
+
     // By default refresh is allowed.
     TBool allow(ETrue);
 
@@ -240,97 +251,47 @@
         // Handle only if observer wants to listen this event.
         if ( iNotifyInfo->iObservedRefreshType & aType )
             {
-            TInt changedFiles(0);     
-            // Only change notification will contain file list.
-            if ( aType == EFileChangeNotification )
-                {              
-                if ( aFiles.Locate( KCspEf ) != KErrNotFound )
-                    {
-                    changedFiles += KCspEf;
-                    }
-                // Check if the changed files is what is wanted to be listened.
-                changedFiles = changedFiles & iNotifyInfo->iObservedFile;
-                }
-
-            // For change notification the filelist must contain files, for
-            // other refresh types it is empty.
-            if ( ( aType != EFileChangeNotification ) ||
-                 ( ( aType == EFileChangeNotification ) && 
-                   changedFiles ) )
+            if ( aType != EFileChangeNotification || fileFound )
                 {
                 if ( aFunctionality == ESSSettingsRefresh )
                     {
                     // Inform the observer about the refresh event.
                     iNotifyInfo->iObserver->Refresh(
-                        aType,
-                        ( TSatElementaryFiles ) changedFiles  );
-                        
-                    if ( aFiles.Locate( KCsp1Ef ) != KErrNotFound )
-                        {
-                        iRSatRefresh->RefreshEFRead( ETrue );
-                        }
-                    else if( aFiles.Locate( KCsp2Ef ) != KErrNotFound )
-                        {
-                        iRSatRefresh->RefreshEFRead( ETrue );
-                        }
-                    else
-                        {
-                        iRSatRefresh->RefreshEFRead( EFalse );
-                        }
+                        aType, iNotifyInfo->iObservedFile );
+                    iRSatRefresh->RefreshEFRead( cspEfFound );
                     }
                 else // ESSSettingsAllowRefresh
                     {
                     // Inform the observer about the coming refresh event.
                     allow = iNotifyInfo->iObserver->AllowRefresh(
-                        aType,
-                        ( TSatElementaryFiles ) changedFiles );
+                        aType, iNotifyInfo->iObservedFile );
                     }
                 }
             
             // If there is no client listening changed files SSSettings has to
             // check if some CSP file is into the list and send right response
             // since itself reads CSP files.    
-            if ( !changedFiles )
-                {
-                if ( aFiles.Locate( KCsp1Ef ) != KErrNotFound )
-                    {
-                    iRSatRefresh->RefreshEFRead( EFalse );
-                    }
-                else if( aFiles.Locate( KCsp2Ef ) != KErrNotFound )
-                    {
-                    iRSatRefresh->RefreshEFRead( EFalse );
-                    }
-                else
-                    {
-                    iRSatRefresh->RefreshEFRead( ETrue );
-                    }
+            if ( !fileFound )
+            	{
+                iRSatRefresh->RefreshEFRead( !cspEfFound );
                 }
-            __SSSLOGSTRING1("[SSS]    DoHandleRefresh: changedFiles: %d", changedFiles);
             }
         else
             {
-            iRSatRefresh->RefreshEFRead( EFalse );    
+            iRSatRefresh->RefreshEFRead( EFalse );
             }
         }
-
-    if ( !iNotifyInfo->iObserver && ( aType == EFileChangeNotification 
+    else if ( aType == EFileChangeNotification 
         || aType == ESimInitFileChangeNotification 
-        || aType == ESimInit ) )
+        || aType == ESimInit )
         {
-        if ( aFiles.Locate( KCsp1Ef ) != KErrNotFound )
-            {
-            iRSatRefresh->RefreshEFRead( EFalse );
-            }
-        else if( aFiles.Locate( KCsp2Ef ) != KErrNotFound )
-            {
-            iRSatRefresh->RefreshEFRead( EFalse );
-            }           
-        else 
-            {
-            iRSatRefresh->RefreshEFRead( ETrue );
-            }
-        }   
-                
+        iRSatRefresh->RefreshEFRead( !cspEfFound );
+        }
+    else 
+        {
+        // Do nothing
+        }
+    	    	
     __SSSLOGSTRING("[SSS] <--CSSSettingsRefreshHandler::DoHandleRefresh");
     return allow;
     }
--- a/cellular/SSSettings/xqbindings/sssettingswrapper/src/sssettingswrapper.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/cellular/SSSettings/xqbindings/sssettingswrapper/src/sssettingswrapper.cpp	Mon May 03 13:01:45 2010 +0300
@@ -17,7 +17,7 @@
 
 
 #include <sssettingswrapper.h>
-#include <RSSSettings.h>
+#include <rsssettings.h>
 #include "sssettingswrapper_p.h"
 #include "logging.h"
 
--- a/cellular/SSSettings/xqbindings/sssettingswrapper/src/sssettingswrapper_p.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/cellular/SSSettings/xqbindings/sssettingswrapper/src/sssettingswrapper_p.cpp	Mon May 03 13:01:45 2010 +0300
@@ -18,7 +18,7 @@
 #include "sssettingswrapper_p.h"
 #include "sssettingswrapper.h"
 #include "logging.h"
-#include <RSSSettings.h>
+#include <rsssettings.h>
 
 /*!
   SsSettingsWrapperPrivate::SsSettingsWrapperPrivate
--- a/cellular/SSSettings/xqbindings/sssettingswrapper/src/sssettingswrapper_p.h	Fri Apr 16 15:31:58 2010 +0300
+++ b/cellular/SSSettings/xqbindings/sssettingswrapper/src/sssettingswrapper_p.h	Mon May 03 13:01:45 2010 +0300
@@ -18,8 +18,8 @@
 #ifndef SSSETTINGSWRAPPER_P_H
 #define SSSETTINGSWRAPPER_P_H
 
-#include <RSSSettings.h>
-#include <MSSSettingsObserver.h>
+#include <rsssettings.h>
+#include <msssettingsobserver.h>
 
 
 class SsSettingsWrapper;
--- a/cellular/SSSettings/xqbindings/sssettingswrapper/tsrc/run_auto_tests_qt.bat	Fri Apr 16 15:31:58 2010 +0300
+++ b/cellular/SSSettings/xqbindings/sssettingswrapper/tsrc/run_auto_tests_qt.bat	Mon May 03 13:01:45 2010 +0300
@@ -54,14 +54,19 @@
 set INSTRUMENT=TRUE
 set REMOVEINSTRUMENT=TRUE
 set DOMODULESTESTS=TRUE
-set ABLD_CALL=abld build winscw udeb -keepgoing
+set SBS_CALL=sbs --config winscw_udeb --keepgoing BUILD
 set PATH_TO_DLL=\epoc32\release\winscw\udeb
 set PATH_TO_COVERAGE_DATA=\coverage_data
+set PATH_TO_RESULT=\test_result
 
 if not exist %PATH_TO_COVERAGE_DATA% (
 mkdir %PATH_TO_COVERAGE_DATA%
 )
 
+if not exist %PATH_TO_RESULT% (
+mkdir %PATH_TO_RESULT%
+)
+
 if [%1] EQU [] ( goto default )
 
 call :%1
@@ -132,12 +137,11 @@
 pushd .
 call cd %1
 call qmake
-call bldmake bldfiles
-call abld clean winscw udeb
+call sbs --config winscw_udeb --keepgoing CLEAN
 if [%INSTRUMENT%] EQU [TRUE] (
-call ctcwrap -n %PATH_TO_COVERAGE_DATA%\%1 -i d -C "EXCLUDE=*" -C "NO_EXCLUDE=%TESTED_SRC%" %ABLD_CALL%
+call ctcwrap -2comp -n %PATH_TO_COVERAGE_DATA%\%1 -i d -C "EXCLUDE=*" -C "NO_EXCLUDE=%TESTED_SRC%" "%SBS_CALL%"
 ) else (
-call %ABLD_CALL%
+call %SBS_CALL%
 )
 
 popd
@@ -152,7 +156,10 @@
 ::::::::::::::::::::::::::::::::::::::::::::::::::::::
 :RUNTESTS
 echo Running tests
-for /f %%a in ('dir /b ut_*') do call %PATH_TO_DLL%\%%a.exe -dtextshell --
+for /f %%a in ('dir /b ut_*') do (
+    call %PATH_TO_DLL%\%%a.exe -dtextshell --
+    move \epoc32\winscw\c\data\%%a.log %PATH_TO_RESULT%\%%a.log
+)
 goto end
 
 ::::::::::::::::::::::::::::::::::::::::::::::::::::::
--- a/cellular/telephonysettings/inc/MCallDiverting.h	Fri Apr 16 15:31:58 2010 +0300
+++ b/cellular/telephonysettings/inc/MCallDiverting.h	Mon May 03 13:01:45 2010 +0300
@@ -29,12 +29,10 @@
 class MCallDiverting
     {
     public:
-// <-- QT PHONE START -->
         /**
          * Sets observer which informs when request is completed
          */
         virtual void SetRequestObserver( MPsetRequestObserver* aObs ) = 0;
-// <-- QT PHONE END -->
     
         /**
         * Sets diverting to the network.
@@ -114,16 +112,6 @@
         */
         virtual TInt SaveKey( TUint32 aKeyId, const TDesC& aKeyValue ) = 0;
         
-        /**
-        * Opens Vmbx connection. Leaves vmbx to the stack. 
-        * 
-        * @param aTelNumber vmbx number.
-        * @param aVmbx vmbx connection.
-        * @return used vmbx number.
-        */ 
-        // <-- QT PHONE START-->
-        //virtual TInt OpenVmbxLC( TDes& aTelNumber, RVmbxNumber& aVmbx ) = 0;
-        // <-- QT PHONE END-->
         /*
         * Virtual destructor. 
         */ 
--- a/cellular/telephonysettings/inc/PSetCallDivertingBasicImpl.h	Fri Apr 16 15:31:58 2010 +0300
+++ b/cellular/telephonysettings/inc/PSetCallDivertingBasicImpl.h	Mon May 03 13:01:45 2010 +0300
@@ -101,6 +101,10 @@
             const TBasicServiceGroups aBsc );
         
         TSelectedLine GetSAAls();
+        
+    private:
+        // Memorize requested service group
+        TServiceGroup iRequestedServiceGroup;
     };
 
 #endif      // CPSETCALLDIVERTINGBASICIMPL_H 
--- a/cellular/telephonysettings/inc/PSetUtility.h	Fri Apr 16 15:31:58 2010 +0300
+++ b/cellular/telephonysettings/inc/PSetUtility.h	Mon May 03 13:01:45 2010 +0300
@@ -87,10 +87,9 @@
         *****************************************************/
         static RMobilePhone::TMobilePhoneCFCondition 
             GetDivertReason( TCallDivertingCondition aCondition );
-// <-- QT PHONE START -->
+
         static TCallDivertingCondition
             GetDivertReason( RMobilePhone::TMobilePhoneCFCondition aCondition );
-// <-- QT PHONE END -->
 
         static RMobilePhone::TMobileService VerifyAltLineUseL();
     };
--- a/cellular/telephonysettings/src/PSetCallDivertingBasicImpl.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/cellular/telephonysettings/src/PSetCallDivertingBasicImpl.cpp	Mon May 03 13:01:45 2010 +0300
@@ -104,6 +104,7 @@
        User::Leave( KErrInUse );
        }
    iBsc = aBsc;
+   iRequestedServiceGroup = aDivert.iServiceGroup;
    
    CPsetTelephony::CheckLineModeL( aDivert.iServiceGroup, &iPhone, iLine );
    if ( !iLine->SubSessionHandle() )
@@ -205,6 +206,8 @@
            iDivertStatus.iNumber = iChangeInfo.iNumber.iTelNumber;
            iDivertStatus.iCondition = PSetUtility::GetDivertReason(iReason);
            iDivertStatus.iNoReplyTimer = iChangeInfo.iTimeout;
+           iDivertStatus.iServiceGroup = iRequestedServiceGroup;
+           
             // Check is done because of VOIP notification functionality(PSetNotesUI).
            if ( iVoiceDivert && !iVideoDivert )
                {
--- a/cellular/telephonysettings/xqbindings/bwins/psetwrapperu.def	Fri Apr 16 15:31:58 2010 +0300
+++ b/cellular/telephonysettings/xqbindings/bwins/psetwrapperu.def	Mon May 03 13:01:45 2010 +0300
@@ -125,4 +125,6 @@
 	??0PSetCallWaitingWrapper@@QAE@AAVCPsetContainer@@PAVQObject@@@Z @ 124 NONAME ; PSetCallWaitingWrapper::PSetCallWaitingWrapper(class CPsetContainer &, class QObject *)
 	??_EPSetCallWaitingWrapper@@UAE@I@Z @ 125 NONAME ; PSetCallWaitingWrapper::~PSetCallWaitingWrapper(unsigned int)
 	?getStaticMetaObject@PSetNetworkWrapper@@SAABUQMetaObject@@XZ @ 126 NONAME ; struct QMetaObject const & PSetNetworkWrapper::getStaticMetaObject(void)
+	?barringPasswordChangeRequestCompleted@PSetCallBarringWrapper@@IAEXH@Z @ 127 NONAME ; void PSetCallBarringWrapper::barringPasswordChangeRequestCompleted(int)
+	?changeBarringPassword@PSetCallBarringWrapper@@QAEXABVQString@@00@Z @ 128 NONAME ; void PSetCallBarringWrapper::changeBarringPassword(class QString const &, class QString const &, class QString const &)
 
--- a/cellular/telephonysettings/xqbindings/eabi/psetwrapperu.def	Fri Apr 16 15:31:58 2010 +0300
+++ b/cellular/telephonysettings/xqbindings/eabi/psetwrapperu.def	Mon May 03 13:01:45 2010 +0300
@@ -125,4 +125,6 @@
 	_ZTV22PSetCallBarringWrapper @ 124 NONAME
 	_ZTV22PSetCallWaitingWrapper @ 125 NONAME
 	_ZTV24PSetCallDivertingWrapper @ 126 NONAME
+	_ZN22PSetCallBarringWrapper21changeBarringPasswordERK7QStringS2_S2_ @ 127 NONAME
+	_ZN22PSetCallBarringWrapper37barringPasswordChangeRequestCompletedEi @ 128 NONAME
 
--- a/cellular/telephonysettings/xqbindings/psetwrapper/src/psetcallbarringwrapper.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/cellular/telephonysettings/xqbindings/psetwrapper/src/psetcallbarringwrapper.cpp	Mon May 03 13:01:45 2010 +0300
@@ -80,4 +80,18 @@
     m_privateImpl->disableBarring(serviceGroup, barringType, barringPassword);
 }
 
+/*!
+  PSetCallBarringWrapper::changeBarringPassword
+ */
+void PSetCallBarringWrapper::changeBarringPassword(
+    const QString &oldPassword, 
+    const QString &newPassword,
+    const QString &verifiedPassword)
+{
+    DPRINT;
+    
+    m_privateImpl->changeBarringPassword(
+        oldPassword, newPassword, verifiedPassword);
+}
+
 // End of File. 
--- a/cellular/telephonysettings/xqbindings/psetwrapper/src/psetcallbarringwrapper_p.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/cellular/telephonysettings/xqbindings/psetwrapper/src/psetcallbarringwrapper_p.cpp	Mon May 03 13:01:45 2010 +0300
@@ -262,6 +262,27 @@
 
 
 /*!
+  PSetCallBarringWrapperPrivate::changeBarringPassword
+ */
+void PSetCallBarringWrapperPrivate::changeBarringPassword(
+    const QString &oldPassword,
+    const QString &newPassword,
+    const QString &verifiedPassword)
+{
+    RMobilePhone::TMobilePhonePasswordChangeV2 passwordChange;
+    passwordChange.iOldPassword.Copy(oldPassword.utf16());
+    passwordChange.iNewPassword.Copy(newPassword.utf16());
+    passwordChange.iVerifiedPassword.Copy(verifiedPassword.utf16());
+    
+    QT_TRAP_THROWING(
+        m_callBarring->ChangePasswordL(passwordChange);
+    )
+    
+    m_currentRequest = RequestChangePassword;
+}
+
+
+/*!
   From MPsetBarringObserver.
   PSetCallBarringWrapperPrivate::HandleBarringModeChangedL
  */
@@ -360,7 +381,11 @@
 {
     DPRINT;
     
-    Q_UNUSED(aSuccess)
+    if (aSuccess) {
+        m_barringError = PSetCallBarringWrapper::BarringErrorNone;
+    } else {
+        m_barringError = KErrGsmSSNegativePasswordCheck;
+    }
 }
 
 
@@ -417,6 +442,18 @@
             DPRINT << "RequestDisableBarring ERROR:" << errorCode;
             break;
         }
+        
+        case RequestChangePassword:
+        {
+            int errorCode = 0;
+            QT_TRYCATCH_ERROR( errorCode,
+                emit m_owner.barringPasswordChangeRequestCompleted(
+                    m_barringError);
+            )
+            DPRINT << "RequestChangePassword ERROR:" << errorCode;
+            break;
+        }
+        
         default:
             break;
     }
--- a/cellular/telephonysettings/xqbindings/psetwrapper/src/psetcallbarringwrapper_p.h	Fri Apr 16 15:31:58 2010 +0300
+++ b/cellular/telephonysettings/xqbindings/psetwrapper/src/psetcallbarringwrapper_p.h	Mon May 03 13:01:45 2010 +0300
@@ -18,8 +18,8 @@
 #ifndef PSETCALLBARRINGWRAPPER_P_H
 #define PSETCALLBARRINGWRAPPER_P_H
 
-#include <MPsetBarringObs.h>
-#include <MPsetRequestObs.h>
+#include <mpsetbarringobs.h>
+#include <mpsetrequestobs.h>
 #include <nwdefs.h>
 #include <psetcallbarringwrapper.h>
 
@@ -38,7 +38,8 @@
         RequestNone,
         RequestBarringStatus,
         RequestEnableBarring,
-        RequestDisableBarring
+        RequestDisableBarring,
+        RequestChangePassword
     };
     
 public:
@@ -63,6 +64,11 @@
         PSetCallBarringWrapper::BarringType barringType,
         QString barringPassword);
     
+    void changeBarringPassword(
+        const QString &oldPassword, 
+        const QString &newPassword,
+        const QString &verifiedPassword);
+    
 public: // From MPsetBarringObserver
     
     /**
--- a/cellular/telephonysettings/xqbindings/psetwrapper/src/psetcalldivertingwrapper_p.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/cellular/telephonysettings/xqbindings/psetwrapper/src/psetcalldivertingwrapper_p.cpp	Mon May 03 13:01:45 2010 +0300
@@ -88,7 +88,7 @@
         PSCallDivertingStatus* divertingStatus =
             new (ELeave) PSCallDivertingStatus();
         divertingStatus->iCondition = convert(cfInfo.iCondition);
-        divertingStatus->iServiceGroup = cfInfo.iServiceGroup;
+        divertingStatus->iServiceGroup = convert(cfInfo.iServiceGroup);
         divertingStatus->iStatus = convert(cfInfo.iStatus);
         divertingStatus->iNumber = QString::fromUtf16(
             cfInfo.iNumber.iTelNumber.Ptr(),
@@ -335,11 +335,14 @@
     return ret;
 }
 
+/*!
+  PSetCallDivertingWrapperPrivate::convert
+ */
 TDivertingSetting PSetCallDivertingWrapperPrivate::convert(
         PsCallDivertingSetting type)
 {
     switch(type){
-     case ActivateDiverting:
+    case ActivateDiverting:
         return EActivateDiverting;
     case CancelDiverting:
         return ECancelDiverting;
@@ -353,4 +356,88 @@
     }
 }
 
+/*!
+  PSetCallDivertingWrapperPrivate::convert
+ */
+PsServiceGroup PSetCallDivertingWrapperPrivate::convert(
+        RMobilePhone::TMobileService service )
+{
+    PsServiceGroup ret(0);
+    switch (service) {
+    case RMobilePhone::EAllServices:
+        ret |= ServiceGroupData;
+        ret |= ServiceGroupVoice;
+        ret |= ServiceGroupFax;
+        break;
+    case RMobilePhone::EAllTele:
+    case RMobilePhone::EAllTeleExcSms:
+        ret |= ServiceGroupVoice;
+        ret |= ServiceGroupFax;
+        break;
+    case RMobilePhone::ECircuitDataService:
+    case RMobilePhone::EPacketDataService:
+    case RMobilePhone::EAllDataExSms:
+    case RMobilePhone::ESyncData:
+    case RMobilePhone::EAsyncData:
+    case RMobilePhone::EPacketData:
+    case RMobilePhone::EAllGprsBearer:
+    case RMobilePhone::EAllPlmnBearer:
+    case RMobilePhone::EPlmnBearerServ1:
+    case RMobilePhone::EPlmnBearerServ2:
+    case RMobilePhone::EPlmnBearerServ3:
+    case RMobilePhone::EPlmnBearerServ4:
+    case RMobilePhone::EPlmnBearerServ5:
+    case RMobilePhone::EPlmnBearerServ6:
+    case RMobilePhone::EPlmnBearerServ7:
+    case RMobilePhone::EPlmnBearerServ8:
+    case RMobilePhone::EPlmnBearerServ9:
+    case RMobilePhone::EPlmnBearerServA:
+    case RMobilePhone::EPlmnBearerServB:
+    case RMobilePhone::EPlmnBearerServC:
+    case RMobilePhone::EPlmnBearerServD:
+    case RMobilePhone::EPlmnBearerServE:
+    case RMobilePhone::EPlmnBearerServF:
+    case RMobilePhone::EAllBearer:
+    case RMobilePhone::EPadAccess:
+    case RMobilePhone::EAllAsync:
+    case RMobilePhone::EAllSync:
+        ret |= ServiceGroupData;
+        break;
+    case RMobilePhone::ETelephony:
+    case RMobilePhone::EVoiceService:
+    case RMobilePhone::EAuxVoiceService:
+    case RMobilePhone::EAllPlmnTele:
+    case RMobilePhone::EPlmnTele1:
+    case RMobilePhone::EPlmnTele2:
+    case RMobilePhone::EPlmnTele3:
+    case RMobilePhone::EPlmnTele4:
+    case RMobilePhone::EPlmnTele5:
+    case RMobilePhone::EPlmnTele6:
+    case RMobilePhone::EPlmnTele7:
+    case RMobilePhone::EPlmnTele8:
+    case RMobilePhone::EPlmnTele9:
+    case RMobilePhone::EPlmnTeleA:
+    case RMobilePhone::EPlmnTeleB:
+    case RMobilePhone::EPlmnTeleC:
+    case RMobilePhone::EPlmnTeleD:
+    case RMobilePhone::EPlmnTeleE:
+    case RMobilePhone::EPlmnTeleF:
+    case RMobilePhone::EAltTele:
+        ret |= ServiceGroupVoice;
+        break;
+    case RMobilePhone::EAllDataTele:
+    case RMobilePhone::EFaxService:
+        ret |= ServiceGroupFax;
+        break;
+    case RMobilePhone::EVoiceGroupCall:
+    case RMobilePhone::EVoiceBroadcast:
+    case RMobilePhone::EShortMessageService:
+    case RMobilePhone::EServiceUnspecified:
+    default:
+        // Not supported, skip
+        break;
+    }
+    return ret;
+}
+
 // end of file
--- a/cellular/telephonysettings/xqbindings/psetwrapper/src/psetcalldivertingwrapper_p.h	Fri Apr 16 15:31:58 2010 +0300
+++ b/cellular/telephonysettings/xqbindings/psetwrapper/src/psetcalldivertingwrapper_p.h	Mon May 03 13:01:45 2010 +0300
@@ -114,6 +114,7 @@
     PsCallDivertingStatus convert(TDivertingStatus type);
     PsCallDivertingStatus convert(RMobilePhone::TMobilePhoneCFStatus type);
     PsServiceGroup convert(TServiceGroup type);
+    PsServiceGroup convert(RMobilePhone::TMobileService service);
     
     
 private:
--- a/cellular/telephonysettings/xqbindings/psetwrapper/tsrc/mocks/mock_psetcallbarringwrapper.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/cellular/telephonysettings/xqbindings/psetwrapper/tsrc/mocks/mock_psetcallbarringwrapper.cpp	Mon May 03 13:01:45 2010 +0300
@@ -94,3 +94,18 @@
     SMC_MOCK_METHOD3( void, int/*PsServiceGroup*/, static_cast<int>(serviceGroup), 
         BarringType, barringType, QString, barringPassword )
     }
+
+// -----------------------------------------------------------------------------
+// PSetCallBarringWrapper::changeBarringPassword
+// -----------------------------------------------------------------------------
+//
+void PSetCallBarringWrapper::changeBarringPassword(
+    const QString &oldPassword, 
+    const QString &newPassword,
+    const QString &verifiedPassword)
+{
+    SMC_MOCK_METHOD3( void, 
+        const QString &, oldPassword, 
+        const QString &, newPassword, 
+        const QString &, verifiedPassword )
+}
--- a/cellular/telephonysettings/xqbindings/psetwrapper/tsrc/run_auto_tests_qt.bat	Fri Apr 16 15:31:58 2010 +0300
+++ b/cellular/telephonysettings/xqbindings/psetwrapper/tsrc/run_auto_tests_qt.bat	Mon May 03 13:01:45 2010 +0300
@@ -54,14 +54,19 @@
 set INSTRUMENT=TRUE
 set REMOVEINSTRUMENT=TRUE
 set DOMODULESTESTS=TRUE
-set ABLD_CALL=abld build winscw udeb -keepgoing
+set SBS_CALL=sbs --config winscw_udeb --keepgoing BUILD
 set PATH_TO_DLL=\epoc32\release\winscw\udeb
 set PATH_TO_COVERAGE_DATA=\coverage_data
+set PATH_TO_RESULT=\test_result
 
 if not exist %PATH_TO_COVERAGE_DATA% (
 mkdir %PATH_TO_COVERAGE_DATA%
 )
 
+if not exist %PATH_TO_RESULT% (
+mkdir %PATH_TO_RESULT%
+)
+
 if [%1] EQU [] ( goto default )
 
 call :%1
@@ -132,12 +137,11 @@
 pushd .
 call cd %1
 call qmake
-call bldmake bldfiles
-call abld clean winscw udeb
+call sbs --config winscw_udeb --keepgoing CLEAN
 if [%INSTRUMENT%] EQU [TRUE] (
-call ctcwrap -n %PATH_TO_COVERAGE_DATA%\%1 -i d -C "EXCLUDE=*" -C "NO_EXCLUDE=%TESTED_SRC%" %ABLD_CALL%
+call ctcwrap -2comp -n %PATH_TO_COVERAGE_DATA%\%1 -i d -C "EXCLUDE=*" -C "NO_EXCLUDE=%TESTED_SRC%" "%SBS_CALL%"
 ) else (
-call %ABLD_CALL%
+call %SBS_CALL%
 )
 
 popd
@@ -152,7 +156,10 @@
 ::::::::::::::::::::::::::::::::::::::::::::::::::::::
 :RUNTESTS
 echo Running tests
-for /f %%a in ('dir /b ut_*') do call %PATH_TO_DLL%\%%a.exe -dtextshell --
+for /f %%a in ('dir /b ut_*') do (
+    call %PATH_TO_DLL%\%%a.exe -dtextshell --
+    move \epoc32\winscw\c\data\%%a.log %PATH_TO_RESULT%\%%a.log
+)
 goto end
 
 ::::::::::::::::::::::::::::::::::::::::::::::::::::::
--- a/cellular/telephonysettings/xqbindings/psetwrapper/tsrc/ut_psetcallbarringwrapper/ut_psetcallbarringwrapper.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/cellular/telephonysettings/xqbindings/psetwrapper/tsrc/ut_psetcallbarringwrapper/ut_psetcallbarringwrapper.cpp	Mon May 03 13:01:45 2010 +0300
@@ -74,6 +74,10 @@
     }
 };
 
+void simulateLeaveL()
+{
+    User::Leave(KErrGeneral);
+}
 
 /*!
   UT_PSetCallBarringWrapper::UT_PSetCallBarringWrapper
@@ -325,6 +329,16 @@
         ServiceGroupVoice, 
         PSetCallBarringWrapper::BarringTypeAllIncomingServices,
         QString("1234"));
+
+// error handling    
+    EXPECT(CPsetCallBarring::SetBarringL)
+        .willOnce(invokeWithoutArguments(simulateLeaveL));
+    EXPECT_EXCEPTION(
+        m_wrapper->enableBarring(
+            ServiceGroupVoice, 
+            PSetCallBarringWrapper::BarringTypeAllIncomingServices,
+            QString("1234"));
+    )
     
     QVERIFY(verify());
 }
@@ -412,6 +426,46 @@
         PSetCallBarringWrapper::BarringTypeAllIncomingServices,
         QString("1234"));
     
+// error handling    
+    EXPECT(CPsetCallBarring::SetBarringL)
+        .willOnce(invokeWithoutArguments(simulateLeaveL));
+    EXPECT_EXCEPTION(
+        m_wrapper->disableBarring(
+            ServiceGroupVoice, 
+            PSetCallBarringWrapper::BarringTypeAllIncomingServices,
+            QString("1234"));
+    )
+    
+    QVERIFY(verify());
+}
+
+
+/*!
+  UT_PSetCallBarringWrapper::t_changeBarringPassword
+ */
+void UT_PSetCallBarringWrapper::t_changeBarringPassword()
+{
+    QString oldPassword = "1234";
+    QString newPassword = "4321";
+    QString verifiedPassword = "4321";
+    RMobilePhone::TMobilePhonePasswordChangeV2 passwordChange;
+    passwordChange.iOldPassword.Copy(oldPassword.utf16());
+    passwordChange.iNewPassword.Copy(newPassword.utf16());
+    passwordChange.iVerifiedPassword.Copy(verifiedPassword.utf16());
+    EXPECT(CPsetCallBarring::ChangePasswordL)
+        .with(passwordChange);
+    
+    m_wrapper->changeBarringPassword(
+        oldPassword, newPassword, verifiedPassword);
+    
+// error handling    
+    EXPECT(CPsetCallBarring::ChangePasswordL)
+        .willOnce(invokeWithoutArguments(simulateLeaveL));
+    EXPECT_EXCEPTION(
+        m_wrapper->changeBarringPassword(
+            oldPassword, newPassword, verifiedPassword);
+    )
+    
     QVERIFY(verify());
 }
 
@@ -484,10 +538,10 @@
  */
 void UT_PSetCallBarringWrapper::t_CbPasswordChangedL()
 {
-    // TODO: dummy test as functionality not yet implemented
     TBool success = EFalse;
     QT_TRAP_THROWING(
-        m_wrapper->m_privateImpl->CbPasswordChangedL(success);
+        m_wrapper->m_privateImpl->CbPasswordChangedL(ETrue);
+        m_wrapper->m_privateImpl->CbPasswordChangedL(EFalse);
     )
 }
 
@@ -713,6 +767,34 @@
 
 
 /*!
+  UT_PSetCallBarringWrapper::t_changeBarringPasswordRequestComplete
+ */
+void UT_PSetCallBarringWrapper::t_changeBarringPasswordRequestComplete()
+{
+    QSignalSpy spy(
+        m_wrapper, 
+        SIGNAL(barringPasswordChangeRequestCompleted(int)));
+    
+    QString oldPassword = "1234";
+    QString newPassword = "4321";
+    QString verifiedPassword = "4321";
+    m_wrapper->changeBarringPassword(
+        oldPassword, newPassword, verifiedPassword);
+    
+    m_wrapper->m_privateImpl->RequestComplete();
+    
+    if (qstrcmp(QTest::currentTestFunction(), "t_exceptionSafety") == 0) {
+        // Signal emissions from RequestComplete will fail with exception safety 
+        // tests so it's not possible to verify signal data.
+        return;
+    }
+    
+    QCOMPARE(spy.count(), 1);
+    QCOMPARE(spy.at(0).at(0).toInt(), 0);
+}
+
+
+/*!
   UT_PSetCallBarringWrapper::t_RequestStatusChanged
  */
 void UT_PSetCallBarringWrapper::t_RequestStatusChanged()
--- a/cellular/telephonysettings/xqbindings/psetwrapper/tsrc/ut_psetcallbarringwrapper/ut_psetcallbarringwrapper.h	Fri Apr 16 15:31:58 2010 +0300
+++ b/cellular/telephonysettings/xqbindings/psetwrapper/tsrc/ut_psetcallbarringwrapper/ut_psetcallbarringwrapper.h	Mon May 03 13:01:45 2010 +0300
@@ -43,6 +43,7 @@
     void t_barringStatusExceptionOccurs();
     void t_enableBarring();
     void t_disableBarring();
+    void t_changeBarringPassword();
     
     // private implementation tests
     void t_HandleBarringModeStatusL();
@@ -56,6 +57,7 @@
     
     void t_enableBarringRequestComplete();
     void t_disableBarringRequestComplete();
+    void t_changeBarringPasswordRequestComplete();
     void t_RequestStatusChanged();
     
     void t_exceptionSafety();
--- a/convergedcallengine/group/bld.inf	Fri Apr 16 15:31:58 2010 +0300
+++ b/convergedcallengine/group/bld.inf	Mon May 03 13:01:45 2010 +0300
@@ -27,9 +27,6 @@
 #include "../spsettings/group/bld.inf"
 #include "../cenrepdatabase/group/bld.inf"
 #include "../serviceselector/group/bld.inf"
-// <-- QT PHONE START -->
-//#include "../csplugin/group/bld.inf"
-// <-- QT PHONE END -->
 
 
 PRJ_TESTMMPFILES
--- a/convergedcallengine/serviceselector/inc/cssconnectionhandler.h	Fri Apr 16 15:31:58 2010 +0300
+++ b/convergedcallengine/serviceselector/inc/cssconnectionhandler.h	Mon May 03 13:01:45 2010 +0300
@@ -22,9 +22,6 @@
 
 //  INCLUDES
 #include <e32base.h>
-// <-- QT PHONE START -->
-//#include <cch.h>
-// <-- QT PHONE END-->
 
 // FORWARD DECLARATIONS
 // None
@@ -75,11 +72,6 @@
 
     private:    // Data
     
-        // Converged Connection Handler client interface
-        // <-- QT PHONE START -->
-        //CCch* iCch;
-        // <-- QT PHONE END-->
-
 
     };
 
--- a/convergedcallengine/serviceselector/src/cssconnectionhandler.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/convergedcallengine/serviceselector/src/cssconnectionhandler.cpp	Mon May 03 13:01:45 2010 +0300
@@ -57,19 +57,11 @@
 //
 void CSsConnectionHandler::ConstructL()
     {
-    // <-- QT PHONE START -->
-    //iCch = CCch::NewL(); 
-    // <-- QT PHONE END -->
-
     }
 
 // Destructor
 CSsConnectionHandler::~CSsConnectionHandler()
     {
-    // <-- QT PHONE START -->
-    //delete iCch;
-    // <-- QT PHONE END-->
-
     }
 
 // -----------------------------------------------------------------------------
@@ -83,27 +75,7 @@
         ) const
     {
    
-    TBool registered( EFalse );
-    // <-- QT PHONE START -->
-/*
-    TCchServiceStatus serviceStatus;
-    CCchService* service = iCch->GetService( aServiceId );
-    if ( service )
-        {
-        service->GetStatus( ECCHVoIPSub, serviceStatus );
-        registered = ( KErrNone == serviceStatus.Error() ) && 
-                     ( ECCHEnabled == serviceStatus.State() );
-        }
-    
-    CSSLOGSTRING4("CSSelector::IsRegistered: id:%d ,enabled:%d ,error:%d",
-                (TInt) aServiceId,
-                (TInt) ECCHEnabled == serviceStatus.State(),
-                (TInt) serviceStatus.Error());
-                */
-                
-    // <-- QT PHONE END-->
-
-     
+    TBool registered( EFalse );     
     return registered;        
     }
 
--- a/networkhandling/networkhandlingengine/Group/networkhandling.mmp	Fri Apr 16 15:31:58 2010 +0300
+++ b/networkhandling/networkhandlingengine/Group/networkhandling.mmp	Mon May 03 13:01:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 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"
@@ -46,6 +46,7 @@
 #ifdef RD_PHONE_NG
 SOURCE          cnwnetworkselectionsettingmonitor.cpp
 #endif
+SOURCE          CNWDynamicCapsMonitor.cpp  
 
 #ifdef __PROTOCOL_GSM
 #include "Networkhandlinggsm.mmp"
@@ -65,6 +66,8 @@
 LIBRARY         charconv.lib
 
 LIBRARY         centralrepository.lib
+LIBRARY         etelpckt.lib
+LIBRARY         FeatMgr.lib
 
 #ifdef WINSCW
     DEFFILE ../Bwins/NETWORKHANDLING.DEF
--- a/networkhandling/networkhandlingengine/NetworkHandlingGsmSrc/CNWNetworkMCNEngine.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/networkhandling/networkhandlingengine/NetworkHandlingGsmSrc/CNWNetworkMCNEngine.cpp	Mon May 03 13:01:45 2010 +0300
@@ -16,8 +16,6 @@
 *
 */
 
-
-
 // INCLUDE FILES
 #include "CNWGsmSessionImplementation.h"
 #include "CNWGsmMessageHandler.h"
@@ -35,7 +33,6 @@
 const TInt KMCNOn = 1;
 const TInt KMCNOff = 0;
 
-
 // ============================ MEMBER FUNCTIONS ==============================
 
 // ----------------------------------------------------------------------------
--- a/networkhandling/networkhandlingengine/NetworkHandlingGsmSrc/CNWNetworkViagRefresh.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/networkhandling/networkhandlingengine/NetworkHandlingGsmSrc/CNWNetworkViagRefresh.cpp	Mon May 03 13:01:45 2010 +0300
@@ -22,8 +22,8 @@
 #include    "CNWNetworkViagRefresh.h"
 #include    "CNWNetworkViagBaseEngine.h"
 #include    "NWLogger.h"
-#include    <RSatRefresh.h>
-#include    <RSatSession.h>
+#include    <rsatrefresh.h>
+#include    <rsatsession.h>
 #include    "CNWNetworkViagSimReader.h"
 
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/networkhandling/networkhandlingengine/NetworkHandlingInc/CNWDynamicCapsMonitor.h	Mon May 03 13:01:45 2010 +0300
@@ -0,0 +1,122 @@
+/*
+* 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:  The header file of CNWDynamicCapsMonitor
+*
+*/
+
+
+
+#ifndef CNWDYNAMICCAPSMONITOR_H
+#define CNWDYNAMICCAPSMONITOR_H
+
+//  INCLUDES
+#include "CNWNetworkMonitorBase.h"
+
+// FORWARD DECLARATIONS
+class CNWMessageHandler;
+
+// CLASS DECLARATION
+
+/**
+*  Monitors dynamic caps change events from MMEtel.
+*  Ensures that alpha tag is displayed only when CS registration is successful.
+*  If PS registration is successful but CS registration failed, the alpha tag 
+*  should not be shown so users do not think they can make voice calls.
+*
+*  @lib networkhandling.lib
+*  @since Series 60_5.0
+*/
+NONSHARABLE_CLASS( CNWDynamicCapsMonitor ) : public CNWNetworkMonitorBase
+    {
+    public:  // Constructors and destructor
+        
+        /**
+        * Two-phased constructor.
+        */
+        static CNWDynamicCapsMonitor* NewL(
+            CNWMessageHandler& aOwner, 
+            RMobilePhone& aPhone, 
+            TNWInfo& aNetworkInfo, 
+            RMmCustomAPI& aCustomAPI );
+
+        /**
+        * Destructor.
+        */
+        virtual ~CNWDynamicCapsMonitor();
+        
+       
+        
+    protected:  // Functions from CActive
+        /**
+        * Cancels asyncronous request(s).
+        * 
+        */
+        void DoCancel();
+
+        /**
+        * Informs object that asyncronous request is ready.
+        * 
+        */
+        void RunL();
+        
+        /**
+         * From CActive, RunError.
+         * Processes any errors.
+         * @param aError The leave code reported.
+         * @result return KErrNone if leave is handled.
+         */
+         TInt RunError( TInt aError );
+
+    private:
+
+        /**
+        * Update Dynamic Caps Flags field of TNWInfo
+        * @param aDynamicCapsFlags The current dynamic caps flags.
+        */
+        void UpdateDynamicCapsFlags( 
+            const RPacketService::TDynamicCapsFlags aDynamicCapsFlags);
+
+        /**
+        * Executes the NotifyDynamicCapsChange() function.
+        * 
+        */
+        void IssueRequest();
+
+        /**
+        * C++ default constructor.
+        */
+        CNWDynamicCapsMonitor( 
+            CNWMessageHandler& aOwner, 
+            RMobilePhone& aPhone, 
+            TNWInfo& aNetworkInfo, 
+            RMmCustomAPI& aCustomAPI
+            );
+            
+        /**
+        * Second-phase constructor.
+        */
+        void ConstructL();  
+                   
+    // Data:
+        
+        // For RPacketService call
+        RPacketService iPacketService;
+        // Current dynamic caps flags.
+        RPacketService::TDynamicCapsFlags iDynamicCapsFlags;
+                
+   };
+
+#endif      // CNWDYNAMICCAPSMONITOR_H
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/networkhandling/networkhandlingengine/NetworkHandlingSrc/CNWDynamicCapsMonitor.cpp	Mon May 03 13:01:45 2010 +0300
@@ -0,0 +1,197 @@
+/*
+* Copyright (c) 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:  This module contains the implementation of 
+*               CNWDynamicCapsMonitor
+*
+*/
+
+//  INCLUDE FILES
+#include    <pcktcs.h>                         // for EPacketGetDynamicCaps
+#include    <etelpckt.h>                       // for RPacketService
+#include    "CNWDynamicCapsMonitor.h"
+#include    "CNWMessageHandler.h"
+#include    "NWLogger.h"
+
+// ================= MEMBER FUNCTIONS =======================================
+
+// -----------------------------------------------------------------------------
+// CNWDynamicCapsMonitor::CNWDynamicCapsMonitor
+// C++ default constructor can NOT contain any code, that might leave.
+// -----------------------------------------------------------------------------
+//
+CNWDynamicCapsMonitor::CNWDynamicCapsMonitor( 
+        CNWMessageHandler& aOwner, // ref. to owner class
+        RMobilePhone& aPhone,      // ref. to phone
+        TNWInfo& aNetworkInfo,     // ref. to network info struct 
+        RMmCustomAPI& aCustomAPI ) //ref. to customAPI
+         : CNWNetworkMonitorBase( aOwner,
+                                  aPhone,
+                                  aNetworkInfo,
+                                  aCustomAPI )
+    {
+    NWLOGSTRING( KNWOBJECT, "NW: CNWDynamicCapsMonitor::CNWDynamicCapsMonitor -START" );
+    CActiveScheduler::Add( this );
+    }
+    
+    
+// -----------------------------------------------------------------------------
+// CNWDynamicCapsMonitor::ConstructL
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CNWDynamicCapsMonitor::ConstructL()
+    {
+    NWLOGSTRING( KNWOBJECT, "NW: CNWDynamicCapsMonitor::ConstructL -START" );
+    User::LeaveIfError( iPacketService.Open( iPhone ) );
+    // Assign lower priority than other networkhandling monitors.
+    // (Default in CNWNetworkMonitorBase is EPriorityStandard)
+    SetPriority( EPriorityIdle );
+    
+    NWLOGSTRING( KNWOBJECT, "NW: CNWDynamicCapsMonitor::ConstructL -END" );
+    }
+
+// -----------------------------------------------------------------------------
+// CNWDynamicCapsMonitor::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CNWDynamicCapsMonitor* CNWDynamicCapsMonitor::NewL( 
+        CNWMessageHandler& aOwner, 
+        RMobilePhone& aPhone, 
+        TNWInfo& aNetworkInfo, 
+        RMmCustomAPI& aCustomAPI )
+    {
+    NWLOGSTRING( KNWOBJECT, "NW: CNWDynamicCapsMonitor::NewL -START" );
+    CNWDynamicCapsMonitor* self = 
+        new( ELeave ) CNWDynamicCapsMonitor( aOwner,
+                                             aPhone, 
+                                             aNetworkInfo,
+                                             aCustomAPI );
+    
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+    NWLOGSTRING( KNWOBJECT, "NW: CNWDynamicCapsMonitor::NewL -END" );
+    return self;
+    }
+    
+
+// Destructor
+CNWDynamicCapsMonitor::~CNWDynamicCapsMonitor()
+    {
+    Cancel();    
+    iPacketService.Close();
+    
+    NWLOGSTRING( KNWOBJECT, "NW: CNWDynamicCapsMonitor::~CNWDynamicCapsMonitor -END" );
+    }
+
+// -----------------------------------------------------------------------------
+// CNWDynamicCapsMonitor::DoCancel
+// Cancels the pending async. command.
+// -----------------------------------------------------------------------------
+//
+void CNWDynamicCapsMonitor::DoCancel()
+    {
+    NWLOGSTRING( KNWREQEND, "NW: CNWDynamicCapsMonitor::DoCancel: Request CancelAsyncRequest( EPacketNotifyDynamicCapsChange )" );
+    iPacketService.CancelAsyncRequest( EPacketNotifyDynamicCapsChange );
+    }
+
+// -----------------------------------------------------------------------------
+// CNWDynamicCapsMonitor::RunL
+// Receives notification that the dynamic packet data capabilities changed.
+// Saves new value in TNWInfo object. (This will be used by active idle to
+// hide the alpha tag if CS registration is unsuccessful.)
+// -----------------------------------------------------------------------------
+//
+void CNWDynamicCapsMonitor::RunL()
+    {
+    NWLOGSTRING2( KNWREQEND,
+        "NW: CNWDynamicCapsMonitor::RunL, iStatus = %d", iStatus.Int() );
+    
+    if( iStatus.Int() == KErrNone )
+        {
+        if ( iNWNetworkInfo.iDynamicCapsFlags != iDynamicCapsFlags )
+            {
+            // Update dynamic caps info
+            UpdateDynamicCapsFlags( iDynamicCapsFlags );
+            iOwner.SendMessage( 
+                MNWMessageObserver::ENWMessageDynamicCapsChange );
+            }
+        IssueRequest(); 
+        }
+        // Check if monitor can be restarted.
+    else if ( iStatus != KErrCancel && iStatus != KErrServerTerminated )
+        {
+        NWLOGSTRING2( KNWERROR,
+            "NW: CNWDynamicCapsMonitor::RunL, Unknown error situation, iStatus = %d", iStatus.Int() );
+        IssueRequest();
+        }
+    else
+        {
+        NWLOGSTRING2( KNWERROR,
+            "NW: CNWDynamicCapsMonitor::RunL, Server Terminated or request Cancelled, iStatus = %d", iStatus.Int() );
+        }
+     }
+
+
+// -----------------------------------------------------------------------------
+// CNWDynamicCapsMonitor::IssueRequest
+// Request a notification when the dynamic packet data capabilities change.
+// -----------------------------------------------------------------------------
+//
+void CNWDynamicCapsMonitor::IssueRequest()
+    {
+    NWLOGSTRING( KNWOBJECT, "NW: CNWDynamicCapsMonitor::IssueRequest() -START" );
+    
+    if( !IsActive() )
+        {
+        NWLOGSTRING( KNWREQIN, 
+                        "NW:CNWDynamicCapsMonitor::IssueRequest > RPacketService::NotifyDynamicCapsChange" );
+        iPacketService.NotifyDynamicCapsChange( iStatus, iDynamicCapsFlags );
+        SetActive();
+        }
+    else 
+        {
+        NWLOGSTRING( KNWERROR, 
+            "NW: CNWDynamicCapsMonitor::IssueRequest: Already active" );
+        }
+    
+    NWLOGSTRING( KNWOBJECT, "NW: CNWDynamicCapsMonitor::IssueRequest() -END" );
+    }
+ 
+
+// -----------------------------------------------------------------------------
+// CNWDynamicCapsMonitor::UpdateDynamicCapsFlags()
+// Update the value of iNWNetworkInfo.iDynamicCapsFlags
+// -----------------------------------------------------------------------------
+//
+void CNWDynamicCapsMonitor::UpdateDynamicCapsFlags( 
+        const RPacketService::TDynamicCapsFlags aDynamicCapsFlags )
+    {
+    NWLOGSTRING( KNWOBJECT, "NW: CNWDynamicCapsMonitor::UpdateDynamicCapsFlags()" );
+    iNWNetworkInfo.iDynamicCapsFlags = aDynamicCapsFlags;
+    }
+
+
+// -----------------------------------------------------------------------------
+// CNWDynamicCapsMonitor::RunError()
+// Processes any errors.
+// -----------------------------------------------------------------------------
+//
+TInt CNWDynamicCapsMonitor::RunError( TInt /*aError*/ )
+    {
+    return KErrNone;    // Handled the error fully
+    }
+
+// end of file
--- a/networkhandling/networkhandlingengine/NetworkHandlingSrc/CNWMessageHandler.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/networkhandling/networkhandlingengine/NetworkHandlingSrc/CNWMessageHandler.cpp	Mon May 03 13:01:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2002-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"
@@ -18,6 +18,7 @@
 
 
 // INCLUDE FILES
+#include    <featmgr.h>
 #include    "NWHandlingEngine.h"
 #include    "CNWMessageHandler.h"
 #include    "CNWNetworkCurrentNetworkMonitor.h"
@@ -31,15 +32,18 @@
 #ifdef RD_PHONE_NG
 #include    "cnwnetworkselectionsettingmonitor.h"
 #endif // RD_PHONE_NG
+#include    "CNWDynamicCapsMonitor.h"
 // CONSTANTS
 const TInt KNWNetworkMonitorCurrent = 0;
 const TInt KNWNetworkMonitorMode = 1;
 const TInt KNWNetworkMonitorRegistration = 2;
 #ifdef RD_PHONE_NG
 const TInt KNWNetworkMonitorSettingSelection = 3;
+const TInt KNWNetworkMonitorDynamicCaps = 4;
+#else // RD_PHONE_NG
+const TInt KNWNetworkMonitorDynamicCaps = 3;
 #endif // RD_PHONE_NG
 
-
 // ============================ MEMBER FUNCTIONS ==============================
 
 // ----------------------------------------------------------------------------
@@ -207,6 +211,32 @@
 
     // Start initialising network handling module.
     iMonitorContainer[ KNWNetworkMonitorRegistration ]->Initialise();
+
+    // Create CNWDynamicCapsMonitor object and insert it to monitor container.
+    // Will be used to hide alpha tag when CS registration is unsuccessful
+    FeatureManager::InitializeLibL();
+    TInt err( KErrNone );
+    if( FeatureManager::FeatureSupported( 
+            KFeatureIdFfDisplayNetworkNameAfterCsRegistration ))
+        {
+        TRAP(err, 
+            CNWDynamicCapsMonitor* tempDynamicCapsMonitor =
+                CNWDynamicCapsMonitor::NewL( *this, iPhone, iNetworkInfo, 
+                                             iCustomAPI );
+            CleanupStack::PushL( tempDynamicCapsMonitor );
+
+            User::LeaveIfError( iMonitorContainer.Insert( 
+                                        tempDynamicCapsMonitor,
+                                        KNWNetworkMonitorDynamicCaps ) );
+            CleanupStack::Pop( tempDynamicCapsMonitor ); );
+        if( err == KErrNone )
+            {
+            iMonitorContainer
+                [ KNWNetworkMonitorDynamicCaps ]->Initialise();
+            }
+        }
+    FeatureManager::UnInitializeLib();
+    User::LeaveIfError(err);
     
     NWLOGSTRING( KNWOBJECT,
         "NW: CNWMessageHandler::BaseConstructL() End" );
@@ -399,6 +429,11 @@
             return _L("ENWMessageNetworkProviderNameUpdating"); 
         case MNWMessageObserver::ENWMessageServiceProviderNameUpdating:
             return _L("ENWMessageServiceProviderNameUpdating"); 
+        case MNWMessageObserver::ENWMessageDynamicCapsChange:
+            {
+            return _L("ENWMessageDynamicCapsChange");
+            break;
+            }
         default:
             NWLOGSTRING2( KNWINT, 
                 "NW: CNWMessageHandler::GetNameByMessage, unknown message = %d",
--- a/networkhandling/networkhandlingengine/NetworkHandlingSrc/CNWNetworkRegistrationStatusMonitor.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/networkhandling/networkhandlingengine/NetworkHandlingSrc/CNWNetworkRegistrationStatusMonitor.cpp	Mon May 03 13:01:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2002-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"
@@ -18,6 +18,7 @@
 
 
 //  INCLUDE FILES
+#include    <featmgr.h>
 #include    "CNWNetworkRegistrationStatusMonitor.h"
 #include    "CNWMessageHandler.h"
 #include    "NetworkHandlingDomainPSKeys.h"
@@ -66,6 +67,7 @@
         "NW: CNWNetworkRegistrationStatusMonitor::\
         ConstructL() Begin." );
     
+    FeatureManager::InitializeLibL();
     RProperty::TType type( RProperty::EInt );
     TSecurityPolicy readPolicy( ECapability_None );
     TSecurityPolicy writePolicy( ECapabilityWriteDeviceData );
@@ -146,6 +148,8 @@
     NWLOGSTRING( KNWOBJECT, 
         "NW: CNWNetworkRegistrationStatusMonitor::\
         ~CNWNetworkRegistrationStatusMonitor() End." );
+    FeatureManager::UnInitializeLib();
+    NWLOGSTRING( KNWOBJECT, "NW: CNWNetworkRegistrationStatusMonitor::~CNWNetworkRegistrationStatusMonitor complete." );
     }
 
 // ----------------------------------------------------------------------------
@@ -209,6 +213,13 @@
         NWLOGSTRING2( KNWERROR,
             "NW: CNWNetworkRegistrationStatusMonitor::RunL, Unknown error \
             situation, iStatus = %d", iStatus.Int() );
+   
+        if ( FeatureManager::FeatureSupported( KFeatureIdFfManualSelectionPopulatedPlmnList ) )
+            {
+            iOwner.SendErrorMessage( MNWMessageObserver::ENWNotifyNetworkRegistrationStatusChange, 
+                                     iStatus.Int() );
+            }
+        
         IssueRequest();
         }
     else
--- a/phoneclientserver/CallUI/Rom/CallUI.iby	Fri Apr 16 15:31:58 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +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:  CallUi's iby definitions.
- *
-*/
-
-
-#ifndef __CALLUI_IBY__
-#define __CALLUI_IBY__
-
-REM CallUI Plugin
-ECOM_PLUGIN(cauiplugin.dll,101f868e.rsc)
-
-REM CallUI Engine
-file=ABI_DIR\BUILD_DIR\cauiengine.dll       SHARED_LIB_DIR\cauiengine.dll
-
-REM Enabler for exlipsing ROM binaries
-data=ZSYSTEM\install\callui_stub.sis       system\install\callui_stub.sis
-#endif
--- a/phoneclientserver/CallUI/Rom/CallUIResources.iby	Fri Apr 16 15:31:58 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +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:  CallUIResource's iby definitions.
- *
-*/
-
-
-#ifndef __CALLUI_RESOURCES_IBY__
-#define __CALLUI_RESOURCES_IBY__
-
-data=DATAZ_\RESOURCE_FILES_DIR\CallUI.rsc  RESOURCE_FILES_DIR\CallUI.rsc
-
-#endif
\ No newline at end of file
--- a/phoneclientserver/CallUI/Rom/CallUI_Variant.iby	Fri Apr 16 15:31:58 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +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:  CallUi's iby definitions.
- *
-*/
-
-
-#ifndef __CALLUI_VARIANT_IBY__
-#define __CALLUI_VARIANT_IBY__
-
-#ifdef __JAPAN_PREFIX_CHANGE
-file=ABI_DIR\BUILD_DIR\dialutils.dll                        SHARED_LIB_DIR\dialutils.dll
-#endif //  __JAPAN_PREFIX_CHANGE
-
-#endif
--- a/phoneclientserver/CallUI/Src/CaUiEngine/CaUiActiveObject.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,467 +0,0 @@
-/*
-* Copyright (c) 2004 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:  Active object to handle global list query results.
-*
-*/
-
-
-
-
-// INCLUDE FILES
-#include    "cauiactiveobject.h" 
-#include    "cauiqueryobserver.h" 
-#include    <coemain.h>
-
-#include    <mcauireconnectqueryobserver.h>
-#include    <cphonecntfactory.h>
-#include    <cphcntmatcher.h> 
-#include    <mphcntmatch.h> 
-#include    "cauimessagesender.h" 
-#include    "cauilogger.h" 
-// CONSTANTS
-
-
-
-// The message editor granularity.
-const TInt KCaUiMessageEditorArrayGranularity = 1;
-
-// The reconnect query options granularity.
-#ifdef RD_UNIFIED_EDITOR
-const TInt KCaUiReConQueryOptionsArrayGranularity = 3;
-#else // RD_UNIFIED_EDITOR
-const TInt KCaUiReConQueryOptionsArrayGranularity = 4;
-#endif // RD_UNIFIED_EDITOR
-// The editor values that this active object supports.
-enum
-    {
-#ifdef RD_UNIFIED_EDITOR
-    ECaUiEditorMSG = 0   // Unified editor.
-#else  // RD_UNIFIED_EDITOR
-    ECaUiEditorSMS = 0,  // SMS editor.
-    ECaUiEditorMMS = 1   // MMS editor.
-#endif // RD_UNIFIED_EDITOR
-    };
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-
-// -----------------------------------------------------------------------------
-// CCaUiGlnActiveObject::CCaUiGlnActiveObject
-// 
-// C++ default constructor can NOT contain any code, that might leave.
-// -----------------------------------------------------------------------------
-//
-CCaUiGlnActiveObject::CCaUiGlnActiveObject( 
-    MCaUiReconnectQueryObserver& aObserver )
-:   CActive( EPriorityStandard ),
-    iObserver( &aObserver )
-    {
-    CActiveScheduler::Add( this );
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiGlnActiveObject::ConstructL
-// 
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CCaUiGlnActiveObject::ConstructL(
-    CPhCntMatcher* aPhCntMatcher,
-    const TPtrC aPhoneNumber,
-    const TPtrC aAlias )
-    {
-    CAUILOGSTRING("CALLUI: >>> CCaUiGlnActiveObject::ConstructL() begin");
-    iReConQueryOptions = new ( ELeave ) CCaUiTIntArray( 
-        KCaUiReConQueryOptionsArrayGranularity );
-
-    // Get recipient info - is always available here
-    iRealAddress = 
-        new ( ELeave ) CDesCArrayFlat( KCaUiMessageEditorArrayGranularity );
-    iRealAddress->AppendL( aPhoneNumber );
-
-    iAliases = new ( ELeave ) CDesC16ArrayFlat( 
-        KCaUiMessageEditorArrayGranularity );
-
-    if ( aAlias.Length() != 0 )
-        {
-        // Alias was given, so matcher is not needed.
-        iAliases->AppendL( aAlias );
-
-        // Matcher does not exist.
-        iOwnMatcher = EFalse;
-        }
-    else
-        {
-        // Create matcher objects if needed.
-        if ( !aPhCntMatcher )
-            {
-            iOwnMatcher = ETrue;
-            iPhCntFactory = CreateCntFactoryL();
-            iPhCntMatcher = iPhCntFactory->CreateContactMatcherL();
-            }
-        else
-            {
-            iOwnMatcher = EFalse;
-            iPhCntMatcher = aPhCntMatcher;
-            }
-        }
-    CAUILOGSTRING("CALLUI: >>> CCaUiGlnActiveObject::ConstructL() end");
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiGlnActiveObject::NewL
-// 
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CCaUiGlnActiveObject* CCaUiGlnActiveObject::NewL( 
-    MCaUiReconnectQueryObserver& aObserver,
-    CPhCntMatcher* aPhCntMatcher,
-    const TPtrC aPhoneNumber,
-    const TPtrC aAlias )
-    {
-    CCaUiGlnActiveObject* self = new( ELeave ) CCaUiGlnActiveObject (
-        aObserver );
-    
-    CleanupStack::PushL( self );
-    self->ConstructL( 
-        aPhCntMatcher,
-        aPhoneNumber,
-        aAlias );
-    CleanupStack::Pop();
-
-    return self;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiGlnActiveObject::~CCaUiGlnActiveObject
-// 
-// Destructor.
-// -----------------------------------------------------------------------------
-//
-CCaUiGlnActiveObject::~CCaUiGlnActiveObject()
-    {
-    Cancel();
-
-    delete iReConQueryOptions;
-
-    // Delete arrays.
-    delete iRealAddress;
-    delete iAliases;
-
-    // Delete Phone Contact Finder objects if owned.
-    if ( iOwnMatcher )
-        {
-        delete iPhCntMatcher;
-        delete iPhCntFactory;
-        }
-
-    if( iMessageSender )
-        {
-        delete iMessageSender;
-        }
-
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiGlnActiveObject::ReconQueryOptionsArray
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-CCaUiTIntArray* CCaUiGlnActiveObject::ReconQueryOptionsArray()
-    {
-    return iReConQueryOptions;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiGlnActiveObject::DoCancel
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-void CCaUiGlnActiveObject::DoCancel()
-    {
-    iObserver = NULL;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiGlnActiveObject::RunL
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-void CCaUiGlnActiveObject::RunL()
-    {
-    CAUILOGSTRING("CALLUI: >>> CCaUiGlnActiveObject::RunL() Begin");
-    
-    MCaUiReconnectQueryObserver::TCaUiReconType recontype = 
-        MCaUiReconnectQueryObserver::ECallUiReconTypeCancel;
-    TInt result = iStatus.Int();
-    TInt count = ReconQueryOptionsArray()->Count();
-
-    // If some option was chosen, change the result to contain right value.
-    if ( result >= 0 && result <= count )
-        {
-        result = ( *ReconQueryOptionsArray() )[ result ];
-        }
-    else
-        {
-        result = KErrCancel;
-        }
-        
-    CAUILOGSTRING2("CALLUI: CCaUiGlnActiveObject::RunL(): result: %d", result);    
-    switch ( result )
-        {
-        case ECaUiVoiceCall:
-            recontype = MCaUiReconnectQueryObserver::ECallUiReconTypeVoice;
-            break;
-
-        case ECaUiVideoCall:
-            recontype = MCaUiReconnectQueryObserver::ECallUiReconTypeVideo;
-            break;
-#ifndef RD_UNIFIED_EDITOR
-        case ECaUiMms:
-            CAUILOGSTRING("CALLUI: <<< CCaUiGlnActiveObject::RunL() ECaUiMms");
-            recontype = MCaUiReconConfQueryObserver::ECallUiReconTypeMms;
-            LaunchEditorL( ECaUiEditorMMS );
-            break;
-
-        case ECaUiSms:
-            CAUILOGSTRING("CALLUI: <<< CCaUiGlnActiveObject::RunL() ECaUiSms");
-            recontype = MCaUiReconConfQueryObserver::ECallUiReconTypeSms;
-            LaunchEditorL( ECaUiEditorSMS );
-            break;
-#else // RD_UNIFIED_EDITOR
-        case ECaUiMsg:
-            CAUILOGSTRING("CALLUI: <<< CCaUiGlnActiveObject::RunL() ECaUiMsg");
-            recontype = MCaUiReconnectQueryObserver::ECallUiReconTypeMsg;
-            LaunchEditorL( ECaUiEditorMSG );
-            break;
-#endif // RD_UNIFIED_EDITOR
-        default:
-            break;
-        }
-
-    iObserver->OptionSelected( recontype );
-    
-    Cancel();
-    
-    CAUILOGSTRING("CALLUI: <<< CCaUiGlnActiveObject::RunL() end");
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiGlnActiveObject::SetActive
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-void CCaUiGlnActiveObject::SetActive()
-    {
-    if( !IsActive() )
-        {
-        CActive::SetActive();
-        }
-    }
-
-// ---------------------------------------------------------
-// CCaUiGlnActiveObject::CreateMessageSenderL
-// ---------------------------------------------------------
-//
-void CCaUiGlnActiveObject::CreateMessageSenderL()
-    {
-    // Create instance of send ui.
-    if( !iMessageSender )
-        {
-        iMessageSender = CCaUiMessageSender::NewL();
-        }
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiGlnActiveObject::LaunchEditorL
-// -----------------------------------------------------------------------------
-//
-void CCaUiGlnActiveObject::LaunchEditorL( TCaUiEditorType aEditorType )
-    {
-    CAUILOGSTRING("CALLUI: >>> CCaUiGlnActiveObject::LaunchEditorL()");
-    
-    CreateMessageSenderL();
-     
-    const CUidNameArray& msgTypes = iMessageSender->MessageTypesArrayL();   
-
-    if ( !( iAliases->Count() ) )
-        {
-        // Name not yet known, so try to solve it.
-        MPhCntMatch* match = NULL;
-        TInt ret = iPhCntMatcher->MatchNumber( 
-            match, 
-            ( *iRealAddress )[0] ); // First and only phonenumber.
-        CleanupStack::PushL( match );
-    
-        if ( ret == KErrNone && match )
-            {
-            HBufC* cliText = NULL;
-
-            MPhCntMatch::TCliType cliType = match->Cli( cliText );
-            CleanupStack::PushL( cliText );
-
-            if ( cliType == MPhCntMatch::ECliName )
-                {
-                iAliases->AppendL( *cliText );
-                }
-            CleanupStack::PopAndDestroy( cliText );
-            }
-
-        // Pop and destroy match.
-        CleanupStack::Pop( match );
-        if ( match )
-            {
-            match->Release();
-            }
-        }
-
-
-    TInt messageType = 0; // Editor type, default value.
-    TBool launchQuery = EFalse;
-
-    switch ( aEditorType )
-        {
- #ifndef RD_UNIFIED_EDITOR
-        case ECaUiEditorSMS:
-            messageType = msgTypes[ ECaUiEditorSMS ].iUid.iUid;  // SMS editor.
-            launchQuery = ETrue;
-            break;
-
-        case ECaUiEditorMMS:
-            messageType = msgTypes[ ECaUiEditorMMS ].iUid.iUid;  // MMS editor.
-            launchQuery = ETrue;
-            break;
- #else // RD_UNIFIED_EDITOR          
-        case ECaUiEditorMSG:
-            messageType = msgTypes[ ECaUiEditorMSG ].iUid.iUid;  // Unified message editor.
-            launchQuery = ETrue;
-            break;
- #endif // RD_UNIFIED_EDITOR
-        default:
-            break;
-        }
-
-    CAUILOGSTRING2("CALLUI: CCaUiGlnActiveObject::LaunchEditorL(): Message type: %d", messageType);
-    CAUILOGSTRING2("CALLUI: CCaUiGlnActiveObject::LaunchEditorL(): Launch query: %d", launchQuery);
-
-    // If the editor type was valid, launch the editor.
-    if ( launchQuery )
-        {
-        //Launch SMS Editor.
-        iMessageSender->CreateNewMessageL( 
-            messageType, 
-            iRealAddress, 
-            iAliases,
-            NULL );
-        }
-        
-    CAUILOGSTRING("CALLUI: <<< CCaUiGlnActiveObject::LaunchEditorL()");    
-    }
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-
-// -----------------------------------------------------------------------------
-// CCaUiNoteActiveObject::CCaUiNoteActiveObject
-// 
-// C++ default constructor can NOT contain any code, that might leave.
-// -----------------------------------------------------------------------------
-//
-CCaUiNoteActiveObject::CCaUiNoteActiveObject()
-:   CActive( EPriorityStandard )
-    {
-    CActiveScheduler::Add( this );
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiNoteActiveObject::NewL
-// 
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CCaUiNoteActiveObject* CCaUiNoteActiveObject::NewL()
-    {
-    CCaUiNoteActiveObject* self = new( ELeave ) CCaUiNoteActiveObject ();
-
-    return self;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiNoteActiveObject::~CCaUiNoteActiveObject
-// 
-// Destructor.
-// -----------------------------------------------------------------------------
-//
-CCaUiNoteActiveObject::~CCaUiNoteActiveObject()
-    {
-    Cancel();
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiNoteActiveObject::DoCancel
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-void CCaUiNoteActiveObject::DoCancel()
-    {
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiNoteActiveObject::RunL
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-void CCaUiNoteActiveObject::RunL()
-    {
-    Cancel();
-    }
-
-
-
-// -----------------------------------------------------------------------------
-// CCaUiNoteActiveObject::SetActive
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-void CCaUiNoteActiveObject::SetActive()
-    {
-    if( !IsActive() )
-        {
-        CActive::SetActive();
-        }
-    }
-
-
-// End of File
--- a/phoneclientserver/CallUI/Src/CaUiEngine/CaUiDialDataContainer.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,76 +0,0 @@
-/*
-* Copyright (c) 2004 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:  Contains PhoneClient Dial Data.
-*
-*/
-
-
-
-// INCLUDE FILES
-#include    "cauidialdatacontainer.h" 
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-
-// -----------------------------------------------------------------------------
-// CCaUiDialDataContainer::CCaUiDialDataContainer
-// 
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CCaUiDialDataContainer::CCaUiDialDataContainer()
-    {
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiDialDataContainer::NewL
-// 
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CCaUiDialDataContainer* CCaUiDialDataContainer::NewL()
-    {
-    CCaUiDialDataContainer* self = new( ELeave ) CCaUiDialDataContainer;
-
-    return self;
-    }
-
-    
-// -----------------------------------------------------------------------------
-// CCaUiDialDataContainer::~CCaUiDialDataContainer
-// 
-// Destructor.
-// -----------------------------------------------------------------------------
-//
-CCaUiDialDataContainer::~CCaUiDialDataContainer()
-    {
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiDialDataContainer::DialData
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-TPhCltExtPhoneDialData& CCaUiDialDataContainer::DialData()
-    {
-    return iDialData;
-    }
-
-
-//  End of File  
--- a/phoneclientserver/CallUI/Src/CaUiEngine/CaUiDialogs.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,658 +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:  Implementation of CallUIEngine.
-*
-*/
-
-
-// INCLUDES
-
-#include <e32base.h>
-#include <e32cmn.h>
-#include <featmgr.h>
-#include <stringloader.h> 
-#include <callui.rsg> // Resources. 
-#include <aknmessagequerydialog.h>
-#include <aknnotewrappers.h>
-#include <akngloballistquery.h> 
-#include <aknglobalnote.h> 
-#include <mcauireconnectqueryobserver.h>
-#include "cauidialogs.h" 
-#include "cauilogger.h" 
-#include "cauiquery.h" 
-#include "cauiengine.h" 
-#include "cphcntmatcher.h" 
-#include "cauiactiveobject.h" 
-
-// CLASS DECLARATION
-
-/**
-*  Container for informatioin needed in Reconnection query.
-*
-*  @lib CaUiEngine.lib
-*  @since 2.6
-*/
-NONSHARABLE_CLASS( CCaUiReConQueryInformation ) 
-    : public CBase
-    {
-    public:  // Constructors and destructor
-        
-        /**
-        * C++ constructor.
-        * 
-        * @see CCaUiEngApi::LaunchNoteAndReconConfQueryL().
-        */
-        CCaUiReConQueryInformation(
-            MCaUiReconnectQueryObserver& aObserver,
-            CPhCntMatcher* aPhCntMatcher,
-            const TPtrC aPhoneNumber,
-            const TBool aIncludeVideoCallOption,
-            const TPtrC aNoteText );
-        
-        /**
-        * Destructor.
-        */
-        ~CCaUiReConQueryInformation();
-
-
-    public:    // Data
-
-        // Observer storage.
-        MCaUiReconnectQueryObserver&    iObserver;
-
-        // Matcher storage.
-        CPhCntMatcher*                  iPhCntMatcher;
-
-        // Phone number storage.
-        const TPtrC                     iPhoneNumber;
-
-        // Video call option storage.
-        const TBool                     iIncludeVideoCallOption;
-    
-        // The name corresponding the phone number.
-        const TPtrC                     iAlias;
-
-    };
-
-
-// -----------------------------------------------------------------------------
-// CCaUiReConQueryInformation::CCaUiReConQueryInformation
-// 
-// C++ default constructor can NOT contain any code, that might leave.
-// -----------------------------------------------------------------------------
-//
-CCaUiReConQueryInformation::CCaUiReConQueryInformation(
-    MCaUiReconnectQueryObserver& aObserver,
-    CPhCntMatcher* aPhCntMatcher,
-    const TPtrC aPhoneNumber,
-    const TBool aIncludeVideoCallOption,
-    const TPtrC aAlias )
-    : iObserver( aObserver ),
-      iPhCntMatcher( aPhCntMatcher ),
-      iPhoneNumber( aPhoneNumber ),
-      iIncludeVideoCallOption( aIncludeVideoCallOption ),
-      iAlias( aAlias )
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CCaUiReConQueryInformation::~CCaUiReConQueryInformation
-// 
-// Destructor.
-// -----------------------------------------------------------------------------
-//
-CCaUiReConQueryInformation::~CCaUiReConQueryInformation()
-    {
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiDialogs::CCaUiDialogs
-// 
-//
-// -----------------------------------------------------------------------------
-//
-CCaUiDialogs::CCaUiDialogs( CCaUiEngine& aCaUiEngine )
-    : iCaUiEngine( aCaUiEngine )
-    {
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiDialogs::NewL
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-CCaUiDialogs* CCaUiDialogs::NewL( CCaUiEngine& aCaUiEngine )
-    {
-    CCaUiDialogs* self = new( ELeave ) CCaUiDialogs( aCaUiEngine );
-    
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-    
-    return self;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiDialogs::ConstructL
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-void CCaUiDialogs::ConstructL()
-    {
-    CAUILOGSTRING("CALLUI: >>>CCaUiDialogs::ConstructL() Begin");
-    // Create reconnect query, not visible yet.
-    iReconListQuery = CAknGlobalListQuery::NewL();
-    
-    CAUILOGSTRING("CALLUI: >>>CCaUiDialogs::ConstructL() End");
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiDialogs::~CCaUiDialogs
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-CCaUiDialogs::~CCaUiDialogs()
-    {
-    CAUILOGSTRING("CALLUI: >>>CCaUiDialogs::~CCaUiDialogs() Begin");
-    // Cancel confirmation query if exists.
-    CancelReconConfQuery();
-    delete iReconListQuery;
-    
-    // Delete reconnection query information.
-    delete iReConQueryInformation;
-    
-    // Cancel and delete note timer if exists.
-    if ( iNoteTimer )
-        {
-        iNoteTimer->Cancel();
-        delete iNoteTimer;
-        }
-
-    CAUILOGSTRING("CALLUI: >>>CCaUiDialogs::~CCaUiDialogs() End");
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiDialogs::QueryVideoCallDefaultActionL
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-TInt CCaUiDialogs::QueryVideoCallDefaultActionL()
-    {
-    CAUILOGSTRING("CALLUI: >>>CCaUiDialogs::QueryVideoCallDefaultActionL() Begin");
-    HBufC* vtstring = NULL;
-    HBufC* header = NULL;
-    vtstring = StringLoader::LoadLC( R_CALLUI_VT_SETTING_NOTE );
-    header = StringLoader::LoadLC( R_CALLUI_POPUP_VT_TITLE_SETTING );
-
-    CAknMessageQueryDialog* dlg = CAknMessageQueryDialog::NewL( *vtstring );
-    CleanupStack::PushL( dlg );
-    dlg->SetHeaderTextL( *header );
-    CleanupStack::Pop( dlg );
-
-    // Show query note to user
-    TInt result = dlg->ExecuteLD( R_CALLUI_VT_SETTING_QUERY );
-
-    CleanupStack::PopAndDestroy( 2, vtstring ); // header, vtstring
-    CAUILOGSTRING("CALLUI: >>>CCaUiDialogs::QueryVideoCallDefaultActionL() End");
-    
-    return result;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiDialogs::LaunchCreateListQueryL
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-TBool CCaUiDialogs::LaunchCreateListQueryL( TPhCltCallType& aCallType )
-    {
-    CAUILOGSTRING("CALLUI: >>>CCaUiDialogs::LaunchCreateListQueryL() Begin");
-    
-    TInt choice = KErrNotFound;
-
-    CListMappingArray* mappingList = new ( ELeave ) CListMappingArray( 4 );
-    CleanupStack::PushL( mappingList ); 
-
-    // Create query dialog.
-    CCaUiCreateListQuery* dlg = 
-        new ( ELeave ) CCaUiCreateListQuery( &choice );
-    dlg->PrepareLC( R_CALLUI_CREATE_LIST_QUERY );
-    
-    CAUILOGSTRING("CALLUI: >>>CCaUiDialogs::LaunchCreateListQueryL() 1");
-
-    // new clean list item array
-    CDesCArray* textArray = new( ELeave ) CDesCArrayFlat( 4 );
-    CleanupStack::PushL( textArray );
-
-    FillListQueryItemsL( *textArray, *mappingList );
-
-    CleanupStack::Pop( textArray );
-
-    // Dialog takes the ownership of textArray          
-    if( textArray )
-        {
-        dlg->SetOwnershipType( ELbmOwnsItemArray );
-        dlg->SetItemTextArray( textArray );
-        }
-
-    // Highlight preferred item from listbox
-    if( aCallType == EPhCltVideo )
-        {
-        dlg->ListBox()->SetCurrentItemIndex( KCallUiVideoCall );
-        }
-
-    TBool ok = dlg->RunLD();
-    CAUILOGSTRING2("CALLUI: >>>CCaUiDialogs::LaunchCreateListQueryL() ok = %d", ok );
-    CAUILOGSTRING2("CALLUI: >>>CCaUiDialogs::LaunchCreateListQueryL() choice = %d", choice );
-    if ( ok  )
-        {
-        // Check what call type was selected.
-
-        // Dynamic list made because of voip support
-        // take calltype from mappinglist
-        aCallType = mappingList->At( choice ).iCallType;
-        }
-
-    CleanupStack::PopAndDestroy( mappingList );
-
-    return ok;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiDialogs::FillListQueryItemsL
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-void CCaUiDialogs::FillListQueryItemsL( 
-    CDesCArray& aTextArray, 
-    CListMappingArray& aMappingList )
-    {
-    CAUILOGSTRING("CALLUI: >>>CCaUiDialogs::FillListQueryItemsL() Begin");
-    
-    // Pointer for strings to be loaded.
-    HBufC* bufPtr = NULL;
-    TInt index = 0;
-    TListMappingItem item;
-
-    // Voice call option.
-    bufPtr = StringLoader::LoadLC( R_CALLUI_CREATE_LIST_VOICE );
-    aTextArray.AppendL( *bufPtr );
-    CleanupStack::PopAndDestroy( bufPtr );  
-    bufPtr = NULL;
-    item.iIndex = index;
-    item.iCallType = EPhCltVoice;
-    aMappingList.AppendL( item );
-    index++;
-    
-     // Video call option.
-    if ( FeatureManager::FeatureSupported( KFeatureIdCsVideoTelephony ) )
-        {
-        CAUILOGSTRING("CALLUI: >>>CCaUiDialogs::FillListQueryItemsL() Adding video call option");
-        bufPtr = StringLoader::LoadLC( R_CALLUI_CREATE_LIST_VIDEO );
-        aTextArray.AppendL( *bufPtr );
-        CleanupStack::PopAndDestroy( bufPtr );
-        bufPtr = NULL;
-        item.iIndex = index;
-        item.iCallType = EPhCltVideo;
-        aMappingList.AppendL( item );
-        index++;
-        }
-    // Internet call option is shown if dynamic voip is set on
-    // and there are VoIP profiles defined
-    if( iCaUiEngine.IsVoIPProfiles() )
-        {
-        // Internet call option.
-        CAUILOGSTRING("CALLUI: >>>CCaUiDialogs::FillListQueryItemsL() Adding internet call option");
-        bufPtr = StringLoader::LoadLC( R_CALLUI_CREATE_LIST_INTERNET );
-        aTextArray.AppendL( *bufPtr );
-        CleanupStack::PopAndDestroy( bufPtr );
-        bufPtr = NULL;
-        item.iIndex = index;
-        item.iCallType = EPhCltCallVoIP;
-        aMappingList.AppendL( item );
-        index++;
-        }
-    CAUILOGSTRING("CALLUI: >>>CCaUiDialogs::FillListQueryItemsL() End");
-    }
-
-
-/** not tested **/
-
-// -----------------------------------------------------------------------------
-// CCaUiDialogs::LaunchNoNetSupNoteL
-// 
-//
-// -----------------------------------------------------------------------------
-//
-void CCaUiDialogs::LaunchNoNetSupNoteL()
-    {
-    CAUILOGSTRING("CALLUI: >>>CCaUiDialogs::LaunchNoNetSupNoteL() Begin");
-    HBufC* string = StringLoader::LoadLC( R_CALLUI_NO_VIDEO_NETWORK );  
-
-    CAknInformationNote* dlg = new ( ELeave ) CAknInformationNote( EFalse );
-    dlg->ExecuteLD( *string );
-    dlg = NULL;
-
-    CleanupStack::PopAndDestroy( string );
-    string = NULL;
-    CAUILOGSTRING("CALLUI: >>>CCaUiDialogs::LaunchNoNetSupNoteL() End");
-    }
-
-
-
-// -----------------------------------------------------------------------------
-// CCaUiDialogs::LaunchReconConfQueryL
-// 
-//
-// -----------------------------------------------------------------------------
-//
-void CCaUiDialogs::LaunchReconConfQueryL( 
-    MCaUiReconnectQueryObserver& aObserver,
-    CPhCntMatcher* aPhCntMatcher,
-    const TPtrC aPhoneNumber,
-    const TBool aIncludeVideoCallOption,
-    const TPtrC aAlias )
-    {
-    CAUILOGSTRING("CALLUI: >>>CCaUiDialogs::LaunchReconConfQueryL() Begin ");
-    CDesCArray* textArray = new( ELeave ) CDesCArrayFlat( 4 );
-    CleanupStack::PushL( textArray );
-
-    // Delete the old query if exists.
-    CancelReconConfQuery();
-    
-    // Create new active object to handle query results.
-    iReconActObject = CCaUiGlnActiveObject::NewL( 
-        aObserver,
-        aPhCntMatcher,
-        aPhoneNumber,
-        aAlias );
-
-    CCaUiTIntArray* objectArray = iReconActObject->ReconQueryOptionsArray();
-    
-    // Pointer for strings to be loaded.
-    HBufC* bufPtr = NULL;
-
-    // Voice call option.
-    bufPtr = StringLoader::LoadLC( R_CALLUI_RECONNECT_LIST_ITEM_VOICE );
-    textArray->AppendL( *bufPtr );
-    CleanupStack::PopAndDestroy( bufPtr );
-    bufPtr = NULL;
-    objectArray->AppendL( CCaUiGlnActiveObject::ECaUiVoiceCall );
-
-    // Video call option is included only if it is wanted.
-    if ( aIncludeVideoCallOption )
-        {
-        bufPtr = StringLoader::LoadLC( R_CALLUI_RECONNECT_LIST_ITEM_VIDEO );
-        textArray->AppendL( *bufPtr );
-        CleanupStack::PopAndDestroy( bufPtr );
-        bufPtr = NULL;
-        objectArray->AppendL( CCaUiGlnActiveObject::ECaUiVideoCall );
-        }
-
-#ifndef RD_UNIFIED_EDITOR
-    // MMS option.
-    if (FeatureManager::FeatureSupported(KFeatureIdMMS))
-        {   
-        bufPtr = StringLoader::LoadLC( R_CALLUI_RECONNECT_LIST_ITEM_MMS  );
-        textArray->AppendL( *bufPtr );
-        CleanupStack::PopAndDestroy( bufPtr );
-        bufPtr = NULL;
-        objectArray->AppendL( CCaUiGlnActiveObject::ECaUiMms );
-        }
-
-    // SMS option.
-    bufPtr = StringLoader::LoadLC( R_CALLUI_RECONNECT_LIST_ITEM_SMS  );
-    textArray->AppendL( *bufPtr );
-    CleanupStack::PopAndDestroy( bufPtr );
-    bufPtr = NULL;
-    objectArray->AppendL( CCaUiGlnActiveObject::ECaUiSms );
-
-#else  
-    // Send message option.
-    bufPtr = StringLoader::LoadLC( R_CALLUI_RECONNECT_LIST_ITEM_MESSAGE  );
-    textArray->AppendL( *bufPtr );
-    CleanupStack::PopAndDestroy( bufPtr );
-    bufPtr = NULL;
-    objectArray->AppendL( CCaUiGlnActiveObject::ECaUiMsg );
-#endif // RD_UNIFIED_EDITOR
-
-    // Load query header.
-    bufPtr = StringLoader::LoadLC( R_CALLUI_RECONNECT_QUERY_HEADER  );
-    iReconListQuery->SetHeadingL( *bufPtr ); // Set query heading.
-    CleanupStack::PopAndDestroy( bufPtr );
-    bufPtr = NULL;
-
-    // Show query.
-    iReconActObject->SetActive();
-    iReconListQuery->ShowListQueryL( textArray, iReconActObject->iStatus );
-
-    CleanupStack::PopAndDestroy( textArray );
-    CAUILOGSTRING("CALLUI: >>>CCaUiDialogs::LaunchReconConfQueryL() End ");
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiDialogs::CancelReconConfQuery
-//
-//
-// -----------------------------------------------------------------------------
-//
-void CCaUiDialogs::CancelReconConfQuery()
-    {
-    CAUILOGSTRING("CALLUI: >>>CCaUiDialogs::CancelReconConfQuery() Begin ");
-    // Cancel the earlier query if exists.
-    if( iReconListQuery )
-        {
-        iReconListQuery->CancelListQuery();
-        }
-
-    // Cancel the active object.
-    if( iReconActObject )
-        {
-        if ( iReconActObject->IsActive() )
-            {
-            iReconActObject->Cancel();
-            }
-        }
-    iReconfQueryOngoing = EFalse;
-    delete iReconActObject;
-    iReconActObject = NULL;
-    CAUILOGSTRING("CALLUI: >>>CCaUiDialogs::CancelReconConfQuery() End ");
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiDialogs::CancelNoteAndReconConfQuery
-// 
-//
-// -----------------------------------------------------------------------------
-//
-void CCaUiDialogs::CancelNoteAndReconConfQuery()
-    {
-    CAUILOGSTRING("CALLUI: >>>CCaUiDialogs::CancelNoteAndReconConfQuery() Begin ");
-    // Delete reconnection query information.
-    delete iReConQueryInformation;
-    iReConQueryInformation = NULL;
-
-    // Cancel Note timer if exists.
-    if ( iNoteTimer )
-        {
-        // Cancel note timer.
-        iNoteTimer->Cancel();
-        }
-
-    // Cancel the reconnect query if exists.
-    if( iReconListQuery )
-        {
-        iReconListQuery->CancelListQuery();
-        }
-
-    // Cancel the active object.
-    if( iReconActObject )
-        {
-        if ( iReconActObject->IsActive() )
-            {
-            iReconActObject->Cancel();
-            }
-        }
-
-    delete iReconActObject;
-    iReconActObject = NULL;
-    CAUILOGSTRING("CALLUI: >>>CCaUiDialogs::CancelNoteAndReconConfQuery() End ");
-    }
-
-
-
-// -----------------------------------------------------------------------------
-// CCaUiDialogs::LaunchNoteAndReconConfQueryL
-// 
-//
-// -----------------------------------------------------------------------------
-//
-void CCaUiDialogs::LaunchNoteAndReconConfQueryL( 
-    MCaUiReconnectQueryObserver& aObserver,
-    CPhCntMatcher* aPhCntMatcher,
-    const TPtrC aPhoneNumber,
-    const TBool aIncludeVideoCallOption,
-    const TPtrC aNoteText,
-    const TPtrC aAlias )
-    {
-    CAUILOGSTRING("CALLUI: >>>CCaUiDialogs::LaunchNoteAndReconConfQueryL() Begin ");
-    iReconfQueryOngoing = ETrue;
-    delete iReConQueryInformation;
-    iReConQueryInformation = NULL;
-    iReConQueryInformation = new ( ELeave ) CCaUiReConQueryInformation(
-        aObserver,
-        aPhCntMatcher,
-        aPhoneNumber,
-        aIncludeVideoCallOption,
-        aAlias );
-
-    HBufC* string = NULL;
-    TInt noteTextLength = aNoteText.Length();
-
-    // Use either given note string or the qtn.tel.no.video.network string.
-    if ( noteTextLength )
-        {
-        string = HBufC::NewLC( noteTextLength );
-        string->Des() = aNoteText;
-        }
-    else
-        {
-        string = StringLoader::LoadLC( R_CALLUI_NO_VIDEO_NETWORK );
-        }
-
-    if ( !iInfoNote )
-        {
-        iInfoNote = new ( ELeave ) CAknInformationNote( EFalse );
-        iInfoNote->SetTimeout( CAknNoteDialog::ELongTimeout );
-        iInfoNote->ExecuteLD( *string );
-        }
-    
-    // Start note wait timer.
-    if ( !iNoteTimer )
-        {
-        iNoteTimer = CPeriodic::NewL( CActive::EPriorityStandard );
-        }
-    iNoteTimer->Cancel();
-    iNoteTimer->Start(
-        KCaUiEngNoteTimeout, 
-        KCaUiEngNoteTimeout,
-        TCallBack( DoPerformNoteLaunchCallBackL, this ) );
-
-    CleanupStack::PopAndDestroy( string );
-    CAUILOGSTRING("CALLUI: >>>CCaUiDialogs::LaunchNoteAndReconConfQueryL() End");
-    }
-
-
-
-// -----------------------------------------------------------------------------
-// CCaUiDialogs::DoPerformNoteLaunchCallBackL
-// 
-//
-// -----------------------------------------------------------------------------
-//
-TInt CCaUiDialogs::DoPerformNoteLaunchCallBackL( TAny* aAny )
-    {
-    CAUILOGSTRING("CALLUI: >>>CCaUiDialogs::DPNoteLaunchCallBackL() Begin");
-
-    CCaUiDialogs* self = static_cast< CCaUiDialogs* >( aAny );
-
-    if ( self )
-        {
-        if ( self->iNoteTimer )
-            {
-            // Cancel note timer.
-            self->iNoteTimer->Cancel();
-            }
-
-        if ( self->iInfoNote )
-            {
-            // Information note still displayed
-            return KErrNone;
-            }
-
-        if ( self->iReConQueryInformation && self->IsReconfQueryOngoing() )
-            {
-            // Launch reconnect query.
-            self->LaunchReconConfQueryL(
-                self->iReConQueryInformation->iObserver,
-                self->iReConQueryInformation->iPhCntMatcher,
-                self->iReConQueryInformation->iPhoneNumber,
-                self->iReConQueryInformation->iIncludeVideoCallOption,
-                self->iReConQueryInformation->iAlias );
-            }
-
-        delete self->iReConQueryInformation;
-        self->iReConQueryInformation = NULL;
-        }
-    CAUILOGSTRING("CALLUI: >>>CCaUiDialogs::DPNoteLaunchCallBackL() end");
-    return KErrNone;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiEngine::IsReconfQueryOngoing
-// 
-//
-// -----------------------------------------------------------------------------
-//
-TBool CCaUiDialogs::IsReconfQueryOngoing()
-    {
-    return iReconfQueryOngoing;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiEngine::IsReconfQueryOngoing
-// 
-//
-// -----------------------------------------------------------------------------
-//
-void CCaUiDialogs::SetReconfQueryOngoing( const TBool aOngoing )
-    {
-    iReconfQueryOngoing = aOngoing;
-    }
--- a/phoneclientserver/CallUI/Src/CaUiEngine/CaUiEngFactImpl.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,71 +0,0 @@
-/*
-* Copyright (c) 2004 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 the CaUiEngine factory interface.
-*
-*/
-
-
-
-// INCLUDE FILES
-#include    "cauiengfactimpl.h" 
-#include    "cauiengine.h" 
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-
-// -----------------------------------------------------------------------------
-// CCaUiEngFactImpl::CCaUiEngApiLD
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-CCaUiEngApi* CCaUiEngFactImpl::CCaUiEngApiLD()
-    {
-    CleanupStack::PushL( this );
-
-    CCaUiEngine* caUiEng = CCaUiEngine::NewL();
-    CleanupStack::PopAndDestroy( this );
-    return caUiEng;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiEngFactImpl::~CCaUiEngFactImpl
-// 
-// Destructor.
-// -----------------------------------------------------------------------------
-//
-CCaUiEngFactImpl::~CCaUiEngFactImpl()
-    {
-    }
-
-
-
-// ========================== OTHER EXPORTED FUNCTIONS =========================
-
-// -----------------------------------------------------------------------------
-// CreateCaUiEngFactoryL
-// 
-// Creates CallUIEngineFactory. This is only exported function.
-// Returns: CCaUiEngFactory*: CallUIEngine Factory instance.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CCaUiEngFactory* CreateCaUiEngFactoryL()
-    {
-    return new ( ELeave ) CCaUiEngFactImpl;
-    }
-
-
-//  End of File
--- a/phoneclientserver/CallUI/Src/CaUiEngine/CaUiEngine.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1392 +0,0 @@
-/*
-* Copyright (c) 2004-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 CallUIEngine.
-*
-*/
-
-
-// INCLUDE FILES
-#include    "cauiengine.h" 
-#include    "cauiquery.h" // CCaUiQuery. 
-#include    <mcauireconnectqueryobserver.h>  // MCaUiReconnectQueryObserver.
-#include    <callui.rsg> // Resources. 
-#include    <cphcltdialer.h> // CPhcltDialer. 
-#include    <cphonecntfactory.h>
-#include    <cphcntsingleitemfetch.h>
-#include    <aiwinternaldialdata.h>
-#include    <aiwservicehandler.h> 
-#include    <cphcltextphonedialdata.h> // CPhCltExtPhoneDialData 
-
-#include    "callui.loc"                // Localized strings.
-
-#include    <stringloader.h> // String Loader. 
-#include    <aknnotewrappers.h>         // CAknInformationNote.
-#include    <akngloballistquery.h> // CAknGloballistQuery. 
-#include    <featmgr.h>                 // FeatureManager.
-
-#include    <aknglobalconfirmationquery.h> // Confirmation query.
-
-#include    <phcltutils.h> // Character removal. 
-#include    <aiwcommon.h> // AIW dialdata. 
-
-#include    <networkhandlingdomainpskeys.h> 
-#include    <e32property.h>             // Pub&Sub functionality.
-
-#include    "cauivoipextension.h" // VoIP/SCCP profile store 
-
-#include    <centralrepository.h>
-#include    <settingsinternalcrkeys.h> 
-#include     "cauilogger.h" // Call Ui Logger 
-#include    <aknmessagequerydialog.h> 
-#include    <aknglobalnote.h>
-#include    <mphcntstoreloader.h>
-#include    <mvpbkcontactstore.h> 
-
-#include "cauidialogs.h" 
-
-// CONSTANTS
-
-// GSM Network.
-const TInt KCaUiEngGsmNetwork = ENWNetworkModeGsm;
-// WCDMA Network.
-const TInt KCaUiEngWcdmaNetwork = ENWNetworkModeWcdma;
-
-
-_LIT( KCallTypeUriParam, "call-type" );
-_LIT( KCallTypeVideo, "video" );
-_LIT( KSemiColon, ";" );
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CCaUiEngine::CCaUiEngine
-// 
-// C++ default constructor can NOT contain any code, that might leave.
-// -----------------------------------------------------------------------------
-//
-CCaUiEngine::CCaUiEngine()
-:   iResourceLoader( *CCoeEnv::Static() )
-    {
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiEngine::ConstructL
-// 
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CCaUiEngine::ConstructL()
-    {
-    CAUILOGSTRING("CALLUI: >>>CCaUiEngine::ConstructL() Begin");
-    // Sets up TLS, must be done before FeatureManager is used.
-    FeatureManager::InitializeLibL();
-
-    if ( CCoeEnv::Static() )
-        {
-        // Open CallUI resource file.
-        TFileName* name = new ( ELeave ) TFileName( KCallUIResFile );
-        CleanupStack::PushL( name );
-        User::LeaveIfError( iResourceLoader.Open( *name ) );
-        CleanupStack::PopAndDestroy( name );
-        }
-
-    // Get info is VoIP supported
-    iVoIPProfileHandler = CCaUiVoIPExtension::NewL();
-    iLongPressSet = ECaUiLongPressKeyNotSet;
-
-    iServiceSelector = CConvergedServiceSelector::NewL();
-
-    iDialogs = CCaUiDialogs::NewL( *this );
-    
-    CAUILOGSTRING("CALLUI: >>>CCaUiEngine::ConstructL() Complete");
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiEngine::NewL
-// 
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CCaUiEngine* CCaUiEngine::NewL()
-    {
-    CCaUiEngine* self = new( ELeave ) CCaUiEngine;
-    
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop();
-
-    return self;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiEngine::~CCaUEngine
-// 
-// Destructor.
-// -----------------------------------------------------------------------------
-//
-CCaUiEngine::~CCaUiEngine()
-    {
-    delete iServiceSelector;
-    
-    // Delete VoIP extension if VoIP is supported
-    if ( iVoIPProfileHandler )
-        {
-        delete iVoIPProfileHandler;
-        }
-    
-    delete iEmergencyCall;      
-    delete iContactSelector;
-    delete iFactory;
-    delete iVTSettingQuery;
-
-    // Clear dial components.
-    ClearDialContents();
-
-    if ( CCoeEnv::Static() )
-        {
-        // Close resource loader.
-        iResourceLoader.Close();
-        }
-    // Delete the menubuffer.
-    delete iBuf;
-    iBuf = NULL;
-  
-    delete iVTString;
-    iVTString = NULL;
-
-    delete iContactStoreLoader;
-    delete iDialogs;
-    
-    // Frees the TLS! Must be done after FeatureManager is used.
-    FeatureManager::UnInitializeLib();
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiEngine::DialL
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-void CCaUiEngine::DialL(
-    MCaUiDialResultObserver& aObserver,
-    const TDesC8& aDialData,
-    const TCaUiCallType aCallType )
-    {
-    CAUILOGSTRING("CALLUI: >>>CCaUiEngine::DialL() Begin");
-    iDialogs->SetReconfQueryOngoing( EFalse );
-    // If iPhCltDialer and iDialData exist, 
-    // destroy them and create new ones. This clears the dial data.
-    ClearDialContents();
-    iPhCltDialer = CPhCltExtPhoneBase::NewL( this );
-    iObserver = &aObserver;
-    iDialData = CPhCltExtPhoneDialData::NewL();
-   
-    CAiwInternalDialData* aiwDialData = CAiwInternalDialData::NewLC( aDialData );
-    
-    TPhCltTelephoneNumber  aiwTelNumber( aiwDialData->PhoneNumber() );
-    HBufC* uriParams = FindAndRipURIParametersL( aiwTelNumber );
-    CleanupStack::PushL( uriParams );
-    aiwDialData->SetPhoneNumberL( aiwTelNumber );
-    
-
-    // ConvertDialDataL overwrites, if given in aDialData
-    SetDialDataCallType( aCallType );
-    
-    // Convert AIW dial data to PhoneClient format.
-    ConvertDialDataL( *aiwDialData  );
-    
-    // Check if there has been a long press of Send key
-    if ( iDialData->InitiateCall() )
-        {
-        HandleLongPressOfSendKeyL();
-        }
-    
-    iDialData->SetSendKeyPressed( 
-        IsSendKeyPressed( aCallType, aiwDialData->CallType() ) );
-    
-
-    // By default call is made, unless user cancels the procedure.
-    TBool createCall = ETrue;
-
-    TPhCltCallType callType = iDialData->CallType();
-    
-    if ( aCallType == ECaUiCallTypeVoice )
-        {
-        iDialData->SetCallType( EPhCltVoice );
-        }
-    // If not forced video call is wanted, ask user to confirm it.
-    // ECaUiCallTypeUnknown indicates that the call is not made from options menu.
-    else if ( iDialData->CallType() == EPhCltVideo 
-                            && aCallType == ECaUiCallTypeUnknown )
-        {
-        // Get preferred call-type from URI params, it will be passed to
-        // list query and selected by default
-        callType = CallTypeFromUriParams( *uriParams );
-        // If query is canceled, then call is not made.
-        createCall = iDialogs->LaunchCreateListQueryL( callType );
-        // Set the call type, video must be forced
-        if ( EPhCltVideo == callType )
-            {
-            iDialData->SetCallType( EPhCltForcedVideo );
-            }
-        else
-            {
-            iDialData->SetCallType( callType );
-            }
-        }
-    else if ( aCallType == ECaUiCallTypeInternet )
-        {
-        iDialData->SetCallType( EPhCltCallVoIP );
-        }
-    else if ( aCallType == ECaUiCallTypeVideo )
-        {
-        // (Forced) video call must be created.
-        iDialData->SetCallType( EPhCltForcedVideo );
-        }
-        
-    CleanupStack::PopAndDestroy( uriParams );
-    
-    
-    
-    // If user did not Cancel query or query was not shown, 
-    // perform the dial operation.
-    if ( createCall )
-        {
-        if ( iDialData->ContactLink() != KNullDesC8() 
-            && !aiwDialData->PhoneNumber().Length() )
-            {
-
-            TBool storeLoaded 
-                = LaunchContactStoreLoadingL( iDialData->ContactLink() );
-            if ( storeLoaded )
-                {
-                // Launch address select.
-                // aCallType describes which selector is used. ( VoIP/PhoneNumber )
-                LaunchAddressSelectL( iDialData->ContactLink(), aCallType );
-                }
-            }
-        else 
-            {
-            PhoneClientDialL( NULL );
-            }
-        }
-    else
-        {
-        HandleDialL( KErrCancel );
-        }
-    
-    CleanupStack::PopAndDestroy( aiwDialData );
-    CAUILOGSTRING("CALLUI: >>>CCaUiEngine::DialL() End");
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiEngine::LaunchNoNetSupNoteL
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-void CCaUiEngine::LaunchNoNetSupNoteL()
-    {
-
-    iDialogs->LaunchNoNetSupNoteL();
-
-    }
-
-
-
-// -----------------------------------------------------------------------------
-// CCaUiEngine::LaunchReconConfQueryL
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-void CCaUiEngine::LaunchReconConfQueryL( 
-    MCaUiReconnectQueryObserver& aObserver,
-    CPhCntMatcher* aPhCntMatcher,
-    const TPtrC aPhoneNumber,
-    const TBool aIncludeVideoCallOption )
-    {
-    // Empty pointer.
-    TPtrC ptrc;
-
-    iDialogs->LaunchReconConfQueryL(
-        aObserver,
-        aPhCntMatcher,
-        aPhoneNumber,
-        aIncludeVideoCallOption,
-        ptrc );
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiEngine::CancelReconConfQuery
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-void CCaUiEngine::CancelReconConfQuery()
-    {
-
-    iDialogs->CancelReconConfQuery();
-
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiEngine::LaunchNoteAndReconConfQueryL
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-void CCaUiEngine::LaunchNoteAndReconConfQueryL( 
-    MCaUiReconnectQueryObserver& aObserver,
-    CPhCntMatcher* aPhCntMatcher,
-    const TPtrC aPhoneNumber,
-    const TBool aIncludeVideoCallOption,
-    const TPtrC aNoteText )
-    {
-    // Empty pointer.
-    const TPtrC ptrc;
-
-    iDialogs->LaunchNoteAndReconConfQueryL( 
-        aObserver,
-        aPhCntMatcher,
-        aPhoneNumber,
-        aIncludeVideoCallOption,
-        aNoteText,
-        ptrc );
-
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiEngine::CancelNoteAndReconConfQuery
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-void CCaUiEngine::CancelNoteAndReconConfQuery()
-    {
-
-    iDialogs->CancelNoteAndReconConfQuery();
-
-    }
-
-// -----------------------------------------------------------------------------
-// CCaUiEngine::LaunchAddressSelectL
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-TBool CCaUiEngine::LaunchAddressSelectL(
-    TDes& aTelNum, 
-    const TInt aContactId,
-    const TBool aVoIPAddressSelect )
-    {
-    TBool addressSelected( EFalse );
-    TCaUiCallType callType( ECaUiCallTypeVoice );
-
-    if ( aVoIPAddressSelect )
-        {
-        callType = ECaUiCallTypeInternet;
-        }
-    
-    addressSelected = LaunchAddressSelectL( aTelNum, aContactId, callType );
-
-    return addressSelected;
-    }
-
-// -----------------------------------------------------------------------------
-// CCaUiEngine::CancelAddressSelect
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-void CCaUiEngine::CancelAddressSelect()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// From MPhCntStoreLoaderObserver.
-// CCaUiEngine::ContactStoreLoadingCompleted
-// -----------------------------------------------------------------------------
-//
-void CCaUiEngine::ContactStoreLoadingCompleted( 
-        MVPbkContactStore* /*aStore*/, TInt aErrorCode )
-    {
-    TInt result( aErrorCode );
-    
-    if ( KErrNone == result )
-        {
-        TCaUiCallType caUiCallType( ECaUiCallTypeUnknown );
-        ConvertPhCltCallType( iDialData->CallType(), caUiCallType );
-        
-        TRAP( result, 
-            LaunchAddressSelectL( iDialData->ContactLink(), caUiCallType ) );
-        }
-    
-    if ( KErrNone != result )
-        {
-        TRAP_IGNORE( HandleDialL( aErrorCode ) );
-        }
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiEngine::HandleDialL
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-void CCaUiEngine::HandleDialL( const TInt aStatus )
-    {
-    if ( iObserver )
-        {
-        iObserver->HandleDialResultL( aStatus );
-        }
-    if ( !iDialogs->IsReconfQueryOngoing() )
-        {
-        ClearDialContents();
-        }
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiEngine::OptionSelected
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-void CCaUiEngine::OptionSelected( TCaUiReconType aReconType )
-    {
-    CAUILOGSTRING("CALLUI: >>>CCaUiEngine::OptionSelected() Begin");
-    if ( aReconType == ECallUiReconTypeVoice ||
-         aReconType == ECallUiReconTypeVideo )
-        {
-        // Call is wanted to be made. Do it only if Dial data exists.
-        if ( iDialData )
-            {
-          
-            iDialogs->SetReconfQueryOngoing( EFalse );
-
-            if( aReconType == ECallUiReconTypeVoice )
-                {
-                // Make sure that call type is correct, i.e. voice call.
-                iDialData->SetCallType( EPhCltVoice );
-                }
-            else
-                {
-                // Make sure that call type is correct, i.e. video call.
-                iDialData->SetCallType( EPhCltVideo );
-                }
-
-            TRAPD( err, iPhCltDialer->DialL( *iDialData ) );
-            if( err )
-                {
-                CAUILOGSTRING2("CALLUI: >>>CCaUiEngine DialL error = %d", err );
-                }
-            }
-        }
-    CAUILOGSTRING("CALLUI: >>>CCaUiEngine::OptionSelected() End");
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiEngine::ConvertDialDataL
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-
-void CCaUiEngine::ConvertDialDataL(
-    const CAiwInternalDialData& aAiwDialData )
-    {
-    // Telephony number.
-    iDialData->SetTelephoneNumber( aAiwDialData.PhoneNumber().Left( 
-        iDialData->TelephoneNumber().MaxLength() ) );
-
-    // Call type.
-    CAiwDialData::TCallType aiwCallType = aAiwDialData.CallType();
-    TPhCltCallType phCltCallType = EPhCltVoice;
-
-    // After this the call type should be correct one.
-    if ( aiwCallType == CAiwDialData::EAIWVideo )
-        {
-        phCltCallType = EPhCltVideo;
-        iDialData->SetCallType( phCltCallType );
-        }
-    else if ( aiwCallType == CAiwDialData::EAIWForcedVideo )
-        {
-        phCltCallType = EPhCltForcedVideo;
-        iDialData->SetCallType( phCltCallType );
-        }
-    else if ( aiwCallType == CAiwDialData::EAIWVoiP )
-        {
-        phCltCallType = EPhCltCallVoIP;
-        iDialData->SetCallType( phCltCallType );
-        }
-    else if ( aiwCallType == CAiwDialData::EAIWForcedCS )
-        {
-        phCltCallType = EPhCltVoice; 
-        iDialData->SetCallType( phCltCallType );
-        }
-    
-
-    // Name.
-    iDialData->SetNameL( aAiwDialData.Name().Left( 
-        iDialData->Name().MaxLength() ) );
-
-    // Contact link.
-    iDialData->SetContactLinkL( aAiwDialData.ContactLink() );
-
-    // Window group.
-    iDialData->SetWindowGroup( aAiwDialData.WindowGroup() );
-
-    // Redial.
-    iDialData->SetRedial( aAiwDialData.Redial() );
-
-    // Redial maximum duration.
-    iDialData->SetRedialMaximumDuration( aAiwDialData.RedialMaximumDuration() );
-
-    // Show number.
-    iDialData->SetShowNumber( aAiwDialData.ShowNumber() );
-
-    // Match.
-    iDialData->SetAllowMatch( aAiwDialData.AllowMatch() );
-
-    // End other calls.
-    iDialData->SetEndOtherCalls( aAiwDialData.EndOtherCalls() );
-
-    // Subaddress.
-    iDialData->SetSubAddressL( aAiwDialData.SubAddress().Left( 
-        iDialData->SubAddress().MaxLength() ) );
-
-    // SAT call.
-    iDialData->SetSATCall( aAiwDialData.SATCall() );
-
-    // Bearer.
-    iDialData->SetBearerL( aAiwDialData.Bearer().Left( 
-        iDialData->Bearer().MaxLength() ) );
-    
-    // Set Long keypress activity. ETrue if client wants to initate 
-    // voice/video call.
-    iDialData->SetInitiateCall( aAiwDialData.InitiateCall() );
-
-    if ( aAiwDialData.ServiceId() )
-        {
-        iDialData->SetServiceId( aAiwDialData.ServiceId() );
-        }
-    // Remove invalid chars.
-    if( iDialData->CallType() != EPhCltCallVoIP )
-
-        {
-        TPhCltTelephoneNumber telnum;
-        telnum.Zero();
-        telnum = iDialData->TelephoneNumber();
-        PhCltUtils::RemoveInvalidChars( telnum );
-
-        iDialData->SetTelephoneNumber( telnum );
-        }
-    iDialData->SetUUIL( aAiwDialData.UUI() );
-    }
-
-// -----------------------------------------------------------------------------
-// CCaUiEngine::ClearDialContents
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-void CCaUiEngine::ClearDialContents()
-    {
-    if ( iPhCltDialer )
-        {
-        delete iPhCltDialer;
-        iPhCltDialer = NULL;
-        }
-
-    if ( iDialData )
-        {
-        delete iDialData;
-        iDialData = NULL;
-        }
-
-    // Not owned, so just set to NULL.
-    iObserver = NULL;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiEngine::IsVoIPProfiles()
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-TBool CCaUiEngine::IsVoIPProfiles()
-    {
-    TBool isProfiles = EFalse;
-
-    TRAP_IGNORE( isProfiles = iVoIPProfileHandler->IsVoIPProfilesL() );
-      
-    return isProfiles; 
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiEngine::GetVoIPServiceIdsL()
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-void CCaUiEngine::GetVoIPServiceIdsL( RIdArray& aVoipServiceIds ) const
-    {
-    if ( FeatureManager::FeatureSupported( KFeatureIdCommonVoip ) )
-        {
-        iVoIPProfileHandler->GetVoIPServiceIdsL( aVoipServiceIds );
-        }
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiEngine::GetVoipServiceNameL()
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-void CCaUiEngine::GetVoipServiceNameL( TServiceId aServiceId, TDes& aServiceName ) const
-    {
-    iVoIPProfileHandler->GetVoipServiceNameL( aServiceId, aServiceName );
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiEngine::LaunchAddressSelectL
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-void CCaUiEngine::LaunchAddressSelectL( 
-    const TDesC8& aContactLink,
-    const TCaUiCallType aCallType )
-    {
-    CAUILOGSTRING("CALLUI: >>>CCaUiEngine::LaunchAddressSelectL() start");
-    if ( !iFactory )
-        {
-        iFactory = CreateCntFactoryL();
-        }
-    if ( !iContactSelector ) 
-        {
-        iContactSelector = iFactory->CreateContactDataSelectionL();
-        }
-    
-    CPhCntContactDataSelection::TCallType callType;
-   
-    // if aCallType is ECaUiCallTypeUnknown call is not intitated from Call ui menu
-    // so have to use iDialDataCallType 
-    if ( aCallType != ECaUiCallTypeUnknown )  
-        {
-        ConvertCaUiCallType( aCallType, callType );
-        }
-    else
-        {
-        ConvertDialDataCallType( callType );
-        }
-        
-    iContactSelector->Cancel();
-    iContactSelector->SelectPhoneNumberForCallL( aContactLink, 
-                                                 callType, *this );
- 
-    CAUILOGSTRING("CALLUI: >>>CCaUiEngine::LaunchAddressSelectL() end");
-    }
-
-    
-//------------------------------------------------------------------------------
-// CCaUiEngine::FindAndRipURIParametersL()
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-HBufC* CCaUiEngine::FindAndRipURIParametersL( TDes& aNumber ) const
-    {
-    HBufC* buf = NULL;    
-    TInt offset = aNumber.Locate( TChar( KSemiColon()[0] ) );
-    if( offset > 0 ) // Separator is no allowed to be a first char
-        {
-        __ASSERT_ALWAYS( offset <= aNumber.Length(), 
-            User::Leave( KErrGeneral ) );
-        buf = aNumber.Mid( offset ).AllocL();         
-        aNumber.SetLength( offset );           
-        }
-    else
-        {
-        buf = HBufC::NewL( 0 );
-        }
-    return buf;    
-    }
-   
-//------------------------------------------------------------------------------
-// CBrowserTelService::CallTypeFromUriParams()
-// 
-// 
-// -----------------------------------------------------------------------------
-//  
-TPhCltCallType CCaUiEngine::CallTypeFromUriParams( 
-                                           const TDesC& aUriParams ) const
-    {
-    TPhCltCallType type( EPhCltVoice ); // Default type is voice call
-    
-    TPtrC value( ParamValue( KCallTypeUriParam, aUriParams ) );
-    if( value.CompareF( KCallTypeVideo ) == 0 ) // URIs are case-insensitive.
-        {
-        type = EPhCltVideo;
-        }
-    // Otherwise return default type
-    return type;
-    }
-    
-//------------------------------------------------------------------------------
-// CBrowserTelService::ParamValue()
-// 
-// 
-// -----------------------------------------------------------------------------
-//     
-TPtrC CCaUiEngine::ParamValue( const TDesC& aName, const TDesC& aUri ) const
-    {  
-    TInt startIndex = 0;
-    TInt offset = 0;
-    TPtrC pairTmp( KNullDesC()  );
-    TPtrC ret( KNullDesC() );
-    TBool found = EFalse;
-
-    if( aName.Length() > 0 )
-        {
-        while( startIndex < aUri.Length() && !found )
-            {
-            pairTmp.Set( FindNextParamValuePair( aUri, startIndex ) );
-            offset = pairTmp.FindF( aName ); // URIs are case-insensitive.
-            if( offset >= 0 && 
-              ( offset + aName.Length() + 1 < pairTmp.Length() ) )
-                {
-                ret.Set( pairTmp.Mid( offset + aName.Length() + 1 ) );
-                found = ETrue;
-                }
-            }
-        }
-        
-    return ret;    
-    }    
-   
-//------------------------------------------------------------------------------
-// CCaUiEngine::FindNextParamValuePair()
-// 
-// 
-// -----------------------------------------------------------------------------
-//   
-TPtrC CCaUiEngine::FindNextParamValuePair( const TDesC& aUri, 
-                                           TInt& aStartIndex ) const
-    {  
-    TInt offset = 0;
-    TPtrC tmp( KNullDesC() );
-    TPtrC ret( KNullDesC() );
-
-    tmp.Set( aUri.Mid( aStartIndex ) );
-    // Search start mark for new paramter.
-    offset = tmp.Find( KSemiColon );
-    if( offset >= 0 )
-        {
-        if( aStartIndex + offset + KSemiColon().Length() < aUri.Length() ) 
-            {
-            // Move start index
-            aStartIndex += offset + KSemiColon().Length();
-        
-            // Store descriptor after start mark
-            tmp.Set( aUri.Mid( aStartIndex ) );
-            
-            // Search end mark (semi-colon)
-            offset = tmp.Find( KSemiColon );
-            if ( offset >= 0 )
-                {
-                // If end mark was found store the param/value pair
-                ret.Set( tmp.Left( offset ) );
-                }
-            else
-                { 
-                // If end mark is not found, 
-                // the rest of descriptor belong to this parameter
-                ret.Set( tmp );
-                }      
-            }
-        }
-    
-    // Move start offset based on findings    
-    if( ret.Length() )
-        {
-        aStartIndex += ret.Length();
-        }
-    else
-        {
-        aStartIndex = aUri.Length();
-        }        
-
-    return ret;
-    }    
-
-// ---------------------------------------------------------
-//  CCaUiEngine::HandleFirstLongPressOfSendKeyL()
-// ---------------------------------------------------------
-//
-TBool CCaUiEngine::HandleFirstLongPressOfSendKeyL()
-    {
-    TBool set( EFalse );    
-    
-    TInt result = iDialogs->QueryVideoCallDefaultActionL();
-       
-    // Check user decision and set return value accordingly     
-    switch ( result )
-        {
-        case EAknSoftkeyYes: // from avkon.hrh
-            set = ETrue;
-            break;
-        case EAknSoftkeyNo:            
-            set = EFalse;
-            break;                                                           
-        default:        
-            set = EFalse;
-            break;
-        }    
-    return set;
-    }
-
-// ---------------------------------------------------------
-//  CCaUiEngine::HandleLongPressOfSendKeyL()
-// ---------------------------------------------------------
-//    
-void CCaUiEngine::HandleLongPressOfSendKeyL()
-    {
-        
-    // Check if the setting is already ON -> make a video call
-    if ( iLongPressSet == ECaUiLongPressKeyInUse )
-        {
-        // ON -> initiate a video call 
-        // (Forced) video call must be created
-        iDialData->SetCallType( EPhCltForcedVideo );
-        }
-    // Check if the setting is already OFF -> make a voice call
-    else if ( iLongPressSet == ECaUiLongPressKeyNotInUse )
-        {
-        // OFF -> initiate a voice call
-        // Voice call must be created
-        iDialData->SetCallType( EPhCltVoice );    
-        }
-    // If the setting has never been set, check what the user wants to do
-    else if ( iLongPressSet == ECaUiLongPressKeyNotSet )
-        {
-           // Ask from the user how long press of Send key should be handled
-        TBool set = HandleFirstLongPressOfSendKeyL();
-    
-        if ( set )
-            {
-            // User answered YES -> initiate a video call
-            // (Forced) video call must be created
-            iLongPressSet = ECaUiLongPressKeyInUse;
-            iDialData->SetCallType( EPhCltForcedVideo );
-            }
-        else
-            {
-            // User answered NO -> initiate a voice call
-            // Voice call must be created
-            iLongPressSet = ECaUiLongPressKeyNotInUse; 
-            iDialData->SetCallType( EPhCltVoice );
-            }              
-        }        
-    }
-
-// ---------------------------------------------------------
-//  CCaUiEngine::SelectionDone()
-// ---------------------------------------------------------
-//     
-void CCaUiEngine::SelectionDone( CPhCntSelectedData* aContactData, 
-                                  TInt aErrorCode )
-    {
-    CAUILOGSTRING("CALLUI: >>>CCaUiEngine::SelectionDone() Start");
-    CAUILOGSTRING2("CALLUI: >>>SelectionDone() ECode = %d", aErrorCode );
-    if ( aErrorCode == KErrNone )
-        {
-        TPhCltTelephoneNumber phoneNumber;
-        HBufC8* fieldLink = NULL;
-        
-        if ( iDialData->TelephoneNumber() == KNullDesC )
-            {
-            phoneNumber = aContactData->Data();
-
-            // Do not remove illegal chars if call type is VOIP and
-            // call is made to a voip number
-            if ( !( EPhCltCallVoIP == iDialData->CallType() &&
-                    aContactData->NumberType()==MPhCntMatch::EVoipNumber ) )
-                {                    
-                PhCltUtils::RemoveInvalidChars( phoneNumber );
-                }                                    
-            iDialData->SetTelephoneNumber( phoneNumber );
-            }
-        if ( aContactData->FieldLink().Length() > 0 )
-            {
-            fieldLink = aContactData->FieldLink().Alloc();
-            }
-        
-        TRAP( aErrorCode, PhoneClientDialL( fieldLink ) );
-      
-        delete fieldLink;
-        fieldLink = NULL;
-        }
-        
-    if ( aErrorCode != KErrNone )
-        {
-        TRAP_IGNORE( HandleDialL( aErrorCode ) );
-        }            
-    CAUILOGSTRING("CALLUI: >>>CCaUiEngine::SelectionDone() End");
-    }
-// ---------------------------------------------------------
-//  CCaUiEngine::PhoneClientDialL()
-// ---------------------------------------------------------
-// 
-void CCaUiEngine::PhoneClientDialL( const TDesC8* aFieldLink )
-    {
-    CAUILOGSTRING("CALLUI: >>>CCaUiEngine::DialL()::PhoneClient dial Start");
-    
-    TBool createCall( ETrue );
-    TInt error( KErrNone );
-    
-    if ( aFieldLink )
-        {
-        iDialData->SetContactLinkL( *aFieldLink );
-        }
-    
-    // Check if number is emergency number and if it is 
-    // then call emeregency call
-    if ( !iEmergencyCall )
-        {
-        iEmergencyCall = CPhCltEmergencyCall::NewL( this );
-        }
-    if ( IsEmergencyNumber() )
-        {
-        createCall = EFalse;
-        error = KErrNone;
-        iEmergencyCall->DialEmergencyCallL( iDialData->TelephoneNumber() );
-        }
-    
-    if ( createCall )
-        {
-        CConvergedServiceSelector::TSsResult results;
-        
-        error = iServiceSelector->GetCallingServiceByCallType( 
-                        results,
-                        ServiceSelectorCallType(),
-                        iDialData->ServiceId(),
-                        iDialData->SendKeyPressed(),
-                        iDialData->TelephoneNumber() );
-            
-        if ( KErrNone == error )
-            {
-            SetSelectorResults( results );
-            }
-        else
-            {
-            createCall = EFalse;
-            }
-        }
-    
-    // Here note launch + query if this is video call and we
-    // are not in 3G network.
-   
-    if ( createCall )
-        {
-        if ( ( iDialData->CallType() == EPhCltVideo ) ||
-             ( iDialData->CallType() == EPhCltForcedVideo ) )
-            {
-            if ( !IsVideoCallAllowedL() )
-                {
-                createCall = EFalse;
-                error = KErrCancel;
-                }
-            }
-        }
-    if ( createCall )
-        {
-        CAUILOGSTRING("CALLUI: >>>CCaUiEngine::DialL(): Call PhoneClientdial");
-        iPhCltDialer->DialL( *iDialData );
-        }
-    else 
-        {        
-        //User cancelled. Need to inform client.
-        if ( error != KErrNone ) // Emergency call does not need to inform client. 
-            {
-            HandleDialL( error );
-            }
-         }
-    CAUILOGSTRING("CALLUI: >>>CCaUiEngine::DialL()::PhoneClient dial End");
-    }
-    
-// ---------------------------------------------------------
-//  CCaUiEngine::SetDialDataCallType()
-// ---------------------------------------------------------
-// 
-void CCaUiEngine::SetDialDataCallType( const TCaUiCallType aCallType )
-    {
-    if ( aCallType == ECaUiCallTypeVoice )
-        {
-        // Voice call must be created.
-        iDialData->SetCallType( EPhCltVoice );
-        }
-    else if ( aCallType == ECaUiCallTypeVideo )
-        {
-        // (Forced) video call must be created.
-        iDialData->SetCallType( EPhCltForcedVideo );
-        }
-    else if ( aCallType == ECaUiCallTypeInternet )
-        {
-        // VoIP call must be created.
-        iDialData->SetCallType( EPhCltCallVoIP );
-        }
-    else
-        {
-        // else Voice call is ok.
-        iDialData->SetCallType( EPhCltVoice );
-        }
-    }
-    
-// ---------------------------------------------------------
-//  CCaUiEngine::IsEmergencyNumber()
-// ---------------------------------------------------------
-//
-TBool CCaUiEngine::IsEmergencyNumber()
-    {
-    TBool isEmergencyNumber( EFalse );
-    
-    // get phonenumber from iDialData and heck number using phoneclient
-    // emergencycall api
-    TInt result = iEmergencyCall->IsEmergencyPhoneNumber(
-        iDialData->TelephoneNumber(), 
-        isEmergencyNumber );
-   
-    return isEmergencyNumber;
-    }
-
-// ---------------------------------------------------------
-//  CCaUiEngine::IsVideoCallAllowedL()
-// ---------------------------------------------------------
-// 
-TBool CCaUiEngine::IsVideoCallAllowedL()
-    {
-    TInt err = KErrNone;
-    TInt createCall( ETrue );
-    TInt networkMode = KCaUiEngGsmNetwork; // Default: GSM.               
-    err = RProperty::Get( KPSUidNetworkInfo, 
-                          KNWTelephonyNetworkMode, 
-                          networkMode );     
-   
-    if ( err )
-        {
-        // Information is not ok, so assume that
-        // we are in GSM network.
-        networkMode = KCaUiEngGsmNetwork;
-        }
-    // check network status
-    TInt nwStatus = ENWStatusRegistrationUnknown;
-    RProperty::Get( KPSUidNetworkInfo, KNWRegistrationStatus, nwStatus );
-
-    // If we are not in WCDMA network, then it is not allowed 
-    // to create a video call.
-    if ( networkMode != KCaUiEngWcdmaNetwork )
-        {     
-        TInt automaticredial = 0;
-        
-        GetCenRepValueL( KCRUidTelephonySettings, KSettingsAutomaticRedial, automaticredial );        
-        
-        // if no network, fall back to voice call for proper error handling
-        if ( (FeatureManager::FeatureSupported( KFeatureIdAutoRedialForVideoCall ) && automaticredial)
-              || nwStatus == ENWStatusRegistrationUnknown
-              || nwStatus == ENWStatusNotRegisteredNoService
-              || nwStatus == ENWStatusNotRegisteredEmergencyOnly
-              || nwStatus == ENWStatusNotRegisteredSearching )
-            {
-            // fallback to voice when no network support to videocall
-            // handled in Phone.
-            }
-        else
-            {
-            createCall = EFalse;
-            // Video call can not be done.
-            // => Launch Note + Reconnect Query.
-
-            // Empty pointer.
-            TPtrC ptrc;
-
-            iDialogs->LaunchNoteAndReconConfQueryL( 
-                *this,
-                NULL,
-                iDialData->TelephoneNumber(),
-                EFalse,
-                ptrc,
-                iDialData->Name() );
-            }
-        }
-    return createCall;
-    }
-// ---------------------------------------------------------
-//  CCaUiEngine::HandleEmergencyDialL()
-// ---------------------------------------------------------
-//    
-void CCaUiEngine::HandleEmergencyDialL( const TInt aStatus )
-    {
-    if ( iObserver )
-        {
-        iObserver->HandleDialResultL( aStatus );
-        }
-    }
-// ---------------------------------------------------------
-//  CCaUiEngine::GetCenRepValue()
-// ---------------------------------------------------------
-// 
-void CCaUiEngine::GetCenRepValueL( 
-        const TUid& aUid, 
-        const TUint aId,
-        TInt& aValue ) const
-    {
-    CRepository* repository = CRepository::NewL( aUid );
-    TInt err = repository->Get( aId, aValue );
-     
-    delete repository;
-    repository = NULL;
-     
-    if ( err != KErrNotFound ) // KErrNotFound acceptable.
-        {
-        User::LeaveIfError( err );
-        }
-    }
-
-// ---------------------------------------------------------
-//  CCaUiEngine::ConvertCaUiCallType( )
-// ---------------------------------------------------------
-//    
-void CCaUiEngine::ConvertCaUiCallType( const TCaUiCallType aCallType,
-                    CPhCntContactDataSelection::TCallType& aResultCallType  )
-    {
-    switch ( aCallType )
-        {
-        case ECaUiCallTypeVoice:
-            {
-            aResultCallType = CPhCntContactDataSelection::ECallPhoneNumber;
-            break;
-            }
-        case ECaUiCallTypeVideo:
-            {
-            aResultCallType = CPhCntContactDataSelection::ECallVideoNumber;
-            break;
-            }
-        case ECaUiCallTypeInternet:
-            {
-            aResultCallType = CPhCntContactDataSelection::ECallVoip;
-            break;
-            }
-        default:
-            {
-            aResultCallType = CPhCntContactDataSelection::ECallPhoneNumber;
-            break;
-            }
-        }
-    }
-    
-// ---------------------------------------------------------
-//  CCaUiEngine::ConvertDialDataCallType()
-// ---------------------------------------------------------
-//    
-void CCaUiEngine::ConvertDialDataCallType( CPhCntContactDataSelection::TCallType& aResultCallType )
-    {
-    switch ( iDialData->CallType() )
-        {
-        case EPhCltVoice:
-            {
-            aResultCallType = CPhCntContactDataSelection::ECallPhoneNumber;
-            break;
-            }
-        case EPhCltVideo:
-        case EPhCltForcedVideo:
-            {
-            aResultCallType = CPhCntContactDataSelection::ECallVideoNumber;
-            break;
-            }
-        case EPhCltCallVoIP:
-            {
-            aResultCallType = CPhCntContactDataSelection::ECallVoip;
-            break;
-            }
-        default:
-            {
-            aResultCallType = CPhCntContactDataSelection::ECallPhoneNumber;
-            break;
-            }
-        }
-    }
-
-
-// ---------------------------------------------------------
-//  CCaUiEngine::ConvertPhCltCallType
-// ---------------------------------------------------------
-//    
-void CCaUiEngine::ConvertPhCltCallType( const TPhCltCallType aCallType,
-        TCaUiCallType& aResultCallType ) const
-    {
-    switch ( aCallType )
-        {
-        case EPhCltVoice:
-            {
-            aResultCallType = ECaUiCallTypeVoice;
-            break;
-            }
-        case EPhCltVideo:
-        case EPhCltForcedVideo:
-            {
-            aResultCallType = ECaUiCallTypeVideo;
-            break;
-            }
-        case EPhCltCallVoIP:
-            {
-            aResultCallType = ECaUiCallTypeInternet;
-            break;
-            }
-        default:
-            {
-            break;
-            }
-        }
-    }
-
-
-// ---------------------------------------------------------
-//  CCaUiEngine::ServiceSelectorCallType()
-// ---------------------------------------------------------
-//    
-CConvergedServiceSelector::TSsCallType CCaUiEngine::ServiceSelectorCallType() const
-    {
-    CConvergedServiceSelector::TSsCallType ret;
-    
-    switch ( iDialData->CallType() )
-        {
-        case EPhCltVoice:
-            {
-            ret = CConvergedServiceSelector::ESsVoiceCall;
-            break;
-            }
-        case EPhCltVideo:
-        case EPhCltForcedVideo:
-            {
-            ret = CConvergedServiceSelector::ESsVideoCall;
-            break;
-            }
-        case EPhCltCallVoIP:
-            {
-            ret = CConvergedServiceSelector::ESsVoipCall;
-            break;
-            }
-        default:
-            {
-            ret = CConvergedServiceSelector::ESsVoiceCall;
-            break;
-            }
-        }
-    
-    return ret;
-    }
-
-// ---------------------------------------------------------
-//  CCaUiEngine::SetSelectorResults()
-// ---------------------------------------------------------
-//    
-void CCaUiEngine::SetSelectorResults( 
-        CConvergedServiceSelector::TSsResult& aResults )
-    {
-    switch ( aResults.iCallType )
-        {
-        case CConvergedServiceSelector::ESsVoipCall:
-            {
-            iDialData->SetCallType( EPhCltCallVoIP );
-            break;
-            }
-        case CConvergedServiceSelector::ESsVideoCall:
-            {
-            iDialData->SetCallType( EPhCltForcedVideo );
-            break;
-            }
-        case CConvergedServiceSelector::ESsVoiceCall:
-        default:
-            {
-            iDialData->SetCallType( EPhCltVoice );
-            break;
-            }
-        }
-    
-    iDialData->SetServiceId( aResults.iServiceId );
-    }
-
-
-// ---------------------------------------------------------
-//  CCaUiEngine::LaunchContactStoreLoadingL
-// ---------------------------------------------------------
-//  
-TBool CCaUiEngine::LaunchContactStoreLoadingL( const TDesC8& aContactLink )
-    {
-    if ( !iFactory )
-        {
-        iFactory = CreateCntFactoryL();
-        }
-    
-    if ( !iContactStoreLoader )
-        {
-        iContactStoreLoader = iFactory->CreateContactStoreLoaderL();
-        }
-    
-    TBool isStoreLoaded( 
-        iContactStoreLoader->IsContactStoreLoaded( aContactLink ) );
-    if ( !isStoreLoaded )
-        {
-        iContactStoreLoader->LoadContactStoreL( aContactLink, *this );        
-        }
-    
-    return isStoreLoaded;
-    }
-
-// ---------------------------------------------------------
-//  CCaUiEngine::IsSendKeyPressed
-// ---------------------------------------------------------
-//
-TBool CCaUiEngine::IsSendKeyPressed( TCaUiCallType aCallType,
-        CAiwDialData::TCallType aAiwCallType ) const
-    {
-    TBool isSendKeyPressed( EFalse );
-    if ( CAiwDialData::EAIWForcedCS != aAiwCallType )
-        {
-        if ( ECaUiCallTypeUnknown == aCallType )
-            {
-            isSendKeyPressed = ETrue;
-            }
-        }
-    
-    return isSendKeyPressed;
-    }
-
-// End of file
--- a/phoneclientserver/CallUI/Src/CaUiEngine/CaUiEngineMain.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-/*
-* Copyright (c) 2004 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:  Global functions for CaUiEngine.
-*
-*/
-
-
-
-// INCLUDE FILES
-#include    <e32std.h>
-
-
-// ========================== OTHER EXPORTED FUNCTIONS =========================
-
-
-// -----------------------------------------------------------------------------
-// E32Dll
-// 
-// Returns always KErrNone.
-// -----------------------------------------------------------------------------
-//
-GLDEF_C TInt E32Dll( TDllReason )
-    {
-    return KErrNone;
-    }
-
-//  End of File  
--- a/phoneclientserver/CallUI/Src/CaUiEngine/CaUiEngineStub.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,656 +0,0 @@
-/*
-* Copyright (c) 2004-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 CallUIEngine, stub version.
-*
-*/
-
-
-
-// INCLUDE FILES
-#include    "cauiengine.h" 
-#include    "cauidialogs.h" 
-
-#include    <callui.rsg> // resources. 
-#include    <cphcltdialer.h> // cphcltdialer. 
-#include    <cphonecntfactory.h> 
-#include    <aiwinternaldialdata.h> 
-#include    <aiwservicehandler.h> 
-#include    <cphcltextphonedialdata.h> // cphcltextphonedialdata 
-
-#include    "callui.loc" // localized strings. 
-
-#include    <stringloader.h> // string loader. 
-#include    <featmgr.h> // featuremanager. 
-
-#include    <phcltutils.h> // character removal. 
-#include    <aiwcommon.h> // aiw dialdata. 
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CCaUiEngine::CCaUiEngine
-// 
-// C++ default constructor can NOT contain any code, that might leave.
-// -----------------------------------------------------------------------------
-//
-CCaUiEngine::CCaUiEngine()
-:   iResourceLoader( *CCoeEnv::Static() )
-#ifndef RD_PHONE_NG
-    ,iResourceLoaderPhoneApE( *CCoeEnv::Static() )
-#endif    
-    {
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiEngine::ConstructL
-// 
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CCaUiEngine::ConstructL()
-    {
-    // Sets up TLS, must be done before FeatureManager is used.
-    FeatureManager::InitializeLibL();
-
-    if( CCoeEnv::Static() )
-        {
-        // Open CallUI resource file.
-        TFileName* name = new ( ELeave ) TFileName( KCallUIResFile );
-        CleanupStack::PushL( name );
-        User::LeaveIfError( iResourceLoader.Open( *name ) );
-        CleanupStack::PopAndDestroy( name );
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CCaUiEngine::NewL
-// 
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CCaUiEngine* CCaUiEngine::NewL()
-    {
-    CCaUiEngine* self = new( ELeave ) CCaUiEngine;
-    
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop();
-
-    return self;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiEngine::~CCaUEngine
-// 
-// Destructor.
-// -----------------------------------------------------------------------------
-//
-CCaUiEngine::~CCaUiEngine()
-    {
-    delete iContactSelector;
-    delete iFactory;
-
-    // Clear dial components.
-    ClearDialContents();
-
-    if( CCoeEnv::Static() )
-        {
-        // Close resource loader.
-        iResourceLoader.Close();
-        
-#ifndef RD_PHONE_NG
-        // Release PhoneAppEngine resources.
-        iResourceLoaderPhoneApE.Close();
-#endif
-        }
-    
-    // Delete the menubuffer.
-    delete iBuf;
-    iBuf = NULL;
-
-    // Frees the TLS! Must be done after FeatureManager is used.
-    FeatureManager::UnInitializeLib();
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiEngine::GetResources
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-void CCaUiEngine::GetResources(
-    const TCaUiEngResource aResource,
-    TFileName& aResFile,
-    TInt& aResId )
-    {
-    aResFile = KCallUIResFile;
-    if ( aResource == ECaUiResOnlyInternet )
-        {
-        aResId = 0;
-        }
-    else
-        {
-        // Return pure voice menu item.
-        aResId = R_CALLUI_CALL_MENU;
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CCaUiEngine::DialL
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-void CCaUiEngine::DialL(
-    MCaUiDialResultObserver& aObserver,
-    const TDesC8& aDialData,
-    const TCaUiCallType aCallType )
-    {
-    TInt length = aDialData.Length();
-   
-    // If iPhCltDialer and iDialDataContainer exist, 
-    // destroy them and create new ones. This clears the dial data.
-    ClearDialContents();
-    iPhCltDialer = CPhCltExtPhoneBase::NewL( this );
-    iObserver = &aObserver;
-    
-    iDialData = CPhCltExtPhoneDialData::NewL();
-    CAiwInternalDialData* aiwDialData = CAiwInternalDialData::NewLC( aDialData );
-
-    // Convert AIW dial data to PhoneClient format.
-   
-    ConvertDialDataL( *aiwDialData );
-
-    iDialData->SetCallType( EPhCltVoice );
-    
-    //a call type is still unknown if the dialing is made via phonebook
-    //send key (doesn't use HandleMenuCmdL, check the call type in 
-    //aiwDialData to make sure if unknown is really unknown
-    //only do if call type unknown
-    TCaUiCallType callType = aCallType;
-    if ( callType == ECaUiCallTypeUnknown )
-        {
-        CAiwDialData::TCallType aiwCalltype = aiwDialData->CallType();
-        
-        switch ( aiwCalltype )
-           {
-           case CAiwDialData::EAIWVoice:
-                callType = ECaUiCallTypeVoice;
-                break;
-            case CAiwDialData::EAIWVideo:
-            case CAiwDialData::EAIWForcedVideo:
-                callType = ECaUiCallTypeVideo;
-                break;
-            case CAiwDialData::EAIWVoiP:
-                callType = ECaUiCallTypeInternet;
-                break;
-            default:
-                //already unknown
-                break;
-            }
-        }
-        
-    //aiwDialData not needed anymore, remove from stack
-    CleanupStack::PopAndDestroy( aiwDialData );
-
-    // If Contact link is provided fetch field link from Phone Book.
-    if ( iDialData->ContactLink() != KNullDesC8() )
-        {
-        // Launch address select.
-        // aCallType describes which selector is used. ( VoIP/PhoneNumber )
-        LaunchAddressSelectL( 
-                        iDialData->ContactLink(), 
-                        callType );
-        }
-    
-
-    else 
-        {
-        iPhCltDialer->DialL( *iDialData );
-        }
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiEngine::LaunchNoNetSupNoteL
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-void CCaUiEngine::LaunchNoNetSupNoteL()
-    {
-    User::Leave( KErrNotSupported );
-    }
-
-
-
-// -----------------------------------------------------------------------------
-// CCaUiEngine::LaunchReconConfQueryL
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-void CCaUiEngine::LaunchReconConfQueryL( 
-    MCaUiReconnectQueryObserver& /*aObserver*/,
-    CPhCntMatcher* /*aPhCntMatcher*/,
-    const TPtrC /*aPhoneNumber*/,
-    const TBool /*aIncludeVideoCallOption*/ )
-    {
-    User::Leave( KErrNotSupported );
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiEngine::CancelReconConfQuery
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-void CCaUiEngine::CancelReconConfQuery()
-    {
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiEngine::LaunchNoteAndReconConfQueryL
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-void CCaUiEngine::LaunchNoteAndReconConfQueryL( 
-    MCaUiReconnectQueryObserver& /*aObserver*/,
-    CPhCntMatcher* /*aPhCntMatcher*/,
-    const TPtrC /*aPhoneNumber*/,
-    const TBool /*aIncludeVideoCallOption*/,
-    const TPtrC /*aNoteText*/ )
-    {
-    User::Leave( KErrNotSupported );
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiEngine::CancelNoteAndReconConfQuery
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-void CCaUiEngine::CancelNoteAndReconConfQuery()
-    {
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiEngine::LaunchAddressSelectL
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-TBool CCaUiEngine::LaunchAddressSelectL( 
-    TDes& aTelNum, 
-    const TInt aContactId,
-    const TBool aVoIPAddressSelect )
-    {
-    if ( aVoIPAddressSelect )
-        {
-        User::Leave( KErrNotSupported );
-        }
-
-    TBool addressSelected( EFalse );
-    TCaUiCallType callType( ECaUiCallTypeVoice );
-    
-    addressSelected = LaunchAddressSelectL( aTelNum, aContactId, callType );
-
-    return addressSelected;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiEngine::CancelAddressSelect
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-void CCaUiEngine::CancelAddressSelect()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// From MPhCntStoreLoaderObserver.
-// CCaUiEngine::ContactStoreLoadingCompleted
-// -----------------------------------------------------------------------------
-//
-void CCaUiEngine::ContactStoreLoadingCompleted( 
-        MVPbkContactStore* /*aStore*/, TInt /*aErrorCode*/ )
-    {
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiEngine::HandleDialL
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-void CCaUiEngine::HandleDialL( const TInt aStatus )
-    {
-    if ( iObserver )
-        {
-        iObserver->HandleDialResultL( aStatus );
-        }
-    
-    ClearDialContents();
-    }
-    
-// -----------------------------------------------------------------------------
-// From base class MCaUiReconnectQueryObserver
-// -----------------------------------------------------------------------------
-//   
-void CCaUiEngine::OptionSelected( 
-    MCaUiReconnectQueryObserver::TCaUiReconType /*aReconType*/ )
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CCaUiEngine::ConvertDialData
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-void CCaUiEngine::ConvertDialDataL(
-    const CAiwInternalDialData& aAiwDialData )
-    {
-    // Telephony number.
-    iDialData->SetTelephoneNumber( aAiwDialData.PhoneNumber().Left( 
-        iDialData->TelephoneNumber().MaxLength() ) );
-
-    // Call type.
-    CAiwDialData::TCallType aiwCallType = aAiwDialData.CallType();
-    TPhCltCallType phCltCallType = EPhCltVoice;
-
-    // After this the call type should be correct one.
-    if ( aiwCallType == CAiwDialData::EAIWVideo )
-        {
-        phCltCallType = EPhCltVideo;
-        iDialData->SetCallType( phCltCallType );
-        }
-    else if ( aiwCallType == CAiwDialData::EAIWForcedVideo )
-        {
-        phCltCallType = EPhCltForcedVideo;
-        iDialData->SetCallType( phCltCallType );
-        }
-    else if ( aiwCallType == CAiwDialData::EAIWVoiP )
-        {
-        phCltCallType = EPhCltCallVoIP;
-        iDialData->SetCallType( phCltCallType );
-        }
-
-     // Name.
-    iDialData->SetNameL( aAiwDialData.Name().Left( 
-        iDialData->Name().MaxLength() ) );
-
-    // Contact link.
-    iDialData->SetContactLinkL( aAiwDialData.ContactLink() );
-
-    // Window group.
-    iDialData->SetWindowGroup( aAiwDialData.WindowGroup() );
-
-    // Redial.
-    iDialData->SetRedial( aAiwDialData.Redial() );
-    
-    // Redial maximum duration.
-    iDialData->SetRedialMaximumDuration( aAiwDialData.RedialMaximumDuration() );
-
-    // Show number.
-    iDialData->SetShowNumber( aAiwDialData.ShowNumber() );
-
-    // Match.
-    iDialData->SetAllowMatch( aAiwDialData.AllowMatch() );
-
-    // End other calls.
-    iDialData->SetEndOtherCalls( aAiwDialData.EndOtherCalls() );
-
-    // Subaddress.
-    iDialData->SetSubAddressL( aAiwDialData.SubAddress().Left( 
-        iDialData->SubAddress().MaxLength() ) );
-
-    // SAT call.
-    iDialData->SetSATCall( aAiwDialData.SATCall() );
-
-    // Bearer.
-    iDialData->SetBearerL( aAiwDialData.Bearer().Left( 
-        iDialData->Bearer().MaxLength() ) );
-
-    TPhCltTelephoneNumber telnum;
-    telnum.Zero();
-    telnum = iDialData->TelephoneNumber();
-    PhCltUtils::RemoveInvalidChars( telnum );
-    iDialData->SetTelephoneNumber( telnum );
-
-    }
-
-// -----------------------------------------------------------------------------
-// CCaUiEngine::ClearDialContents
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-void CCaUiEngine::ClearDialContents()
-    {
-    if ( iPhCltDialer )
-        {
-        delete iPhCltDialer;
-        iPhCltDialer = NULL;
-        }
-
-    if ( iDialData )
-        {
-        delete iDialData;
-        iDialData = NULL;
-        }
-
-    // Not owned, so just set to NULL.
-    iObserver = NULL;
-    }
-
-// -----------------------------------------------------------------------------
-// CCaUiEngine::LaunchAddressSelectL
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-void CCaUiEngine::LaunchAddressSelectL( 
-    const TDesC8& aContactLink,
-    const TCaUiCallType aCallType )
-    {
-    if ( aCallType != ECaUiCallTypeVoice )
-        {
-        HandleDialL( KErrNotSupported );
-        }
-    
-    else
-        {
-        if ( !iFactory )
-            {
-            iFactory = CreateCntFactoryL();
-            }
-        if ( !iContactSelector ) 
-            {
-            iContactSelector = iFactory->CreateContactDataSelectionL();
-            }
-            
-        CPhCntContactDataSelection::TCallType callType;
-        
-        if ( aCallType == ECaUiCallTypeVoice )
-            {
-            callType = CPhCntContactDataSelection::ECallPhoneNumber;
-            }
-        else if ( aCallType == ECaUiCallTypeVideo )
-            {
-            callType = CPhCntContactDataSelection::ECallVideoNumber;
-            }
-        else if ( aCallType == ECaUiCallTypeInternet )
-            {
-            callType = CPhCntContactDataSelection::ECallVoip;
-            }
-        else
-            {
-            callType = CPhCntContactDataSelection::ECallPhoneNumber;
-            }
-            
-        iContactSelector->Cancel();
-        iContactSelector->SelectPhoneNumberForCallL( aContactLink, callType, *this );
- 
-        }
-     
-    }
-
-// ---------------------------------------------------------
-//  CCaUiEngine::HandleEmergencyDialL()
-// ---------------------------------------------------------
-//    
-void CCaUiEngine::HandleEmergencyDialL( const TInt /*aStatus*/ )
-    {
-    // Do nothing
-    }
-
-// ---------------------------------------------------------
-//  CCaUiEngine::SelectionDone()
-// ---------------------------------------------------------
-//     
-void CCaUiEngine::SelectionDone( CPhCntSelectedData* aContactData, 
-                                  TInt aErrorCode )
-    {
-    if ( aErrorCode == KErrNone )
-        {
-        TPhCltTelephoneNumber phoneNumber;
-        HBufC8* fieldLink = NULL;
-        
-        if ( iDialData->TelephoneNumber() == KNullDesC )
-            {
-            phoneNumber = aContactData->Data();
-            PhCltUtils::RemoveInvalidChars( phoneNumber );
-            iDialData->SetTelephoneNumber( phoneNumber );
-            }
-        if ( aContactData->FieldLink().Length() > 0 )
-            {
-            fieldLink = aContactData->FieldLink().Alloc();
-            }
-        
-        TRAP( aErrorCode, PhoneClientDialL( fieldLink ) );
-      
-        delete fieldLink;
-        fieldLink = NULL;
-        }
-        
-    if ( aErrorCode != KErrNone )
-        {
-        TRAP_IGNORE( HandleDialL( aErrorCode ) );
-        }            
-    }
-    
-// ---------------------------------------------------------
-//  CCaUiEngine::PhoneClientDialL()
-// ---------------------------------------------------------
-// 
-void CCaUiEngine::PhoneClientDialL( const TDesC8* aFieldLink )
-    {
-    
-    TBool createCall( ETrue );
-    TInt error( KErrNone );
-    
-    if ( aFieldLink )
-        {
-        iDialData->SetContactLinkL( *aFieldLink );
-        }
-    
-    // Check if number is emergency number and if it is 
-    // then call emeregency call
-    if ( !iEmergencyCall )
-        {
-        iEmergencyCall = CPhCltEmergencyCall::NewL( this );
-        }
-    if ( IsEmergencyNumber() )
-        {
-        createCall = EFalse;
-        if ( aFieldLink )
-            {
-            error = KErrNone;
-            iEmergencyCall->DialEmergencyCallL( iDialData->TelephoneNumber() );
-            }
-        else
-            {
-            error = KErrNotSupported;
-            }
-        }
-    
-    // Here note launch + query if this is video call and we
-    // are not in 3G network.
-   
-    if ( createCall )
-        {
-        if ( ( iDialData->CallType() == EPhCltVideo ) ||
-             ( iDialData->CallType() == EPhCltForcedVideo ) ||
-             ( iDialData->CallType() == EPhCltCallVoIP ) )
-            {
-                createCall = EFalse;
-                error = KErrNotSupported;
-            }
-            
-        }
-    if ( createCall )
-        {
-        iPhCltDialer->DialL( *iDialData );
-        }
-    else 
-        {        
-        //User cancelled. Need to inform client.
-        if ( error != KErrNone ) // Emergency call does not need to inform client. 
-            {
-            HandleDialL( error );
-            }
-         }
-    }
-
-// ---------------------------------------------------------
-//  CCaUiEngine::IsEmergencyNumber()
-// ---------------------------------------------------------
-//
-TBool CCaUiEngine::IsEmergencyNumber()
-    {
-    TBool isEmergencyNumber( EFalse );
-    
-    // get phonenumber from iDialData and heck number using phoneclient
-    // emergencycall api
-    TInt result = iEmergencyCall->IsEmergencyPhoneNumber(
-        iDialData->TelephoneNumber(), 
-        isEmergencyNumber );
-   
-    return isEmergencyNumber;
-    }
-
-// -----------------------------------------------------------------------------
-// CCaUiEngine::IsVoIPProfiles()
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-TBool CCaUiEngine::IsVoIPProfiles()
-    {  
-    return EFalse; 
-    }
-
-// End of file
--- a/phoneclientserver/CallUI/Src/CaUiEngine/CaUiMessageSender.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,342 +0,0 @@
-/*
-* Copyright (c) 2004 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:  Launches Sendui Editor.
-*
-*/
-
-
-
-
-//  INCLUDES
-#include    "cauimessagesender.h" 
-
-#include    <coemain.h>         // CCoeEnv
-#include    <callui.rsg> // Resources. 
-
-#include    <msvids.h>          // KUidMsvLocalServiceMtmValue
-
-#include    <sendui.h>          // CSendAppUi, CSendUi
-#include    <cmessagedata.h> // Message data for CSendUi 
-#include    <featmgr.h>         // Feature manager
-#include    "cauilogger.h" // Call Ui Logger 
-
-// CONSTANTS
-// The reconnect query options granularity.
-#ifdef RD_UNIFIED_EDITOR
-const TInt KCaUiReConQueryOptionsArrayGranularity = 3;
-#else // RD_UNIFIED_EDITOR
-const TInt KCaUiReConQueryOptionsArrayGranularity = 4;
-#endif // RD_UNIFIED_EDITOR
-
-const TInt KMtmPop3Uid = 0x10001029;
-const TInt KMtmImap4Uid = 0x1000102a;
-const TInt KUidEmail = 0x10001028;
-const TInt KUidPostCard = 0x10207245; 
-
-// -----------------------------------------------------------------------------
-// CCaUiMessageSender::CCaUiMessageSender
-// 
-// C++ constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CCaUiMessageSender::CCaUiMessageSender()
-    {
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiMessageSender::~CCaUiMessageSender
-// 
-// Destructor.
-// -----------------------------------------------------------------------------
-//
-CCaUiMessageSender::~CCaUiMessageSender()
-    {
-    
-    CAUILOGSTRING("CALLUI: >>> CCaUiMessageSender::~CCaUiMessageSender()");
-    
-    if ( iMsgTypes )
-        {
-        iMsgTypes->Reset();
-        delete iMsgTypes;
-        }
-
-    if( iSession ) 
-        {
-        iSession->Cancel();    
-        }
-    delete iSession;
-        
-    if( iSendUi ) 
-        {    
-        delete iSendUi;   
-        }
-        
-    CAUILOGSTRING("CALLUI: <<< CCaUiMessageSender::~CCaUiMessageSender()");    
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiMessageSender::NewL
-// 
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CCaUiMessageSender* CCaUiMessageSender::NewL()
-    {
-    
-    CAUILOGSTRING("CALLUI: >>> CCaUiMessageSender::NewL()");
-    
-    CCaUiMessageSender* self = new( ELeave ) CCaUiMessageSender ();
-    
-    CAUILOGSTRING("CALLUI: <<< CCaUiMessageSender::NewL()");
-    
-    return self;
-    }
-
-// ---------------------------------------------------------
-// CCaUiMessageSender::CreateNewMessageL
-// Create a new message of the given type, in the given location
-// ---------------------------------------------------------
-//
-void CCaUiMessageSender::CreateNewMessageL(
-    TInt aMessageType,
-    MDesC16Array* aRealAddress,
-    MDesC16Array* aAliases,
-    CRichText* aRichText )
-    {
-    
-    CAUILOGSTRING("CALLUI: >>> CCaUiMessageSender::CreateNewMessageL()");
-       
-    TRAPD( err, CreateSendUiL());
-    if ( err != KErrNone )
-        User::Leave( KErrGeneral );     
-    
-    //Launch message editor standalone
-    TUid mtmUid = { aMessageType };
-    
-    CMessageData* messageData = CMessageData::NewL();
-    CleanupStack::PushL( messageData );
-    if ( aRichText )
-        {
-        messageData->SetBodyTextL( aRichText );
-        }
-    
-    // Set real address and check if aliases exist
-    if ( aRealAddress )
-        {
-        TBool aAliasesExist = EFalse;
-        if ( aAliases &&
-             aAliases->MdcaCount() == aRealAddress->MdcaCount() )
-            {
-            aAliasesExist = ETrue;
-            }
-        for ( TInt i=0; i < aRealAddress->MdcaCount(); i++ )
-            {
-            if ( aAliasesExist )
-                {
-                messageData->AppendToAddressL(
-                    aRealAddress->MdcaPoint( i ),
-                    aAliases->MdcaPoint( i ) );
-                }
-            else
-                {
-                messageData->AppendToAddressL(
-                    aRealAddress->MdcaPoint( i ) );
-                }
-            }
-        }
-        
-    iSendUi->CreateAndSendMessageL( mtmUid, messageData, KNullUid, EFalse );
-    CleanupStack::PopAndDestroy(); // messageData
-    
-    CAUILOGSTRING("CALLUI: <<< CCaUiMessageSender::CreateNewMessageL()");
-    }
-
-// ---------------------------------------------------------
-// CCaUiMessageSender::CreateSendUiL
-// ---------------------------------------------------------
-//
-void CCaUiMessageSender::CreateSendUiL()
-    {
-    CAUILOGSTRING("CALLUI: >>> CCaUiMessageSender::CreateSendUiL()");
-    
-    // Create instance of send ui.
-    if( !iSendUi )
-        {
-        iSendUi = CSendUi::NewL();
-        }
-        
-    CAUILOGSTRING("CALLUI: <<< CCaUiMessageSender::CreateSendUiL()");    
-    }
-
-// ---------------------------------------------------------
-// CCaUiMessageSender::MessageTypesArray
-// ---------------------------------------------------------
-const CUidNameArray& CCaUiMessageSender::
-    MessageTypesArrayL()
-    {
-    
-    CAUILOGSTRING("CALLUI: >>> CCaUiMessageSender::MessageTypesArrayL()");
-    
-    delete iMsgTypes;
-    iMsgTypes = NULL;
-
-    CUidNameArray* msgTypes = new ( ELeave ) 
-        CUidNameArray( KCaUiReConQueryOptionsArrayGranularity ); 
-    CleanupStack::PushL( msgTypes );
-    UpdateMessageTypesArrayL( msgTypes );
-    CleanupStack::Pop();
-    iMsgTypes = msgTypes;
-
-    CAUILOGSTRING("CALLUI: <<< CCaUiMessageSender::MessageTypesArrayL()");
-
-    return *iMsgTypes;
-    }
-
-// ---------------------------------------------------------
-// CCaUiMessageSender::UpdateMessageTypesArrayL
-// Updates the array of UIDs which defines the MTM types for which the user
-// can create new messages.
-// ---------------------------------------------------------
-void CCaUiMessageSender::UpdateMessageTypesArrayL(
-    CUidNameArray* aMsgTypes )
-    {
-    
-    CAUILOGSTRING("CALLUI:>>> CCaUiMessageSender::UpdateMessageTypesArrayL()");
-    
-    aMsgTypes->Reset();
-
-    FeatureManager::InitializeLibL();
-    //Read MTM types from resource file
-    TResourceReader resReader;
-    CCoeEnv::Static()->CreateResourceReaderLC( resReader, 
-        NEW_MESSAGE_TYPES_ARRAY );
-    
-    TInt count = resReader.ReadInt16();
-
-    for ( TInt i = 0; i < count; i++ )
-        {
-        TInt32 id = resReader.ReadInt32();
-        HBufC* name = resReader.ReadHBufCL();
-        CleanupStack::PushL( name );
-
-        switch( id )
-            {
-            case KUidEmail:
-                {
-                if ( IsMailboxDefinedL() )
-                    {
-                    aMsgTypes->AppendL( TUidNameInfo( TUid::Uid( id ), *name ) );
-                    }
-                break;
-                }
-            case KUidPostCard:
-                {
-                if ( FeatureManager::FeatureSupported( KFeatureIdMmsPostcard ) )
-                    {
-                    aMsgTypes->AppendL( TUidNameInfo( TUid::Uid( id ), *name ) );
-                    }
-                break;
-                }
-            default:
-                {
-                aMsgTypes->AppendL( TUidNameInfo( TUid::Uid( id ), *name ) );
-                break;  
-                }
-            }
-            
-        CleanupStack::PopAndDestroy( name ); 
-        }
-    
-    CleanupStack::PopAndDestroy();//resReader 
-    FeatureManager::UnInitializeLib();
-    
-    CAUILOGSTRING("CALLUI:<<< CCaUiMessageSender::UpdateMessageTypesArrayL() end");
-    }
-
-// ---------------------------------------------------------
-// CCaUiMessageSender::CreateMessageServiceConnectionL
-// ---------------------------------------------------------
-//
-void CCaUiMessageSender::CreateMessageServiceConnectionL()
-    {
-    CAUILOGSTRING("CALLUI:>>> CCaUiMessageSender::CreateMessageServiceConnectionL()");
-    
-    if ( !iSession )
-        {
-        iSession = CMsvSession::OpenSyncL( *this );
-        }
-    CAUILOGSTRING("CALLUI:<<< CCaUiMessageSender::CreateMessageServiceConnectionL()");    
-    }
-
-// ---------------------------------------------------------
-// CCaUiMessageSender::IsMailboxDefinedL
-// ---------------------------------------------------------
-//
-TBool CCaUiMessageSender::IsMailboxDefinedL()
-    {
-    CAUILOGSTRING("CALLUI:>>> CCaUiMessageSender::IsMailboxDefinedL()");
-    
-    CreateMessageServiceConnectionL();
-    
-    TBool isDefined = EFalse;
-    CMsvEntry* root = iSession->GetEntryL( KMsvRootIndexEntryId );
-
-    TInt count = root->Count();
-    for ( TInt i = 0; i < count; i++ )
-        {
-        const TMsvEntry& tentry = (*root)[i];
-        if ( tentry.iMtm.iUid == KMtmPop3Uid || 
-            tentry.iMtm.iUid == KMtmImap4Uid )
-            {
-            isDefined = ETrue;
-            break;
-            }
-        }
-    delete root;
-    
-    CAUILOGSTRING("CALLUI:<<< CCaUiMessageSender::IsMailboxDefinedL()");
-    return isDefined;
-    }
-
-
-// ---------------------------------------------------------
-// CCaUiMessageSender::HandleSessionEventL
-// ---------------------------------------------------------
-void CCaUiMessageSender::HandleSessionEventL(TMsvSessionEvent aEvent, 
-        TAny* /*aArg1*/, TAny* /*aArg2*/, TAny* /*aArg3*/)
-    {
-    CAUILOGSTRING("CALLUI:>>> CCaUiMessageSender::HandleSessionEventL()");
-    
-    CreateMessageServiceConnectionL();
-
-    switch ( aEvent )
-        {
-        case EMsvCloseSession:
-            //Server close.
-            delete iSession;
-            iSession = NULL;
-            CAUILOGSTRING("CALLUI:<<< CCaUiMessageSender::HandleSessionEventL(): case: EMsvCloseSession");
-            break;
-        default:
-            CAUILOGSTRING("CALLUI:<<< CCaUiMessageSender::HandleSessionEventL(): case: default");
-            break;
-        }
-        
-    }
-
-
-// End of File
--- a/phoneclientserver/CallUI/Src/CaUiEngine/CaUiMessageSenderStub.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,108 +0,0 @@
-/*
-* Copyright (c) 2004 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:  Message sender stub
-*
-*/
-
-
-//  INCLUDES
-#include    "cauimessagesenderstub.h" 
-
-// -----------------------------------------------------------------------------
-// CCaUiMessageSender::CCaUiMessageSender
-// 
-// C++ constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CCaUiMessageSender::CCaUiMessageSender()
-    {
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiMessageSender::~CCaUiMessageSender
-// 
-// Destructor.
-// -----------------------------------------------------------------------------
-//
-CCaUiMessageSender::~CCaUiMessageSender()
-    {   
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiMessageSender::NewL
-// 
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CCaUiMessageSender* CCaUiMessageSender::NewL()
-    {
-    CCaUiMessageSender* self = new( ELeave ) CCaUiMessageSender ();
-    
-    return self;
-    }
-
-// ---------------------------------------------------------
-// CCaUiMessageSender::CreateNewMessageL
-// Create a new message of the given type, in the given location
-// ---------------------------------------------------------
-//
-void CCaUiMessageSender::CreateNewMessageL(
-    TInt /*aMessageType*/,
-    MDesC16Array* /*aRealAddress*/,
-    MDesC16Array* /*aAliases*/,
-    CRichText* /*aRichText*/ )
-    {
-    }
-
-// ---------------------------------------------------------
-// CCaUiMessageSender::CreateSendUiL
-// ---------------------------------------------------------
-//
-void CCaUiMessageSender::CreateSendUiL()
-    {   
-    }
-
-
-// ---------------------------------------------------------
-// CCaUiMessageSender::UpdateMessageTypesArrayL
-// Updates the array of UIDs which defines the MTM types for which the user
-// can create new messages.
-// ---------------------------------------------------------
-void CCaUiMessageSender::UpdateMessageTypesArrayL(
-    CUidNameArray* /*aMsgTypes*/ )
-    {
-    }
-
-// ---------------------------------------------------------
-// CCaUiMessageSender::CreateMessageServiceConnectionL
-// ---------------------------------------------------------
-//
-void CCaUiMessageSender::CreateMessageServiceConnectionL()
-    {    
-    }
-
-// ---------------------------------------------------------
-// CCaUiMessageSender::IsMailboxDefinedL
-// ---------------------------------------------------------
-//
-TBool CCaUiMessageSender::IsMailboxDefinedL()
-    {
-    TBool isDefined( EFalse );
-    return isDefined;
-    }
-
-// End of File
--- a/phoneclientserver/CallUI/Src/CaUiEngine/CaUiQuery.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,90 +0,0 @@
-/*
-* Copyright (c) 2004 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:  Query that is used in asking call type (confirmation) 
-*                from user.
-*
-*/
-
-
-
-
-//  INCLUDES
-#include "cauiquery.h" 
-
-
-// -----------------------------------------------------------------------------
-// CCaUiCreateListQuery::CCaUiListQuery
-// 
-// C++ constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CCaUiCreateListQuery::CCaUiCreateListQuery( TInt* aIndex )
-:   CAknListQueryDialog( aIndex )
-    {
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiCreateListQuery::~CCaUiCreateListQuery
-// 
-// Destructor.
-// -----------------------------------------------------------------------------
-//
-CCaUiCreateListQuery::~CCaUiCreateListQuery()
-    {
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiCreateListQuery::OfferKeyEventL
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-TKeyResponse CCaUiCreateListQuery::OfferKeyEventL(
-    const TKeyEvent& aKeyEvent,
-    TEventCode aType )
-    {
-    TKeyResponse response = EKeyWasConsumed;
-
-    if ( aType == EEventKeyDown )
-        {
-        // The first key event received will be a partial one, and will therefore be ignored.
-        iValidKeyEvent = ETrue;
-        }
-    
-    if ( iValidKeyEvent && aKeyEvent.iScanCode == EStdKeyYes )
-        {
-        if ( aType == EEventKey )
-            {
-            // The send key is specified to act (in Video Telephony UI specification) so that it 
-            // initiates the call. This means that the event is modified and faked to be a select
-            // key event, so that the list box can handle it correctly.
-            TKeyEvent keyEvent = aKeyEvent;
-            keyEvent.iCode = EKeyOK;
-            keyEvent.iScanCode = EStdKeyDevice3;
-            response = CAknListQueryDialog::OfferKeyEventL( keyEvent, EEventKey );
-            }
-        }
-    else
-        {
-        response = CAknListQueryDialog::OfferKeyEventL( aKeyEvent, aType );
-        }
-    
-    return response;
-    }
-
-
-// End of File
--- a/phoneclientserver/CallUI/Src/CaUiEngine/CaUiVoIPExtension.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,159 +0,0 @@
-/*
-* Copyright (c) 2005-2008 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  VoIP profile handler
-*
-*/
-
-
-
-// INCLUDE FILES
-#include    "cauivoipextension.h" 
-#include    <callui.rsg> 
-#include    <featmgr.h> 
-#include    <spsettings.h>
-#include    <spproperty.h>
-#include    <stringloader.h> // String Loader. 
-
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CCaUiVoIPExtension::CCaUiVoIPExtension
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CCaUiVoIPExtension::CCaUiVoIPExtension()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CCaUiVoIPExtension::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CCaUiVoIPExtension::ConstructL()
-    {    
-
-    }
-
-// -----------------------------------------------------------------------------
-// CCaUiVoIPExtension::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CCaUiVoIPExtension* CCaUiVoIPExtension::NewL()
-    {
-    CCaUiVoIPExtension* self = new( ELeave ) CCaUiVoIPExtension;
-    
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-
-    return self;
-    }
-
-    
-// Destructor
-CCaUiVoIPExtension::~CCaUiVoIPExtension()
-    {
-
-    }
-        
-// -----------------------------------------------------------------------------
-// CCaUiVoIPExtension::IsVoIPProfilesL()
-// Checks if any service supports internet call
-// -----------------------------------------------------------------------------
-//
-TBool CCaUiVoIPExtension::IsVoIPProfilesL()
-    {
-    TBool isProfiles = EFalse;
-
-    RIdArray voipServiceIds;
-    CleanupClosePushL( voipServiceIds );
-    GetVoIPServiceIdsL( voipServiceIds );
-    if ( voipServiceIds.Count() )
-        {
-        isProfiles = ETrue;
-        }
-    CleanupStack::PopAndDestroy( &voipServiceIds );
-          
-    return isProfiles; 
-    }
-
-// -----------------------------------------------------------------------------
-// CCaUiVoIPExtension::GetVoIPServiceIdsL()
-// 
-// -----------------------------------------------------------------------------
-//
-void CCaUiVoIPExtension::GetVoIPServiceIdsL( RIdArray& aVoipServiceIds ) const
-    {
-    aVoipServiceIds.Reset();
-
-    // Fetch the settings api.
-    CSPSettings* settingsApi = CSPSettings::NewLC();               
-        
-    // read all service ids to array
-    RIdArray idArray;
-    CleanupClosePushL( idArray );
-        
-    if ( FeatureManager::FeatureSupported( KFeatureIdCommonVoip ) )
-        {
-        User::LeaveIfError( settingsApi->FindServiceIdsL( idArray ) );
-    
-        // go throught all the services and check if any
-        // of them supports internet call        
-        for ( TInt i = 0; idArray.Count() > i; i++)
-            {                        
-            // check if the service supports internet call                                                              
-            CSPProperty* property = CSPProperty::NewLC();
-            // get attribute mask of the service
-            User::LeaveIfError( settingsApi->FindPropertyL( idArray[i], 
-                EPropertyServiceAttributeMask, *property ) );
-            
-            // read the value of mask property
-            TInt mask = 0;                    
-            if ( KErrNone == property->GetValue( mask ) )
-                {
-                if ( ( mask & ESupportsInternetCall )
-                    && ( mask & EIsVisibleInCallMenu ) ) 
-                    {
-                    aVoipServiceIds.Append( idArray[i] );
-                    }
-                }
-            CleanupStack::PopAndDestroy( property );     
-            }                                   
-        }
-    CleanupStack::PopAndDestroy( 2, settingsApi );
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiVoIPExtension::GetVoipServiceNameL()
-// 
-// -----------------------------------------------------------------------------
-//        
-void CCaUiVoIPExtension::GetVoipServiceNameL( TServiceId aServiceId, TDes& aServiceName ) const
-    {
-    CSPSettings* settingsApi = CSPSettings::NewLC();
-    CSPProperty* property = CSPProperty::NewLC();
-
-    settingsApi->FindPropertyL( aServiceId, EServiceName, *property );
-    User::LeaveIfError( property->GetValue( aServiceName ) );
-    
-    CleanupStack::PopAndDestroy( 2, settingsApi );
-    }
-
-//  End of File
--- a/phoneclientserver/CallUI/Src/CaUiEngine/ccauireconnectquery.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-/*
-* Copyright (c) 2007 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:  Creates CallUIEngine reconnect query implementation.
-*
-*/
-
-
-
-// INCLUDE FILES
-#include    "ccauireconnectquery.h"
-#include    "ccauireconnectqueryimpl.h"
-
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CCaUiReconnectQuery::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CCaUiReconnectQuery* CCaUiReconnectQuery::NewL( 
-    MCaUiReconnectQueryObserver& aObserver )
-    {
-    return CCaUiReconnectQueryImpl::NewL( aObserver );
-    }
-
-CCaUiReconnectQuery::~CCaUiReconnectQuery()
-    {
-    // No implementation needed
-    }
-// -----------------------------------------------------------------------------
-// CCaUiReconnectQuery::CCaUiReconnectQuery
-// C++ constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CCaUiReconnectQuery::CCaUiReconnectQuery( MCaUiReconnectQueryObserver& aObserver )
-    : iObserver( aObserver )
-    {
-    }
-    
-
-
-
-//  End of File  
--- a/phoneclientserver/CallUI/Src/CaUiEngine/ccauireconnectqueryimpl.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
-/*
-* Copyright (c) 2007 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 CallUIEngine reconnect query.
-*
-*/
-
-
-
-// INCLUDE FILES
-#include    "ccauireconnectqueryimpl.h"
-#include    "cauiengine.h" 
-
-CCaUiReconnectQueryImpl* CCaUiReconnectQueryImpl::NewL( 
-    MCaUiReconnectQueryObserver& aObserver )
-    {
-    CCaUiReconnectQueryImpl* self = 
-        new ( ELeave ) CCaUiReconnectQueryImpl( aObserver);
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop(); 
-    return self;
-    }
-    
-CCaUiReconnectQueryImpl::~CCaUiReconnectQueryImpl( )
-    {
-    if ( iEng )
-        {
-        iEng->CancelReconConfQuery();
-        delete iEng;
-        }
-    }
-    
-void CCaUiReconnectQueryImpl::ShowL( 
-    const TPtrC aPhoneNumber,
-    const TBool aIncludeVideoCallOption )
-    {
-    iEng->LaunchReconConfQueryL(iObserver,
-        NULL,
-        aPhoneNumber,
-        aIncludeVideoCallOption );
-    }
-
-void CCaUiReconnectQueryImpl::ConstructL()
-    {
-    iEng = CCaUiEngine::NewL();
-    }
-
-CCaUiReconnectQueryImpl::CCaUiReconnectQueryImpl(
-            MCaUiReconnectQueryObserver& aObserver ):
-                CCaUiReconnectQuery(aObserver)
-    {
-    
-    }
-
-// End of file
-
-
--- a/phoneclientserver/CallUI/Src/CaUiPlugin/CaUIMain.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-/*
-* Copyright (c) 2004 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:  Global functions for CaUiPlugin.
-*
-*/
-
-
-
-// INCLUDE FILES
-#include    <ecom.h>
-#include    <implementationproxy.h>
-#include    "caui.hrh" 
-#include    "cauiplugin.h" 
-
-
-// CONSTANTS
-
-// Holds implementation table.
-const TImplementationProxy KCallUIImplementationTable[] =
-    {
-    IMPLEMENTATION_PROXY_ENTRY( 
-        KCallUIImplementationUid, 
-        CCaUiPlugin::NewL ),
-    IMPLEMENTATION_PROXY_ENTRY( 
-        KCallUIImplementationUid2, 
-        CCaUiPlugin::NewL )        
-    };
-
-
-// ========================== OTHER EXPORTED FUNCTIONS =========================
-
-// -----------------------------------------------------------------------------
-// ImplementationGroupProxy
-// 
-// Returns implementation table and updates aTableCount parameter to hold
-// amount of elements in table.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy( 
-    TInt& aTableCount )
-    {
-    aTableCount = 
-        sizeof( KCallUIImplementationTable ) / 
-        sizeof( TImplementationProxy );
-
-    return KCallUIImplementationTable;
-    }
-
-//  End of File  
--- a/phoneclientserver/CallUI/Src/CaUiPlugin/CaUiPlugin.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,441 +0,0 @@
-/*
-* Copyright (c) 2004-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 CallUI plugin.
-*
-*/
-
-
-
-// INCLUDE FILES
-#include    "cauiplugin.h" // This class interface. 
-#include    "cauieng.h" // CaUiEngine. 
-#include    <aiwcommon.hrh> // AIW constants. 
-#include    "caui.hrh" // CallUI constants. 
-#include    <aiwmenu.h> // AIW Menu pane. 
-
-#include    <aiwservicehandler.h> 
-#include    <phclttypes.h> // PhoneClient types. 
-#include    "cauilogger.h" // Call Ui Logger 
-#include    <stringloader.h>
-#include    <callui.rsg>
-
-// CONSTANTS
-
-// Empty filename for initialization.
-_LIT( KCaUiNullResFile, "" );
-
-// The library to be loaded.
-_LIT( KCaUiLoadedLib, "cauiengine.dll" );
-
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CCaUiPlugin::CCaUiPlugin
-// 
-// C++ constructor can NOT contain any code, that might leave.
-// -----------------------------------------------------------------------------
-//
-CCaUiPlugin::CCaUiPlugin()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CCaUiPlugin::ConstructL
-// 
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CCaUiPlugin::ConstructL()
-    {
-    CAUILOGSTRING("CALLUI: >>>CCaUiPlugin::ConstructL() Begin");
-    User::LeaveIfError( iLibrary.Load( KCaUiLoadedLib ) );
-
-    // Call function CreateCaUiEngFactoryL()
-    TInt res = iLibrary.Lookup( 1 )();
-    CCaUiEngFactory* caUiEngFactory = 
-        reinterpret_cast< CCaUiEngFactory* >( res );
-
-    iCaUiEngine = caUiEngFactory->CCaUiEngApiLD();
-
-    if( !iCaUiEngine )
-        {
-        // Null returned, so leave.
-        User::Leave( KErrNotSupported );
-        }
-    CAUILOGSTRING("CALLUI: >>>CCaUiPlugin::ConstructL() End");
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiPlugin::NewL
-// 
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CCaUiPlugin* CCaUiPlugin::NewL()
-    {
-    CCaUiPlugin* self = new( ELeave ) CCaUiPlugin;
-    
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop();
-
-    return self;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiPlugin::~CCaUiPlugin
-// 
-// Destructor.
-// -----------------------------------------------------------------------------
-//
-CCaUiPlugin::~CCaUiPlugin()
-    {
-    delete iCaUiEngine;
-
-    iLibrary.Close();
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiPlugin::InitialiseL
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-void CCaUiPlugin::InitialiseL(
-    MAiwNotifyCallback& /*aFrameworkCallback*/,
-    const RCriteriaArray& /*aInterest*/)
-    {
-    // Stub. Not used.
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiPlugin::HandleServiceCmdL
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-void CCaUiPlugin::HandleServiceCmdL(
-    const TInt& aCmdId,
-    const CAiwGenericParamList& aInParamList,
-    CAiwGenericParamList& aOutParamList,
-    TUint aCmdOptions,
-    const MAiwNotifyCallback* aCallback )
-    {
-    CAUILOGSTRING("CALLUI: >>>CCaUiPlugin::HandleServiceCmdL() Begin");
-    // Handle only call command.
-    if ( aCmdId == KAiwCmdCall )
-        {
-        if ( aCmdOptions & KAiwOptCancel )
-            {
-            CAUILOGSTRING("CALLUI: >>>CCaUiPlugin::HandleServiceCmdL() Cancel");
-            return;
-            }
-        // Check if there is CallUI Dialdata parameter.
-        TInt index = 0;
-        const TAiwGenericParam* genericParam = NULL; 
-            
-        genericParam = aInParamList.FindFirst( 
-            index,
-            EGenericParamCallDialData,
-            EVariantTypeDesC8 );
-            
-        if ( index >= 0 && genericParam )
-            {
-            // Get the data.
-            TPtrC8 ptr = genericParam->Value().AsData();
-
-            // If this function was called through HandleMenuCmdL,
-            // iMenuCmdId was set, otherwise it is zero.
-            TCaUiCallType callType = ECaUiCallTypeUnknown;
-
-            if ( iMenuCmdId == ECallUIVoice )
-                {
-                callType = ECaUiCallTypeVoice;
-                }
-            else if ( iMenuCmdId == ECallUIVideo )
-                {
-                callType = ECaUiCallTypeVideo;
-                }
-            else if ( iMenuCmdId == ECallUIInternet )
-                {
-                callType = ECaUiCallTypeInternet;
-                }
-
-            iMenuCmdId = 0;
-
-            // Save the parameters given.
-            iAiwNotifyCallback = aCallback;
-            iInParamList = &aInParamList;
-            iOutParamList = &aOutParamList;
-
-            // Perform the dial operation.
-            iCaUiEngine->DialL( *this, ptr, callType );
-            }
-        }
-    CAUILOGSTRING("CALLUI: >>>CCaUiPlugin::HandleServiceCmdL() End");
-    }
-
-
-
-// -----------------------------------------------------------------------------
-// CCaUiPlugin::InitializeMenuPaneL
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-void CCaUiPlugin::InitializeMenuPaneL(
-    CAiwMenuPane& aMenuPane,
-    TInt aIndex,
-    TInt /* aCascadeId */,
-    const CAiwGenericParamList& aInParamList )
-    {
-    CAUILOGSTRING("CALLUI: >>>CCaUiPlugin::InitializeMenuPaneL() Begin");
-
-    // By default we want all internet, voice and video call resources
-    TBool csVoiceMenuItemAvailable( ETrue );
-    TBool csVideoMenuItemAvailable( ETrue );
-    TBool voipMenuItemAvailable( ETrue );
-    
-    // If there is PhoneNumber parameter given, then only voice call 
-    // resource is wanted.
-    TInt count = aInParamList.Count();
-    if ( count )
-        {
-        TInt index = 0;
-        aInParamList.FindFirst(
-            index,
-            EGenericParamPhoneNumber,
-            EVariantTypeAny );
-
-        if ( index >= 0  )
-            {
-            csVideoMenuItemAvailable = EFalse;
-            voipMenuItemAvailable = EFalse;
-            }
-            
-        if ( index == KErrNotFound )
-            {
-            index = 0;    
-            aInParamList.FindFirst(
-                index,
-                EGenericParamSIPAddress,
-                EVariantTypeAny );
-
-            if ( index >= 0  )
-                {
-                // Internet number parameter was found, 
-                csVoiceMenuItemAvailable = EFalse;
-                csVideoMenuItemAvailable = EFalse;
-                }
-            }
-        }
-
-    // Add menu items
-
-    TInt menuIndex = aIndex;
-
-    if ( csVoiceMenuItemAvailable )
-         {
-         AddAiwMenuItemL( aMenuPane, menuIndex, ECSVoice );
-         menuIndex++;
-         }
-    
-    if ( csVideoMenuItemAvailable )
-        {
-        AddAiwMenuItemL( aMenuPane, menuIndex, ECSVideo );
-        menuIndex++;
-        }
-    
-    if ( voipMenuItemAvailable )
-        {
-        RIdArray voipServiceIds;
-        CleanupClosePushL( voipServiceIds );
-        iCaUiEngine->GetVoIPServiceIdsL( voipServiceIds );
-        TInt numberOfVoipServices = voipServiceIds.Count();
-        
-        if ( 1 == numberOfVoipServices )
-            {
-            // Single VoIP service, use service name in menu item
-             AddAiwMenuItemL( aMenuPane, menuIndex, EInternetWithName, voipServiceIds[0] );
-             menuIndex++;
-            }
-        else if ( numberOfVoipServices > 1 )
-            {
-            // Regular internet call menu
-            AddAiwMenuItemL( aMenuPane, menuIndex, EInternet );
-            menuIndex++;
-            }    
-
-        CleanupStack::PopAndDestroy( &voipServiceIds );
-        }
-
-    // Set submenu title
-    if ( csVoiceMenuItemAvailable ||
-         csVideoMenuItemAvailable || 
-         voipMenuItemAvailable )
-        {
-        HBufC* menuTitle = StringLoader::LoadLC( R_CALLUI_CALL_SUBMENU_TITLE );
-        aMenuPane.AddTitleItemL( *menuTitle, aIndex );
-        CleanupStack::PopAndDestroy( menuTitle );
-        }
-
-    CAUILOGSTRING("CALLUI: >>>CCaUiPlugin::InitializeMenuPaneL() End");
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiPlugin::HandleMenuCmdL
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-void CCaUiPlugin::HandleMenuCmdL(
-    TInt aMenuCmdId, 
-    const CAiwGenericParamList& aInParamList,
-    CAiwGenericParamList& aOutParamList,
-    TUint aCmdOptions,
-    const MAiwNotifyCallback* aCallback )
-    {
-    CAUILOGSTRING("CALLUI: >>>CCaUiPlugin::HandleMenuCmdL() Begin");
-    // Handle only call commands.
-    if ( ( aMenuCmdId == ECallUIVideo ) || 
-         ( aMenuCmdId == ECallUIVoice ) ||
-         ( aMenuCmdId == ECallUIInternet ) )
-        {
-        // Save the menu command.
-        iMenuCmdId = aMenuCmdId;
-
-        // Menu commands are handled as service commands.
-        HandleServiceCmdL(
-            KAiwCmdCall,
-            aInParamList,
-            aOutParamList,
-            aCmdOptions,
-            aCallback );
-        }
-    CAUILOGSTRING("CALLUI: >>>CCaUiPlugin::HandleMenuCmdL() End");
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCaUiPlugin::HandleDialResultL
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-void CCaUiPlugin::HandleDialResultL( const TInt aStatus )
-    {
-    CAUILOGSTRING("CALLUI: >>>CCaUiPlugin::HandleDialResultL() Start");
-    // If callback exists, inform client of call result.
-    if ( iAiwNotifyCallback )
-        {
-        // Add the call result to the out parameter list.
-        TAiwVariant variant( aStatus );
-        TAiwGenericParam genericParam( EGenericParamError, variant );
-        iOutParamList->AppendL( genericParam);
-
-        // R&D solution: Remove constness.
-        MAiwNotifyCallback* callback = 
-            const_cast< MAiwNotifyCallback* >( iAiwNotifyCallback );
-
-        // Notify client.
-        callback->HandleNotifyL(
-            KAiwCmdCall,
-            KAiwEventStarted,
-            *iOutParamList,
-            *iInParamList );
-        }
-
-    // Callback not active anymore, make clearing.
-    iAiwNotifyCallback = NULL;
-    iInParamList = NULL;
-    iOutParamList = NULL;
-    CAUILOGSTRING("CALLUI: >>>CCaUiPlugin::HandleDialResultL() End");
-    }
-
-// -----------------------------------------------------------------------------
-// CCaUiPlugin::AddAiwMenuItemL
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-void CCaUiPlugin::AddAiwMenuItemL( CAiwMenuPane& aMenuPane, TInt aIndex, EMenuItemType aType, TServiceId aServiceId )
-    {
-    CEikMenuPaneItem::SData data;
-    data.iCascadeId = 0;
-    data.iFlags = 0;
-    data.iExtraText = KNullDesC();
-
-    HBufC* menuItemText = NULL;
-    
-    switch ( aType )
-        {
-        case ECSVoice:
-            {
-            data.iCommandId = ECallUIVoice;
-            menuItemText = StringLoader::LoadLC( R_CALLUI_CS_VOICE_CALL );
-            data.iText.Copy( *menuItemText );
-            break;
-            }
-
-        case ECSVideo:
-            {
-            data.iCommandId = ECallUIVideo;
-            menuItemText = StringLoader::LoadLC( R_CALLUI_CS_VIDEO_CALL );
-            data.iText.Copy( *menuItemText );
-            break;
-            }
-
-        case EInternet:
-            {
-            data.iCommandId = ECallUIInternet;
-            menuItemText = StringLoader::LoadLC( R_CALLUI_INTERNET_CALL );
-            data.iText.Copy( *menuItemText );
-            break;
-            }
-
-        case EInternetWithName:
-            {
-            data.iCommandId = ECallUIInternet;
-            
-            // Get the service provider name
-            TBuf<100> buf;
-            iCaUiEngine->GetVoipServiceNameL( aServiceId, buf );
-            menuItemText = StringLoader::LoadLC( R_CALLUI_XSP_CALL_WITH_SERVICE_NAME, buf );
-            data.iText.Copy( *menuItemText );
-            break;
-            }
-
-        default:
-            break;
-        }
-
-    if ( NULL != menuItemText )
-        {
-        CleanupStack::PopAndDestroy( menuItemText );
-        }
-    
-    aMenuPane.AddMenuItemL(
-       KAiwCmdCall,
-       data,
-       aIndex );
-    }
-
-// End of file
--- a/phoneclientserver/EnPolicy/Inc/CEmergencyNumberPolicy.h	Fri Apr 16 15:31:58 2010 +0300
+++ b/phoneclientserver/EnPolicy/Inc/CEmergencyNumberPolicy.h	Mon May 03 13:01:45 2010 +0300
@@ -24,7 +24,7 @@
 // INCLUDES
 #include <e32base.h>  
 #include <rphcltserver.h> 
-#include <RPhCltEmergencyCall.h> 
+#include <rphcltemergencycall.h> 
 
 // CONSTANTS
 const TUid KEnPolicyUid={ 0x101F86D1 };
--- a/phoneclientserver/EnPolicy/Src/SosEnPolicy/CSosEnPolicySimStatusMonitor.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/phoneclientserver/EnPolicy/Src/SosEnPolicy/CSosEnPolicySimStatusMonitor.cpp	Mon May 03 13:01:45 2010 +0300
@@ -20,7 +20,7 @@
 // INCLUDES
 #include    "csosenpolicysimstatusmonitor.h" 
 #include    <startupdomainpskeys.h> // Property values
-#include    <psvariables.h> 
+#include    <PSVariables.h> 
 
 
 
--- a/phoneclientserver/dialutils/group/dialutils.mmp	Fri Apr 16 15:31:58 2010 +0300
+++ b/phoneclientserver/dialutils/group/dialutils.mmp	Mon May 03 13:01:45 2010 +0300
@@ -24,8 +24,8 @@
 UID             0x1000008d 0x101F8747
 
 SOURCEPATH      ../src
-SOURCE          DialUtilsImpl.cpp 
-SOURCE          DialUtilsFactImpl.cpp 
+SOURCE          dialutilsimpl.cpp 
+SOURCE          dialutilsfactimpl.cpp 
 
 USERINCLUDE     ../inc
 
--- a/phoneclientserver/phoneclient/Group/PhoneClient.mmp	Fri Apr 16 15:31:58 2010 +0300
+++ b/phoneclientserver/phoneclient/Group/PhoneClient.mmp	Mon May 03 13:01:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-2004 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2002-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"
@@ -89,14 +89,13 @@
 
 
 SOURCEPATH      ../src 
-START RESOURCE ../data/phoneclient.rss 
-HEADER
-TARGETPATH   RESOURCE_FILES_DIR  
-LANGUAGE_IDS
-END  // RESOURCE
 
 MW_LAYER_SYSTEMINCLUDE
 SYSTEMINCLUDE   ../../../inc
+SYSTEMINCLUDE        /epoc32/include/mw/hb/hbwidgets
+SYSTEMINCLUDE        /epoc32/include/mw/hb/hbcore
+SYSTEMINCLUDE        /epoc32/include/platform/mw/loc
+SYSTEMINCLUDE        /epoc32/include/platform/mw/loc/sc
 
 USERINCLUDE     ../inc/extcall/extcall_aiw 
 USERINCLUDE     ../inc/notifier/notifier_aiw 
@@ -117,7 +116,6 @@
 
 LIBRARY         euser.lib
 LIBRARY         aknnotify.lib
-LIBRARY         avkon.lib
 LIBRARY         cone.lib
 LIBRARY         estor.lib
 LIBRARY         commonengine.lib 
@@ -128,6 +126,9 @@
 LIBRARY         efsrv.lib
 LIBRARY         charconv.lib
 LIBRARY         fbscli.lib
+LIBRARY         hbwidgets.lib
+LIBRARY         flogger.lib
+LIBRARY         hbcore.lib
 
 
 #ifdef WINSCW
--- a/phoneclientserver/phoneclient/Inc/UssdWrapper/CPhCltUssdNoteController.h	Fri Apr 16 15:31:58 2010 +0300
+++ b/phoneclientserver/phoneclient/Inc/UssdWrapper/CPhCltUssdNoteController.h	Mon May 03 13:01:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2009-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"
@@ -21,11 +21,10 @@
 
 // INCLUDES
 #include <e32base.h>
+#include <hbdeviceprogressdialogsymbian.h>
 #include "mphcltussdnotecontrollercallback.h" 
+#include "cphcltussdcommonconstant.h"
 
-// FORWARD DECLARATIONS
-class CAknGlobalNote;
-class RConeResourceLoader;
 
 // CLASS DECLARATION
 
@@ -33,12 +32,12 @@
 *   Encapsulates an active object used in controlling notes.
 *
 *  @lib phoneclient.lib
-*  @since 9.1
 */
-NONSHARABLE_CLASS( CPhCltUssdNoteController ) : public CActive
+NONSHARABLE_CLASS( CPhCltUssdNoteController ) : public CBase,
+                                                public MHbDeviceProgressDialogObserver
     {
     public:  // Constructor and destructor
-        
+
         /**
         * Two-phased constructor.
         * 
@@ -47,87 +46,81 @@
         * @return Pointer to created CPhCltUssdImp instance.
         */
         static CPhCltUssdNoteController* NewL( 
-                MPhCltUssdNoteControllerCallBack& aCallBack,
-                TInt aPriority );
-        
+                MPhCltUssdNoteControllerCallBack& aCallBack );
+
         /**
         * Destructor.
         */
         ~CPhCltUssdNoteController();
 
-        
     public:
-        
-        // Shows information note.
-        void ShowInformationNoteL( TInt aResourceId );
-        
-        // Shows global information note.
-        void ShowGlobalInformationNoteL( TInt aResourceId );
-        
-        // Shows global confirmation note.
-        void ShowGlobalConfirmationNoteL( TInt aResourceId );
-        
-        // Shows global wait note.
-        void ShowGlobalWaitNoteL( TInt aResourceId, TInt aSoftkeyResourceId = 0 );
-        
-        // Destroys global wait note.
+
+        /**
+        * Shows global Information note.
+        */
+        void ShowGlobalInformationNoteL( const TPhCltUssdInformationType aInfoType );
+
+        /**
+        * Shows global wait note.
+        */
+        void ShowGlobalWaitNoteL();
+
+        /**
+        * Destroys global wait note.
+        */
         void DestroyGlobalWaitNote();
-        
-    private: 
-        
+
+        /**
+        * From base class MHbDeviceProgressDialogObserver
+        */
+        void ProgressDialogCancelled(
+            const CHbDeviceProgressDialogSymbian* aProgressDialog);
+
+        /**
+        * From base class MHbDeviceProgressDialogObserver
+        */
+        void ProgressDialogClosed(
+            const CHbDeviceProgressDialogSymbian* aProgressDialog);
+
+    private:
+
         /**
         * C++ constructor.
         */
         CPhCltUssdNoteController( 
-            MPhCltUssdNoteControllerCallBack& aCallBack,
-            TInt aPriority );
-        
-        // Symbian 2nd phase constructor.
+            MPhCltUssdNoteControllerCallBack& aCallBack );
+
+        /**
+        * Symbian 2nd phase constructor.
+        */
         void ConstructL();
-        
-        // The note type enumeration, used inside the class.
-        enum TPhCltUssdNoteType
-            {
-            EPhCltUssdInformationNote,
-            EPhCltUssdGlobalInformationNote,
-            EPhCltUssdGlobalConfirmationNote
-            };
 
-        // Shows the note of given type. 
-        void ShowNoteL( TPhCltUssdNoteType aType, TInt aResourceId );
-        
-        // Loads the resource file.
-        void LoadResourceFileL();
-        
-        // From base classes
-       
-        /*
-        * From CActive. Called when dialog is dismissed by soft key.
+        /**
+        * LoadDefaultString.
         */
-        void RunL();
+        HBufC* LoadDefaultStringL( const TDesC& aText );
+
+    private:    // Data
 
         /**
-        * From CActive. 
+        * Own,Global wait note.
         */
-        void DoCancel();
-
+        CHbDeviceProgressDialogSymbian* iGlobalWaitNote;
 
-    private:    // Data
-        
-        // Buffer for messages.
-        HBufC* iMessageBuffer;
-        
-        // Global wait note.
-        CAknGlobalNote* iGlobalWaitNote;
-        
-        // Id of an active wait note.
-        TInt iWaitNoteId;
-        
-        // The callback to be notified when wait note is dismissed.  
+        /**
+        * Not own,callback to be notified when wait note is dismissed.
+        */
         MPhCltUssdNoteControllerCallBack& iCallBack;
 
-        // Resource loader.
-        RConeResourceLoader* iResourceLoader;
+        /**
+        * Check Load Success .ts file successfully or not
+        */
+        TBool iIsResolverSuccess;
+
+        /**
+        * Own, resouce of global note.
+        */
+        HBufC* iGlobalResource;
     };
 
 #endif // CPHCLTUSSDNOTECONTROLLER_H
--- a/phoneclientserver/phoneclient/Inc/UssdWrapper/MPhCltUssdNoteControllerCallBack.h	Fri Apr 16 15:31:58 2010 +0300
+++ b/phoneclientserver/phoneclient/Inc/UssdWrapper/MPhCltUssdNoteControllerCallBack.h	Mon May 03 13:01:45 2010 +0300
@@ -27,7 +27,7 @@
 
 /**
 *  Abstract interface for handling the notify events from note controller.
-*  User derives his class from this and implements GlobalWaitNoteDismissedL().
+*  User derives his class from this and implements GlobalWaitNoteHidden().
 *
 *  @lib phoneclient.lib
 *  @since 9.1
@@ -39,11 +39,11 @@
     public: // New functions
 
         /**
-        * Called when global wait note is dismissed.
+        * Called when global wait note is hidden, to background.
         * 
         * @param aError Error code.
         */    
-        virtual void GlobalWaitNoteDismissedL( const TInt aError ) = 0;
+        virtual void GlobalWaitNoteHidden() = 0;
     };
 
 
--- a/phoneclientserver/phoneclient/Inc/UssdWrapper/Ussd_Ext/CPhCltUssdImp.h	Fri Apr 16 15:31:58 2010 +0300
+++ b/phoneclientserver/phoneclient/Inc/UssdWrapper/Ussd_Ext/CPhCltUssdImp.h	Mon May 03 13:01:45 2010 +0300
@@ -171,8 +171,8 @@
         // Called when send completes.
         void HandleSendEventL( const TInt aError );
 
-        // Called when the user cancel the wait dialog.
-        void GlobalWaitNoteDismissedL( TInt aButtonId );
+        // Hidden when the user cancel the wait dialog.
+        void GlobalWaitNoteHidden();
         
         
 
--- a/phoneclientserver/phoneclient/Src/UssdWrapper/CPhCltUssdImp.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/phoneclientserver/phoneclient/Src/UssdWrapper/CPhCltUssdImp.cpp	Mon May 03 13:01:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-2005 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2002-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"
@@ -27,12 +27,8 @@
 #include <f32file.h>
 #include <charconv.h>
 #include <gsmuelem.h>
-//
-#include <coemain.h>
-#include <avkon.hrh>
-#include <avkon.rsg> 
-
-#include <phoneclient.rsg> 
+#include <coemain.h>  
+//#include <phoneclient.rsg> 
 #include <exterror.h>
 
 #include <gsmerror.h>
@@ -40,7 +36,8 @@
 
 #include "mphcltussdnotecontrollercallback.h" 
 #include "cphcltussdnotecontroller.h" 
-
+#include "cphcltussdcommonconstant.h"
+#include "tflogger.h"
 // CONSTANTS
 
 const TUint8 KPhCltUssdDcsDefaultAlphabet = 0x0f; // 00001111
@@ -333,10 +330,12 @@
 //
 CPhCltUssdImp* CPhCltUssdImp::NewL( TBool aShowNotes )
     {
+    TFLOGSTRING("CPhCltUssdImp: NewL call")
     CPhCltUssdImp* self = new( ELeave ) CPhCltUssdImp;
     CleanupStack::PushL( self );
     self->ConstructL( aShowNotes );
     CleanupStack::Pop(); // self
+    TFLOGSTRING("CPhCltUssdImp: NewL exit")
     return self;
     }
 
@@ -348,14 +347,14 @@
 //
 void CPhCltUssdImp::ConstructL( TBool aShowNotes )
     {
+    TFLOGSTRING("CPhCltUssdImp: ConstructL call")
     // The note controller is needed only if the notes are shown.
     iNoteController = NULL;
     
     if ( aShowNotes )
         {
         iNoteController = CPhCltUssdNoteController::NewL( 
-            *this, 
-            CActive::EPriorityStandard );
+            *this );
         }
 
     iDCS = KPhCltUssdDcsDefaultAlphabet;
@@ -365,6 +364,7 @@
     iRequestHandler = CPhCltUssdRequestHandler::NewL( 
         *this, 
         CActive::EPriorityStandard );
+    TFLOGSTRING("CPhCltUssdImp: ConstructL exit")
     }
 
 
@@ -376,6 +376,7 @@
 //
 CPhCltUssdImp::CPhCltUssdImp()
     {
+    TFLOGSTRING("CPhCltUssdImp: CPhCltUssdImp call_exit")
     } 
 
 
@@ -386,6 +387,7 @@
 //
 CPhCltUssdImp::~CPhCltUssdImp()
     {
+    TFLOGSTRING("CPhCltUssdImp: ~CPhCltUssdImp call") 
     if ( iWait )
         {
         if ( iWait->IsStarted() )
@@ -400,7 +402,8 @@
     iRequestHandler = NULL;
     
     delete iNoteController;
-    iNoteController = NULL;      
+    iNoteController = NULL;
+    TFLOGSTRING("CPhCltUssdImp: ~CPhCltUssdImp exit") 
     }
 
 
@@ -414,7 +417,8 @@
 void CPhCltUssdImp::HandleSendEventL( const TInt aError )
     {
     *iSendError = Min( aError , KErrNone );
-
+    TFLOGSTRING2("CPhCltUssdImp: HandleSendEventL\
+            aError = %d call", aError)
     // iNoteController is allocated only if notes are shown.
     if ( iNoteController )
         {
@@ -428,12 +432,12 @@
                 {
                 // All Ok.
                 case KErrNone:
-                    iNoteController->ShowGlobalConfirmationNoteL( R_TEXT_DONE );
+                    iNoteController->ShowGlobalInformationNoteL( EPhCltUssdDone );
                     break;
 
                 // Operation cancelled.
                 case KErrCancel:
-                    iNoteController->ShowGlobalInformationNoteL( R_TEXT_UNCONFIRMED );
+                    iNoteController->ShowGlobalInformationNoteL( EPhCltUssdUnconfirme );
                     break;
 
                 // Ongoing Ussd session or the string is barred due SS request
@@ -441,17 +445,17 @@
                 case KErrInUse:
                 case KErrAccessDenied:
                 case KErrGsmSSCallBarred:
-                    iNoteController->ShowGlobalInformationNoteL( R_TEXT_NOT_ALLOWED );
+                    iNoteController->ShowGlobalInformationNoteL( EPhCltUssdNotallowed );
                     break;
 
                 // No network coverage.
                 case KErrGsmSMSNoNetworkService:
-                    iNoteController->ShowGlobalInformationNoteL( R_TEXT_NO_SERVICE );
+                    iNoteController->ShowGlobalInformationNoteL(EPhCltUssdNoservice );
                     break;
 
                 // Offline mode.
                 case KErrGsmOfflineOpNotAllowed:
-                    iNoteController->ShowGlobalInformationNoteL( R_TEXT_OFFLINE );
+                    iNoteController->ShowGlobalInformationNoteL( EPhCltUssdOffline );
                     break;
                     
                 case KErrSatControl:
@@ -459,7 +463,7 @@
 
                 // Unknown error.
                 default:
-                    iNoteController->ShowGlobalInformationNoteL( R_TEXT_NOT_DONE );
+                    iNoteController->ShowGlobalInformationNoteL( EPhCltUssdNotDone );
                     break;
                 }
             }
@@ -470,6 +474,7 @@
         {
         iWait->AsyncStop();
         }
+    TFLOGSTRING("CPhCltUssdImp: HandleSendEventL exit")
     }
 
 
@@ -531,6 +536,7 @@
     const TDesC8& aMsgData, 
     const TUint8 iSendDcs )
     {
+    TFLOGSTRING("CPhCltUssdImp: SendUssd call")
     __ASSERT_ALWAYS( aMsgData.Length() <= KPhCltUssdMax7BitCharacterOctets,
         User::Invariant() );
 
@@ -568,15 +574,16 @@
 
     TInt error = KErrNone;
     iSendError = &error;
-  
+    TFLOGSTRING("CPhCltUssdImp: SendUssd iRequestHandler")
     iRequestHandler->SendUssd( aMsgData , attributePckg );
     // iNoteController is allocated only if notes are shown.
+    TFLOGSTRING("CPhCltUssdImp: SendUssd ShowGlobalWaitNoteL")
     if ( iNoteController )
         {
-        TRAP_IGNORE( iNoteController->ShowGlobalWaitNoteL( 
-            R_TEXT_SENDING, 
-            R_AVKON_SOFTKEYS_QUIT ) );
+        TRAP_IGNORE( iNoteController->ShowGlobalWaitNoteL(); 
+                    );
         }
+    TFLOGSTRING("CPhCltUssdImp: SendUssd iWait") 
 
     // Set this active object to wait the completion of the send request.
     iWait->Start();
@@ -586,6 +593,7 @@
         {
         iSendError = NULL;
         }
+    TFLOGSTRING("CPhCltUssdImp: SendUssd exit") 
     return error;
     }
 
@@ -598,7 +606,9 @@
 //
 void CPhCltUssdImp::SendUssdCancel()
     {
+    TFLOGSTRING("CPhCltUssdImp: SendUssdCancel call")
     iRequestHandler->SendUssdCancel();
+    TFLOGSTRING("CPhCltUssdImp: SendUssdCancel exit")
     }
 
 
@@ -621,7 +631,10 @@
 //
 TInt CPhCltUssdImp::AppStarting()
     {
-    return iRequestHandler->UssdClient().AppStarting();
+    TFLOGSTRING("CPhCltUssdImp: AppStarting call")
+    TInt res = iRequestHandler->UssdClient().AppStarting();
+    TFLOGSTRING2("CPhCltUssdImp: AppStarting exit res = %d",res)
+    return res;
     }
     
 // -----------------------------------------------------------------------------
@@ -633,7 +646,10 @@
 TInt CPhCltUssdImp::AppTerminating( 
       TPhCltUssdAppExitReason aExitReason )
     {
-    return iRequestHandler->UssdClient().AppTerminating( aExitReason );
+    TFLOGSTRING("CPhCltUssdImp: AppTerminating call")
+    TInt res = iRequestHandler->UssdClient().AppTerminating( aExitReason );
+    TFLOGSTRING2("CPhCltUssdImp: AppTerminating exit res = %d",res)
+    return res;
     }
     
 // -----------------------------------------------------------------------------
@@ -644,7 +660,10 @@
 //    
 TBool CPhCltUssdImp::AppToForeground()
     {
-    return iRequestHandler->UssdClient().AppToForeground();
+    TFLOGSTRING("CPhCltUssdImp: AppToForeground call")
+    TBool res =  iRequestHandler->UssdClient().AppToForeground();
+    TFLOGSTRING2("CPhCltUssdImp: AppToForeground exit res = %d",res)
+    return res;
     }
     
 // -----------------------------------------------------------------------------
@@ -655,7 +674,10 @@
 //    
 TInt CPhCltUssdImp::AppToBackground()
     {
-    return iRequestHandler->UssdClient().AppToBackground();
+    TFLOGSTRING("CPhCltUssdImp: AppToBackground call")
+    TInt res = iRequestHandler->UssdClient().AppToBackground();
+    TFLOGSTRING2("CPhCltUssdImp: AppToBackground exit res = %d",res)
+    return res;
     }
 
 // -----------------------------------------------------------------------------
@@ -669,7 +691,9 @@
             TDes& aReceiveMessage, 
             TPckg< TUint >& aShowNotesAndDcs )
     {
+    TFLOGSTRING("CPhCltUssdImp: StartSAT call")
     iRequestHandler->UssdClient().StartSAT( aStatus, aReceiveMessage, aShowNotesAndDcs );
+    TFLOGSTRING("CPhCltUssdImp: StartSAT exit")
     }
  
 // -----------------------------------------------------------------------------
@@ -680,24 +704,22 @@
 //   
  void CPhCltUssdImp::StopSAT()
     {
+    TFLOGSTRING("CPhCltUssdImp: StopSAT call")
     iRequestHandler->UssdClient().StopSAT();
+    TFLOGSTRING("CPhCltUssdImp: StopSAT exit")
     }
 
 
 // -----------------------------------------------------------------------------
-// CPhCltUssdImp::GlobalNoteDismissedL
+// CPhCltUssdImp::GlobalWaitNoteHidden
 //
-// Dialog is cancelled by the right softkey.
+// Dialog is hidden by the cancel key.
 // -----------------------------------------------------------------------------
 //
-void CPhCltUssdImp::GlobalWaitNoteDismissedL( TInt aButtonId )
+void CPhCltUssdImp::GlobalWaitNoteHidden()
     {
-    if ( aButtonId == EAknSoftkeyClose || 
-         aButtonId == EAknSoftkeyCancel ||
-         aButtonId == EAknSoftkeyQuit )
-        {   
-        SendUssdCancel();
-        }
+    TFLOGSTRING("CPhCltUssdImp: GlobalWaitNoteHidden call")
+    TFLOGSTRING("CPhCltUssdImp: GlobalWaitNoteHidden exit")
     }
 
 
@@ -709,8 +731,8 @@
 //
 void CPhCltUssdImp::EncodeL( const TDesC& aSrc, TDes8& aDes )
     {
-    //
-     aDes.Zero();
+    TFLOGSTRING("CPhCltUssdImp: EncodeL call")
+    aDes.Zero();
     TSmsDataCodingScheme::TSmsAlphabet alphabet = 
         TSmsDataCodingScheme::ESmsAlphabet7Bit; // default
         
@@ -813,6 +835,7 @@
         }
     
     CleanupStack::PopAndDestroy(3); // fs, packer, charConv
+    TFLOGSTRING("CPhCltUssdImp: EncodeL exit")
     }
 
 // -----------------------------------------------------------------------------
--- a/phoneclientserver/phoneclient/Src/UssdWrapper/CPhCltUssdNoteController.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/phoneclientserver/phoneclient/Src/UssdWrapper/CPhCltUssdNoteController.cpp	Mon May 03 13:01:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2009-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"
@@ -17,15 +17,27 @@
 
 
 // INCLUDE FILES
-#include <AknGlobalNote.h> //CAknGlobalNote 
-#include <aknnotewrappers.h>
-#include <ConeResLoader.h> 
-#include <StringLoader.h> 
+#include <hbdevicemessageboxsymbian.h>
+#include <hbdeviceprogressdialogsymbian.h>
+#include <hbtextresolversymbian.h>
 
 #include "phcltclientserver.h" 
 #include "cphcltussdnotecontroller.h" 
+#include "tflogger.h"
 
+_LIT(KFilename, "phcltsrvussd.ts");
+_LIT(KPath, "z://data");
+_LIT(KUssdRequesting, "txt_common_info_requesting"); // Requesting
+// Will be replaced by Hidden
+_LIT(KUssdRequestingQuit, "txt_ussd_button_exit"); // Quit
+_LIT(KUssdDone, "txt_ussd_dpopinfo_done"); // Done
+_LIT(KUssdNotDone, "txt_ussd_dpopinfo_not_done"); // NotDone
+_LIT(KUssdNotAllowed, "txt_ussd_dpopinfo_not_allowed"); //NotAllowed
+_LIT(KUssdUnconfirmed, "txt_ussd_dpopinfo_unconfirmed"); // Unconfirmed
+_LIT(KUssdNoService, "txt_ussd_dpopinfo_no_service"); // NoService
+_LIT(KUssdOffline, "txt_ussd_dpopinfo_offline_not_possible"); // Offline
 
+const int KPhCltUssdProgressBarMaxLength = 10;
 // ============================ MEMBER FUNCTIONS ===============================
 
 // -----------------------------------------------------------------------------
@@ -34,19 +46,19 @@
 // -----------------------------------------------------------------------------
 //
 CPhCltUssdNoteController* CPhCltUssdNoteController::NewL(
-        MPhCltUssdNoteControllerCallBack& aCallBack,
-        TInt aPriority )
+        MPhCltUssdNoteControllerCallBack& aCallBack )
     {
+    TFLOGSTRING("CPhCltUssdNoteController: NewL call")
     CPhCltUssdNoteController* self = new( ELeave ) 
-        CPhCltUssdNoteController( aCallBack, aPriority );
-    
+        CPhCltUssdNoteController( aCallBack );
+
     CleanupStack::PushL( self );
     self->ConstructL();
     CleanupStack::Pop( self );
+    TFLOGSTRING("CPhCltUssdNoteController: NewL exit")
     return self;
     }
 
-
 // -----------------------------------------------------------------------------
 // CPhCltUssdNoteController::ConstructL
 // Symbian 2nd phase constructor can leave.
@@ -54,26 +66,29 @@
 //
 void CPhCltUssdNoteController::ConstructL()
     {
-    LoadResourceFileL();
+    TFLOGSTRING( "CPhCltUssdNoteController: ConstructL\
+             init in" ) 
+    iIsResolverSuccess = HbTextResolverSymbian::Init(KFilename, KPath);
+    TFLOGSTRING2("CPhCltUssdNoteController: ConstructL\
+             init filename iIsResolverSuccess = %d", iIsResolverSuccess ) 
     }
 
-
 // -----------------------------------------------------------------------------
 // CPhCltUssdNoteController::CPhCltUssdNoteController
 // C++ constructor can NOT contain any code, that
 // might leave.
 // -----------------------------------------------------------------------------
 CPhCltUssdNoteController::CPhCltUssdNoteController(
-    MPhCltUssdNoteControllerCallBack& aCallBack,
-    TInt aPriority )
-    : CActive( aPriority ), 
-    iCallBack( aCallBack ),
-    iWaitNoteId( KErrNotFound )
+    MPhCltUssdNoteControllerCallBack& aCallBack )
+    : iGlobalWaitNote( NULL ),
+      iCallBack( aCallBack ),
+      iIsResolverSuccess( EFalse ),
+      iGlobalResource( NULL )
     {
-    CActiveScheduler::Add( this );
+    TFLOGSTRING("CPhCltUssdNoteController: CPhCltUssdNoteController call")
+    TFLOGSTRING("CPhCltUssdNoteController: CPhCltUssdNoteController exit")
     }
-    
-    
+
 // -----------------------------------------------------------------------------
 // CPhCltUssdNoteController:~CPhCltUssdNoteController
 // C++ default constructor can NOT contain any code, that
@@ -82,182 +97,163 @@
 //
 CPhCltUssdNoteController::~CPhCltUssdNoteController()
     {
-    Cancel();
-
+    TFLOGSTRING("CPhCltUssdNoteController: ~CPhCltUssdNoteController call")
     DestroyGlobalWaitNote();
-    
-    delete iMessageBuffer;
-    iMessageBuffer = NULL;
-    
-    if ( iResourceLoader )
-        {
-        iResourceLoader->Close();
-        delete iResourceLoader;
-        iResourceLoader = NULL;
-        }
+    TFLOGSTRING("CPhCltUssdNoteController: ~CPhCltUssdNoteController exit")
     }
 
-
-// -----------------------------------------------------------------------------
-// CPhCltUssdNoteController::RunL
-//
-// Called when dialog is dismissed by pressing a softkey.
-// -----------------------------------------------------------------------------
-void CPhCltUssdNoteController::RunL()
-    {
-    iCallBack.GlobalWaitNoteDismissedL( iStatus.Int() );
-    }
-
-
-// -----------------------------------------------------------------------------
-// CPhCltUssdNoteController::DoCancel
-// -----------------------------------------------------------------------------
-void CPhCltUssdNoteController::DoCancel()
-    {
-    DestroyGlobalWaitNote();
-    }
-
-
-// -----------------------------------------------------------------------------
-// CPhCltUssdNoteController::ShowInformationNoteL
-// -----------------------------------------------------------------------------
-void CPhCltUssdNoteController::ShowInformationNoteL( TInt aResourceId )
-    {
-    ShowNoteL( EPhCltUssdInformationNote, aResourceId );
-    }
-
-
 // -----------------------------------------------------------------------------
 // CPhCltUssdNoteController::ShowGlobalInformationNoteL
 // -----------------------------------------------------------------------------
-void CPhCltUssdNoteController::ShowGlobalInformationNoteL( TInt aResourceId )
+void CPhCltUssdNoteController::ShowGlobalInformationNoteL( 
+        const TPhCltUssdInformationType aInfoType )
     {
-    ShowNoteL( EPhCltUssdGlobalInformationNote, aResourceId );
-    }
-
+    TFLOGSTRING2("CPhCltUssdNoteController: ShowGlobalInformationNoteL\
+            aInfoType = %d call", aInfoType)
 
-// -----------------------------------------------------------------------------
-// CPhCltUssdNoteController::ShowGlobalConfirmationNoteL
-// -----------------------------------------------------------------------------
-void CPhCltUssdNoteController::ShowGlobalConfirmationNoteL( TInt aResourceId )
-    {
-    ShowNoteL( EPhCltUssdGlobalConfirmationNote, aResourceId );
+    HBufC* temp(NULL);
+    switch ( aInfoType )
+        {
+        case EPhCltUssdUnconfirme:
+            {
+            temp = LoadDefaultStringL(KUssdUnconfirmed);
+            break;
+            }
+        case EPhCltUssdNotallowed:
+            {
+            temp = LoadDefaultStringL(KUssdNotAllowed);
+            break;
+            }
+        case EPhCltUssdNoservice:
+            {
+            temp = LoadDefaultStringL(KUssdNoService);
+            break;
+            }
+        case EPhCltUssdOffline:
+            {
+            temp = LoadDefaultStringL(KUssdOffline);
+            break;
+            }
+        case EPhCltUssdDone:
+            {
+            temp = LoadDefaultStringL(KUssdDone);
+            break;
+            }
+        case EPhCltUssdNotDone:
+            {
+            temp = LoadDefaultStringL(KUssdNotDone);
+            break;
+            }
+        default:
+            {
+            User::Leave( KErrArgument );
+            }
+            break;
+        }
+    CHbDeviceMessageBoxSymbian* dlg = CHbDeviceMessageBoxSymbian::NewL(
+            CHbDeviceMessageBoxSymbian::EInformation);
+    CleanupStack::PushL( dlg );
+    dlg->SetTextL( temp->Des() );
+    dlg->SetButton( CHbDeviceMessageBoxSymbian::EAcceptButton,
+             ETrue );
+    dlg->ExecL();
+    CleanupStack::PopAndDestroy( dlg );
+    delete temp;
+    temp = NULL;
+    TFLOGSTRING("CPhCltUssdNoteController: ShowGlobalInformationNoteL exit")
     }
 
-
 // -----------------------------------------------------------------------------
 // CPhCltUssdNoteController::ShowGlobalWaitNoteL
 // -----------------------------------------------------------------------------
-void CPhCltUssdNoteController::ShowGlobalWaitNoteL( 
-    TInt aResourceId, 
-    TInt aSoftkeyResourceId )
+void CPhCltUssdNoteController::ShowGlobalWaitNoteL( )
     {
-    delete iMessageBuffer;
-    iMessageBuffer = NULL;
-    iMessageBuffer = StringLoader::LoadL( aResourceId );
-
+    TFLOGSTRING("CPhCltUssdNoteController: ShowGlobalWaitNoteL call")
     DestroyGlobalWaitNote();
-    
-    iGlobalWaitNote = CAknGlobalNote::NewL();    
-   
-    if ( aSoftkeyResourceId )
-        {
-        iGlobalWaitNote->SetSoftkeys( aSoftkeyResourceId );
-        }
-    
-    SetActive();
-    
-    iWaitNoteId = iGlobalWaitNote->ShowNoteL( iStatus,
-                                EAknGlobalWaitNote, 
-                                *iMessageBuffer );
+    //CHbDeviceProgressDialogSymbian
+    iGlobalWaitNote = CHbDeviceProgressDialogSymbian::NewL(
+            CHbDeviceProgressDialogSymbian::EProgressDialog );
+    CleanupStack::PushL( iGlobalWaitNote );
+    iGlobalResource = LoadDefaultStringL( KUssdRequesting );
+    iGlobalWaitNote->SetTextL( iGlobalResource->Des() );
+    iGlobalWaitNote->SetObserver( this );
+    TFLOGSTRING("CPhCltUssdNoteController: ShowGlobalWaitNoteL before setactive")
+    iGlobalWaitNote->SetRange(0,KPhCltUssdProgressBarMaxLength);
+    iGlobalWaitNote->SetProgressValue(KPhCltUssdProgressBarMaxLength);
+    iGlobalWaitNote->SetAutoClose(EFalse);
+    iGlobalWaitNote->ShowL();
+    CleanupStack::Pop( iGlobalWaitNote );
+    TFLOGSTRING("CPhCltUssdNoteController: ShowGlobalWaitNoteL after setactive")
+    TFLOGSTRING("CPhCltUssdNoteController: ShowGlobalWaitNoteL exit")
     }
 
-
 // -----------------------------------------------------------------------------
 // CPhCltUssdNoteController::DestroyGlobalWaitNote
 // -----------------------------------------------------------------------------
 void CPhCltUssdNoteController::DestroyGlobalWaitNote()
     {
+    TFLOGSTRING("CPhCltUssdNoteController: DestroyGlobalWaitNote call")
     if ( iGlobalWaitNote )
         {
-        if ( iWaitNoteId != KErrNotFound ) 
-            {
-            TRAP_IGNORE( iGlobalWaitNote->CancelNoteL( iWaitNoteId ) );
-            iWaitNoteId = KErrNotFound;
-            }
+        iGlobalWaitNote->Cancel();
         delete iGlobalWaitNote;
         iGlobalWaitNote = NULL;
+        delete iGlobalResource;
+        iGlobalResource = NULL;
         }
+    TFLOGSTRING("CPhCltUssdNoteController: DestroyGlobalWaitNote exit")
     }
 
-
 // -----------------------------------------------------------------------------
-// CPhCltUssdNoteController::ShowNoteL
+// CPhCltUssdNoteController::ProgressDialogCancelled
 //
-// Launches a corresponding dialog with the given string.
+// 
 // -----------------------------------------------------------------------------
 //
-void CPhCltUssdNoteController::ShowNoteL( TPhCltUssdNoteType aType, TInt aResourceId )
+void CPhCltUssdNoteController::ProgressDialogCancelled(
+        const CHbDeviceProgressDialogSymbian* /*aProgressDialog*/)
     {
-    switch ( aType )
-        {
-        case EPhCltUssdInformationNote:
-            {       
-            delete iMessageBuffer;
-            iMessageBuffer = NULL;
-            iMessageBuffer = StringLoader::LoadL( aResourceId );
-            
-            if ( iMessageBuffer->Length() == 0 )
-                {
-                break;
-                }
-            CAknInformationNote* dlg = new ( ELeave ) 
-                CAknInformationNote( ETrue );
-
-            dlg->ExecuteLD( *iMessageBuffer );
-            break;
-            }
-        case EPhCltUssdGlobalInformationNote:
-        case EPhCltUssdGlobalConfirmationNote:
-            {
-            CAknGlobalNote* dlg = CAknGlobalNote::NewLC();
-            
-            delete iMessageBuffer;
-            iMessageBuffer = NULL;
-            iMessageBuffer = StringLoader::LoadL( aResourceId );
-            
-            if ( aType == EPhCltUssdGlobalInformationNote )
-                {
-                dlg->ShowNoteL( EAknGlobalInformationNote , *iMessageBuffer );
-                }
-            else if ( aType == EPhCltUssdGlobalConfirmationNote )
-                {
-                dlg->ShowNoteL( EAknGlobalConfirmationNote , *iMessageBuffer );
-                }
-            CleanupStack::PopAndDestroy(); // dlg
-            break;
-            }
-
-        default:
-            break;
-        }
+    TFLOGSTRING("CPhCltUssdNoteController: ProgressDialogCancelled call")
+    iCallBack.GlobalWaitNoteHidden();
+    delete iGlobalResource;
+    iGlobalResource = NULL;
+    TFLOGSTRING("CPhCltUssdNoteController: ProgressDialogCancelled exit")
     }
 
 // -----------------------------------------------------------------------------
-// CPhCltUssdNoteController::LoadResourceFileL
+// CPhCltUssdNoteController::ProgressDialogClosed
 //
-// Loads resource file via RConeResourceLoader.
+// 
 // -----------------------------------------------------------------------------
 //
-void CPhCltUssdNoteController::LoadResourceFileL()
+void CPhCltUssdNoteController::ProgressDialogClosed(
+        const CHbDeviceProgressDialogSymbian* /*aProgressDialog*/)
     {
-    // load resource file for notes
-    iResourceLoader = new( ELeave ) RConeResourceLoader( *CCoeEnv::Static() );
-    TFileName fileName ( KPhCltServerZDrive );
-    fileName.Append( KDC_RESOURCE_FILES_DIR );
-    fileName.Append( KPhCltResourceFileNameAndPath );
-    fileName.ZeroTerminate();
-    iResourceLoader->OpenL( fileName );
+    TFLOGSTRING("CPhCltUssdNoteController: ProgressDialogClosed call")
+    TFLOGSTRING("CPhCltUssdNoteController: ProgressDialogClosed exit")
+    }
+
+// -----------------------------------------------------------------------------
+// CPhCltUssdNoteController::LoadDefaultString
+//
+// 
+// -----------------------------------------------------------------------------
+//
+HBufC* CPhCltUssdNoteController::LoadDefaultStringL( const TDesC& aText )
+    {
+    TFLOGSTRING("CPhCltUssdNoteController: LoadDefaultString call")
+    HBufC* newText = NULL;
+    if ( iIsResolverSuccess )
+        {
+        newText = HbTextResolverSymbian::LoadL( aText );
+        }
+    else
+        {
+        newText = aText.AllocL();
+        TFLOGSTRING("CPhCltUssdNoteController: LoadDefaultString load failed.");
+        }
+    TFLOGSTRING("CPhCltUssdNoteController: LoadDefaultString exit")
+    return newText;
     }
 
 // End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneclientserver/phoneclient/inc/ussdwrapper/cphcltussdcommonconstant.h	Mon May 03 13:01:45 2010 +0300
@@ -0,0 +1,35 @@
+/*
+* Copyright (c) 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:
+*
+*/
+
+#ifndef CPHCLTUSSDCOMMONCONSTANT_H
+#define CPHCLTUSSDCOMMONCONSTANT_H
+
+//  CONSTANTS
+
+
+/**num for Ussd information type*/
+enum TPhCltUssdInformationType
+    {
+    EPhCltUssdUnconfirme = 1,
+    EPhCltUssdNotallowed,
+    EPhCltUssdNoservice,
+    EPhCltUssdOffline,
+    EPhCltUssdDone,
+    EPhCltUssdNotDone
+    };
+
+#endif  // CPHCLTUSSDCOMMONCONSTANT_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneclientserver/phoneclient/inc/ussdwrapper/tflogger.h	Mon May 03 13:01:45 2010 +0300
@@ -0,0 +1,106 @@
+/*
+* Copyright (c) 2002-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:
+*
+*
+*/
+
+#ifndef __TFLOGGER_H__
+#define __TFLOGGER_H__
+
+#include <flogger.h>
+#include <e32svr.h>
+
+_LIT(KTfLogFolder, "phcltussd");
+_LIT(KTfLogFile, "ussd.txt");
+
+/**
+* ------------------------------------------------------------------------------
+*
+*  Remove #define LOGGING_ENABLED from comments to enable logging
+*
+* ------------------------------------------------------------------------------
+*/
+
+#ifdef _DEBUG 
+#define LOGGING_ENABLED
+#endif
+
+/**
+* ------------------------------------------------------------------------------
+*
+*  LOGGING MACROs
+*
+*  USE THESE MACROS IN YOUR CODE
+*
+*  Example: TFLOGTEXT(own_desc)
+*  Example: TFLOGSTRING("Test")
+*  Example: TFLOGSTRING("Test %i", aValue)
+*  Example: TFLOGSTRING("Test %i %i", aValue1, aValue2)
+*
+* ------------------------------------------------------------------------------
+*/
+
+#ifdef LOGGING_ENABLED
+
+    #define TFLOGTEXT(TEXT) \
+        {  \
+        RFileLogger::Write(KTfLogFolder,KTfLogFile, \
+            EFileLoggingModeAppend, TEXT); \
+        RDebug::Print(TEXT); \
+        }
+
+    #define TFLOGSTRING(TEXT) \
+        { \
+        _LIT(tempLogDes, TEXT); \
+        RFileLogger::Write(\
+            KTfLogFolder, \
+            KTfLogFile, \
+            EFileLoggingModeAppend, \
+            tempLogDes()); \
+        RDebug::Print(_L(TEXT)); \
+        }
+
+    #define TFLOGSTRING2(TEXT, VAR1) \
+        { \
+        _LIT(tempLogDes, TEXT); \
+        RFileLogger::WriteFormat(\
+            KTfLogFolder, \
+            KTfLogFile, \
+            EFileLoggingModeAppend, \
+            TRefByValue<const TDesC>(tempLogDes()), VAR1); \
+        RDebug::Print(_L(TEXT), VAR1); \
+        }
+
+    #define TFLOGSTRING3(TEXT, VAR1, VAR2) \
+        { \
+        _LIT(tempLogDes, TEXT); \
+        RFileLogger::WriteFormat(\
+            KTfLogFolder, \
+            KTfLogFile, \
+            EFileLoggingModeAppend, \
+            TRefByValue<const TDesC>(tempLogDes()), VAR1, VAR2); \
+        RDebug::Print(_L(TEXT), VAR1, VAR2); \
+        }
+
+#else
+
+    #define TFLOGTEXT(TEXT)
+    #define TFLOGSTRING(TEXT)
+    #define TFLOGSTRING2(TEXT, VAR1)
+    #define TFLOGSTRING3(TEXT, VAR1, VAR2)
+
+#endif // LOGGING_ENABLED
+
+#endif // __TFLOGGER_H__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneclientserver/phoneclient/tsrc/public/basic/ut_ussd/etel_mock.cpp	Mon May 03 13:01:45 2010 +0300
@@ -0,0 +1,227 @@
+/*
+* 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: 
+*
+*/
+
+
+#include "ut_testenv.h"
+#include <etel.h>
+#include <etelmm.h>
+#include <etelmmcs.h>
+#include <QTest>
+
+
+// global variables
+CPeriodic* messageResponseTimer = 0;
+
+// ==============================================================================
+// RMobileUssdMessaging
+// ==============================================================================
+
+RMobileUssdMessaging::RMobileUssdMessaging()
+{
+}
+
+RMobileUssdMessaging::RMobileUssdMessaging(const RMobileUssdMessaging&)
+{
+}
+
+void RMobileUssdMessaging::ConstructL()
+{
+	QVERIFY(!messageResponseTimer);
+    messageResponseTimer =
+		CPeriodic::NewL(CActive::EPriorityStandard+1);
+}
+
+TInt RMobileUssdMessaging::Open(RMobilePhone& /*aPhone*/)
+{
+	TRAPD(err,ConstructL());
+    return err;
+}
+
+void RMobileUssdMessaging::Close()
+{
+	delete messageResponseTimer;
+	messageResponseTimer = 0;
+}
+
+void RMobileUssdMessaging::Destruct()
+{
+}
+
+TInt RMobileUssdMessaging::GetCaps(TDes8& aCaps) const
+{
+    TMobileUssdCapsV1 caps;
+    caps.iUssdFormat = KCapsPackedString;
+    caps.iUssdTypes = KCapsMTUssd | KCapsMOUssd;
+    TMobileUssdCapsV1Pckg pckgCaps( caps );
+    aCaps.Copy( pckgCaps );
+    return KErrNone;
+}
+
+void RMobileUssdMessaging::ReceiveMessage(
+    TRequestStatus& aReqStatus, TDes8& aMsgData,
+    TDes8& aMsgAttributes) const
+{
+	EtelMsgLoop& loop = TestEnv::env().etelMsgLoop();
+    QVERIFY2(!loop.mReceiveMessageReqStatus,
+    		"etel_mock: ReceiveMessage called twice!");
+    aReqStatus = KRequestPending;
+    loop.mReceiveMessageReqStatus = &aReqStatus;
+	loop.mReceiveMessageData = &aMsgData;
+	loop.mReceiveMessageAttributes = &aMsgAttributes;
+}
+
+TInt SendMessageCallback(TAny* /*aPtr*/)
+	{
+	messageResponseTimer->Cancel();
+
+	EtelMsgLoop& loop = TestEnv::env().etelMsgLoop();
+    const TestMode& mode = TestEnv::env().testMode();
+    if (mode.m_event == TestMode::Normal)
+    	{
+    	User::RequestComplete(loop.mSendMessageReqStatus, mode.m_error);
+    	}
+    return 0;
+	}
+
+void RMobileUssdMessaging::SendMessage(
+    TRequestStatus& aReqStatus, const TDesC8& /*aMsgData*/,
+    const TDesC8& /*aMsgAttributes*/) const
+{
+	EtelMsgLoop& loop = TestEnv::env().etelMsgLoop();
+    QVERIFY2(!loop.mSendMessageReqStatus,
+    		"etel_mock: SendMessage called twice!");
+    aReqStatus = KRequestPending;
+    loop.mSendMessageReqStatus = &aReqStatus;
+
+    const TestMode& mode = TestEnv::env().testMode();
+    if (mode.m_event != TestMode::NoResp)
+    	{
+		// start timer to respond
+		TTimeIntervalMicroSeconds32 delay(
+				1000*mode.m_timeout);
+		messageResponseTimer->Start(delay,delay,
+				TCallBack(SendMessageCallback,(TAny*)this));
+    	}
+}
+
+void RMobileUssdMessaging::SendMessageNoFdnCheck(
+    TRequestStatus& /*aReqStatus*/, const TDesC8& /*aMsgData*/,
+    const TDesC8& /*aMsgAttributes*/) const
+{
+	// not used
+}
+
+void RMobileUssdMessaging::SendRelease(
+    TRequestStatus& /*aReqStatus*/, TDes8& /*aReturnResult*/) const
+{
+	// not used
+}
+
+void RMobileUssdMessaging::NotifyNetworkRelease(
+    TRequestStatus& aReqStatus, TDes8& aReturnResult) const
+{
+	EtelMsgLoop& loop = TestEnv::env().etelMsgLoop();
+    QVERIFY2(!loop.mNetworkReleaseReqStatus,
+    		"etel_mock: NotifyNetworkRelease called twice!");
+    aReqStatus = KRequestPending;
+    loop.mNetworkReleaseReqStatus = &aReqStatus;
+	loop.mNetworkReleaseMessageData = &aReturnResult;
+	loop.mNetworkReleaseMessageAttributes = 0;
+}
+
+void RMobileUssdMessaging::NotifyNetworkRelease(
+    TRequestStatus& aReqStatus, TDes8& aMsgData,
+    TDes8& aMsgAttributes) const
+{
+	EtelMsgLoop& loop = TestEnv::env().etelMsgLoop();
+    QVERIFY2(!loop.mNetworkReleaseReqStatus,
+    		"etel_mock: NotifyNetworkRelease called twice!");
+    aReqStatus = KRequestPending;
+    loop.mNetworkReleaseReqStatus = &aReqStatus;
+	loop.mNetworkReleaseMessageData = &aMsgData;
+	loop.mNetworkReleaseMessageAttributes = &aMsgAttributes;
+}
+
+
+RMobileUssdMessaging::TMobileUssdAttributesV1::TMobileUssdAttributesV1()
+{
+    iFlags = 0;
+    iFormat = EFormatUnspecified;
+    iType = EUssdUnknown;
+    iDcs = 0;
+}
+
+RMobileUssdMessaging::TMobileUssdCapsV1::TMobileUssdCapsV1()
+{
+    iUssdFormat = 0;
+    iUssdTypes = 0;
+}
+
+// ==============================================================================
+// RMobilePhone
+// ==============================================================================
+
+RMobilePhone::TMobilePhoneSendSSRequestV3::TMobilePhoneSendSSRequestV3()
+{
+    iOpCode = 0;
+}
+
+RMobilePhone::TMultimodeType::TMultimodeType()
+{
+    iExtensionId = 0;
+}
+
+// ==============================================================================
+// RTelSubSessionBase
+// ==============================================================================
+
+RTelSubSessionBase::RTelSubSessionBase()
+{
+}
+
+void RTelSubSessionBase::CancelAsyncRequest(TInt aReqToCancel) const
+{
+	if ( aReqToCancel == EMobileUssdMessagingSendMessage )
+	{
+		EtelMsgLoop& loop = TestEnv::env().etelMsgLoop();
+		if ( loop.mSendMessageReqStatus )
+		{
+		User::RequestComplete( loop.mSendMessageReqStatus, KErrCancel );
+		}
+	}
+	else if ( aReqToCancel == EMobileUssdMessagingReceiveMessage )
+	{
+		EtelMsgLoop& loop = TestEnv::env().etelMsgLoop();
+		if ( loop.mReceiveMessageReqStatus )
+    	{
+        User::RequestComplete( loop.mReceiveMessageReqStatus, KErrCancel );
+    	}
+	}
+	else if ( aReqToCancel == EMobileUssdMessagingNotifyNetworkRelease )
+	{
+		EtelMsgLoop& loop = TestEnv::env().etelMsgLoop();
+		if ( loop.mNetworkReleaseReqStatus )
+    	{
+        User::RequestComplete( loop.mNetworkReleaseReqStatus, KErrCancel );
+    	}
+	}
+	else if ( aReqToCancel == EMobileUssdMessagingSendRelease )
+	{
+	// not used
+	}
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneclientserver/phoneclient/tsrc/public/basic/ut_ussd/main.cpp	Mon May 03 13:01:45 2010 +0300
@@ -0,0 +1,56 @@
+/*
+* Copyright (c) 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:Unit testing of SatApp
+*
+*
+*/
+
+
+#include <QtTest/QtTest>
+
+#include "ut_ussd.h"
+#include "ut_cphcltussdnotecontroller.h"
+
+// ====================================================================
+// MAIN
+// ====================================================================
+
+int main(int argc, char *argv[])
+{
+    qDebug("Ut_ussd: main() >");
+    QApplication app(argc, argv);
+
+    int result(0);
+
+    Ut_Ussd test;
+//    char *my_argv[3];
+//    my_argv[0] = argv[0];
+//    my_argv[1] = "-o";
+//    my_argv[2] = "c:\\logs\\ussd\\ut_ussd.txt";
+    result = QTest::qExec(&test/*, 3, my_argv*/);
+    qDebug("Ut_ussd: main() test Ut_Ussd<, result=%d", result);
+
+    Ut_CphCltUssdNoteController testNoteController;
+//    char *note_argv[3];
+//    note_argv[0] = argv[0];
+//    note_argv[1] = "-o";
+//    note_argv[2] = "c:\\logs\\ussd\\ut_ussdNoteController.txt";
+    result = QTest::qExec(&testNoteController/*, 3, note_argv*/);
+    qDebug("Ut_ussd: main() test Ut_CphCltUssdNoteController<, result=%d",
+        result);
+
+    return result;
+}
+
+//End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneclientserver/phoneclient/tsrc/public/basic/ut_ussd/phoneclientserver_stubs.cpp	Mon May 03 13:01:45 2010 +0300
@@ -0,0 +1,86 @@
+/*
+* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Stubs for phoneclientserver classes
+*
+*/
+
+//  INCLUDES
+#include "rphcltserver.h"
+#include "cphsrvresourcemanager.h" 
+
+// ---------------------------------------------------------------------
+// Stub for RPhCltServer
+// ---------------------------------------------------------------------
+
+RPhCltServer::RPhCltServer()
+{
+}
+
+RPhCltServer::RPhCltServer( const RPhCltServer& )
+{
+}
+
+TVersion RPhCltServer::Version() const
+{
+    return TVersion(0,0,0);
+}
+
+TInt RPhCltServer::Connect( TInt )
+{
+    return KErrNone;
+}
+
+void RPhCltServer::CreateAll( TRequestStatus& )
+{
+}
+
+void RPhCltServer::Panic( TPhCltPanicTypes /*aPanic*/ )
+{
+}
+
+TInt RPhCltServer::StartServer()
+{
+    return KErrNone;
+}
+
+
+RPhCltServer& RPhCltServer::operator= ( const RPhCltServer& )
+{
+    return *this;
+}
+
+// ---------------------------------------------------------------------
+// Stub for CPhSrvResourceManager
+// ---------------------------------------------------------------------
+
+CPhSrvResourceManager::CPhSrvResourceManager( RFs& aFsSession )
+    :iFsSession(aFsSession)
+    {
+    }
+
+CPhSrvResourceManager::~CPhSrvResourceManager()
+    {
+    }
+
+void CPhSrvResourceManager::ConstructL()
+    {
+    }
+
+HBufC* CPhSrvResourceManager::ReadResourceLC( TUint /*aResourceId*/ )
+    {
+    HBufC* buffer = HBufC::NewLC(32);
+    buffer->Des().Copy(_L("Hello!"));
+    return buffer;
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneclientserver/phoneclient/tsrc/public/basic/ut_ussd/readme.txt	Mon May 03 13:01:45 2010 +0300
@@ -0,0 +1,13 @@
+
+USSD unit test project - instructions
+=======================================
+
+1. Create a work area (or take a snapshot copy) for phoneclientserver project
+2. copy this directory and all its contents to
+   phoneclientserver\phoneclient\tsrc\public\basic
+3. qmake ut_ussd.pro
+4. make
+5. start emulator
+6. run #ut_ussd
+7. view c:/logs/ut_ussd.txt
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneclientserver/phoneclient/tsrc/public/basic/ut_ussd/rphcltussd_glue.cpp	Mon May 03 13:01:45 2010 +0300
@@ -0,0 +1,175 @@
+/*
+* Copyright (c) 2002-2004 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: Unit test replacement class for RPhCltUssd
+*
+*/
+
+
+//
+// This implementation glues USSD client directly to
+// USSD Manager class so that the client/server mechanism is
+// not used. This is practical in unit test environment.
+//
+
+// INCLUDE FILES
+#include <e32base.h>
+#include "mphsrvussdmessagesentobserver.h"
+#include "ut_testenv.h"
+#include "cphsrvussdmanager.h"
+#include "rphcltussd.h"
+
+
+// ========================================================================
+// GLOBALS
+// ========================================================================
+
+class TUssdGlueAdapter: public MPhSrvUssdMessageSentObserver
+    {
+    public:
+		void writeAttributes( const TDesC8& aAttributes )
+			{
+			RMobileUssdMessaging::TMobileUssdAttributesV1Pckg pAttributes(
+					iUssdAttributes );
+			pAttributes.Copy( aAttributes );
+			}
+        void Listen( TRequestStatus& aReqStatus )
+            {
+            aReqStatus = KRequestPending;
+            iPendingStatus = &aReqStatus;
+            }
+        void UssdMessageSentObserverHandleResult( TInt aError )
+            {
+            // this causes the pending active object to signalled and run
+            User::RequestComplete( iPendingStatus, aError );
+            }
+        
+        RMobileUssdMessaging::TMobileUssdAttributesV1 iUssdAttributes;
+        TRequestStatus* iPendingStatus;
+    };
+
+TUssdGlueAdapter glueAdapter;
+
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+
+// -----------------------------------------------------------------------------
+RPhCltUssd::RPhCltUssd()
+    {
+    }
+
+// -----------------------------------------------------------------------------
+TInt RPhCltUssd::Open( RPhCltServer& /*aServer*/ )
+    {
+    return KErrNone;
+    glueAdapter.iPendingStatus = 0;
+    }
+
+
+// -----------------------------------------------------------------------------
+void RPhCltUssd::Close()
+    {    
+    }
+
+
+// -----------------------------------------------------------------------------
+TInt RPhCltUssd::StartUssdEditor() const
+    {
+    TRAPD( leave,
+        TestEnv::env().ussdManager().RequestStartEditingL() );
+    return leave;
+    }
+
+
+// -----------------------------------------------------------------------------
+TInt RPhCltUssd::AppStarting()
+    {
+    TestEnv::env().ussdManager().InformUssdApplicationStarting();
+    return KErrNone;
+    }
+
+
+// -----------------------------------------------------------------------------
+TInt RPhCltUssd::AppTerminating( 
+    TPhCltUssdAppExitReason aExitReason )
+    {
+    RMessage2& fakeMessage = TestEnv::env().fakeMessage();
+
+    TRAPD( leave,
+       TestEnv::env().ussdManager().InformUssdApplicationTerminatingL( fakeMessage ) );
+
+    return leave;
+    }
+
+// -----------------------------------------------------------------------------
+TBool RPhCltUssd::AppToForeground()
+    {
+    return TestEnv::env().ussdManager().InformUssdApplicationToForeground();
+    }
+
+// -----------------------------------------------------------------------------
+TInt RPhCltUssd::AppToBackground()
+    {
+    TestEnv::env().ussdManager().InformUssdApplicationToBackground();
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+void RPhCltUssd::SendUssd(
+    TRequestStatus& aReqStatus, 
+    const TDesC8& aMsgData, 
+    const TDesC8& aMsgAttribute )
+    {
+	glueAdapter.Listen( aReqStatus );
+	glueAdapter.writeAttributes( aMsgAttribute );
+
+    TRAPD( leave, TestEnv::env().ussdManager().SendUssdL(
+        aMsgData, glueAdapter.iUssdAttributes, glueAdapter ) );
+    if ( leave != KErrNone )
+        {
+		glueAdapter.UssdMessageSentObserverHandleResult( leave );
+        }
+    }
+
+// -----------------------------------------------------------------------------
+void RPhCltUssd::CancelSend()
+    {
+    TestEnv::env().ussdManager().SendUssdCancel();
+    }
+
+
+// -----------------------------------------------------------------------------
+void RPhCltUssd::StartSAT( 
+    TRequestStatus& aStatus , 
+    TDes& /*aReceiveMessage*/,
+    TPckg< TUint >& /*aShowNotesAndDcs*/ )
+    {
+    RMessage2& fakeMessage = TestEnv::env().fakeMessage();
+
+	TestEnv::env().ussdManager().InformStartSAT( fakeMessage );
+
+    TRequestStatus* reqStatus = &aStatus;
+    User::RequestComplete( reqStatus, KErrNone );
+    }
+
+
+// -----------------------------------------------------------------------------
+void RPhCltUssd::StopSAT()
+    {
+	TestEnv::env().ussdManager().InformStopSAT();
+    }
+
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneclientserver/phoneclient/tsrc/public/basic/ut_ussd/ut_cphcltussdnotecontroller.cpp	Mon May 03 13:01:45 2010 +0300
@@ -0,0 +1,180 @@
+/*
+* Copyright (c) 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: Unit test for satappmainhandler
+*
+*/
+
+#include <QTimer> // timeout callback
+#include <QEventLoop>
+
+#include "ut_cphcltussdnotecontroller.h"
+#include "cphcltussdcommonconstant.h"
+//test class
+#include "cphcltussdnotecontroller.h"
+//const
+const int KExtendTimeoutMseconds = 50000;
+
+// -----------------------------------------------------------------------------
+// Ut_CphCltUssdNoteController::Ut_CphCltUssdNoteController
+// -----------------------------------------------------------------------------
+//
+Ut_CphCltUssdNoteController::Ut_CphCltUssdNoteController(QObject *parent):
+        QObject(parent)
+{
+    qDebug("Ut_CphCltUssdNoteController::Ut_CphCltUssdNoteController >");
+    qDebug("Ut_CphCltUssdNoteController::Ut_CphCltUssdNoteController <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_CphCltUssdNoteController::~Ut_CphCltUssdNoteController
+// -----------------------------------------------------------------------------
+//
+Ut_CphCltUssdNoteController::~Ut_CphCltUssdNoteController()
+{
+    qDebug("Ut_CphCltUssdNoteController::~Ut_CphCltUssdNoteController >");
+    qDebug("Ut_CphCltUssdNoteController::~Ut_CphCltUssdNoteController <");
+}
+
+
+void Ut_CphCltUssdNoteController::GlobalWaitNoteHidden()
+{
+    qDebug("Ut_CphCltUssdNoteController::GlobalWaitNoteHidden >");
+    qDebug("Ut_CphCltUssdNoteController::GlobalWaitNoteHidden <");
+}
+// -----------------------------------------------------------------------------
+// Ut_CphCltUssdNoteController::initTestCase
+// QTestLib cleanup method, called after the last testfunction .
+// -----------------------------------------------------------------------------
+void Ut_CphCltUssdNoteController::initTestCase()
+{
+    qDebug("Ut_CphCltUssdNoteController::initTestCase >");
+    qDebug("Ut_CphCltUssdNoteController::initTestCase <");
+}
+
+
+// -----------------------------------------------------------------------------
+// Ut_CphCltUssdNoteController::cleanupTestCase
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_CphCltUssdNoteController::cleanupTestCase()
+{
+    qDebug("Ut_CphCltUssdNoteController::cleanupTestCase >");
+    if (mNoteController) {
+        qDebug("Ut_CphCltUssdNoteController::cleanupTestCase delete \
+            mNoteController");
+        delete mNoteController;
+        mNoteController = 0;
+    }
+    qDebug("Ut_CphCltUssdNoteController::cleanupTestCase <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_CphCltUssdNoteController::testCreateMainHandler
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_CphCltUssdNoteController::testCreateMainHandler()
+{
+    qDebug("Ut_CphCltUssdNoteController::testProfileState >");
+    mNoteController = CPhCltUssdNoteController::NewL(*this);
+    QVERIFY(mNoteController);
+    qDebug("Ut_CphCltUssdNoteController::testProfileState <");
+}
+
+
+// -----------------------------------------------------------------------------
+// Ut_CphCltUssdNoteController::testShowGlobalInformationNote_data
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_CphCltUssdNoteController::testShowGlobalInformationNote_data()
+{
+    qDebug("Ut_CphCltUssdNoteController::testShowGlobalInformationNote_data >");
+    QTest::addColumn<int>("noteType");
+    QTest::newRow("Unconfirme") << 1;
+    QTest::newRow("Notallowed") << 2;
+    QTest::newRow("Noservice") << 3;
+    QTest::newRow("Offline") << 4;
+    QTest::newRow("Done") << 5;
+    QTest::newRow("NotDone") << 6;
+    qDebug("Ut_CphCltUssdNoteController::testShowGlobalInformationNote_data <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_CphCltUssdNoteController::testShowGlobalInformationNote
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_CphCltUssdNoteController::testShowGlobalInformationNote()
+{
+    qDebug("Ut_CphCltUssdNoteController::testShowGlobalInformationNote >");
+    QFETCH(int, noteType);
+    TPhCltUssdInformationType infoType = 
+        static_cast<TPhCltUssdInformationType>(noteType);
+    TRAPD(err,mNoteController->ShowGlobalInformationNoteL(infoType) );
+    QCOMPARE(KErrNone, err);
+    qDebug("Ut_CphCltUssdNoteController::testShowGlobalInformationNote <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_CphCltUssdNoteController::testProfileState
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_CphCltUssdNoteController::testShowGlobalWaitNote()
+{
+    qDebug("Ut_CphCltUssdNoteController::testShowGlobalWaitNote >");
+    QVERIFY(mNoteController);
+    TRAPD(err, mNoteController->ShowGlobalWaitNoteL() );
+    QCOMPARE(KErrNone, err);
+    qDebug("Ut_CphCltUssdNoteController::testShowGlobalWaitNote <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_CphCltUssdNoteController::testDestroyGlobalWaitNote
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_CphCltUssdNoteController::testDestroyGlobalWaitNote()
+{
+    qDebug("Ut_CphCltUssdNoteController::testDestroyGlobalWaitNote >");
+    QVERIFY(mNoteController);
+    mNoteController->DestroyGlobalWaitNote();
+    qDebug("Ut_CphCltUssdNoteController::testDestroyGlobalWaitNote <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_CphCltUssdNoteController::testCancelGlobalWaitNote
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_CphCltUssdNoteController::testCancelGlobalWaitNote()
+{
+    qDebug("Ut_CphCltUssdNoteController::testCancelGlobalWaitNote >");
+    QVERIFY(mNoteController);
+    TRAPD(err, mNoteController->ShowGlobalWaitNoteL() );
+    QTimer *timer = new QTimer(this);
+    timer->start(KExtendTimeoutMseconds);
+    bool ret = connect(timer, SIGNAL(timeout()), timer, SLOT(stop()));
+
+
+    QEventLoop *loop = new QEventLoop(this);
+    ret = connect(timer, SIGNAL(timeout()), loop, SLOT(quit()));
+    loop->exec(QEventLoop::AllEvents);
+    mNoteController->DestroyGlobalWaitNote();
+    qDebug("Ut_CphCltUssdNoteController::testCancelGlobalWaitNote <");
+}
+
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneclientserver/phoneclient/tsrc/public/basic/ut_ussd/ut_cphcltussdnotecontroller.h	Mon May 03 13:01:45 2010 +0300
@@ -0,0 +1,110 @@
+/*
+* Copyright (c) 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: 
+*
+*/
+
+#ifndef UT_CPHCLTUSSDNOTECONTROLLER_H
+#define UT_CPHCLTUSSDNOTECONTROLLER_H
+
+
+#include <QtTest/QtTest>
+#include <QObject>
+#include "MPhCltUssdNoteControllerCallBack.h" 
+
+
+
+// Class forwards
+class CPhCltUssdNoteController;
+
+/**
+ *  Satapp unit test class.
+ * 
+ *  @since S60 <TB10.1>
+ */
+class Ut_CphCltUssdNoteController : public QObject,
+                                    public MPhCltUssdNoteControllerCallBack
+{
+    Q_OBJECT
+
+public:
+
+    Ut_CphCltUssdNoteController(QObject *parent = 0);
+
+    virtual ~Ut_CphCltUssdNoteController();
+
+     /**
+     * From MPhCltUssdNoteControllerCallBack.
+     * 
+     */    
+    void GlobalWaitNoteHidden();
+
+private slots:
+     /**
+     * Called before the first testfunction is executed.
+     */
+    void initTestCase();
+
+     /**
+     * Called after the last testfunction has been executed.
+     * 
+     */
+    void cleanupTestCase();
+
+     /**
+     * Test CPhCltUssdNoteController's constructor.
+     * 
+     */
+    void testCreateMainHandler();
+
+    /**
+     * Test CPhCltUssdNoteController's testShowGlobalInformationNote param list.
+     * 
+     */
+    void testShowGlobalInformationNote_data();
+
+     /**
+     * Test CPhCltUssdNoteController's ShowGlobalInformationNoteL.
+     * 
+     */
+    void testShowGlobalInformationNote();
+
+     /**
+     * Test CPhCltUssdNoteController's ShowGlobalWaitNoteL.
+     * 
+     */
+    void testShowGlobalWaitNote();
+
+     /**
+     * Test CPhCltUssdNoteController's DestroyGlobalWaitNote.
+     * 
+     */
+    void testDestroyGlobalWaitNote();
+
+     /**
+     * Test CPhCltUssdNoteController's cancel GlobalWaitNote.
+     * 
+     */
+    void testCancelGlobalWaitNote();
+
+private:
+
+     /**
+     * Own.
+     */
+    CPhCltUssdNoteController *mNoteController;
+
+};
+
+#endif // UT_CPHCLTUSSDNOTECONTROLLER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneclientserver/phoneclient/tsrc/public/basic/ut_ussd/ut_testenv.cpp	Mon May 03 13:01:45 2010 +0300
@@ -0,0 +1,135 @@
+/*
+* 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: 
+*
+*/
+
+
+
+// phoneclientengine
+#include "cphsrvresourcemanager.h"
+#include "cphsrvussdmanager.h"
+#include <cphcltussd.h> // USSD API
+
+// qt stuff
+#include <QtTest/QtTest>
+
+// unit test
+#include "ut_testenv.h"
+
+// globals
+TestEnv* TestEnv::m_singleton = 0;
+
+// ====================================================================
+// EtelMsgLoop
+// ====================================================================
+EtelMsgLoop::EtelMsgLoop()
+{
+	mSendMessageReqStatus = 0;
+
+	mReceiveMessageReqStatus = 0;
+	mReceiveMessageData = 0;
+	mReceiveMessageAttributes = 0;
+
+	mNetworkReleaseReqStatus = 0;
+	mNetworkReleaseMessageData = 0;
+	mNetworkReleaseMessageAttributes = 0;
+}
+
+void EtelMsgLoop::receive( const TDesC8& msg, const TDesC8& attr )
+{
+	QVERIFY2(mReceiveMessageReqStatus, "EtelMsgLoop: unable to receive");
+	mReceiveMessageData->Copy( msg );
+	mReceiveMessageAttributes->Copy( attr );
+    const TestMode& mode = TestEnv::env().testMode();
+	User::RequestComplete(mReceiveMessageReqStatus, mode.m_error);
+}
+
+void EtelMsgLoop::networkRelease( const TDesC8& msg, const TDesC8& attr )
+{
+	QVERIFY2(mNetworkReleaseReqStatus, "EtelMsgLoop: unable to networkRelease");
+	mNetworkReleaseMessageData->Copy( msg );
+	if ( mNetworkReleaseMessageAttributes )
+		mNetworkReleaseMessageAttributes->Copy( attr );
+    const TestMode& mode = TestEnv::env().testMode();
+	User::RequestComplete(mNetworkReleaseReqStatus, mode.m_error);
+}
+
+// ====================================================================
+// TestEnv
+// ====================================================================
+
+void TestEnv::create()
+{
+    QVERIFY(!m_singleton);
+    m_singleton = new TestEnv();
+    m_singleton->construct();
+}
+
+void TestEnv::destroy()
+{
+    QVERIFY(m_singleton);
+    delete m_singleton;
+    m_singleton = 0;
+}
+
+TestEnv& TestEnv::env()
+{
+    return *m_singleton;
+}
+
+TestEnv::TestEnv()
+{
+}
+
+void TestEnv::construct()
+{
+    int leave;
+    // create the main USSD resource manager class
+    m_resourceManager = new CPhSrvResourceManager(m_fs);
+    TRAP(leave, m_resourceManager->ConstructL());
+    QVERIFY(leave==0);
+    m_ussdManager = new CPhSrvUssdManager(m_fs,*m_resourceManager);
+    TRAP(leave,m_ussdManager->ConstructL(*this));
+    QVERIFY(leave==0);
+    m_fakeMessage = new RMessage2();
+}
+
+TestEnv::~TestEnv()
+{
+    delete m_ussdManager;
+    m_ussdManager = 0;
+    delete m_resourceManager;
+    m_resourceManager = 0;
+    delete m_fakeMessage;
+    m_fakeMessage = 0;
+}
+
+
+#define NULLREF(clz) *reinterpret_cast<clz*>((void*)0)
+
+RTelServer& TestEnv::PhSrvETelServer()
+    { return NULLREF(RTelServer); }
+
+RMobilePhone& TestEnv::PhSrvMobilePhone()
+    { return NULLREF(RMobilePhone); }
+
+RMmCustomAPI& TestEnv::PhSrvCustomPhone()
+    { return NULLREF(RMmCustomAPI); }
+
+
+
+
+//End of file
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneclientserver/phoneclient/tsrc/public/basic/ut_ussd/ut_testenv.h	Mon May 03 13:01:45 2010 +0300
@@ -0,0 +1,136 @@
+/*
+* 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: 
+*
+*/
+
+
+// include files
+#include <e32cmn.h>
+#include <e32base.h>
+#include <f32file.h>
+#include "mphsrvphoneinterface.h" // base class
+
+// forward declarations
+class RTelServer;
+class RMobilePhone;
+class RMmCustomAPI;
+class CPhSrvResourceManager;
+class CPhSrvUssdManager;
+
+/**
+ * Mode for current test execution
+ */
+class TestMode
+{
+public:
+	enum {Immediate=50};
+	enum Event{Normal,NoResp,NetworkRelease};
+
+	TestMode(Event event,int error=KErrNone,int timeout=Immediate)
+		{m_event=event;m_error=error;m_timeout=timeout;}
+	TestMode(int error,int timeout=Immediate)
+		{m_event=Normal;m_error=error;m_timeout=timeout;}
+	TestMode()
+		{m_event=Normal;m_error=KErrNone;m_timeout=Immediate;}
+	Event m_event;
+	int m_error;
+	int m_timeout;
+};
+
+/**
+ * ETEL message loop
+ */
+class EtelMsgLoop
+{
+public:
+	EtelMsgLoop();
+
+	// methods
+	void receive( const TDesC8& msg, const TDesC8& attr );
+	void networkRelease( const TDesC8& msg, const TDesC8& attr );
+
+	//data
+	TRequestStatus* mSendMessageReqStatus;
+
+	TRequestStatus* mReceiveMessageReqStatus;
+	TDes8* mReceiveMessageData;
+	TDes8* mReceiveMessageAttributes;
+
+	TRequestStatus* mNetworkReleaseReqStatus;
+	TDes8* mNetworkReleaseMessageData;
+	TDes8* mNetworkReleaseMessageAttributes;
+
+};
+
+
+
+/**
+ * test environment
+ */
+class TestEnv: public MPhSrvPhoneInterface
+{
+	public:
+
+		static void create();
+		static void destroy();
+		static TestEnv& env(); // the singleton
+
+		TestEnv();
+		void construct();
+		~TestEnv();
+
+		CPhSrvUssdManager& ussdManager() {return *m_ussdManager;}
+
+		void setTestMode(const TestMode& testMode) {m_testMode = testMode;}
+		const TestMode& testMode() {return m_testMode;}
+
+		EtelMsgLoop& etelMsgLoop() {return m_etelMsgLoop;}
+		
+		RMessage2& fakeMessage() {return *m_fakeMessage;}
+		
+	protected: // stubbed MPhSrvPhoneInterface
+
+		RTelServer& PhSrvETelServer();
+		RMobilePhone& PhSrvMobilePhone();
+		RMmCustomAPI& PhSrvCustomPhone();
+
+	private:
+		
+		// file manager. Never actually connected to
+		RFs m_fs;
+
+		// resource manager mock
+		CPhSrvResourceManager* m_resourceManager;
+
+		// ussd manager (server main ussd class)
+		CPhSrvUssdManager* m_ussdManager;
+
+		// test mode
+		TestMode m_testMode;
+
+		// etel msg loop
+		EtelMsgLoop m_etelMsgLoop;
+		
+		// temp message
+		RMessage2* m_fakeMessage;
+
+	    static TestEnv* m_singleton;
+
+};
+
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneclientserver/phoneclient/tsrc/public/basic/ut_ussd/ut_ussd.cpp	Mon May 03 13:01:45 2010 +0300
@@ -0,0 +1,571 @@
+/*
+* 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: 
+*
+*/
+
+
+#include <e32base.h>
+#include <exterror.h>
+#include <gsmerror.h>
+
+// phoneclientengine
+#include <cphcltussd.h> // USSD API
+#include "cphcltussdimp.h" // USSD INTERNAL API
+#include <cphcltussdsatclient.h> // USSD SAT API
+#include <etelsat.h>
+
+// qt stuff
+#include <QObject>
+#include <QtTest/QtTest>
+#include <QMetaType>
+
+// unit test
+#include "ut_testenv.h"
+#include "ut_ussd.h"
+
+// want to use TestMode class inside QVariant (using QFETCH)
+Q_DECLARE_METATYPE(TestMode)
+
+
+// ====================================================================
+// Test cases
+// ====================================================================
+
+
+void Ut_Ussd::testTestEnv()
+{
+    TestEnv::create();
+    QTest::qSleep(200);
+
+    TestEnv* env = &TestEnv::env();
+    QVERIFY2(env,"TestEnv null");
+    
+    CPhSrvUssdManager* m = &TestEnv::env().ussdManager();
+    QVERIFY2(m,"TestEnv::ussdManager null");
+    
+    TestMode tm1(TestMode::NoResp,KErrUnknown,123);
+    TestEnv::env().setTestMode(tm1);
+    QCOMPARE( (int)TestEnv::env().testMode().m_event, (int)TestMode::NoResp);
+    QCOMPARE( TestEnv::env().testMode().m_error, KErrUnknown);
+    QCOMPARE( TestEnv::env().testMode().m_timeout, 123);
+    TestMode tm2(KErrNotSupported,456);
+    TestEnv::env().setTestMode(tm2);
+    QCOMPARE( (int)TestEnv::env().testMode().m_event, (int)TestMode::Normal);
+    QCOMPARE( TestEnv::env().testMode().m_error, KErrNotSupported);
+    QCOMPARE( TestEnv::env().testMode().m_timeout, 456);
+    TestMode tm3(TestMode::Normal);
+    TestEnv::env().setTestMode(tm3);
+    QCOMPARE( (int)TestEnv::env().testMode().m_event, (int)TestMode::Normal);
+    QCOMPARE( TestEnv::env().testMode().m_error, KErrNone);
+    QCOMPARE( TestEnv::env().testMode().m_timeout, (int)TestMode::Immediate);
+    
+    TestEnv::destroy();
+    QTest::qSleep(200);
+}
+
+void Ut_Ussd::openAndCloseApi()
+{
+    TestEnv::create();
+    QTest::qSleep(200);
+    
+    createUssdApi(false);
+    
+    delete m_ussdApi;
+    m_ussdApi = 0;
+
+    TestEnv::destroy();
+    QTest::qSleep(200);
+}
+
+void Ut_Ussd::sendUssd16bit_data()
+{
+    QTest::addColumn<bool>("ui");
+    QTest::addColumn<QString>("message");
+    QTest::addColumn<TestMode>("testmode");
+
+    // without ui
+    QTest::newRow("1.1") << false << "123" << TestMode(KErrNone);
+    QTest::newRow("1.2") << false << "***" << TestMode(KErrNone,3000);
+    QTest::newRow("1.3") << false << "qwerty" << TestMode(KErrUnknown);
+    // show ui
+    QTest::newRow("2.1") << true << "#*555*" << TestMode(KErrNone,20);
+    QTest::newRow("2.2") << true << "#*555*" << TestMode(KErrCancel,500);
+    QTest::newRow("2.3") << true << "#*555*" << TestMode(KErrInUse,1000);
+    QTest::newRow("2.4") << true << "#*555*" << TestMode(KErrAccessDenied,90);
+    QTest::newRow("2.5") << true << "#*555*" << TestMode(KErrGsmSSCallBarred,190);
+    QTest::newRow("2.6") << true << "#*555*" << TestMode(KErrGsmSMSNoNetworkService,700);
+    QTest::newRow("2.7") << true << "#*555*" << TestMode(KErrGsmOfflineOpNotAllowed,1200);
+    QTest::newRow("2.8") << true << "#*555*" << TestMode(KErrSatControl,200);
+    QTest::newRow("2.9") << true << "#*555*" << TestMode(KErrUnknown,920);
+
+}
+
+void Ut_Ussd::sendUssd16bit()
+{
+    TestEnv::create();
+    QTest::qSleep(200);
+
+    QFETCH(bool, ui);
+    QFETCH(QString, message);
+    QFETCH(TestMode, testmode);
+    TestEnv::env().setTestMode(testmode);
+
+    // create api
+    createUssdApi(ui);
+
+    // send USSD
+    TBuf<100> buf16;
+    buf16.Copy( (const TUint16*)message.constData(), message.length() );
+    int result = m_ussdApi->SendUssd( buf16 );
+    QCOMPARE(result, testmode.m_error);
+    QTest::qSleep(100);
+
+    // close api
+    delete m_ussdApi;
+    m_ussdApi = NULL;
+    QTest::qSleep(100);
+
+    TestEnv::destroy();
+    QTest::qSleep(200);
+}
+
+void Ut_Ussd::sendCancel()
+{
+    TestEnv::create();
+    QTest::qSleep(200);
+
+    // create api
+    createUssdApi(false);
+
+    // send USSD
+    _LIT( KMsg, "#12345*" );
+    TestEnv::env().setTestMode(TestMode(KErrNone));
+    int result = m_ussdApi->SendUssd( KMsg );
+    QCOMPARE(result, KErrNone);
+    m_ussdApi->SendUssdCancel();
+
+    // close api
+    delete m_ussdApi;
+    m_ussdApi = NULL;
+    QTest::qSleep(100);
+
+    TestEnv::destroy();
+    QTest::qSleep(200);
+}
+
+
+void Ut_Ussd::sendUssd8bit_data()
+{
+    QTest::addColumn<bool>("ui");
+    QTest::addColumn<QString>("message");
+    QTest::addColumn<TestMode>("testmode");
+
+    // without ui
+    QTest::newRow("1.1") << false << "8" << TestMode(KErrNone);
+    QTest::newRow("1.2") << false << "#*888*" << TestMode(KErrUnknown,600);
+    QTest::newRow("1.3") << false << "illegal" << TestMode(KErrNotSupported);
+    // show ui
+    QTest::newRow("2.1") << true << "#*555*" << TestMode(KErrNone,20);
+    QTest::newRow("2.2") << true << "#*555*" << TestMode(KErrCancel,500);
+    QTest::newRow("2.3") << true << "#*555*" << TestMode(KErrInUse,1000);
+    QTest::newRow("2.4") << true << "#*555*" << TestMode(KErrAccessDenied,90);
+    QTest::newRow("2.5") << true << "#*555*" << TestMode(KErrGsmSSCallBarred,190);
+    QTest::newRow("2.6") << true << "#*555*" << TestMode(KErrGsmSMSNoNetworkService,700);
+    QTest::newRow("2.7") << true << "#*555*" << TestMode(KErrGsmOfflineOpNotAllowed,1200);
+    QTest::newRow("2.8") << true << "#*555*" << TestMode(KErrSatControl,200);
+    QTest::newRow("2.9") << true << "#*555*" << TestMode(KErrUnknown,920);
+}
+
+void Ut_Ussd::sendUssd8bit()
+{
+    TestEnv::create();
+    QTest::qSleep(200);
+
+    QFETCH(bool, ui);
+    QFETCH(QString, message);
+    QFETCH(TestMode, testmode);
+    TestEnv::env().setTestMode(testmode);
+
+    // create api
+    createUssdApi(ui);
+
+    // send USSD
+    TBuf<100> buf16;
+    buf16.Copy( (const TUint16*)message.constData(), message.length() );
+    TBuf8<100> buf8;
+    buf8.Copy( buf16 );
+    int result = m_ussdApi->SendUssd( buf8 );
+    QCOMPARE(result, testmode.m_error);
+    QTest::qSleep(100);
+
+    // close api
+    delete m_ussdApi;
+    m_ussdApi = 0;
+    QTest::qSleep(100);
+
+    TestEnv::destroy();
+    QTest::qSleep(200);
+}
+
+void Ut_Ussd::openAndCloseSatApi()
+{
+    TestEnv::create();
+    QTest::qSleep(200);
+    
+    m_ussdSatApi = NULL;
+    createUssdSatApi(m_ussdSatApi);
+    
+    delete m_ussdSatApi;
+    m_ussdSatApi = 0;
+
+    TestEnv::destroy();
+    QTest::qSleep(200);    
+}
+
+void Ut_Ussd::sendSatMessage_data()
+{
+    QTest::addColumn<bool>("ui");
+    QTest::addColumn<QString>("message");
+    QTest::addColumn<TestMode>("testmode");
+
+    // without ui
+    QTest::newRow("1.1") << false << "123456" << TestMode(KErrNone);
+    QTest::newRow("1.2") << false << "*100#" << TestMode(KErrNone,1000);
+    QTest::newRow("1.3") << false << "8" << TestMode(KErrNone,400);
+    //QTest::newRow("1.4") << false << "illegal" << TestMode(KErrNotSupported);
+
+}
+
+void Ut_Ussd::sendSatMessage()
+{
+    TestEnv::create();
+    QTest::qSleep(200);
+
+    QFETCH(bool, ui);
+    QFETCH(QString, message);
+    QFETCH(TestMode, testmode);
+    TestEnv::env().setTestMode(testmode);
+
+    // create api
+    createUssdSatApi(ui);
+
+    TBuf<RSat::KStringMaxSize> receiveMessage;
+    TBool sendCompletedFirst( EFalse );
+    TUint8 receiveDcs = 0;
+    TBuf<100> sendMessage;
+    sendMessage.Copy( (const TUint16*)message.constData(), 
+                       message.length() );
+
+    TInt ret = m_ussdSatApi->SendSatMessage(
+        sendMessage,
+        CPhCltUssdSatClient::EPhCltDcsUnknown,
+        receiveMessage,
+        sendCompletedFirst,
+        receiveDcs );
+    
+    qDebug("receive error=%d", ret);
+    qDebug("receive receive msg=%s", &receiveMessage);
+    qDebug("receive isCompleteFirst=%d", &sendCompletedFirst);
+    qDebug("receive receive Dcs=%d", &receiveDcs);
+    
+    QVERIFY2(ret == testmode.m_error , "testSendSatMessage failed ");
+    
+    // close api
+    delete m_ussdSatApi;
+    m_ussdSatApi = NULL;
+    QTest::qSleep(100);
+
+    TestEnv::destroy();
+    QTest::qSleep(200);    
+}
+
+void Ut_Ussd::sendReceive_data()
+{
+    QTest::addColumn<bool>("ui");
+    QTest::addColumn<QString>("msg1");
+    QTest::addColumn<QString>("msg2");
+    QTest::addColumn<TestMode>("testmode");
+
+    // without ui, empty resp
+    QTest::newRow("1.1") << false << "*100#" << "" << TestMode(KErrNone,1000);
+    QTest::newRow("1.2") << false << "*100#" << "" << TestMode(KErrNotSupported,400);
+    // without ui, text resp
+    QTest::newRow("2.1") << false << "*100#" << "12345" << TestMode(KErrNone,100);
+    QTest::newRow("2.2") << false << "*100#" << "12345" << TestMode(KErrUnknown,800);
+
+    // show ui, empty resp
+    QTest::newRow("3.1") << true << "*100#" << "" << TestMode(KErrNone,700);
+    QTest::newRow("3.2") << true << "*100#" << "" << TestMode(KErrNotFound,400);
+    // show ui, text resp
+    QTest::newRow("4.1") << true << "*100#" << "12345" << TestMode(KErrNone,2000);
+    QTest::newRow("4.2") << true << "*100#" << "12345" << TestMode(-800,800);
+
+}
+
+
+void Ut_Ussd::sendReceive()
+{
+    TestEnv::create();
+    QTest::qSleep(200);
+
+    QFETCH(bool, ui);
+    QFETCH(QString, msg1);
+    QFETCH(QString, msg2);
+    QFETCH(TestMode, testmode);
+
+    createUssdApi(ui);
+
+    TestEnv::env().setTestMode(TestMode(KErrNone));
+    send(msg1);
+    TestEnv::env().setTestMode(testmode);
+    receive(msg2, RMobileUssdMessaging::EUssdMTReply);
+    activeSleep(500);
+    networkRelease( KErrNone );
+    activeSleep(500);
+
+    // close api
+    delete m_ussdApi;
+    m_ussdApi = NULL;
+    QTest::qSleep(100);
+
+    TestEnv::destroy();
+    QTest::qSleep(200);
+}
+
+void Ut_Ussd::testMultipleIncomingMessages()
+{
+    TestEnv::create();
+    QTest::qSleep(200);
+
+    QString msg1 = "your favorite color?\n1=red\n2=blue";
+    QString msg2 = "your favorite food?\n1=rice\n2=potatoes";
+    QString msg3 = "thank you";
+    receive(msg1,RMobileUssdMessaging::EUssdMTRequest);
+    activeSleep(1000);
+    receive(msg2,RMobileUssdMessaging::EUssdMTRequest);
+    //activeSleep(1000);
+    receive(msg3,RMobileUssdMessaging::EUssdMTNotify);
+    //activeSleep(1000);
+
+    TestEnv::destroy();
+    QTest::qSleep(200);
+}
+
+void Ut_Ussd::testUssdInternalApi_data()
+{
+    QTest::addColumn<bool>("ui");
+    QTest::addColumn<QString>("msg1");
+    QTest::addColumn<QString>("msg2");
+    QTest::addColumn<TestMode>("testmode");
+
+    // without ui
+    QTest::newRow("1.1") << false << "1" << "" << TestMode(KErrNone,100);
+    QTest::newRow("1.2") << false << "1" << "23" << TestMode(KErrNone,200);
+    QTest::newRow("1.3") << false << "1" << "" << TestMode(KErrUnknown,300);
+    QTest::newRow("1.4") << false << "1" << "23" << TestMode(KErrNotFound,400);
+    // show ui
+    QTest::newRow("1.1") << true << "1" << "" << TestMode(KErrNone,100);
+    QTest::newRow("1.2") << true << "1" << "23" << TestMode(KErrNone,200);
+    QTest::newRow("1.3") << true << "1" << "" << TestMode(KErrUnknown,300);
+    QTest::newRow("1.4") << true << "1" << "23" << TestMode(KErrNotFound,400);
+}
+
+void Ut_Ussd::testUssdInternalApi()
+{
+    TestEnv::create();
+    QTest::qSleep(200);
+
+    QFETCH(bool, ui);
+    QFETCH(QString, msg1); // send
+    QFETCH(QString, msg2); // receive1
+    QFETCH(TestMode, testmode);
+
+	createUssdInternalApi(ui);
+
+	int err = m_ussdInternalApi->AppStarting();
+	QCOMPARE(err,KErrNone);
+    QTest::qSleep(100);
+
+	err = m_ussdInternalApi->AppToBackground();
+	QCOMPARE(err,KErrNone);
+    QTest::qSleep(100);
+
+	err = m_ussdInternalApi->AppToForeground();
+    QTest::qSleep(100);
+
+    err = m_ussdInternalApi->AppTerminating(EPhCltUserExit);
+	QCOMPARE(err,KErrNone);
+    QTest::qSleep(100);
+
+	err = m_ussdInternalApi->AppStarting();
+	QCOMPARE(err,KErrNone);
+    QTest::qSleep(100);
+
+    TBuf<200> reply_buf16;
+    reply_buf16.Copy( (const TUint16*)msg1.constData(), msg1.length() );
+    int result = m_ussdInternalApi->SendUssd( reply_buf16 );
+    QCOMPARE(result, TestEnv::env().testMode().m_error);
+    QTest::qSleep(100);
+
+    receive(msg2, RMobileUssdMessaging::EUssdMTNotify);
+    activeSleep(100);
+
+    err = m_ussdInternalApi->AppTerminating(EPhCltSendCompleted);
+	QCOMPARE(err,KErrNone);
+    QTest::qSleep(100);
+
+    // close internal api
+    delete m_ussdInternalApi;
+    m_ussdInternalApi = NULL;
+    QTest::qSleep(100);
+
+    TestEnv::destroy();
+    QTest::qSleep(200);
+}
+
+void Ut_Ussd::createUssdApi(bool ui)
+{
+    TRAPD(leave, m_ussdApi = CPhCltUssd::NewL(ui));
+    QTest::qSleep(200);
+    if (leave != KErrNone)
+        QFAIL("CPhCltUssd::NewL Leave");
+    if (NULL == m_ussdApi)
+        QFAIL("CPhCltUssd pointer null");
+    qDebug("m_ussdApi=%d", m_ussdApi);
+}
+
+void Ut_Ussd::createUssdInternalApi(bool ui)
+{
+    TRAPD(leave, m_ussdInternalApi = CPhCltUssdImp::NewL(ui));
+    QTest::qSleep(200);
+    if (leave != KErrNone)
+        QFAIL("CPhCltUssdInt::NewL Leave");
+    if (NULL == m_ussdInternalApi)
+        QFAIL("CPhCltUssdInt pointer null");
+    qDebug("m_ussdInternalApi=%d", m_ussdInternalApi);
+}
+
+void Ut_Ussd::createUssdSatApi(bool ui)
+{
+    TRAPD(leave, m_ussdSatApi = CPhCltUssdSatClient::NewL(ui));
+    QTest::qSleep(200);
+    if (leave != KErrNone)
+        QFAIL("CPhCltUssdSatClient::NewL Leave");
+    if (NULL == m_ussdSatApi)
+        QFAIL("CPhCltUssdSatClient pointer null");
+    qDebug("m_ussdSatApi=%d", m_ussdSatApi);
+}
+
+void Ut_Ussd::send(const QString& msg)
+{
+    qDebug("Ut_Ussd::send SendUssd in");
+    QVERIFY(m_ussdApi);
+    TBuf<200> send_buf16;
+    send_buf16.Copy( (const TUint16*)msg.constData(), msg.length() );
+    qDebug("Ut_Ussd::send SendUssd before");
+    int result = m_ussdApi->SendUssd( send_buf16 );
+    qDebug("Ut_Ussd::send SendUssd after");
+    QCOMPARE(result, TestEnv::env().testMode().m_error);
+    qDebug("Ut_Ussd::send SendUssd out");
+}
+
+// type = {
+// 	RMobileUssdMessaging::EUssdMTRequest
+// 	RMobileUssdMessaging::EUssdMTReply
+// 	RMobileUssdMessaging::EUssdMTNotify
+// }
+
+void Ut_Ussd::receive(const QString& msg, int type)
+{
+    qDebug("Ut_Ussd::send receive in");
+    QTest::qSleep(TestEnv::env().testMode().m_timeout);
+    TBuf<200> rcv_buf16;
+    rcv_buf16.Copy( (const TUint16*)msg.constData(), msg.length() );
+    TBuf8<200> rcv_buf8;
+    rcv_buf8.Copy( rcv_buf16 );
+	// prepare attributes
+    RMobileUssdMessaging::TMobileUssdAttributesV1 attr;
+    attr.iFlags = RMobileUssdMessaging::KUssdMessageType;
+    attr.iType = (RMobileUssdMessaging::TMobileUssdMessageType)type;
+    RMobileUssdMessaging::TMobileUssdAttributesV1Pckg attrpkg(attr);
+    
+    TestEnv::env().etelMsgLoop().receive( rcv_buf8, attrpkg );
+    qDebug("Ut_Ussd::send receive out");
+}
+
+void Ut_Ussd::networkRelease(int error)
+{
+    qDebug("Ut_Ussd::send networkRelease in");
+    RMobilePhone::TMobilePhoneSendSSRequestV3 attr;
+    attr.iOpCode = error;
+    RMobilePhone::TMobilePhoneSendSSRequestV3Pckg attrpkg(attr);
+    
+    TestEnv::env().etelMsgLoop().networkRelease( _L8(""), attrpkg );
+    qDebug("Ut_Ussd::send networkRelease out");
+}
+
+
+// global variables
+CPeriodic* activeSleepTimer = 0;
+
+TInt ActiveSleepTimerCallback(TAny* aPtr)
+{
+    if ( activeSleepTimer ) {
+        qDebug("Ut_Ussd::ActiveSleepTimerCallback Cancel");
+        activeSleepTimer->Cancel();
+     }
+    CActiveSchedulerWait* wait = (CActiveSchedulerWait*) aPtr;
+    if (wait) {
+        qDebug("Ut_Ussd::ActiveSleepTimerCallback AsyncStop");
+        wait->AsyncStop();
+    }
+    return 0;
+}
+
+// This is a special SLEEP method that allows active objects to run meanwhile.
+// Note: because of its active nature, this sleep method is very inaccurate.
+void Ut_Ussd::activeSleep(int ms)
+{
+    qDebug("Ut_Ussd::activeSleep in");
+
+    CActiveSchedulerWait* wait = new CActiveSchedulerWait;
+    activeSleepTimer = CPeriodic::NewL(CActive::EPriorityStandard+1);
+    TTimeIntervalMicroSeconds32 delay(1000*ms);
+    activeSleepTimer->Start(delay,delay,
+        TCallBack(ActiveSleepTimerCallback,(TAny*)wait));
+    if ( wait && wait->IsStarted() ) {
+        wait->AsyncStop();
+        delete activeSleepTimer;
+        activeSleepTimer = 0;
+        delete wait;
+        wait = NULL;
+        qDebug("Ut_Ussd::activeSleep out unnormal");
+        return;
+    }
+    
+    if (wait) {
+         qDebug("Ut_Ussd::activeSleep start snyc before");
+         wait->Start();
+         qDebug("Ut_Ussd::activeSleep start snyc after");
+    }
+    delete activeSleepTimer;
+    activeSleepTimer = 0;
+    delete wait;
+    wait = NULL;
+    qDebug("Ut_Ussd::activeSleep out");
+}
+
+//End of file
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneclientserver/phoneclient/tsrc/public/basic/ut_ussd/ut_ussd.h	Mon May 03 13:01:45 2010 +0300
@@ -0,0 +1,76 @@
+/*
+* 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: 
+*
+*/
+
+
+// include files
+#include <QObject> // base class
+
+// forward declarations
+class CPhCltUssd;
+class CPhCltUssdImp;
+class CPhCltUssdSatClient;
+
+// class declaration
+class Ut_Ussd: public QObject
+{
+    Q_OBJECT
+
+private slots: // test cases
+    
+    // Test for CPhCltUssd
+    void testTestEnv();
+    void openAndCloseApi();
+    void sendUssd16bit_data();
+    void sendUssd16bit();
+    void sendUssd8bit_data();
+    void sendUssd8bit();
+    void sendCancel();
+
+    // Test for CPhCltUssdSatClient
+    void openAndCloseSatApi();
+    void sendSatMessage_data();
+    void sendSatMessage();
+
+    // receiving messages
+	void sendReceive_data();
+	void sendReceive();
+	void testMultipleIncomingMessages();
+
+    // cases for internal api
+	void testUssdInternalApi_data();
+	void testUssdInternalApi();
+
+private: // tet blocks
+
+    void createUssdApi(bool ui);
+    void createUssdInternalApi(bool ui);
+    void createUssdSatApi(bool ui);
+	void send(const QString& msg);
+	void receive(const QString& msg, int type);
+	void networkRelease(int error);
+	void activeSleep(int ms);
+
+
+private: // test-related members
+
+    // phone client
+    CPhCltUssd *m_ussdApi;
+    CPhCltUssdImp *m_ussdInternalApi;
+    CPhCltUssdSatClient *m_ussdSatApi;
+
+};
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneclientserver/phoneclient/tsrc/public/basic/ut_ussd/ut_ussd.pro	Mon May 03 13:01:45 2010 +0300
@@ -0,0 +1,119 @@
+#
+# Copyright (c) 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: USSD unit test project file.
+# this project combines phone server client and server classes,
+# glues them in one single package with the test module and test
+# the class functionality all together.
+#
+
+TEMPLATE = app
+TARGET = ut_ussd
+DEPENDPATH += .
+INCLUDEPATH += .
+CONFIG += hb
+CONFIG += qtestlib
+HEADERS += $$PUBLIC_HEADERS
+
+symbian {
+    TARGET.CAPABILITY = CAP_APPLICATION 
+    }
+
+INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
+
+# =====================================================================
+# CODE SUBJECT TO TEST
+# Note that both ussd client and server code is compiled!
+# =====================================================================
+
+# server
+HEADERS += ../../../../../phoneserver/inc/ussd/cphsrvussdmanager.h
+HEADERS += ../../../../../phoneserver/inc/ussd/cphsrvussdnotifynwrelease.h
+HEADERS += ../../../../../phoneserver/inc/ussd/cphsrvussdreceivehandler.h
+HEADERS += ../../../../../phoneserver/inc/ussd/cphsrvussdreplytimer.h
+HEADERS += ../../../../../phoneserver/inc/ussd/cphsrvussdsendhandler.h
+HEADERS += ../../../../../phoneserver/inc/ussd/cphsrvussdsessioncancelwaiter.h
+HEADERS += ../../../../../phoneserver/inc/ussd/mphsrvussdmessagesentobserver.h
+HEADERS += ../../../../../phoneserver/inc/ussd/mphsrvussdnetworkobserver.h
+HEADERS += ../../../../../phoneserver/inc/ussd/mphsrvussdreplytimerobserver.h
+HEADERS += ../../../../../phoneserver/inc/Standard/mphsrvphoneinterface.h
+HEADERS += ../../../../../phoneserver/inc/Standard/cphsrvresourcemanager.h
+HEADERS += ../../../../../phoneserver/inc/Standard/phsrvutils.h
+HEADERS += ../../../../../phoneserver/inc/Standard/phsrvdebuginfo.h
+HEADERS += ../../../../../phoneserver/inc/Standard/phsrvconfigure.h
+
+SOURCES += ../../../../../phoneserver/src/ussd/cphsrvussdmanager.cpp
+SOURCES += ../../../../../phoneserver/src/ussd/cphsrvussdnotifynwrelease.cpp
+SOURCES += ../../../../../phoneserver/src/ussd/cphsrvussdreceivehandler.cpp
+SOURCES += ../../../../../phoneserver/src/ussd/cphsrvussdreplytimer.cpp
+SOURCES += ../../../../../phoneserver/src/ussd/cphsrvussdsendhandler.cpp
+SOURCES += ../../../../../phoneserver/src/standard/phsrvutils.cpp
+SOURCES += ../../../../../phoneserver/src/standard/phsrvdebuginfo.cpp
+
+# client/ussdwrapper
+HEADERS += ../../../../../phoneclient/inc/ussd/ussd_ext/rphcltussd.h
+HEADERS += ../../../../../phoneclient/inc/ussdwrapper/ussd_ext/cphcltussdimp.h
+HEADERS += ../../../../../phoneclient/inc/ussdwrapper/cphcltussdnotecontroller.h
+HEADERS += ../../../../../phoneclient/inc/ussdwrapper/cphcltussdrequesthandler.h
+HEADERS += ../../../../../phoneclient/inc/ussdwrapper/mphcltussdnotecontrollercallback.h
+HEADERS += ../../../../../phoneclient/inc/ussdwrapper/mphcltussdrequesthandler.h
+HEADERS += ../../../../../phoneclient/inc/SharedClientServer/phcltclientserver.h
+HEADERS += ../../../../../phoneclient/inc/ussdwrapper/cphcltussdcommonconstant.h
+
+SOURCES += ../../../../../phoneclient/src/ussdwrapper/cphcltussdext.cpp
+SOURCES += ../../../../../phoneclient/src/ussdwrapper/cphcltussdimp.cpp
+SOURCES += ../../../../../phoneclient/src/ussdwrapper/cphcltussdint.cpp
+SOURCES += ../../../../../phoneclient/src/ussdwrapper/cphcltussdnotecontroller.cpp
+SOURCES += ../../../../../phoneclient/src/ussdwrapper/cphcltussdrequesthandler.cpp
+SOURCES += ../../../../../phoneclient/src/ussdwrapper/cphcltussdsatclient.cpp
+
+
+# =====================================================================
+# TEST CODE
+# Explanation of the test/mock classes
+# * ut_ussd:
+#       QTestLib test cases
+# * ut_testenv:
+#       keep-up of the test environment, stubs and mocks etc.
+# * rphcltussd_glue:
+#       replaces RPhCltUssd implementation. Instead of connecting to
+#       phone server, directs commands directly to USSD manager and
+#       receives callbacks.
+# * etel_mock:
+#       Mocks ETEL, fakes different USSD send responses.
+# * phoneclientserver_stubs:
+#       Replaces the phoneserver resource reader with a dummy
+#       Replaces phoneserver client with a dummy
+# =====================================================================
+
+HEADERS += ut_ussd.h
+HEADERS += ut_testenv.h
+HEADERS += ut_cphcltussdnotecontroller.h
+
+SOURCES += main.cpp
+SOURCES += ut_ussd.cpp
+SOURCES += ut_testenv.cpp
+SOURCES += rphcltussd_glue.cpp
+SOURCES += etel_mock.cpp
+SOURCES += phoneclientserver_stubs.cpp
+SOURCES += ut_cphcltussdnotecontroller.cpp
+
+
+LIBS += -lefsrv
+LIBS += -lgsmu
+LIBS += -lflogger
+LIBS += -lCommonEngine
+LIBS += -laknnotify
+LIBS += -leiksrv
+LIBS += -lbafl
+
--- a/phoneclientserver/phoneserver/Group/PhoneServer.mmp	Fri Apr 16 15:31:58 2010 +0300
+++ b/phoneclientserver/phoneserver/Group/PhoneServer.mmp	Mon May 03 13:01:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-2005 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2002-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"
@@ -123,6 +123,10 @@
 // TEMPORARY DEFINITION FOR TELEPHONY VARIATION HEADERS
 SYSTEMINCLUDE   ../../../../../app/phone/inc
 
+// TEMPORARY DEFINITION FOR Orbit Device Dialog
+SYSTEMINCLUDE /epoc32/include/mw/hb/hbwidgets
+SYSTEMINCLUDE /epoc32/include/mw/hb/hbcore
+
 LIBRARY        efsrv.lib
 LIBRARY        apgrfx.lib
 LIBRARY        charconv.lib
@@ -130,9 +134,7 @@
 LIBRARY        ws32.lib
 LIBRARY        etel.lib
 LIBRARY        bafl.lib
-LIBRARY        aknnotify.lib
 LIBRARY        gsmu.lib
-LIBRARY        avkon.lib
 LIBRARY        apparc.lib
 LIBRARY        customapi.lib
 LIBRARY        etelmm.lib 
@@ -143,5 +145,7 @@
 LIBRARY        centralrepository.lib
 LIBRARY        imageconversion.lib  
 LIBRARY        bitmaptransforms.lib 
+LIBRARY        hbwidgets.lib
+LIBRARY        hbcore.lib
 
 //  End of File  
--- a/phoneclientserver/phoneserver/Inc/Ussd/CPhSrvUssdManager.h	Fri Apr 16 15:31:58 2010 +0300
+++ b/phoneclientserver/phoneserver/Inc/Ussd/CPhSrvUssdManager.h	Mon May 03 13:01:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-2005 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2002-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"
@@ -25,7 +25,7 @@
 #include "mphsrvussdnetworkobserver.h" 
 #include "mphsrvussdreplytimerobserver.h" 
 #include <badesca.h>
-
+#include <hbdevicemessageboxsymbian.h>
 
 // FORWARD DECLARATIONS
 class RFs;
@@ -35,7 +35,6 @@
 class CPhSrvUssdReplyTimer;
 class MPhSrvPhoneInterface;
 class MPhSrvUssdMessageSentObserver;
-class CAknGlobalMsgQuery;
 class CPhSrvUssdSessionCancelWaiter;
 class CPhSrvUssdNotifyNWRelease;
 
@@ -49,7 +48,8 @@
 class CPhSrvUssdManager : 
     public CActive, 
     public MPhSrvUssdNetworkObserver, 
-    public MPhSrvUssdReplyTimerObserver
+    public MPhSrvUssdReplyTimerObserver,
+    public MHbDeviceMessageBoxObserver
     {
     public:  // Constructors and destructor
 
@@ -161,6 +161,12 @@
         */
         void UssdReplyTimerObserverHandleExpiredL( TInt aError );
         
+        /**
+        * @see MHbDeviceMessageBoxObserver
+        */        
+        void MessageBoxClosed(const CHbDeviceMessageBoxSymbian* aMessageBox,
+            CHbDeviceMessageBoxSymbian::TButtonId aButton);
+        
         /*
         * @see CActive
         */
@@ -175,8 +181,6 @@
         * @see CActive
         */
         TInt RunError( TInt aError );
- 
-
 
     private: // New functions
         
@@ -303,7 +307,7 @@
         * 
         * @since 3.1
         */
-        void UpdateNotifyMessage();
+        void UpdateNotifyMessageL();
         
         /**
         * Turn lights on
@@ -311,9 +315,15 @@
         * @since 3.1
         */
         void TurnLightsOn();
+        
+        /**
+        * Load default string by QT style localization
+        * @param aText default string id defined by _LIT
+        */        
+        const TPtrC LoadDefaultString( const TDesC& aText );
 
     private:     // Data
-
+        
         // The file session reference.
         RFs& iFsSession;
         
@@ -342,8 +352,8 @@
         TBuf< KPhCltUssdMax8BitCharacters > iReceivedMessage;
         
         // The message query for showing USSD operation queries.
-        CAknGlobalMsgQuery* iGlobalMsgQuery;
-        
+        CHbDeviceMessageBoxSymbian* iDeviceDialog;
+       
         // Is editor emptied.
         TBool iEmptyEditor;
         
@@ -374,9 +384,6 @@
         // Local Telephony variant read-only data.
         TInt iVariantReadOnlyValues;
 
-        // The message query header text.
-        HBufC* iMeQuHeaderText;
-
         // The buffer for received decoded message.
         TBuf< KPhCltUssdMax8BitCharacters > iDecodedMessage;
 
@@ -418,6 +425,11 @@
         
         // An asynchronous callback for sending MO ACK messages
         CAsyncCallBack* iMoAckCallback;
+        
+        TBool iTextResolver;
+        
+        HBufC* iTextBuffer;
+
     };
     
 #endif // CPHSRVUSSDMANAGER_H
--- a/phoneclientserver/phoneserver/Src/Ussd/CPhSrvUssdManager.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/phoneclientserver/phoneserver/Src/Ussd/CPhSrvUssdManager.cpp	Mon May 03 13:01:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-2005 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2002-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"
@@ -27,15 +27,9 @@
 #include "mphsrvphoneinterface.h" 
 #include "cphsrvussdsessioncancelwaiter.h" 
 
-#include <AknGlobalNote.h> 
-#include <aknnotedialog.h>
-#include <aknstaticnotedialog.h>
-#include <AknProgressDialog.h> 
 #include <apacmdln.h>
 #include <apgtask.h>
 #include <bautils.h>
-#include <StringLoader.h> 
-#include <AknGlobalMsgQuery.h> 
 #include <textresolver.h>
 #include <charconv.h>
 #include <gsmuelem.h>
@@ -45,7 +39,7 @@
 #include <w32std.h>
 #include <apgcli.h>
 #include <cphcltussd.h> 
-#include <avkon.rsg>
+#include <hbtextresolversymbian.h>
 #include <phoneserver.rsg> 
 #include "phsrvdebuginfo.h" 
 #include <e32property.h>
@@ -61,7 +55,7 @@
 const TInt KPhSrvUssdAppUID = 0x10005955;
 
 const TInt KPhSrvUssdMessageQueryInterval = 500000; // 0.5 sec
-const TInt KPhSrvUssdNoteExitPeriod = 500000; // 0.5 sec
+//const TInt KPhSrvUssdNoteExitPeriod = 500000; // 0.5 sec
 //
 const TUint KPhSrvUssdDefaultDCS = 0x0f;                        // 00001111
 
@@ -86,6 +80,23 @@
 const TUint KPhSrvUssdDcsMessageHandlingAlphabet8Bit = 0xf4;    // 1111x1xx
 const TInt KPhrUssdNotifyArraySize = 1;
 
+// Refers to HbPopup::NoDismiss = 0
+const TInt KPhSrvUssdPopupDismissPolicy = 0; 
+// The time out only for testing, from CPhSrvUssdReplyTimer.cpp
+const TUint KPhSrvUssdTimeout = 300000000;
+
+// Use QT style localization
+_LIT(KUssdLocFilename, "phcltsrvussd.ts");
+_LIT(KUssdLocPath, "z://data");
+_LIT(KUssdReply, "txt_ussd_button_reply"); // Reply
+_LIT(KUssdExit, "txt_ussd_button_exit"); // Exit
+_LIT(KUssdNext, "txt_ussd_button_next"); //Next
+_LIT(KUssdYes, "txt_common_button_yes"); // Yes
+_LIT(KUssdNo, "txt_common_button_no"); // No
+_LIT(KUssdTitle, "txt_ussd_title_message"); // Message
+_LIT(KUssdDone, "txt_ussd_dpopinfo_done"); // Done
+_LIT(KUssdConfirm, "txt_ussd_info_there_are_still_unread_notifications");
+
 // MACROS
 
 #define _DPRINT_FLAGS() \
@@ -373,9 +384,11 @@
     :CActive( EPriorityLow ),
      iFsSession( aFsSession ),
      iResourceManager( aResourceManager ),
+     iDeviceDialog( NULL ),
      iDCS ( KPhCltDcsUnknown ),
-     iReturnResultPckg ( iReturnResult )
-
+     iReturnResultPckg ( iReturnResult ),
+     iTextResolver ( EFalse ),
+     iTextBuffer ( NULL )
     {
     CActiveScheduler::Add( this );
     }
@@ -390,7 +403,7 @@
 //
 CPhSrvUssdManager::~CPhSrvUssdManager()
     {
-    _DPRINT( 4, "PhSrv.~CPhSrvUssdManager.start" );       // debug print
+    _DPRINT( 4, "PhSrv.~CPhSrvUssdManager.start" );
 
 
     delete iUssdSendHandler;
@@ -405,9 +418,12 @@
     Cancel();
 
     iTimer.Close();
-
-    delete iGlobalMsgQuery;
-    iGlobalMsgQuery = NULL;
+    
+    delete iTextBuffer;
+    iTextBuffer = NULL;
+    
+    delete iDeviceDialog;
+    iDeviceDialog = NULL;
 
     if ( iNotifyArray )
         {
@@ -424,13 +440,10 @@
     iFsSession.Close();
 
     iMobileUssdMessaging.Close();
-
-    delete iMeQuHeaderText;
-    iMeQuHeaderText = NULL;
     
     delete iMoAckCallback;
 
-    _DPRINT( 4, "PhSrv.~CPhSrvUssdManager.end" );       // debug print
+    _DPRINT( 4, "PhSrv.~CPhSrvUssdManager.end" );
     }
 
 
@@ -443,7 +456,10 @@
 //
 void CPhSrvUssdManager::ConstructL( MPhSrvPhoneInterface& aPhoneInterface )
     {
-    _DPRINT( 4, "PhSrv.ConstructL.Start" );       // debug print
+    _DPRINT( 4, "PhSrv.ConstructL.Start" );
+    iTextResolver = HbTextResolverSymbian::Init( 
+        KUssdLocFilename, KUssdLocPath );
+    _DDPRINT( 4, "PhSrv.ConstructL.loc:", iTextResolver );
     User::LeaveIfError( iTimer.CreateLocal() );
 
     User::LeaveIfError( iMobileUssdMessaging.Open( aPhoneInterface.PhSrvMobilePhone() ) );
@@ -479,14 +495,10 @@
 
     User::LeaveIfError( GetTelephonyVariantData() );
 
-    iMeQuHeaderText = iResourceManager.ReadResourceLC(
-        R_PHSRV_USSD_MESQUERY_MESSAGE);
-    CleanupStack::Pop( iMeQuHeaderText );
-
     _DDPRINT( 4, "PhSrv.ConstructL.iSatCanceled ", iSatCanceled );
     _DDPRINT( 4, "PhSrv.ConstructL.iShowDone ", iShowDone );
     iNotifyArray = new( ELeave ) CDesCArrayFlat( KPhrUssdNotifyArraySize );
-    _DPRINT( 4, "PhSrv.ConstructL.End" );       // debug print
+    _DPRINT( 4, "PhSrv.ConstructL.End" );
     }
 
 
@@ -501,20 +513,20 @@
     {
     // If SendHandler is not created, first check that MO Ussd
     // is supported by the TSY.
-    _DPRINT( 4, "PhSrv.SendHandlerL.Start" );       // debug print
+    _DPRINT( 4, "PhSrv.SendHandlerL.Start" );
     if ( iUssdSendHandler == NULL )
         {
-        _DPRINT( 4, "PhSrv.SendHandlerL.iUssdSendHandler.NULL" );       // debug print
+        _DPRINT( 4, "PhSrv.SendHandlerL.iUssdSendHandler.NULL" );
         RMobileUssdMessaging::TMobileUssdCapsV1 caps;
         RMobileUssdMessaging::TMobileUssdCapsV1Pckg pckgCaps( caps );
         User::LeaveIfError( iMobileUssdMessaging.GetCaps( pckgCaps ) );
-        _DPRINT( 4, "PhSrv.SendHandlerL.iMobileUssdMessaging.GetCaps" );       // debug print
+        _DPRINT( 4, "PhSrv.SendHandlerL.iMobileUssdMessaging.GetCaps" );
 
         if ( ( caps.iUssdTypes & RMobileUssdMessaging::KCapsMOUssd ) == 0 ||
             ( caps.iUssdFormat & RMobileUssdMessaging::KCapsPackedString )
             == 0 )
             {
-            _DPRINT( 4, "PhSrv.SendHandlerL.KErrNotSupported" );       // debug print
+            _DPRINT( 4, "PhSrv.SendHandlerL.KErrNotSupported" );
             User::Leave( KErrNotSupported );
             }
 
@@ -524,7 +536,7 @@
                 iMobileUssdMessaging,
                 *iPhoneInterface );
         }
-    _DPRINT( 4, "PhSrv.SendHandlerL.End" );       // debug print
+    _DPRINT( 4, "PhSrv.SendHandlerL.End" );
     return *iUssdSendHandler;
     }
 
@@ -541,7 +553,7 @@
     RMobileUssdMessaging::TMobileUssdAttributesV1& aMsgAttribute,
     MPhSrvUssdMessageSentObserver& aObserver )
     {
-    _DPRINT( 4, "PhSrv.SendUssdL.Start ######" );           // debug print
+    _DPRINT( 4, "PhSrv.SendUssdL.Start ######" );
     _DPRINT_FLAGS();
     
     if ( iObserver && iNetworkReleased ) 
@@ -549,7 +561,7 @@
         // Network has been released but the previous send request is still alive.
         // Cancel the pervious send operation, complete the old request with error
         // and clean up the pointer.
-        _DPRINT( 4, "PhSrv.SendUssdL.Error.Complete.Existing" );           // debug print
+        _DPRINT( 4, "PhSrv.SendUssdL.Error.Complete.Existing" );
         if ( iUssdSendHandler ) 
             {
             iUssdSendHandler->Cancel();
@@ -560,7 +572,7 @@
     
     if ( iObserver || iSendingAck )
         {
-        _DPRINT( 4, "PhSrv.SendUssdL.KErrInUse" );           // debug print
+        _DPRINT( 4, "PhSrv.SendUssdL.KErrInUse" );
         // Other client is using the service.
         User::Leave( KErrInUse );
         }
@@ -568,7 +580,7 @@
     // Check that message type is set
     if( ( aMsgAttribute.iFlags & RMobileUssdMessaging::KUssdMessageType )
         == 0 )
-        _DPRINT( 4, "PhSrv.SendUssdL.KUssdMessageType.0" );       // debug print
+        _DPRINT( 4, "PhSrv.SendUssdL.KUssdMessageType.0" );
         {
         // Mesasge type not set -> Set it.
         aMsgAttribute.iFlags |= RMobileUssdMessaging::KUssdMessageType;
@@ -588,7 +600,7 @@
     RMobileUssdMessaging::TMobileUssdAttributesV1Pckg attribs( aMsgAttribute );
     iShowDone = ETrue;
     _DPRINT( 4, "PhSrv.SendUssdL.iShowDone.ETrue" );
-    _DPRINT( 4, "PhSrv.SendUssdL.Send" );           // debug print
+    _DPRINT( 4, "PhSrv.SendUssdL.Send" );
     SendHandlerL().SendUssdL( aMsgData , attribs );
     iObserver = &aObserver;
     // Not closing nor closed anymore
@@ -603,7 +615,7 @@
         _DPRINT( 4, "PhSrv.SendUssdCancel.TimerStop" );   // debug print
         iUssdReplyTimer->Stop();
         }
-    _DPRINT( 4, "PhSrv.SendUssdL.End" );           // debug print
+    _DPRINT( 4, "PhSrv.SendUssdL.End" );
     }
 
 // -----------------------------------------------------------------------------
@@ -623,7 +635,7 @@
 //
 void CPhSrvUssdManager::SendUssdCancel()
     {
-    _DPRINT( 4, "PhSrv.SendUssdCancel.Start #######" );           // debug print
+    _DPRINT( 4, "PhSrv.SendUssdCancel.Start #######" );
 
     // Ack sending should not be canceled unless it's about terminating
     // the whole session
@@ -642,7 +654,7 @@
     iObserver = NULL;
     
     SetActiveIfPendingNotificationsExist();
-    _DPRINT( 4, "PhSrv.SendUssdCancel.End" );           // debug print
+    _DPRINT( 4, "PhSrv.SendUssdCancel.End" );
     }
 
 // -----------------------------------------------------------------------------
@@ -681,14 +693,14 @@
     // complete SAT if needed
     if ( aError < KErrNone )
         {
-        // debug print
+ 
         _DPRINT( 4, "PhSrv.UssdNetworkObserverHandleSendEventL.CompleteSat" );
         CompleteSatL( NULL, aError );
         }
 
     if ( iObserver )
         {
-        // debug print
+ 
         _DPRINT( 4, "PhSrv.UssdNetworkObserverHandleSendEventL.Observer" );
 
         iObserver->UssdMessageSentObserverHandleResult( aError );
@@ -746,7 +758,7 @@
     if ( aError != KErrNone )
         {
         TurnLightsOn(); //Ensure lights on
-        // debug print
+ 
         _DPRINT( 4, "PhSrv.UssdNetworkObserverHandleReceivedEventL.ShErNote" );
         ShowErrorNoteL( aError );
         }
@@ -763,9 +775,6 @@
 
 // -----------------------------------------------------------------------------
 // CPhSrvUssdManager::UssdHandleReceivedEventL
-//
-//
-//
 // -----------------------------------------------------------------------------
 //
 void CPhSrvUssdManager::UssdHandleReceivedEventL(
@@ -779,7 +788,7 @@
     // 2. Complete Send with some positive value.
     if ( iObserver )
         {
-        // debug print
+ 
         _DPRINT( 4, "PhSrv.UssdHandleReceivedEventL.Observer" );
         UssdNetworkObserverHandleSendEventL( 1 ); // some positive value
         }
@@ -813,7 +822,7 @@
         {
         if ( !ShowNotesL() )
             {
-            // debug print
+     
             _DPRINT( 4,
                 "PhSrv.UssdHandleReceivedEventL.SAtReturn" );
             return;
@@ -824,13 +833,13 @@
     if ( !iDecodedMessage.Length() )
         {
         TurnLightsOn(); //Ensure lights on
-        // debug print
+ 
         _DPRINT( 4,
             "PhSrv.UssdHandleReceivedEventL.EmptyString" );
         
         ShowDoneNoteL();
 
-        // debug print
+ 
         _DPRINT( 4,
             "PhSrv.UssdHandleReceivedEventL.EmptyString.OK" );
         }
@@ -849,6 +858,25 @@
             iAcksToBeSent ++;
             }
         
+        if ( !iDeviceDialog  ){
+            iDeviceDialog = CHbDeviceMessageBoxSymbian::NewL(
+                CHbDeviceMessageBoxSymbian::EInformation );
+            iDeviceDialog->SetObserver( this );
+            iDeviceDialog->SetTimeout( KPhSrvUssdTimeout );
+            iDeviceDialog->SetDismissPolicy ( KPhSrvUssdPopupDismissPolicy );
+            
+            // Show left key with empty string accoring to ui concept
+            iDeviceDialog->SetButton( 
+                CHbDeviceMessageBoxSymbian::EAcceptButton, EFalse );
+            // Show Exit Key always
+            iDeviceDialog->SetButton( 
+                CHbDeviceMessageBoxSymbian::ERejectButton, ETrue );
+            iDeviceDialog->SetButtonTextL(
+                CHbDeviceMessageBoxSymbian::ERejectButton, 
+                LoadDefaultString( KUssdExit ) );
+            _DPRINT( 4, "PhSrv.UssdHandleReceivedEventL.Exit" );             
+        }
+      
         if ( iNotifyMessage || iMsgTypeReply )
             {
             //This is for reply message in notifyarray
@@ -858,12 +886,12 @@
             //Notify added to array
             iNotifyArray->AppendL( iReceivedMessage );
 
-            _DPRINT( 4, "PhSrv.UssdHandleReceivedEventL.AppendL" );       // debug print
-            UpdateNotifyMessage();
+            _DPRINT( 4, "PhSrv.UssdHandleReceivedEventL.AppendL" );
+            UpdateNotifyMessageL();
 
             if ( !iSendRelease && NotifyCount() <= 1 )
                 {
-                _DPRINT( 4, "PhSrv.UssdHandleReceivedEventL.!SendRelease.Cancel" );       // debug print
+                _DPRINT( 4, "PhSrv.UssdHandleReceivedEventL.!SendRelease.Cancel" );
                 Cancel();
                 }
             }
@@ -871,35 +899,44 @@
             {
             // New message deletes old message, i.e. Cancel existing query.
             Cancel();
-            _DPRINT( 4, "PhSrv.UssdHandleReceivedEventL.NewAnswerable" );       // debug print
+            _DPRINT( 4, "PhSrv.UssdHandleReceivedEventL.NewAnswerable" );
             }
 
-        if ( !iGlobalMsgQuery )
-            {
-            iGlobalMsgQuery = CAknGlobalMsgQuery::NewL();
-            }
-
-        // Delay after message query so that application execution order will
-        // be correct.
-        iGlobalMsgQuery->SetExitDelay( KPhSrvUssdNoteExitPeriod );
-
-        TInt softkeys = R_AVKON_SOFTKEYS_USSD_ANSWER_EXIT__ANSWER;
+        // Remove Reply key
         if( !( aMsgAttributes.iFlags & RMobileUssdMessaging::KUssdMessageType )
              || aMsgAttributes.iType != RMobileUssdMessaging::EUssdMTRequest )
             {
-            softkeys = R_AVKON_SOFTKEYS_EXIT;
+            // Remove Answer key
+            iDeviceDialog->SetButton( 
+                CHbDeviceMessageBoxSymbian::EAcceptButton, EFalse );
+            _DPRINT( 4, "PhSrv.UssdHandleReceivedEventL.NoAnswer" ); 
+            }
+        // Show Reply key
+        else
+            {
+            iDeviceDialog->SetButton( 
+                CHbDeviceMessageBoxSymbian::EAcceptButton, ETrue );              
+            iDeviceDialog->SetButtonTextL(
+                CHbDeviceMessageBoxSymbian::EAcceptButton, 
+                LoadDefaultString( KUssdReply ) ); 
+            _DPRINT( 4, "PhSrv.UssdHandleReceivedEventL.WithAnswer" ); 
             }
 
-        // Set timer that lauches Global MessageQuery after time interval.
-        iSoftkeys = softkeys;
-
-        // debug print
+ 
         _DPRINT( 4,
             "PhSrv.UssdHandleReceivedEventL.String.Middle" );
 
         // Play the USSD tone if needed. Logically should be in RunL, but here
         // to give better balancing with voice and visible message.
-
+        // <-- QT PHONE START-->
+        /*
+        if ( IsTelephonyFeatureSupported( KTelephonyLVFlagUssdTone ) )
+            {
+            _DPRINT( 4, "PhSrv.UssdHandleReceivedEventL.PlayTone" );
+            PlayUssdTone();
+            }
+        */
+            // <-- QT PHONE END-->
         // Launch the new message query
         if ( !IsActive() )
             {
@@ -967,7 +1004,7 @@
         if ( !iSatCanceled )
             {
             CompleteSatL(&iReceivedMessage, aError );
-            _DPRINT( 4, "PhSrv.UssdNetworkObserverHandleNotifyNWReleaseL.CompleteSat" );       // debug print
+            _DPRINT( 4, "PhSrv.UssdNetworkObserverHandleNotifyNWReleaseL.CompleteSat" );
             }
         }
     if ( iUssdReplyTimer && iUssdReplyTimer->IsTimerActive() )
@@ -1004,11 +1041,8 @@
     {
     _DDPRINT( 4, "PhSrv.ShowDoneNoteL.iShowDone", iShowDone );
     // Show global confirmation note "Done"
-    HBufC* noteText = iResourceManager.ReadResourceLC( R_PHSRV_TEXT_DONE );
-    CAknGlobalNote* note = CAknGlobalNote::NewLC();
-    note->ShowNoteL( EAknGlobalConfirmationNote, *noteText );
-    CleanupStack::PopAndDestroy( note );
-    CleanupStack::PopAndDestroy( noteText );
+    CHbDeviceMessageBoxSymbian::InformationL(
+        LoadDefaultString( KUssdDone ) );
     iShowDone = EFalse;
     }
 
@@ -1026,14 +1060,16 @@
         return;
         }
 
+    // Show specific error message
     CTextResolver* textResolver = CTextResolver::NewLC();
-
     HBufC* buffer = textResolver->ResolveErrorString( aError ).AllocLC();
 
-    CAknGlobalNote* note = CAknGlobalNote::NewLC();
-    note->ShowNoteL( EAknGlobalErrorNote, *buffer );
+    CHbDeviceMessageBoxSymbian::InformationL( buffer ->Des() );
 
-    CleanupStack::PopAndDestroy( 3 ); // note, buffer, textResolver
+    CleanupStack::PopAndDestroy( buffer ); 
+    CleanupStack::PopAndDestroy( textResolver ); 
+    
+    
     _DPRINT( 4, "PhSrv.ShowErrorNoteL.End" );
     return;
     }
@@ -1226,7 +1262,7 @@
 
     if ( aError == KErrNone &&
          IsActive() &&
-         iGlobalMsgQuery )
+         iDeviceDialog ) 
         {
         Cancel();
         // Terminates USSD session.
@@ -1242,12 +1278,88 @@
 
 
 // -----------------------------------------------------------------------------
+// CPhSrvUssdManager::MessageBoxClosed
+// -----------------------------------------------------------------------------
+//       
+void CPhSrvUssdManager::MessageBoxClosed(
+    const CHbDeviceMessageBoxSymbian* aMessageBox,
+    CHbDeviceMessageBoxSymbian::TButtonId aButton)
+    {
+    _DPRINT( 4, "PhSrv.MsgClose.Start" );
+    // ussd device dialog observer callback function
+    TPtrC leftBtn = aMessageBox->ButtonText( 
+        CHbDeviceMessageBoxSymbian::EAcceptButton );
+    TPtrC rightBtn = aMessageBox->ButtonText( 
+        CHbDeviceMessageBoxSymbian::ERejectButton );    
+
+    TInt err = KErrNone;
+    // Click Yes on Confirmation note (Yes, No) 
+    if ( !leftBtn.Compare( 
+          LoadDefaultString( KUssdYes ) ) && 
+          ( CHbDeviceMessageBoxSymbian::EAcceptButton == aButton ) )
+        {
+        _DPRINT( 4, "PhSrv.MsgClose.SK.Yes" );
+        iClearArray = EFalse;
+        iNotifyArray->Reset();
+        TryCloseSession();
+        }
+    // Click "No" on Confirmation note (Yes, No) 
+    else if ( !rightBtn.Compare( 
+               LoadDefaultString( KUssdNo ) ) && 
+              ( CHbDeviceMessageBoxSymbian::ERejectButton == aButton ) )
+        {
+        _DPRINT( 4, "PhSrv.MsgClose.SK.No" );
+        iClearArray = EFalse;
+        iNotifyMessage = ETrue; // for removing the yes/no query
+        CheckArray();
+        TryCloseSession();
+        }
+    // Click "Next" on Notification note (Next, Exit) 
+    else if ( !leftBtn.Compare( 
+               LoadDefaultString( KUssdNext ) ) && 
+               ( CHbDeviceMessageBoxSymbian::EAcceptButton == aButton ) )
+        {
+        _DPRINT( 4, "PhSrv.MsgClose.SK.Next" ); 
+        CheckArray();
+        TryCloseSession();
+        }
+    // Click "Exit" on Notification note (Next, Exit or only Exit) 
+    else if ( !rightBtn.Compare( 
+               LoadDefaultString( KUssdExit ) ) && 
+               ( CHbDeviceMessageBoxSymbian::ERejectButton == aButton ) )
+        {
+        TRAP( err, ClearArrayL() );
+        _DDPRINT( 4, "PhSrv.MsgClose.SK.Clear.%d", err );
+        TryCloseSession();
+        _DPRINT( 4, "PhSrv.MsgClose.SK.Exit" ); 
+        }
+    // Click "Reply" on Message note (Reply, Exit) 
+    else if ( !leftBtn.Compare( 
+               LoadDefaultString( KUssdReply ) ) && 
+               ( CHbDeviceMessageBoxSymbian::EAcceptButton == aButton ) )
+        {
+        // Answer
+        iStartEditor = ETrue;
+        iShowDone = EFalse;
+        // Start the USSD editor now.
+        TRAP( err, RequestStartEditingL() );
+        _DDPRINT( 4, "PhSrv.MsgClose.RequestStartEditingL.%d", err );
+        }    
+    else 
+        {
+        _DPRINT( 4, "PhSrv.MsgClose.SK.Default" ); 
+        }
+  
+    _DPRINT( 4, "PhSrv.MsgClose.End" ); 
+    }
+
+// -----------------------------------------------------------------------------
 // CPhSrvUssdManager::RunL
 // -----------------------------------------------------------------------------
 //
 void CPhSrvUssdManager::RunL()
     {
-    _DPRINT( 4, "PhSrv.RunL.Start" );           // debug print
+    _DPRINT( 4, "PhSrv.RunL.Start" );    
 
     ProcessMoAcksL();
     
@@ -1261,73 +1373,7 @@
     else
         {
         iStartEditor = EFalse;
-        
-        TInt key = iStatus.Int();
-        if ( key == EEikBidOk ) // OK key
-            {
-            if ( NetworkWaitingForAnAnswer() )
-                {
-                key = EAknSoftkeyShow;
-                }
-            else
-                {
-                key = EAknSoftkeyExit;
-                }
-            }
-
-        switch( key )
-            {
-            case EAknSoftkeyShow:
-                {
-                // Answer
-                iStartEditor = ETrue;
-                iShowDone = EFalse;
-                // Start the USSD editor now.
-                _DPRINT( 4, "PhSrv.RunL.RequestStartEditingL" ); // debug print
-                RequestStartEditingL();
-                break;
-                }
-            case EAknSoftkeyYes:
-                {
-                _DPRINT( 4, "PhSrv.RunL.SK.Yes" );
-                iClearArray = EFalse;
-                iNotifyArray->Reset();
-                TryCloseSession();
-                break;
-                }
-            case EAknSoftkeyCancel:
-                _DPRINT( 4, "PhSrv.RunL.SK.Cancel" ); 
-                if ( iHavePendingSatMessagePointer )
-                    {
-                    iSatCanceled = ETrue;
-                    CompleteSatL( &iReceivedMessage, KErrCancel );
-                    _DPRINT( 4, "PhSrv.RunL.CompleteSatL" );
-                    }
-                // fall through.
-            case EAknSoftkeyExit:
-                _DPRINT( 4, "PhSrv.RunL.SK.Exit" ); 
-                ClearArrayL();
-                TryCloseSession();
-                break;
-            case EAknSoftkeyBack:
-                _DPRINT( 4, "PhSrv.RunL.SK.Back" ); 
-                ClearArrayL();
-                TryCloseSession();
-                break;
-            case EAknSoftkeyNo:
-                _DPRINT( 4, "PhSrv.RunL.SK.No" );
-                iClearArray = EFalse;
-                iNotifyMessage = ETrue; // for removing the yes/no query
-                // fall through.
-            case EAknSoftkeyNext:
-                _DPRINT( 4, "PhSrv.RunL.SK.Next" ); 
-                CheckArray();
-                TryCloseSession();
-                break;
-            default:
-                _DPRINT( 4, "PhSrv.RunL.SK.Default" ); 
-                break;
-            }
+        // update device dialog
         _DPRINT( 4, "PhSrv.RunL.End" );     // debug print
         }
     }
@@ -1340,22 +1386,54 @@
     {
     _DPRINT( 4, "PhSrv.LGMQ.start" );
     _DPRINT_FLAGS();
+
     if ( iNotifyMessage )
         {
         _DDPRINT( 4, "PhSrv.LGMQ.NotifyMessage", iNotifyMessage );
         iNotifyMessage = ETrue;
         TInt count = NotifyCount();
+        //check softkey in avkon.rss 
         if ( count > 1 )
             {
-            iSoftkeys = R_AVKON_SOFTKEYS_NEXT_EXIT__NEXT;
+            // Next, Exit
+            iDeviceDialog->SetButton(
+                CHbDeviceMessageBoxSymbian::EAcceptButton, ETrue );            
+            iDeviceDialog->SetButtonTextL(
+                CHbDeviceMessageBoxSymbian::EAcceptButton, 
+                LoadDefaultString( KUssdNext ) );
+            iDeviceDialog->SetButton(
+                CHbDeviceMessageBoxSymbian::ERejectButton, ETrue );    
+            iDeviceDialog->SetButtonTextL(
+                CHbDeviceMessageBoxSymbian::ERejectButton, 
+                LoadDefaultString( KUssdExit ) );  
+            _DPRINT( 4, "PhSrv.LGMQ.Next&Exit" );
             }
         else
             {
-            iSoftkeys = R_AVKON_SOFTKEYS_EXIT;
+            // Only Exit
+            iDeviceDialog->SetButton(
+                CHbDeviceMessageBoxSymbian::EAcceptButton, EFalse ); 
+            iDeviceDialog->SetButton(
+                CHbDeviceMessageBoxSymbian::ERejectButton, ETrue );               
+            iDeviceDialog->SetButtonTextL(
+                CHbDeviceMessageBoxSymbian::ERejectButton, 
+                LoadDefaultString( KUssdExit ) );   
+            _DPRINT( 4, "PhSrv.LGMQ.onlyExit" );
             }
         if ( iClearArray )
             {
-            iSoftkeys = R_AVKON_SOFTKEYS_YES_NO;
+            // Yes, No
+            iDeviceDialog->SetButton(
+                CHbDeviceMessageBoxSymbian::EAcceptButton, ETrue );               
+            iDeviceDialog->SetButtonTextL(
+                CHbDeviceMessageBoxSymbian::EAcceptButton, 
+                LoadDefaultString( KUssdYes ) );
+            iDeviceDialog->SetButton(
+                CHbDeviceMessageBoxSymbian::ERejectButton, ETrue );              
+            iDeviceDialog->SetButtonTextL(
+                CHbDeviceMessageBoxSymbian::ERejectButton, 
+                LoadDefaultString( KUssdNo ) );  
+            _DPRINT( 4, "PhSrv.LGMQ.Yes&No" );
             }
         iReceivedMessage.Zero();
         iReceivedMessage = (*iNotifyArray)[0];
@@ -1364,11 +1442,27 @@
 
     _DPRINT( 4, "PhSrv.LGMQ.ShMsgQuery" ); // debug print
     // Launch Global MessageQuery as requested.
-    iGlobalMsgQuery->ShowMsgQueryL(iStatus, iReceivedMessage, iSoftkeys,
-            *iMeQuHeaderText, KNullDesC);
-    _DPRINT( 4, "PhSrv.LGMQ.SetActive" );
-    SetActive();
+    // Dialog not support header text, this code is only 
+    // for testing, not final solution.
+    TInt receiveLength = iReceivedMessage.Length();
+    _DDPRINT( 4, "PhSrv.LGMQ.ShMsgQuery.MsgLength", receiveLength ); 
+    
+    TInt titleLength = LoadDefaultString( KUssdTitle ).Length();
+    _DDPRINT( 4, "PhSrv.LGMQ.ShMsgQuery.TilteLength", titleLength );
+    
+    TInt length = receiveLength + titleLength;
+    _DDPRINT( 4, "PhSrv.LGMQ.ShMsgQuery.TotalLength", length );    
+        
+    HBufC* titleAndText = HBufC::NewLC( length );
+    titleAndText->Des().Append( LoadDefaultString( KUssdTitle ) );
+    titleAndText->Des().Append( iReceivedMessage );
+    iDeviceDialog->SetTextL( titleAndText->Des() );
+    CleanupStack::Pop( titleAndText );
+    
+    iDeviceDialog->Close();
+    iDeviceDialog->ShowL();
     iShowDone = EFalse;
+   
     // Do nothing else in RunL this time.
     _DPRINT( 4, "PhSrv.LGMQ.ShMsgQuery.ret" ); // debug print
     }
@@ -1523,11 +1617,9 @@
         else
             {
             iReceivedMessage.Zero();
-            HBufC* unreadText = iResourceManager.ReadResourceLC( R_PHSRV_TEXT_UNREAD );
-            TPtr pMessage( unreadText->Des() );
-            iReceivedMessage.Append( pMessage );
+            iReceivedMessage.Append( 
+                LoadDefaultString( KUssdConfirm ) );
             iNotifyArray->InsertL( 0, iReceivedMessage );
-            CleanupStack::PopAndDestroy( unreadText );
             iLaunchGMQ = ETrue;
             iNotifyMessage = ETrue;
             _DPRINT( 4, "PhSrv.ClearArrayL.iNotifyMessage.ETrue" );
@@ -1545,24 +1637,40 @@
 // CPhSrvUssdManager::NotifyCount()
 // -----------------------------------------------------------------------------
 //
-  TInt CPhSrvUssdManager:: NotifyCount()
-  {
-  return iNotifyArray->Count();
-  }
+TInt CPhSrvUssdManager:: NotifyCount()
+{
+    TInt count = iNotifyArray->Count();
+    _DDPRINT( 4, "PhSrv.NotifyCount:", count );     // debug print
+    return count;
+}
 
-  // -----------------------------------------------------------------------------
-// CPhSrvUssdManager::UpdateNotifyMessage()
+// -----------------------------------------------------------------------------
+// CPhSrvUssdManager::UpdateNotifyMessageL()
 // -----------------------------------------------------------------------------
 //
-  void CPhSrvUssdManager:: UpdateNotifyMessage()
+  void CPhSrvUssdManager:: UpdateNotifyMessageL()
     {
-    _DDPRINT( 4, "PhSrv.UpdateNotifyMessage.Start, clear: ", iClearArray );     // debug print
+    _DDPRINT( 4, "PhSrv.UpdateNotifyMessageL.Start, clear: ", iClearArray );     // debug print
+
+    // Show left softkey - "Next"
     if (NotifyCount() > 1 && !iClearArray )
         {
-        _DPRINT( 4, "PhSrv.UpdateNotifyMessage" );     // debug print
-        iGlobalMsgQuery->UpdateMsgQuery( R_AVKON_SOFTKEYS_NEXT_EXIT__NEXT );
+        _DPRINT( 4, "PhSrv.UpdateNotifyMessageL" );     // debug print
+        iDeviceDialog->SetButton( 
+            CHbDeviceMessageBoxSymbian::EAcceptButton, ETrue ); 
+        iDeviceDialog->SetButtonTextL(
+            CHbDeviceMessageBoxSymbian::EAcceptButton, 
+            LoadDefaultString( KUssdNext ) );
         }
-    _DPRINT( 4, "PhSrv.UpdateNotifyMessage.End" );     // debug print
+    // Remove left softkey
+    else
+        {
+        iDeviceDialog->SetButton( 
+                    CHbDeviceMessageBoxSymbian::EAcceptButton, EFalse );         
+        }
+    iDeviceDialog->UpdateL();        
+    
+    _DPRINT( 4, "PhSrv.UpdateNotifyMessageL.End" );     // debug print
     }
 
 // -----------------------------------------------------------------------------
@@ -1574,11 +1682,12 @@
     _DPRINT( 4, "PhSrv.DoCancel.Start" ); // debug print
     iTimer.Cancel();
     iLaunchGMQ = EFalse;
-
-    if ( iGlobalMsgQuery )
+    if ( iDeviceDialog )
         {
         _DPRINT( 4, "PhSrv.DoCancel" ); // debug print
-        iGlobalMsgQuery->CancelMsgQuery();
+        iDeviceDialog->Close();
+        delete iDeviceDialog;
+        iDeviceDialog = NULL;
         }
     _DPRINT( 4, "PhSrv.DoCancel.End" ); // debug print
     }
@@ -1647,6 +1756,16 @@
             CleanupStack::PopAndDestroy( apaCommandLine );
             }
         CleanupStack::PopAndDestroy(); // apaLsSession
+        
+        // bring the ussd editor to foreground, only for testing
+        TApaTaskList tasklist( wsSession );
+        TApaTask task = tasklist.FindApp( TUid::Uid( KPhSrvUssdAppUID ) );
+        if ( task.Exists() )
+            {
+            _DPRINT( 4, "PhSrv.UssdM.RequestStartEditingL.task.BringToForeground" );
+            task.BringToForeground();
+            }
+        // bring the ussd editor to foreground, only for testing
         }
     CleanupStack::PopAndDestroy(); // wsSession
 
@@ -1685,7 +1804,7 @@
         {
         if ( iUssdReplyTimer->IsTimerActive() )
             {
-            // debug print
+     
             _DPRINT( 4, "PhSrv.UssdM.InfUssdAppTerminatingL.timer" );
 
             // Read the information what is the reason
@@ -1696,14 +1815,14 @@
                 0,
                 exitReasonPckg );
 
-            // debug print
+     
             _DPRINT( 4, "PhSrv.UssdM.InfUssdAppTerminatingL.timer2" );
 
             // If reason was the completion of send operation, the USSD
             // session is not canceled, otherwise it is canceled.
             if ( exitReason != EPhCltSendCompleted )
                 {
-                // debug print
+         
                 _DPRINT( 4, "PhSrv.UssdM.InfUssdAppTerminatingL.SendRelease" );
                 CloseSession();
                 }
@@ -1771,7 +1890,7 @@
         }
     else
         {
-        _DPRINT( 4, "PhSrv.InformStartSAT.Set" );           // debug print
+        _DPRINT( 4, "PhSrv.InformStartSAT.Set" );    
 
         // There was not pending SAT message
         iHavePendingSatMessagePointer = ETrue;
@@ -1789,7 +1908,7 @@
 //
 void CPhSrvUssdManager::InformStopSAT()
     {
-    _DPRINT( 4, "PhSrv.InformStopSAT.Start" );               // debug print
+    _DPRINT( 4, "PhSrv.InformStopSAT.Start" );        
 
     // Do the actions only if there is pending SAT message.
     if ( iHavePendingSatMessagePointer )
@@ -1802,7 +1921,7 @@
             }
         iHavePendingSatMessagePointer = EFalse;
         }
-    _DPRINT( 4, "PhSrv.InformStopSAT.End" );                 // debug print
+    _DPRINT( 4, "PhSrv.InformStopSAT.End" );          
     }
 
 // -----------------------------------------------------------------------------
@@ -1854,7 +1973,7 @@
     TDesC* aReceiveString,
     TInt aError )
     {
-    _DPRINT( 4, "PhSrv.CompleteSatL.Start" );                // debug print
+    _DPRINT( 4, "PhSrv.CompleteSatL.Start" );         
     if ( aReceiveString )
         {
         if ( aReceiveString->Length() )
@@ -1863,7 +1982,7 @@
             // copy the received string to client side.
             if ( iPendingSatMessagePointer.Int1() < aReceiveString->Length() )
                 {
-                // debug print
+         
                 _DPRINT( 4, "PhSrv.CompleteSatL.recString.LengthError" );
                 if ( !iPendingSatMessagePointer.IsNull() )
                     {
@@ -1887,7 +2006,7 @@
             }
         }
         }
-    _DPRINT( 4, "PhSrv.CompleteSatL.Middle" );           // debug print
+    _DPRINT( 4, "PhSrv.CompleteSatL.Middle" );    
     if ( !iPendingSatMessagePointer.IsNull() )
         {
         if ( aReceiveString && !iSatCanceled )
@@ -1904,7 +2023,7 @@
 
     iHavePendingSatMessagePointer = EFalse;
 
-    _DPRINT( 4, "PhSrv.CompleteSatL.End" );           // debug print
+    _DPRINT( 4, "PhSrv.CompleteSatL.End" );    
     }
 
 
@@ -1927,7 +2046,7 @@
 //
 TInt CPhSrvUssdManager::PlayUssdTone()
     {
-    _DPRINT( 4, "PhSrv.UssdM.PlayTone.start" );           // debug print
+    _DPRINT( 4, "PhSrv.UssdM.PlayTone.start" );    
 
     TInt err = KErrNone;
 // <-- QT PHONE  START-->
@@ -1952,6 +2071,28 @@
     {
     _DPRINT( 4, "PhSrv.UssdM.GetTelephonyVariantData.Start" );
     TInt err = KErrNone;
+// <-- QT PHONE START-->
+/*
+    // Variation data should be unchangable during run-time,
+    // therefore, if once succesfully read, later reads are
+    // not allowed.
+    if ( iVariantReadOnlyValues == KPhSrvDefaultValue )
+        {
+        CRepository* cenRepSession = NULL;
+        TRAP ( err ,
+               cenRepSession = CRepository::NewL( KCRUidTelVariation ) );
+        if ( err == KErrNone )
+            {
+            err = cenRepSession->Get( KTelVariationFlags,
+                                   iVariantReadOnlyValues );
+            }
+        delete cenRepSession;
+        }
+
+    _DDPRINT( 4, "PhSrv.UssdM.variant", iVariantReadOnlyValues ); // debug print
+    _DPRINT( 4, "PhSrv.UssdM.GetTelephonyVariantData.End" );
+    */
+// <-- QT PHONE END-->
     return err;
     }
 
@@ -1963,7 +2104,7 @@
 //
 void CPhSrvUssdManager::SendMoAcknowledgementL()
     {
-    _DPRINT( 4, "PhSrv.SendMoAckL.Start" );           // debug print
+    _DPRINT( 4, "PhSrv.SendMoAckL.Start" );    
 
     // Acknowledge MT USSD message.
     RMobileUssdMessaging::TMobileUssdAttributesV1 msgAttribs;
@@ -1981,7 +2122,7 @@
     RMobileUssdMessaging::TMobileUssdAttributesV1Pckg attribs = msgAttribs;
     SendHandlerL().SendUssdL( KNullDesC8() , attribs );
 
-    _DPRINT( 4, "PhSrv.SendMoAckL.End" );           // debug print
+    _DPRINT( 4, "PhSrv.SendMoAckL.End" );    
     }
 
 // -----------------------------------------------------------------------------
@@ -1991,20 +2132,51 @@
 //
 void CPhSrvUssdManager::TurnLightsOn()
     {
-     _DPRINT( 4, "PhSrv.TurnLightsOn Start" );           // debug print
+    _DPRINT( 4, "PhSrv.TurnLightsOn.Start" );    
 
 
-         // Change the bit on and off. SysAp will detect that
+     // Change the bit on and off. SysAp will detect that
      // the lights should be switched on for the specified time.
      //
-         RProperty::Set(KPSUidCoreApplicationUIs, KLightsControl, ELightsOn);
-         TInt err = RProperty::Set(KPSUidCoreApplicationUIs, KLightsControl, ELightsOff);
+     RProperty::Set(KPSUidCoreApplicationUIs, KLightsControl, ELightsOn);
+     TInt err = RProperty::Set(KPSUidCoreApplicationUIs, KLightsControl, ELightsOff);
+
+     if ( err != KErrNone )
+         {
+         _DDPRINT( 4,"PhSrv.TurnLightsOn.Error: ",err );// debug print
+         }
+
+    _DPRINT( 4, "PhSrv.TurnLightsOn.End" );    
+    }
 
-         if ( err != KErrNone )
-                 {
-                 _DDPRINT( 4,"PhSrv.TurnLightsOn.Error: ",err );// debug print
-                 }
+// -----------------------------------------------------------------------------
+// CPhSrvUssdManager::LoadDefaultString
+// -----------------------------------------------------------------------------
+//
+const TPtrC CPhSrvUssdManager::LoadDefaultString( const TDesC& aText )
+    {
+    _DPRINT( 4, "PhSrv.LoadDefaultString.Start" );
+    
+    if ( iTextBuffer )
+        {
+        delete iTextBuffer;
+        iTextBuffer = NULL;
+        _DPRINT( 4, "PhSrv.LoadDefaultString.Clear" );
+        }
+    TInt err = KErrNone;
+    TPtrC ptr( aText );
+    if ( iTextResolver && ptr.Length() )
+        {
+        TRAP( err, iTextBuffer = HbTextResolverSymbian::LoadL( ptr ) );
+        _DDPRINT( 4, "PhSrv.LoadDefaultString.LoadL.%d", err );
+        if ( iTextBuffer )
+            {
+            ptr.Set( iTextBuffer->Des() );   
+            _DPRINT( 4, "PhSrv.LoadDefaultString.Set" );
+            }
+        }    
+    _DPRINT( 4, "PhSrv.LoadDefaultString.End" );
+    return ptr;
+    }
 
-     _DPRINT( 4, "PhSrv.TurnLightsOn.End" );           // debug print
-    }
 // End of File
--- a/phonecmdhandler/phonecmdhnlr/group/PhoneCmdHandler.mmp	Fri Apr 16 15:31:58 2010 +0300
+++ b/phonecmdhandler/phonecmdhnlr/group/PhoneCmdHandler.mmp	Mon May 03 13:01:45 2010 +0300
@@ -27,19 +27,19 @@
 
 SOURCEPATH      ../src
 
-SOURCE      PhoneHandler.cpp 
-SOURCE      PhoneHandlerControl.cpp 
-SOURCE      PhoneHandlerActive.cpp 
-SOURCE      PhoneHandlerCallBase.cpp 
-SOURCE      PhoneHandlerAnswerCall.cpp 
-SOURCE      PhoneHandlerEndCall.cpp 
-SOURCE      PhoneHandlerDialCall.cpp 
-SOURCE      PhoneHandlerVoiceDial.cpp 
-SOURCE      PhoneHandlerRedial.cpp 
-SOURCE      PhoneHandlerMultipartyCall.cpp 
-SOURCE      PhoneHandlerDTMF.cpp 
-SOURCE      PhoneHandlerResponse.cpp 
-SOURCE      PhoneHandlerCallState.cpp 
+SOURCE      phonehandler.cpp 
+SOURCE      phonehandlercontrol.cpp 
+SOURCE      phonehandleractive.cpp 
+SOURCE      phonehandlercallbase.cpp 
+SOURCE      phonehandleranswercall.cpp 
+SOURCE      phonehandlerendcall.cpp 
+SOURCE      phonehandlerdialcall.cpp 
+SOURCE      phonehandlervoicedial.cpp 
+SOURCE      phonehandlerredial.cpp 
+SOURCE      phonehandlermultipartycall.cpp 
+SOURCE      phonehandlerdtmf.cpp 
+SOURCE      phonehandlerresponse.cpp 
+SOURCE      phonehandlercallstate.cpp 
 
 USERINCLUDE     ../inc 
 
--- a/phonecmdhandler/phonecmdhnlr/group/bld.inf	Fri Apr 16 15:31:58 2010 +0300
+++ b/phonecmdhandler/phonecmdhnlr/group/bld.inf	Mon May 03 13:01:45 2010 +0300
@@ -26,7 +26,7 @@
 ../rom/phonecmdhandler.iby CORE_MW_LAYER_IBY_EXPORT_PATH(phonecmdhandler.iby)
 
 PRJ_MMPFILES
-PhoneCmdHandler.mmp
+phonecmdhandler.mmp
 
 //  End of File  
 
--- a/phonecmdhandler/phonecmdhnlr/inc/PhoneHandlerControl.h	Fri Apr 16 15:31:58 2010 +0300
+++ b/phonecmdhandler/phonecmdhnlr/inc/PhoneHandlerControl.h	Mon May 03 13:01:45 2010 +0300
@@ -21,8 +21,8 @@
 
 //  INCLUDES
 #include "phonehandlerservice.h" 
-#include <remconextensionapi.h> 
-#include <remconcallhandlingtargetobserver.h> 
+#include <RemConExtensionApi.h> 
+#include <RemConCallHandlingTargetObserver.h> 
 #include <e32base.h>
 #include <phclttypes.h> 
 #include <e32property.h> 
--- a/phonesrv.pro	Fri Apr 16 15:31:58 2010 +0300
+++ b/phonesrv.pro	Mon May 03 13:01:45 2010 +0300
@@ -24,7 +24,7 @@
 SUBDIRS += telutils/dialpad
 SUBDIRS += vmbx/vmbxcpplugin
 SUBDIRS += vmbx/vmbxengine
-SUBDIRS += cellular/SSSettings/xqbindings/sssettingswrapper
+SUBDIRS += cellular/sssettings/xqbindings/sssettingswrapper
 SUBDIRS += cellular/telephonysettings/xqbindings/psetwrapper
 #SUBDIRS += cbs/cbsui
 SUBDIRS += satui/satapp
--- a/phonesrv_plat/call_information_api/tsrc/run_auto_tests.bat	Fri Apr 16 15:31:58 2010 +0300
+++ b/phonesrv_plat/call_information_api/tsrc/run_auto_tests.bat	Mon May 03 13:01:45 2010 +0300
@@ -54,7 +54,7 @@
 set INSTRUMENT=TRUE
 set REMOVEINSTRUMENT=TRUE
 set DOMODULESTESTS=TRUE
-set ABLD_CALL=abld test build winscw udeb -keepgoing
+set SBS_CALL=sbs --config winscw_udeb.test --keepgoing BUILD
 set PATH_TO_DLL=\epoc32\release\winscw\udeb
 set PATH_TO_MOVE_DLL=\epoc32\release\winscw\udeb\z\sys\bin
 set PATH_TO_COVERAGE_DATA=\coverage_data
@@ -145,12 +145,11 @@
 
 pushd .
 call cd %1\group
-call bldmake bldfiles
-call abld test clean winscw udeb
+call sbs --config winscw_udeb.test --keepgoing CLEAN
 if [%INSTRUMENT%] EQU [TRUE] (
-call ctcwrap -n %PATH_TO_COVERAGE_DATA%\%1 -i d -C "EXCLUDE=*" -C "NO_EXCLUDE=%TESTED_SRC%" %ABLD_CALL%
+call ctcwrap -2comp -n %PATH_TO_COVERAGE_DATA%\%1 -i d -C "EXCLUDE=*" -C "NO_EXCLUDE=%TESTED_SRC%" "%SBS_CALL%"
 ) else (
-call %ABLD_CALL%
+call %SBS_CALL%
 )
 
 popd
--- a/phonesrv_plat/network_handling_engine_api/inc/CNWSession.h	Fri Apr 16 15:31:58 2010 +0300
+++ b/phonesrv_plat/network_handling_engine_api/inc/CNWSession.h	Mon May 03 13:01:45 2010 +0300
@@ -20,7 +20,7 @@
 #define CNWSESSION_H
 
 //  INCLUDES
-#include "NWHandlingEngine.h"
+#include "nwhandlingengine.h" 
 
 
 // CLASS DECLARATION
--- a/phonesrv_plat/network_handling_engine_api/inc/NWHandlingEngine.h	Fri Apr 16 15:31:58 2010 +0300
+++ b/phonesrv_plat/network_handling_engine_api/inc/NWHandlingEngine.h	Mon May 03 13:01:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-2004 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2002-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"
@@ -22,7 +22,8 @@
 
 //  INCLUDES
 #include <e32base.h>
-#include <RMmCustomAPI.h>
+#include <rmmcustomapi.h> 
+#include <etelpckt.h> // for RPacketService::TDynamicCapsFlags
 
 
 // CONSTANTS
@@ -187,6 +188,8 @@
 #ifdef RD_PHONE_NG
     TNWNetworkSelectionSetting iSelectionSetting;           // Contains a network selection setting manual/automatic etc.
 #endif // RD_PHONE_NG
+    RPacketService::TDynamicCapsFlags iDynamicCapsFlags;    // Dynamic packet data capabilities 
+                                                            // (used to hide alpha tag when CS registration is unsuccessful)
     };
 
 // CLASS DECLARATION
@@ -243,6 +246,9 @@
             ENWMessageCurrentHomeZoneMessage,
             // Message will be sent when cell info display changed
             ENWMessageNetworkIndicatorChange, 
+            // Message will be sent when dynamic packet data capabilities change
+            // (Used to hide alpha tag when CS registration is unsuccessful)
+            ENWMessageDynamicCapsChange,
 
             // CDMA SPECIFIC MESSAGES                       200 - 299
 
@@ -263,7 +269,9 @@
             // Fetching Network Provider Name
             ENWGetNetworkProviderName,
             // Fetching Programmable Operator Name
-            ENWGetProgrammableOperatorName
+            ENWGetProgrammableOperatorName,
+            // Notifying network registration status change
+            ENWNotifyNetworkRegistrationStatusChange
             };
 
         /**
--- a/phonesrv_plat/network_handling_engine_api/inc/NetworkHandlingProxy.h	Fri Apr 16 15:31:58 2010 +0300
+++ b/phonesrv_plat/network_handling_engine_api/inc/NetworkHandlingProxy.h	Mon May 03 13:01:45 2010 +0300
@@ -20,7 +20,7 @@
 #define NETWORKHANDLINGPROXY_H
 
 //  INCLUDES
-#include "NWHandlingEngine.h"
+#include "nwhandlingengine.h" 
 
 
 // FORWARD DECLARATIONS
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonesrv_plat/phone_client_ussd_api/tsrc/mt_ussd.cpp	Mon May 03 13:01:45 2010 +0300
@@ -0,0 +1,161 @@
+/*
+* Copyright (c) 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 the Mt_Ussd class
+*
+*/
+
+#include <cphcltussd.h>
+#include "mt_ussd.h"
+
+/*------------------------------------------------------------------------------
+This module testing project links to phoneclient.dll.
+------------------------------------------------------------------------------*/
+
+// -----------------------------------------------------------------------------
+// Mt_Ussd::Mt_Ussd
+// Default constructor, remember to null new members here.
+// -----------------------------------------------------------------------------
+//
+Mt_Ussd::Mt_Ussd():mUssd(NULL)
+{
+    qDebug("Mt_Ussd in-out");
+}
+
+// -----------------------------------------------------------------------------
+// Mt_Ussd::~Mt_Ussd
+// -----------------------------------------------------------------------------
+Mt_Ussd::~Mt_Ussd()
+{
+    qDebug("~Mt_Ussd in-out");
+}
+
+
+// -----------------------------------------------------------------------------
+// Mt_Ussd::initTestCase
+// QTestLib initialization method, called for each test case.
+// -----------------------------------------------------------------------------
+void Mt_Ussd::initTestCase()
+{
+    qDebug("initTestCase in");
+    mUssd = CPhCltUssd::NewL( EFalse );
+    qDebug("initTestCase out");
+}
+
+
+// -----------------------------------------------------------------------------
+// Mt_Ussd::cleanupTestCase
+// QTestLib cleanup method, called for each test case.
+// -----------------------------------------------------------------------------
+void Mt_Ussd::cleanupTestCase()
+{
+    qDebug("cleanupTestCase in");
+    delete mUssd;
+    qDebug("cleanupTestCase out");
+}
+
+// -----------------------------------------------------------------------------
+// Mt_Ussd::testSendUssd
+// -----------------------------------------------------------------------------
+void Mt_Ussd::testSendUssdUnicode()
+{
+    qDebug("testSendUssdUnicode in");
+    
+    mUssd->SetDCS( KPhCltDcsUnknown );
+    
+    _LIT( KUnicodeUSSD, "Ussd msg");
+    TInt ret = mUssd->SendUssd( KUnicodeUSSD );
+    qDebug("ussd str=%S, ret=%d", KUnicodeUSSD, ret);
+    
+    QVERIFY2(KErrNone == ret , "testSendUssdUnicode failed ");
+    qDebug("testSendUssdUnicode out");
+}
+
+// -----------------------------------------------------------------------------
+// Mt_Ussd::testSendUssd
+// -----------------------------------------------------------------------------
+void Mt_Ussd::testSendUssd()
+{
+    qDebug("testSendUssd in");
+    
+    mUssd->SetDCS( KPhCltDcsUnknown );
+    _LIT8( KMsg, "*#123#" );
+    TInt ret = mUssd->SendUssd( KMsg );
+    qDebug("ussd str=%S, ret=%d", KMsg, ret);
+    
+    QVERIFY2(KErrNone == ret , "testSendUssd failed ");
+    qDebug("testSendUssd out");
+}
+
+// -----------------------------------------------------------------------------
+// Mt_Ussd::testSendUssd
+// -----------------------------------------------------------------------------
+void Mt_Ussd::testSendUssdWithDCS()
+{
+    qDebug("testSendUssdWithDCS in");
+    
+    _LIT8( KMsg, "*#123#" );
+    TInt ret = mUssd->SendUssd( KMsg, KPhCltDcsUnknown );
+    qDebug("ussd str=%S, ret=%d", KMsg, ret);
+    
+    QVERIFY2(KErrNone == ret , "testSendUssdWithDCS failed ");
+    qDebug("testSendUssdWithDCS out");
+}
+
+void Mt_Ussd::testSendUssdBtn()
+{
+    qDebug("testSendUssdBtn in");
+    
+    _LIT8( KMsg, "*100#" );
+    TInt ret = mUssd->SendUssd( KMsg, KPhCltDcsUnknown );
+    qDebug("ussd str=%S, ret=%d", KMsg, ret);
+    
+    QVERIFY2(KErrNone == ret , "testSendUssdBtn failed ");
+    qDebug("testSendUssdBtn out");
+}
+
+void Mt_Ussd::testSendUssdCmcc()
+{
+    qDebug("testSendUssdCmcc in");
+    
+    _LIT8( KMsg, "*188#" );
+    TInt ret = mUssd->SendUssd( KMsg, KPhCltDcsUnknown );
+    qDebug("ussd str=%S, ret=%d", KMsg, ret);
+    
+    QVERIFY2(KErrNone == ret , "testSendUssdCmcc failed ");
+    qDebug("testSendUssdCmcc out");
+}
+
+// -----------------------------------------------------------------------------
+// main()
+// Main method implemented for directing test output to a file.
+// -----------------------------------------------------------------------------
+int main(int argc, char *argv[])
+    {
+    qDebug("main() in");
+    QApplication app(argc, argv);
+
+    qDebug("Start testing...");
+    Mt_Ussd tc; 
+    char *pass[3];
+    pass[0] = argv[0];
+    pass[1] = "-o"; 
+    pass[2] = "c:\\logs\\ussd\\mt_ussdclient.txt";
+    const int result = QTest::qExec(&tc, 3, pass);
+    qDebug("End testing...");
+    
+    qDebug("main() out, result=%d", result);
+    return result;
+    } 
+
+//End file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonesrv_plat/phone_client_ussd_api/tsrc/mt_ussd.h	Mon May 03 13:01:45 2010 +0300
@@ -0,0 +1,94 @@
+/*
+* 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:  Implementation of the Mt_Ussd class
+*
+*/
+
+
+#ifndef _MT_USSD_H
+#define _MT_USSD_H
+
+#include <QtTest/QtTest>
+#include <QString>
+#include <QStringList>
+#include <QSignalSpy>
+#include <QMetaType>
+#include <QObject>
+
+
+// Class forwards
+class CPhCltUssd;
+
+/**
+ *  Mt_Ussd module test class.
+ * 
+ *  Tests Mt_Ussd interface.
+ *  See cpp file for more information. 
+ *
+ *  @lib phoneclient.lib
+ *  @since S60 <TB10.1>
+ */
+class Mt_Ussd : public QObject
+{
+    Q_OBJECT
+
+public:
+    Mt_Ussd();
+
+    virtual ~Mt_Ussd();
+
+private slots: 
+
+     /**
+     * Called before the first testfunction is executed.
+     */
+    void initTestCase();
+
+     /**
+     * Called after the last testfunction has been executed.
+     */
+    void cleanupTestCase();
+
+    /**
+	* Test SendUssd with Unicode string
+	*/
+    void testSendUssdUnicode();
+    
+	/**
+	* Test sendUssd
+	*/    
+    void testSendUssd();
+    
+	/**
+	* Test sendUssd with given DCS
+	*/    
+    void testSendUssdWithDCS();
+    
+	/**
+	* Test sendUssd by BTN string
+	*/    
+    void testSendUssdBtn();
+
+	/**
+	* Test sendUssd by CMCC string
+	*/    
+    void testSendUssdCmcc();    
+    
+	
+private:  //data
+
+    CPhCltUssd* mUssd;
+};
+
+#endif // _MT_VMBXENGINE_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonesrv_plat/phone_client_ussd_api/tsrc/mt_ussd.pro	Mon May 03 13:01:45 2010 +0300
@@ -0,0 +1,38 @@
+#
+# 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:
+#
+
+TEMPLATE = app
+TARGET = 
+DEPENDPATH += .
+INCLUDEPATH += .
+CONFIG += hb
+CONFIG += qtestlib
+
+symbian: { 
+    TARGET.CAPABILITY = CAP_GENERAL_DLL 
+}
+
+symbian {
+    INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE \
+                   /epoc32/include/mw/QtTest \
+                  ../inc
+
+    LIBS += -lphoneclient.dll
+}
+
+# Input
+HEADERS += mt_ussd.h
+SOURCES += mt_ussd.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonesrv_plat/phone_client_ussd_internal_api/tsrc/mt_ussdinternal.pro	Mon May 03 13:01:45 2010 +0300
@@ -0,0 +1,38 @@
+#
+# Copyright (c) 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:
+#
+
+TEMPLATE = app
+TARGET = 
+DEPENDPATH += .
+INCLUDEPATH += .
+CONFIG += hb
+CONFIG += qtestlib
+
+symbian: { 
+    TARGET.CAPABILITY = CAP_GENERAL_DLL 
+}
+
+symbian {
+    INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE \
+                   /epoc32/include/mw/QtTest \
+                  ../inc
+
+    LIBS += -lphoneclient.dll
+}
+
+# Input
+HEADERS += mt_ussdsat.h
+SOURCES += mt_ussdsat.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonesrv_plat/phone_client_ussd_internal_api/tsrc/mt_ussdsat.cpp	Mon May 03 13:01:45 2010 +0300
@@ -0,0 +1,131 @@
+/*
+* Copyright (c) 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 the Mt_UssdSat class
+*
+*/
+
+#include <cphcltussdsatclient.h>
+#include <etelsat.h>
+#include "mt_ussdsat.h"
+
+/*------------------------------------------------------------------------------
+This module testing project links to phoneclient.dll.
+------------------------------------------------------------------------------*/
+
+// -----------------------------------------------------------------------------
+// Mt_UssdSat::Mt_UssdSat
+// Default constructor, remember to null new members here.
+// -----------------------------------------------------------------------------
+//
+Mt_UssdSat::Mt_UssdSat():mUssdSat(NULL)
+{
+    qDebug("Mt_UssdSat in-out");
+}
+
+// -----------------------------------------------------------------------------
+// Mt_UssdSat::~Mt_UssdSat
+// -----------------------------------------------------------------------------
+Mt_UssdSat::~Mt_UssdSat()
+{
+    qDebug("~Mt_UssdSat in-out");
+}
+
+
+// -----------------------------------------------------------------------------
+// Mt_UssdSat::initTestCase
+// QTestLib initialization method, called for each test case.
+// -----------------------------------------------------------------------------
+void Mt_UssdSat::initTestCase()
+{
+    qDebug("initTestCase in");
+    mUssdSat = CPhCltUssdSatClient::NewL( EFalse );
+    qDebug("initTestCase out");
+}
+
+
+// -----------------------------------------------------------------------------
+// Mt_UssdSat::cleanupTestCase
+// QTestLib cleanup method, called for each test case.
+// -----------------------------------------------------------------------------
+void Mt_UssdSat::cleanupTestCase()
+{
+    qDebug("cleanupTestCase in");
+    delete mUssdSat;
+    qDebug("cleanupTestCase out");
+}
+
+// -----------------------------------------------------------------------------
+// Mt_UssdSat::testSendSatMessage
+// -----------------------------------------------------------------------------
+void Mt_UssdSat::testSendSatMessage()
+{
+    qDebug("testSendSatMessage in");
+    
+    _LIT( KUssdSat, "*100#"); // valid for BTN
+   
+    TBuf<RSat::KStringMaxSize> receiveMessage;
+    TBool sendCompletedFirst( EFalse );
+    TUint8 receiveDcs = 0;
+    
+    TInt ret = mUssdSat->SendSatMessage(
+        KUssdSat,
+        CPhCltUssdSatClient::EPhCltDcsUnknown,
+        receiveMessage,
+        sendCompletedFirst,
+        receiveDcs );
+        
+    qDebug("receive error=%d", ret);
+    qDebug("receive receive msg=%s", &receiveMessage);
+    qDebug("receive isCompleteFirst=%d", &sendCompletedFirst);
+    qDebug("receive receive Dcs=%d", &receiveDcs);
+    
+    QVERIFY2(KErrNone == ret , "testSendSatMessage failed ");
+    qDebug("testSendSatMessage out");
+}
+
+// -----------------------------------------------------------------------------
+// Mt_UssdSat::testSendSatMessageCancel
+// -----------------------------------------------------------------------------
+void Mt_UssdSat::testSendSatMessageCancel()
+{
+    qDebug("testSendSatMessageCancel in");
+    
+    mUssdSat->SendSatMessageCancel();
+    
+    qDebug("testSendSatMessageCancel out");
+}
+
+// -----------------------------------------------------------------------------
+// main()
+// Main method implemented for directing test output to a file.
+// -----------------------------------------------------------------------------
+int main(int argc, char *argv[])
+    {
+    qDebug("main() in");
+    QApplication app(argc, argv);
+
+    qDebug("Start testing...");
+    Mt_UssdSat tc; 
+    char *pass[3];
+    pass[0] = argv[0];
+    pass[1] = "-o"; 
+    pass[2] = "c:\\logs\\mt_ussdsat.txt";
+    const int result = QTest::qExec(&tc, 3, pass);
+    qDebug("End testing...");
+    
+    qDebug("main() out, result=%d", result);
+    return result;
+    } 
+
+//End file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonesrv_plat/phone_client_ussd_internal_api/tsrc/mt_ussdsat.h	Mon May 03 13:01:45 2010 +0300
@@ -0,0 +1,78 @@
+/*
+* Copyright (c) 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 the Mt_UssdSat class
+*
+*/
+
+
+#ifndef _MT_USSDSAT_H
+#define _MT_USSDSAT_H
+
+#include <QtTest/QtTest>
+#include <QString>
+#include <QStringList>
+#include <QSignalSpy>
+#include <QMetaType>
+#include <QObject>
+
+
+// Class forwards
+class CPhCltUssdSatClient;
+
+/**
+ *  Mt_UssdSat module test class.
+ * 
+ *  Tests Mt_UssdSat interface.
+ *  See cpp file for more information. 
+ *
+ *  @lib phoneclient.lib
+ *  @since S60 <TB10.1>
+ */
+class Mt_UssdSat : public QObject
+{
+    Q_OBJECT
+
+public:
+    Mt_UssdSat();
+
+    virtual ~Mt_UssdSat();
+
+private slots: 
+
+     /**
+     * Called before the first testfunction is executed.
+     */
+    void initTestCase();
+
+     /**
+     * Called after the last testfunction has been executed.
+     */
+    void cleanupTestCase();
+
+    /**
+	* Test send sat message
+	*/
+    void testSendSatMessage();
+    
+	/**
+	* Test cancel send sat message
+	*/    
+    void testSendSatMessageCancel();
+    
+private:  //data
+
+    CPhCltUssdSatClient* mUssdSat;
+};
+
+#endif // _MT_USSDSAT_H
--- a/phonesrv_plat/phone_settings_api/inc/psetcallbarringwrapper.h	Fri Apr 16 15:31:58 2010 +0300
+++ b/phonesrv_plat/phone_settings_api/inc/psetcallbarringwrapper.h	Mon May 03 13:01:45 2010 +0300
@@ -112,6 +112,18 @@
         BarringType barringType,
         QString barringPassword);
     
+    /**
+     * Changes barring password. Maximum password length is 10.
+     * 
+     * @param   oldPassword         Old barring password.
+     * @param   newPassword         New barring password.
+     * @param   verifiedPassword    New password verified.
+     */
+    void changeBarringPassword(
+        const QString &oldPassword, 
+        const QString &newPassword,
+        const QString &verifiedPassword);
+    
 signals:
     
     /**
@@ -161,6 +173,14 @@
         PSetCallBarringWrapper::BarringStatus barringStatus, 
         bool plural);
     
+    /**
+     * This signal is emitted when barring password change request is completed.
+     * 
+     * @param   result                  0 if request was completed successfully 
+     * or error code defined either in gsmerror.h or exterror.h.
+     */
+    void barringPasswordChangeRequestCompleted(int result);
+    
 private: // data 
     
     /** Own. Private implementation. */
--- a/phonesrv_plat/phone_settings_api/inc/psetcalldivertingwrapper.h	Fri Apr 16 15:31:58 2010 +0300
+++ b/phonesrv_plat/phone_settings_api/inc/psetcalldivertingwrapper.h	Mon May 03 13:01:45 2010 +0300
@@ -57,9 +57,8 @@
     //member data
     //Divert condition
     PsCallDivertingCondition iCondition;
-    // (RMobileCall::TMobileService)
-    // RMobileCall::EServiceUnspecified if not available
-    int iServiceGroup;
+    //Divert service group
+    PsServiceGroup iServiceGroup;
     //Divert status
     PsCallDivertingStatus iStatus;
     //Diverted-to number
--- a/phonesrv_plat/sat_client_api/group/bld.inf	Fri Apr 16 15:31:58 2010 +0300
+++ b/phonesrv_plat/sat_client_api/group/bld.inf	Mon May 03 13:01:45 2010 +0300
@@ -24,4 +24,4 @@
 
 PRJ_EXPORTS
 
-../inc/RSatSession.h     MW_LAYER_PLATFORM_EXPORT_PATH( RSatSession.h )
+../inc/rsatsession.h     MW_LAYER_PLATFORM_EXPORT_PATH( rsatsession.h )
--- a/phonesrv_plat/sat_client_api/tsrc/group/satclientapitest.mmp	Fri Apr 16 15:31:58 2010 +0300
+++ b/phonesrv_plat/sat_client_api/tsrc/group/satclientapitest.mmp	Mon May 03 13:01:45 2010 +0300
@@ -11,7 +11,7 @@
 *
 * Contributors:
 *
-* Description:  Test class for SAT Client API / RSatSession.h
+* Description:  Test class for SAT Client API / rsatsession.h
 *
 */
 
--- a/phonesrv_plat/sat_client_api/tsrc/inc/satclientapitest.h	Fri Apr 16 15:31:58 2010 +0300
+++ b/phonesrv_plat/sat_client_api/tsrc/inc/satclientapitest.h	Mon May 03 13:01:45 2010 +0300
@@ -11,7 +11,7 @@
 *
 * Contributors:
 *
-* Description:  Test class for SAT Client API / RSatSession.h
+* Description:  Test class for SAT Client API / rsatsession.h
 *
 */
 
@@ -22,7 +22,7 @@
 #include <testscripterinternal.h>
 #include <stiftestmodule.h>
 // API under testing:
-#include <RSatSession.h>
+#include <rsatsession.h>
 
 // Logging path
 _LIT( KSatClientAPILogPath, "\\logs\\testframework\\SATClientAPITest\\" ); 
@@ -31,7 +31,7 @@
 
 
 /**
-*  Test class for SAT Client API / RSatSession.h
+*  Test class for SAT Client API / rsatsession.h
 *
 *  @lib satclientapitest.dll
 *  @since S60 5.0
--- a/phonesrv_plat/sat_client_api/tsrc/src/satclientapitest.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/phonesrv_plat/sat_client_api/tsrc/src/satclientapitest.cpp	Mon May 03 13:01:45 2010 +0300
@@ -11,7 +11,7 @@
 *
 * Contributors:
 *
-* Description:  Test class for SAT Client API / RSatSession.h
+* Description:  Test class for SAT Client API / rsatsession.h
 *
 */
 
--- a/phonesrv_plat/sat_configuration_api/group/bld.inf	Fri Apr 16 15:31:58 2010 +0300
+++ b/phonesrv_plat/sat_configuration_api/group/bld.inf	Mon May 03 13:01:45 2010 +0300
@@ -24,4 +24,4 @@
 
 PRJ_EXPORTS
 
-../inc/SATDomainPSKeys.h     MW_LAYER_PLATFORM_EXPORT_PATH(SATDomainPSKeys.h)
+../inc/satdomainpskeys.h     MW_LAYER_PLATFORM_EXPORT_PATH(satdomainpskeys.h)
--- a/phonesrv_plat/sat_refresh_api/group/bld.inf	Fri Apr 16 15:31:58 2010 +0300
+++ b/phonesrv_plat/sat_refresh_api/group/bld.inf	Mon May 03 13:01:45 2010 +0300
@@ -24,5 +24,5 @@
 
 PRJ_EXPORTS
 
-../inc/RSatRefresh.h     MW_LAYER_PLATFORM_EXPORT_PATH(RSatRefresh.h)
-../inc/MSatRefreshObserver.h     MW_LAYER_PLATFORM_EXPORT_PATH(msatrefreshobserver.h)
+../inc/rsatrefresh.h     MW_LAYER_PLATFORM_EXPORT_PATH(rsatrefresh.h)
+../inc/msatrefreshobserver.h     MW_LAYER_PLATFORM_EXPORT_PATH(msatrefreshobserver.h)
--- a/phonesrv_plat/sat_refresh_api/inc/RSatRefresh.h	Fri Apr 16 15:31:58 2010 +0300
+++ b/phonesrv_plat/sat_refresh_api/inc/RSatRefresh.h	Mon May 03 13:01:45 2010 +0300
@@ -23,7 +23,7 @@
 //  INCLUDES
 #include <e32std.h>
 #include <Etelsat.h>
-#include <MSatRefreshObserver.h>
+#include <msatrefreshobserver.h>
 
 // FORWARD DECLARATIONS
 class RSatSession;
--- a/phonesrv_plat/sat_refresh_api/tsrc/group/satrefreshapitest.mmp	Fri Apr 16 15:31:58 2010 +0300
+++ b/phonesrv_plat/sat_refresh_api/tsrc/group/satrefreshapitest.mmp	Mon May 03 13:01:45 2010 +0300
@@ -12,7 +12,7 @@
 * Contributors:
 *
 * Description:  Test class for SAT Refresh API / 
-*                RSatRefresh.h, MSatRefreshObserver.h
+*                rsatrefresh.h, msatrefreshobserver.h
 *
 */
 
--- a/phonesrv_plat/sat_refresh_api/tsrc/inc/satrefreshapitest.h	Fri Apr 16 15:31:58 2010 +0300
+++ b/phonesrv_plat/sat_refresh_api/tsrc/inc/satrefreshapitest.h	Mon May 03 13:01:45 2010 +0300
@@ -24,10 +24,10 @@
 #include <stiftestmodule.h>
 #include "satrefreshobserver.h"
 // API under testing:
-#include <RSatRefresh.h>
-#include <MSatRefreshObserver.h>
+#include <rsatrefresh.h>
+#include <msatrefreshobserver.h>
 // This is needed for Refresh API
-#include <RSatSession.h>
+#include <rsatsession.h>
 
 // Logging path
 _LIT( KSatRefreshAPILogPath, "\\logs\\testframework\\SATRefreshAPITest\\" ); 
--- a/phonesrv_plat/sat_refresh_api/tsrc/inc/satrefreshobserver.h	Fri Apr 16 15:31:58 2010 +0300
+++ b/phonesrv_plat/sat_refresh_api/tsrc/inc/satrefreshobserver.h	Mon May 03 13:01:45 2010 +0300
@@ -23,10 +23,10 @@
 #include <testscripterinternal.h>
 #include <stiftestmodule.h>
 // API under testing:
-#include <RSatRefresh.h>
-#include <MSatRefreshObserver.h>
+#include <rsatrefresh.h>
+#include <msatrefreshobserver.h>
 // This is needed for Refresh API
-#include <RSatSession.h>
+#include <rsatsession.h>
 
 /**
 *  Refresh event observer
--- a/phonesrv_plat/ss_settings_api/inc/MSSSettingsObserver.h	Fri Apr 16 15:31:58 2010 +0300
+++ b/phonesrv_plat/ss_settings_api/inc/MSSSettingsObserver.h	Mon May 03 13:01:45 2010 +0300
@@ -20,7 +20,7 @@
 #define MSSSETTINGSOBSERVER_H
 
 //  INCLUDES
-#include <RSSSettings.h> 
+#include <rsssettings.h> 
 
 // CLASS DECLARATION
 
--- a/satengine/SatServer/Commands/LaunchBrowserCmd/src/CLaunchBrowserHandler.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/satengine/SatServer/Commands/LaunchBrowserCmd/src/CLaunchBrowserHandler.cpp	Mon May 03 13:01:45 2010 +0300
@@ -1527,7 +1527,7 @@
     TInt ipvType( KSatInvalidPdpType );
     TInt length( aAddress.Length() );
     
-    if ( &aAddress && length )
+    if ( length )
         {
         // The maximum length of a IP address is less than 39.
         if ( KSatMaxIPv4AddressLength >= length && 
--- a/satengine/SatServer/Commands/OpenChannelCmd/src/COpenChannelHandler.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/satengine/SatServer/Commands/OpenChannelCmd/src/COpenChannelHandler.cpp	Mon May 03 13:01:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2002-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"
@@ -65,6 +65,8 @@
     Cancel();
     iDataChannel = NULL;
 
+    delete iConnectionInfo.iOverrideSet;
+
     LOG( SIMPLE,
         "OPENCHANNEL: COpenChannelHandler::~CCloseChannelHandler exiting" )
     }
@@ -633,6 +635,8 @@
         "OPENCHANNEL: COpenChannelHandler::SetConnectionSettingsL calling,\
         aBearerType: %d", aBearerType )
 
+    RPacketContext::TProtocolType pdpType = RPacketContext::EPdpTypeIPv4;
+    TUint32 defaultId( 0 );
     switch ( aBearerType )
         {
         case MSatBIPUtils::ESatGPRS:
@@ -648,9 +652,8 @@
                 TUint32 nwId( 0 );
                 TBool apnCreated( EFalse );
 
-                RPacketContext::TProtocolType pdpType = 
-                           RPacketContext::EPdpTypeIPv6;
-                
+                pdpType = RPacketContext::EPdpTypeIPv6;
+
                 if ( RSat::EIPv4Address ==
                     iOpenChannelData.iDestinationAddress.iType )
                     {
@@ -684,10 +687,14 @@
                 }
             else
                 {
-                LOG( NORMAL, "OPENCHANNEL: COpenChannelHandler::SetConnectionSettingsL \
+                LOG( NORMAL, "OPENCHANNEL: SetConnectionSettingsL \
                 No APN, using defaults" )
                 // No APN, use default settings
-                SetOverrideSettingsL( 0 );
+                TRAPD( err, defaultId = 
+                iUtils->BipUtils().ApnHandler().FindDefaultApL( pdpType ) );
+                LOG2( NORMAL, "OPENCHANNEL: SetConnectionSettingsL \
+                    No APN, using defaults err = %i", err )
+                SetOverrideSettingsL( defaultId );
                 }
             break;
             }
@@ -703,7 +710,11 @@
 
 #ifdef SAT_USE_DUMMY_TSY
     // No APN, use default settings
-    SetOverrideSettingsL( 0 );
+    TRAPD( err, 
+    defaultId = iUtils->BipUtils().ApnHandler().FindDefaultApL( pdpType ) );
+    LOG2( NORMAL, "OPENCHANNEL: COpenChannelHandler::SetConnectionSettingsL \
+        No APN, using defaults err = %i", err )
+    SetOverrideSettingsL( defaultId );
 #endif // SAT_USE_DUMMY_TSY
 
     LOG( SIMPLE,
@@ -721,6 +732,9 @@
     "OPENCHANNEL: COpenChannelHandler::SetOverrideSettingsL aIapId: %i", 
     aIapId )
 
+    delete iConnectionInfo.iOverrideSet;
+    iConnectionInfo.iOverrideSet = NULL;
+
     // Override connection preferences
     TExtendedConnPref* overrideSettings = new( ELeave ) TExtendedConnPref;
     overrideSettings->SetIapId( aIapId );
--- a/satengine/SatServer/Commands/SendSSCmd/src/CSendSsHandler.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/satengine/SatServer/Commands/SendSSCmd/src/CSendSsHandler.cpp	Mon May 03 13:01:45 2010 +0300
@@ -53,7 +53,7 @@
 const TInt KSsOperationShowFDNLIst = 0x05;
 const TInt KSsOperationPasswordRegistration = 0x06;
 // Ss error
-const TInt KSsSimAtkCcRejected = 0x0D;
+const TInt KSsSimAtkCcRejected = 0x13;
 const TInt KTwo = 2;
 
 // ======== MEMBER FUNCTIONS ========
--- a/satengine/SatServer/Commands/SendSmCmd/src/CSendSmHandler.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/satengine/SatServer/Commands/SendSmCmd/src/CSendSmHandler.cpp	Mon May 03 13:01:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2002-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"
@@ -136,7 +136,9 @@
 void CSendSmHandler::Event( TInt aEvent )
     {
     LOG( SIMPLE, "SENDSM: CSendSmHandler::Event calling" )
-    LOG2( SIMPLE, "SENDSM:   Event %i", aEvent )
+    LOG2( SIMPLE, "SENDSM: CSendSmHandler::Event iWaitingUiLaunch=%d",  
+    iWaitingUiLaunch ) 
+    LOG2( SIMPLE, "SENDSM: CSendSmHandler::Event IsActive=%d", IsActive() ) 
     if ( MSatUtils::EMoSmControlExecuting == aEvent )
         {
         LOG( NORMAL, "SENDSM:   Event EMoSmControlExecuting" )
@@ -147,7 +149,9 @@
         LOG( NORMAL, "SENDSM:   Event EMoSmControlDone" )
         iMoSmControlActive = EFalse;
         // Check if Sendsm is waiting.
-        if ( !IsActive() )
+        // Completing call control should not trigger this command handler 
+        // if it is still waiting for UI to be launched. 
+        if ( !IsActive() && !iWaitingUiLaunch ) 
             {
             LOG( SIMPLE, "SENDSM: CSendSmHandler::Event sendsm" )
             // Do the Sendsm.
@@ -513,6 +517,11 @@
     // and sends the command then.
     if ( !iMoSmControlActive )
         {
+        LOG2( SIMPLE,  
+        "SENDSM: CSendSmHandler::HandleCommand: !iMoSmControlActive, \
+        iNeedUiSession=%d",
+        iNeedUiSession ) 
+
         iUtils->NotifyEvent( MSatUtils::ESendSmExecuting );
 
         if ( !iNeedUiSession )
@@ -614,6 +623,8 @@
                     ESatSProactiveNotificationResponse,
                     this ) )
 
+                LOG( SIMPLE, 
+                    "SENDSM: CSendSmHandler::HandleCommand send ui notification" )
                 iUtils->SatUiHandler().UiSession()->SendCommand(
                     &iNotificationDataPckg,
                     &iNotificationRspPckg,
@@ -623,6 +634,8 @@
                 }
             else
                 {
+                LOG( SIMPLE, 
+                "SENDSM: CSendSmHandler::HandleCommand user confirmation needed" ) 
                 // Register service request handler for SendSm command,
                 // If there is already service request for query, registering
                 // updates command handler, so client responses comes to this
@@ -634,6 +647,9 @@
 
                 iNotificationSent = EFalse;
 
+                LOG( SIMPLE, 
+                "SENDSM: CSendSmHandler::HandleCommand send user confirmation request" ) 
+
                 // Ask the user permission to send sms. Reply will come
                 // to ClientResponse method.
                 iUtils->SatUiHandler().UiSession()->SendCommand(
--- a/satengine/SatServer/Commands/SendUSSDCmd/src/CSendUssdHandler.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/satengine/SatServer/Commands/SendUSSDCmd/src/CSendUssdHandler.cpp	Mon May 03 13:01:45 2010 +0300
@@ -739,6 +739,16 @@
         iSendUssdRsp.iAdditionalInfo.SetLength( 1 );
         iSendUssdRsp.iAdditionalInfo[0] = RSat::KNoSpecificMeProblem;
         }
+    else if ( KErrSatBusy == aError )
+        {
+        LOG( SIMPLE, 
+        "SENDUSSD: CSendUssdHandler::HandleSendUssdResult \
+        KInteractionWithCCTemporaryError" )
+        iSendUssdRsp.iGeneralResult = RSat::KInteractionWithCCTemporaryError;
+        iSendUssdRsp.iInfoType = RSat::KNoAdditionalInfo;
+        iSendUssdRsp.iAdditionalInfo.SetLength( 0 );
+        iSendUssdRsp.iAdditionalInfo.Zero();
+		}
     else if ( KErrNone == aError )   //  Success case
         {
         LOG( SIMPLE, 
--- a/satengine/SatServer/Engine/inc/CSatApnHandler.h	Fri Apr 16 15:31:58 2010 +0300
+++ b/satengine/SatServer/Engine/inc/CSatApnHandler.h	Mon May 03 13:01:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2002-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"
@@ -80,6 +80,13 @@
         */
         void DeleteApnL( TUint32 aApnId );
 
+        /**
+         * Find the default APN Id
+         * @param aPdpType, indicates the address type is IPv4  or IPv6
+         * @return a default iap id
+         */
+        TUint32 FindDefaultApL(
+                const RPacketContext::TProtocolType& aPdpType );
     private:
 
         /**
--- a/satengine/SatServer/Engine/src/CSatApnHandler.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/satengine/SatServer/Engine/src/CSatApnHandler.cpp	Mon May 03 13:01:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2002-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"
@@ -22,6 +22,8 @@
 #include <cmconnectionmethodext.h>
 #include <cmconnectionmethoddef.h>
 #include <cmpluginpacketdatadef.h>
+#include <cmdestination.h>
+#include <cmmanagerdef.h>
 
 #include    "MSatUtils.h"
 #include    "CSatApnHandler.h"
@@ -386,4 +388,74 @@
     return formatApnName;
     }
 
+// -----------------------------------------------------------------------------
+// CSatApnHandler::FindDefaultApL
+// -----------------------------------------------------------------------------
+//
+TUint32 CSatApnHandler::FindDefaultApL(
+        const RPacketContext::TProtocolType& aPdpType )
+    {
+    LOG( SIMPLE, "SATENGINE: CSatApnHandler::FindDefaultApL calling" );
+    TUint32 defaultIap( 0 );
+    TInt pdpType;
+    TBool isFound( EFalse );
+
+    // create a network destination
+    RCmDestination des;
+    RCmConnectionMethod cm;
+
+    // Create CMManager Session
+    RCmManager cmManager;
+    cmManager.OpenL();
+    CleanupClosePushL( cmManager );
+
+    // Get the Connection Method list from the open CMManager session
+    RArray<TUint32> array( KSatCMGranularity );
+    CleanupClosePushL( array );
+
+    // list all available destinations' id
+    cmManager.AllDestinationsL( array );
+    for( TInt i = 0; ( i < array.Count() ) && !isFound; ++i )
+        {
+        des = cmManager.DestinationL( array[i] );
+        CleanupClosePushL( des );
+
+        if ( CMManager::ESnapPurposeInternet ==
+        des.MetadataL( CMManager::ESnapMetadataPurpose ) )
+            {
+            LOG( SIMPLE, "SATENGINE: CSatApnHandler::FindDefaultApL \
+            the fixed destination is identified as 'Internet'" );
+            for( TInt j = 0; ( j < des.ConnectionMethodCount() ) &&
+            !isFound; ++j )
+                {
+                cm = des.ConnectionMethodL( j );
+                CleanupClosePushL( cm );
+                pdpType = cm.GetIntAttributeL(
+                        CMManager::EPacketDataPDPType );
+                LOG2( SIMPLE, "SATENGINE: CSatApnHandler::FindDefaultApL \
+                        current protocol type is %d", pdpType )
+                if ( pdpType == aPdpType )
+                    {
+                    defaultIap = cm.GetIntAttributeL( CMManager::ECmIapId );
+                    isFound  = ETrue;
+                    LOG2( SIMPLE, "SATENGINE: CSatApnHandler::FindDefaultApL \
+                            default iap had been found %d", defaultIap )
+                    }
+                CleanupStack::PopAndDestroy( &cm );
+                }
+            }
+        CleanupStack::PopAndDestroy( &des );
+        }
+    CleanupStack::PopAndDestroy( &array );
+    CleanupStack::PopAndDestroy( &cmManager );
+
+    if ( !isFound )
+        {
+        LOG( SIMPLE, "SATENGINE: CSatApnHandler: default AP not found" );
+        User::Leave( KErrNotFound );
+        }
+
+    LOG( SIMPLE, "SATENGINE: CSatApnHandler::FindDefaultApL exit" )
+    return defaultIap;
+    }
 //  End of File
--- a/satengine/SatServer/Engine/src/CSatCommandContainer.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/satengine/SatServer/Engine/src/CSatCommandContainer.cpp	Mon May 03 13:01:45 2010 +0300
@@ -25,7 +25,7 @@
 #include    <e32property.h>
 #include    <data_caging_path_literals.hrh>
 #include    <startupdomainpskeys.h>
-#include    <SATDomainPSKeys.h>
+#include    <satdomainpskeys.h>
 
 #include    "MSatSystemState.h"
 #include    "TSatSystemStateFactory.h"
@@ -318,7 +318,10 @@
     // to handle client responses. If SAT UI / Proactive command is executing
     // while Bluetooth SAP is enabled, SAT UI sends ClientResponse and that must
     // be preveted
-    iServiceReqs->Reset();
+    if ( iServiceReqs )
+        {
+        iServiceReqs->Reset();
+        }
 
     // Close all reserved BIP Data channels
     if ( iBipUtils )
@@ -338,7 +341,10 @@
 
 #ifdef SAT_USE_DUMMY_TSY
     // Close ATSY. This is needed when testin BT SAP in emulator
-    iUSatAPI->Close();
+    if ( iUSatAPI )
+        {
+        iUSatAPI->Close();
+        }
 #endif
 
     LOG( NORMAL,
--- a/satengine/SatServer/Engine/src/CSatCommandHandler.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/satengine/SatServer/Engine/src/CSatCommandHandler.cpp	Mon May 03 13:01:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2002-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"
@@ -158,6 +158,12 @@
                     // Notify derived class that ui launch failed.
                     UiLaunchFailed();
                     }
+                else 
+                    { 
+                    LOG( SIMPLE,  
+                    "SATENGINE: CSatCommandHandler::DoHandleCommand iWaitingUiLaunch")
+                    iWaitingUiLaunch = ETrue; 
+                    }
                 }
             else
                 {
--- a/satengine/SatServer/Engine/src/CSatSIconSubSession.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/satengine/SatServer/Engine/src/CSatSIconSubSession.cpp	Mon May 03 13:01:45 2010 +0300
@@ -312,17 +312,11 @@
 
     CleanupStack::PopAndDestroy( converter );
 
-    if ( iClut )
-        {
         delete iClut;
         iClut = NULL;
-        }
-
-    if ( iIconData )
-        {
+        
         delete iIconData;
         iIconData = NULL;
-        }
 
     iMessage.Complete( KErrNone );
     LOG( SIMPLE, "SATENGINE: CSatSIconSubSession::NotifyGetClutL exiting" )
--- a/satengine/SatServer/Engine/src/CSatSUiSubSession.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/satengine/SatServer/Engine/src/CSatSUiSubSession.cpp	Mon May 03 13:01:45 2010 +0300
@@ -19,7 +19,7 @@
 
 // INCLUDE FILES
 #include    <e32property.h>
-#include    <SATDomainPSKeys.h>
+#include    <satdomainpskeys.h>
 
 #include    "CSatSUiSubSession.h"
 #include    "CSatSSession.h"
--- a/satengine/SatServer/SatClient/src/CSatAllowRefreshMonitor.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/satengine/SatServer/SatClient/src/CSatAllowRefreshMonitor.cpp	Mon May 03 13:01:45 2010 +0300
@@ -20,7 +20,7 @@
 // INCLUDE FILES
 #include    "CSatAllowRefreshMonitor.h"
 #include    "msatrefreshobserver.h"
-#include    "RSatRefresh.h"
+#include    "rsatrefresh.h"
 #include    "SatLog.h"
 
 // ============================ MEMBER FUNCTIONS ===============================
--- a/satengine/SatServer/SatClient/src/CSatRefreshMonitor.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/satengine/SatServer/SatClient/src/CSatRefreshMonitor.cpp	Mon May 03 13:01:45 2010 +0300
@@ -18,8 +18,8 @@
 
 
 // INCLUDE FILES
-#include    <RSatSession.h>
-#include    <RSatRefresh.h>
+#include    <rsatsession.h>
+#include    <rsatrefresh.h>
 
 #include    "CSatRefreshMonitor.h"
 #include    "SatLog.h"
--- a/satengine/SatServer/SatClient/src/RSatRefresh.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/satengine/SatServer/SatClient/src/RSatRefresh.cpp	Mon May 03 13:01:45 2010 +0300
@@ -18,8 +18,8 @@
 
 
 // INCLUDE FILES
-#include    <RSatRefresh.h>
-#include    <RSatSession.h>
+#include    <rsatrefresh.h>
+#include    <rsatsession.h>
 #include    "SatSOpcodes.h"
 #include    "CSatAllowRefreshMonitor.h"
 #include    "CSatRefreshMonitor.h"
--- a/satengine/SatServer/SatClient/src/RSatSession.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/satengine/SatServer/SatClient/src/RSatSession.cpp	Mon May 03 13:01:45 2010 +0300
@@ -16,7 +16,7 @@
 */
 
 
-#include    <RSatSession.h>
+#include    <rsatsession.h>
 #include    "SatSOpcodes.h"
 #include    "SatServerFactory.h"
 #include    "SatLog.h"
--- a/satengine/SatServer/SatClient/src/rsatservice.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/satengine/SatServer/SatClient/src/rsatservice.cpp	Mon May 03 13:01:45 2010 +0300
@@ -22,7 +22,7 @@
 #include    <centralrepository.h>
 #include    <etelsat.h>
 #include    <rsatservice.h>
-#include    <RSatSession.h>
+#include    <rsatsession.h>
 #include    <tsaticoninfo.h>
 
 #include    "tsatinternaliconinfo.h"
--- a/satengine/SatServer/SatInternalClient/src/RSatUiSession.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/satengine/SatServer/SatInternalClient/src/RSatUiSession.cpp	Mon May 03 13:01:45 2010 +0300
@@ -19,7 +19,7 @@
 
 //  INCLUDE FILES
 #include <e32def.h>
-#include <RSatSession.h>
+#include <rsatsession.h>
 #include <data_caging_path_literals.hrh>
 
 #include "RSatUiSession.h"
--- a/satengine/SatServer/SystemState/src/CSatSystemState.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/satengine/SatServer/SystemState/src/CSatSystemState.cpp	Mon May 03 13:01:45 2010 +0300
@@ -24,7 +24,7 @@
 #include    <CommonEngineDomainCRKeys.h>
 #include    <ProfileEngineSDKCRKeys.h>
 #include    <settingsinternalcrkeys.h>
-#include    <SATDomainPSKeys.h>
+#include    <satdomainpskeys.h>
 #include    <activeidle2domainpskeys.h>
 // ******************************************************************
 // TODO: ScreensaverInternalPSKeys.h does no longer exist.
@@ -34,7 +34,6 @@
 #include    <ctsydomainpskeys.h>
 #include    <sbdefs.h>
 #include    <BTSapDomainPSKeys.h>
-#include    <SATDomainPSKeys.h>
 
 #include    "SATInternalPSKeys.h"
 #include    "CSatSystemState.h"
--- a/satengine/SatServer/inc/CSatCommandHandler.h	Fri Apr 16 15:31:58 2010 +0300
+++ b/satengine/SatServer/inc/CSatCommandHandler.h	Mon May 03 13:01:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-2007 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2002-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"
@@ -183,6 +183,9 @@
         // Utils interface
         MSatUtils* iUtils;
 
+        // Indicates that command is pending for UI to launch
+        TBool iWaitingUiLaunch;
+
     private:    // Data
 
         // Requiered attribute for the ECOM framework.
@@ -195,8 +198,6 @@
         // starting to handle pending proactive command.
         RTimer iDelayTimer;
 
-        // Indicates that command is pending for UI to launch
-        TBool iWaitingUiLaunch;
     };
 
 #endif      // CSATCOMMANDHANDLER_H
--- a/satengine/SatServer/inc/MSatApnHandler.h	Fri Apr 16 15:31:58 2010 +0300
+++ b/satengine/SatServer/inc/MSatApnHandler.h	Mon May 03 13:01:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2002-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"
@@ -76,6 +76,13 @@
         */
         virtual void DeleteApnL( TUint32 aApnId ) = 0;
 
+        /**
+         * Find the default APN Id
+         * @param aPdpType, indicates the address type is IPv4  or IPv6
+         * @return a default iap id
+         */
+        virtual TUint32 FindDefaultApL(
+                const RPacketContext::TProtocolType& aPdpType ) = 0;
     private:
 
         // Prohibit copy constructor if not deriving from CBase.
--- a/satui/satapp/inc/csatuiobserver.h	Fri Apr 16 15:31:58 2010 +0300
+++ b/satui/satapp/inc/csatuiobserver.h	Mon May 03 13:01:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-20010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 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"
@@ -23,7 +23,8 @@
 //  INCLUDES
 #include <msatuiobserver.h>
 #include <rsatuisession.h>
-#include <RSatSession.h>
+#include <rsatsession.h>
+#include <QString>
 #include "satappcommonconstant.h"
 // CONSTANTS
 //256 max length-header information fields
@@ -76,7 +77,7 @@
         * Sets the UI.
         * @param aImplementer Pointer to be set.
         */
-        void SetImplementer(MSatUiActionImplementer* aImplementer);
+        void SetImplementer( MSatUiActionImplementer* aImplementer );
 
         /**
         * Returns the adapter provided by SatCli.
@@ -90,6 +91,18 @@
         */
         TInt ProfileState();
 
+        /**
+        * ConnectRSatSession.
+        * 
+        */
+        void ConnectRSatSessionL();
+
+        /**
+        * DisconnectRSatSession
+        * 
+        */
+        void DisconnectRSatSession();
+
     public: // Functions from base classes
 
          /**
@@ -299,9 +312,10 @@
         * @param aControl Used only for MoSm and Call Control
         * @return Resource id for the default text
         */
-        TInt DefaultAlphaIdL(
+        void DefaultAlphaId(
             const TSatSNotifyCommand aCommandId,
-            const TSatControlResult aControlResult) const;
+            const TSatControlResult aControlResult,
+            QString &resource) const;
 
         /**
         * Get size for the icon in popup window.
@@ -351,7 +365,6 @@
         // play tone sequence
         TBuf8<KMaxPlayToneLength> iSequence;
 
-
         //Ref: Interface to the UI-part
         MSatUiActionImplementer* iActionImplementer;
 
@@ -370,12 +383,6 @@
         //Own: Current Iconididentifier
         TInt iIconIdIdentifier;
 
-        //Own: SetupMenu and SelectItem items icon
-        //CAknIconArray* iItemIcons;
-
-        //Own: Icon fetching handler
-        //CSatUiIconHandler* iIconHandler;
-
         // own: used to signal that icons are supported
         TBool iIconSupport;
 
--- a/satui/satapp/inc/satappcommandhandler.h	Fri Apr 16 15:31:58 2010 +0300
+++ b/satui/satapp/inc/satappcommandhandler.h	Mon May 03 13:01:45 2010 +0300
@@ -175,7 +175,25 @@
         //const QPixmap* /*aIconBitmapGetInput*/,
         const bool aSelfExplanatory,
         unsigned int &aDuration);
-    
+
+    /**
+    * Notification of the SAT Call Control command.
+    * @param aText The text string to be displayed.
+    * @param aAlphaIdStatus alpha ID's status
+    */
+    void callControl(
+        const QString &aText,
+        const TSatAlphaIdStatus aAlphaIdStatus);        
+
+    /**
+    * Notification of the SAT Mo Sms Control command.
+    * @param aText The text string to be displayed.
+    * @param aAlphaIdStatus alpha ID's status
+    */
+    void moSmControl(
+        const QString &aText,
+        const TSatAlphaIdStatus aAlphaIdStatus);
+        
     /**
     * Shows the confirmation note about the SAT Send SMS, Send SS or
     * Send USSD command.
@@ -230,10 +248,34 @@
         bool &aActionAccepted//,
         //const CFbsBitmap* aIconBitmap,
         //const TBool aSelfExplanatory
-       );    
+       );
+
+    /**
+    * Shows the wait note about the Send Ss or Ussd command.
+    * @param aText The text to be displayed.
+    * @param aIconBitmapSendSM Sending dialog icon.
+    * @param aSelfExplanatoryIcon A flag indicating if only icon is shown.
+    */
+    void showSsWaitNote(
+        const QString &aText,
+        //const CFbsBitmap* aIconBitmapSendSM,
+        const bool aSelfExplanatoryIcon
+        );
+
+    /**
+    * Shows the wait note about BIP
+    * @param aCommand command type.
+    * @param aText The text to be displayed.
+    */
+    void showBIPWaitNote(int aCommand, const QString &aText);
     
+
 private:
-    SatAppUiProvider &mUi;    
+    /**
+    * Not own.
+    */
+    SatAppUiProvider &mUi;
+
 };
 
 #endif /* SATAPPCOMMANDHANDLER_H */
--- a/satui/satapp/inc/satappcommonconstant.h	Fri Apr 16 15:31:58 2010 +0300
+++ b/satui/satapp/inc/satappcommonconstant.h	Mon May 03 13:01:45 2010 +0300
@@ -28,6 +28,9 @@
 
 const int KExtendTimeoutMseconds(3000);
 const int KDefaultSelectionTimeoutMseconds(60000);
+const int KSymbianTimeConvertQtTime(100);
+const int KMoSmControlTimeOut(3000);
+const int KPlayToneSymbianConvertQtTime(1000);
 
 //enum for SendSms
 /**Sat send sms user response*/
@@ -70,7 +73,8 @@
     ESatDialogGetYesNo, // Yes No
     ESatDialogGetDigitalRsp, // Cancel
     ESatDialogSetUpCall, // Call Cancel
-    ESatDialogConfirmSend // Yes No
+    ESatDialogConfirmSend, // Yes No
+    ESatDialogConfirmBip // Ok Cancel
     };
 
 #endif 
--- a/satui/satapp/inc/satappeventprovider.h	Fri Apr 16 15:31:58 2010 +0300
+++ b/satui/satapp/inc/satappeventprovider.h	Mon May 03 13:01:45 2010 +0300
@@ -14,6 +14,7 @@
 * Description:
 *
 */
+
 #ifndef SATAPPEVENTPROVIDER_H
 #define SATAPPEVENTPROVIDER_H
 
@@ -22,7 +23,8 @@
 #include "msatuiactionimplementer.h"
 
 class CSatUiObserver;
-//class QPixmap; // For future icon support
+class SatAppPlayToneProvider;
+
 
 class SatAppEventProvider: public QObject,
                            public MSatUiActionImplementer
@@ -59,7 +61,6 @@
         TSatUiResponse &aRes,
         const QString &aText,
         const QString &aSimApplicationName,
-        //const HbIcon &aIcon,
         bool &aRequestedIconDisplayed,
         const bool aSustainedText,
         const int aDuration,
@@ -86,9 +87,8 @@
         const int aMinLength,
         const int aMaxLength,
         const bool aHideInput,
-        //const QPixmap* /*aIconBitmapGetInput*/,
         const bool aSelfExplanatory,
-        unsigned int &aDuration );
+        unsigned int &aDuration);
 
     /**
      * Notification of the SAT Get Inkey command.
@@ -105,9 +105,8 @@
         const QString &aTitleText,
         const TSatCharacterSet aCharacterSet,
         QString &aInputText,
-        //const QPixmap* /*aIconBitmapGetInput*/,
         const bool aSelfExplanatory,
-        unsigned int &aDuration );
+        unsigned int &aDuration);
 
     /**
      * Notification of the SAT Get YesNo command.
@@ -130,7 +129,29 @@
         //const TSatIconId &aIconId,
         const bool &aSelfExplanatory,
         unsigned int &aDuration,
-        const bool aImmediateDigitResponse );
+        const bool aImmediateDigitResponse);
+        
+    /**
+     * Notification of the SAT Call Control command.
+     * @param aRes The response.
+     * @param aText The heading.
+     * @param aAlphaIdStatus The alpha ID status.
+     * 
+     */
+    void callControlEvent(
+        const QString &aText,
+        const TSatAlphaIdStatus aAlphaIdStatus);
+
+    /**
+     * Notification of the SAT Call Control command.
+     * @param aRes The response.
+     * @param aText The heading.
+     * @param aAlphaIdStatus The alpha ID status.
+     *
+     */
+    void moSmControlEvent(
+        const QString &aText,
+        const TSatAlphaIdStatus aAlphaIdStatus);
 
     /**
     * Handles the SetUpMenu command.
@@ -148,9 +169,6 @@
         TSatUiResponse &aRes,
         const QString &aText,
         const QStringList &aMenuItems,
-        //const CArrayFixFlat<TSatAction>* aMenuItemNextActions,
-        //const HbIcon &aIcon,
-        //const CAknIconArray* aItemIconsArray,
         const bool aSelfExplanatoryItems,
         const bool aHelpIsAvailable);
 
@@ -172,11 +190,8 @@
         TSatUiResponse &aRes,
         const QString &aText,
         const QStringList &aMenuItems,
-        //const CArrayFixFlat<TSatAction>* aMenuItemNextActions,
         const int aDefaultItem,
         unsigned char &aSelection,
-        //const HbIcon &aIcon,
-        //const CAknIconArray* aItemsIconArray,
         const bool aSelfExplanatoryItems,
         const bool aHelpIsAvailable);
 
@@ -202,9 +217,7 @@
      */
     void showSmsWaitNoteEvent(
         const QString &aText,
-        //const CFbsBitmap* aIconBitmapSendSM,
-        const bool aSelfExplanatoryIcon
-        );
+        const bool aSelfExplanatoryIcon);
     
     /**
     * Shows the confirmation not about SetUpCall.
@@ -215,10 +228,7 @@
    void showSetUpCallConfirmEvent(
         const QString &aText,
         const QString &aSimAppName,
-        bool &aActionAccepted//,
-        //const CFbsBitmap* aIconBitmap,
-        //const TBool aSelfExplanatory
-       );
+        bool &aActionAccepted);
 
      /**
      * Shows the wait note about the Send DTMF command.
@@ -229,74 +239,26 @@
         TSatUiResponse &aRes,
         const QString &aText);
 
-    /**
-     * Notification of the SAT Play Tone command.
+
+     /**
+     * Shows the wait note about the Send Ss or Ussd command.
      * @param aText The text to be displayed.
-     * @param aTone The tone to be played.
-     * @param aDuration The duration of the tone to be played.
-     * @param aIconId The id of icon.
-     * @param aRequestedIconDisplayed Informs if icon is not used.
-     * @return The response of the UI to this command.
-     */
-//        virtual TSatUiResponse PlayTone(
-//            const TDesC &aText,
-//            const TSatTone aTone,
-//            const TTimeIntervalMicroSeconds aDuration,
-//            const TSatIconId &aIconId,
-//            TBool &aRequestedIconDisplayed ) = 0;
-
-    /**
-     * General confirmation request
-     * @param aCommandId ID of the quering command
-     * @param aAlphaIdStatus Alpha Identifier status
-     * @param aText The text to be displayed.
-     * @param aAdditionalText Additional text to be used in queries.
-     * @param aActionAccepted Indicates whether the command was accepted.
-     * @param aIconId The id of icon.
-     * @param aRequestedIconDisplayed Informs if icon is not used.
-     * @param aTerminatedByUser Informs if end key is used.
+     * @param aIconBitmapSendSM Sending dialog icon.
+     * @param aSelfExplanatoryIcon A flag indicating if only icon is shown.
      */
-//        virtual void ConfirmCommand(
-//            const TSatSQueryCommand aCommandId,
-//            const TSatAlphaIdStatus aAlphaIdStatus,
-//            const TDesC &aText,
-//            const TDesC &aAdditionalText,
-//            TBool &aActionAccepted,
-//            const TSatIconId &aIconId,
-//            TBool &aRequestedIconDisplayed,
-//            TBool &aTerminatedByUser ) = 0;
+    void showSsWaitNoteEvent(
+        const QString &aText,
+        const bool aSelfExplanatoryIcon);
 
-    /**
-     * General notification
-     * @param aCommandId ID of the notifying command
-     * @param aAlphaIdStatus Alpha Identifier status
-     * @param aText Alpha Identifier
-     * @param aIconId The id of icon.
-     * @param aRequestedIconDisplayed Informs if icon is not used.
-     * @param aControlResult Control result of the MoSm and CallControl
-     * @return The response of the UI to this command.
+     /**
+     * Shows the wait note about Open Channel
+     * @param aText The text to be displayed.
+     * @param aActionAccepted Indicates whether the command was accepted.
      */
-//        virtual TSatUiResponse Notification(
-//            const TSatSNotifyCommand aCommandId,
-//            const TSatAlphaIdStatus aAlphaIdStatus,
-//            const TDesC &aText,
-//            const TSatIconId &aIconId,
-//            TBool &aRequestedIconDisplayed,
-//            const TSatControlResult aControlResult ) = 0;
+    void showOpenChannelConfirmEvent(
+        const QString &aText,
+        bool &aActionAccepted);
 
-    /**
-     * General event notification. Used for example to tell UI that command
-     * has completed its execution.
-     * @param aEventId, identifies the event
-     * @param aEventStatus, status of the event, used as additional info for
-     *        the event
-     * @param aError, possible error code that may affect on event handling.
-     *        This is also used as additional info
-     */
-//        virtual void EventNotification(
-//            const TSatSEvent aEventId,
-//            const TSatSEventStatus aEventStatus,
-//            const TInt aError ) = 0;
 
     /*!
      Removes Display Text Dialog from the screen.
@@ -313,12 +275,26 @@
     */
     void stopShowWaitNoteEvent();
 
+    /*!
+    *Show SsWaitNote without Delay
+    */  
+    void showWaitNoteWithoutDelayEvent();
+
+    /*!
+    *ShowSsErrorNoteEvent
+    */  
+    void showSsErrorNoteEvent();
+    
+    /*!
+    * Show BIP related Note 
+    */      
+    void showBIPNoteEvent(int aCommand, const QString &aText);
 
 public slots:
     /*!
-    *User cancel Dtmf response
+    *User cancel response, Send DTMF, Send Data, Receive Data
     */
-    void userCancelDtmfResponse();
+    void userCancelResponse();
 
 public: // from MSatUiActionImplementer and impletment by QT
 
@@ -330,7 +306,7 @@
     /**
     * Shows the wait note without delay
     */
-    virtual void ShowWaitNoteWithoutDelayL() {};
+    virtual void ShowWaitNoteWithoutDelayL();
 
     /**
     * Removes the wait note from the screen.
@@ -353,8 +329,7 @@
          const TDesC &aText,
          const MDesCArray &aMenuItems,
          const CArrayFixFlat<TSatAction>* aMenuItemNextActions,
-         const CFbsBitmap* aIconBitmap,
-         //const CAknIconArray* aItemIconsArray,
+         const CFbsBitmap *aIconBitmap,
          const TBool aSelfExplanatoryItems,
          const TBool aHelpIsAvailable);
 
@@ -371,17 +346,14 @@
      * @param aHelpIsAvailable A flag indicating if SAT help is available.
      * @return Information of the operation result.
      */
-     virtual TSatUiResponse SelectItemL( const TDesC &aText,
+     virtual TSatUiResponse SelectItemL(const TDesC &aText,
          const MDesCArray &aMenuItems,
          const CArrayFixFlat<TSatAction>* aMenuItemNextActions,
          const TInt aDefaultItem,
          TUint8 &aSelection,
-         const CFbsBitmap* aIconBitmap,
-         //const CAknIconArray* aItemsIconArray,
+         const CFbsBitmap *aIconBitmap,
          const TBool aSelfExplanatoryItems,
-         const TBool aHelpIsAvailable );
-
-public: // from MSatUiActionImplementer and impletment by Symbian
+         const TBool aHelpIsAvailable);
 
     /**
     * Returns CoeEnv.
@@ -403,7 +375,7 @@
     virtual TSatUiResponse DisplayTextL(
         const TDesC &aText,
         const TDesC &aSimApplicationName,
-        CFbsBitmap* aIconBitmapDisplayText,
+        CFbsBitmap *aIconBitmapDisplayText,
         const TBool aSelfExplanatoryIcon,
         const TBool aSustainedText,
         const TTimeIntervalSeconds aDuration,
@@ -430,7 +402,7 @@
         const TDesC &aText,
         const TSatCharacterSet aCharacterSet,
         TChar &aInkey,
-        const CFbsBitmap* /*aIconBitmap*/,
+        const CFbsBitmap */*aIconBitmap*/,
         const TBool aSelfExplanatory,
         TUint &aDuration,
         const TBool aImmediateDigitResponse);
@@ -457,9 +429,9 @@
         const TInt aMaxLength,
         const TBool aHideInput,
         const TBool aGetInkey,
-        const CFbsBitmap* aIconBitmapGetInput,
+        const CFbsBitmap *aIconBitmapGetInput,
         const TBool aSelfExplanatory,
-        TUint &aDuration );
+        TUint &aDuration);
 
 
     /**
@@ -472,14 +444,11 @@
     * @return Information of the operation result.
     */
     virtual TSatUiResponse PlayStandardToneL(
-        const TDesC &/*aText*/,
-        const TDesC8 &/*aSequence*/,
-        TTimeIntervalMicroSeconds /*aDuration*/,
-        const CFbsBitmap* /*aIconBitmap*/,
-        const TBool /*aSelfExplanatory*/ )
-        {
-             return ESatSuccess;
-        };
+        const TDesC &aText,
+        const TDesC8 &aSequence,
+        TTimeIntervalMicroSeconds aDuration,
+        const CFbsBitmap *aIconBitmap,
+        const TBool aSelfExplanatory);
 
     /**
     * Shows the confirmation note about the SAT Send SMS, Send SS or
@@ -502,7 +471,7 @@
     */
     virtual void ShowSmsWaitNoteL(
         const TDesC &aText,
-        const CFbsBitmap* aIconBitmapSendSM,
+        const CFbsBitmap *aIconBitmapSendSM,
         const TBool aSelfExplanatoryIcon);
 
     /**
@@ -512,9 +481,9 @@
     * @param aSelfExplanatoryIcon A flag indicating if only icon is shown.
     */
     virtual void ShowSsWaitNoteL(
-            const TDesC &/*aText*/,
-            const CFbsBitmap* /*aIconBitmap*/,
-            const TBool /*aSelfExplanatoryIcon*/ ) {};
+        const TDesC &aText,
+        const CFbsBitmap */*aIconBitmap*/,
+        const TBool aSelfExplanatoryIcon);
 
     /**
     * Shows the confirmation note about the SAT Refresh command.
@@ -535,11 +504,8 @@
     * @return The response from the UI
     */
     virtual TSatUiResponse CallControlL(
-            const TDesC &/*aText*/,
-            const TSatAlphaIdStatus /*aAlphaIdStatus*/ )
-        {
-            return ESatSuccess;
-        };
+        const TDesC &aText,
+        const TSatAlphaIdStatus aAlphaIdStatus);
 
     /**
     * Notification of the SAT Launch browser confirmation request
@@ -551,7 +517,7 @@
     virtual void ConfirmLaunchBrowserL(
         const TDesC &/*aText*/,
         TBool &/*aActionAccepted*/,
-        const CFbsBitmap* /*aIconBitmap*/,
+        const CFbsBitmap */*aIconBitmap*/,
         const TBool /*aSelfExplanatory*/) {};
 
     /**
@@ -562,11 +528,8 @@
     * @return The response from the UI
     */
     virtual TSatUiResponse MoSmControlL(
-        const TDesC &/*aText*/,
-        const TSatAlphaIdStatus /*aAlphaIdStatus*/ )
-        {
-            return ESatSuccess;
-        };
+        const TDesC &aText,
+        const TSatAlphaIdStatus aAlphaIdStatus);
 
     /**
     * Shows the wait note while DTMF are being sent.
@@ -577,8 +540,8 @@
     */
     virtual TSatUiResponse ShowDtmfWaitNoteL(
             const TDesC &aText,
-            const CFbsBitmap* aIconBitmap,
-            const TBool aSelfExplanatoryIcon );
+            const CFbsBitmap *aIconBitmap,
+            const TBool aSelfExplanatoryIcon);
 
     /**
     * Dispatch iWait to action implementer.
@@ -589,11 +552,9 @@
     /**
     * Get flag which is indicating if end key is pressed.
     * @return A Boolean flag which is indicating if end key is pressed.
+    *         EndKey not support, Open issue
     */
-    virtual TBool GetEndKey()
-        {
-            return EFalse;
-        };
+    virtual TBool GetEndKey(){return EFalse;};
 
     /**
     * Set a flag which is indicating if end key is pressed.
@@ -617,14 +578,11 @@
     * @return Information on the operation result.
     */
     virtual TSatUiResponse PlayUserSelectedToneL(
-        const TDesC &/*aText*/,
-        TTimeIntervalMicroSeconds /*aDuration*/,
-        TSatTone /*aTone*/,
-        const CFbsBitmap* /*aIconBitmap*/,
-        const TBool /*aSelfExplanatory*/ )
-        {
-            return ESatSuccess;
-        };
+        const TDesC &aText,
+        TTimeIntervalMicroSeconds aDuration,
+        TSatTone aTone,
+        const CFbsBitmap *aIconBitmap,
+        const TBool aSelfExplanatory);
 
     /**
     * Confirm user permission for Open Channel.
@@ -635,13 +593,10 @@
     * @return Operation result
     */
     virtual TSatUiResponse ConfirmOpenChannelL(
-        const TDesC &/*aText*/,
-        TBool &/*aActionAccepted*/,
-        const CFbsBitmap* /*aIconBitmapOpenChannel*/,
-        const TBool /*aSelfExplanatory*/ )
-        {
-            return ESatSuccess;
-        };
+        const TDesC &aText,
+        TBool &aActionAccepted,
+        const CFbsBitmap */*aIconBitmapOpenChannel*/,
+        const TBool aSelfExplanatory);
 
     /**
     * Shows the wait note while BIP packets are sent.
@@ -651,10 +606,10 @@
     * @param aSelfExplanatory A flag indicating if icon is self-explanatory
     */
     virtual void ShowBIPNoteL(
-        TInt /*aCommand*/,
-        const TDesC &/*aText*/,
-        const CFbsBitmap* /*aIconBitmap*/,
-        const TBool /*aSelfExplanatory*/) {};
+        TInt aCommand,
+        const TDesC &aText,
+        const CFbsBitmap */*aIconBitmap*/,
+        const TBool /*aSelfExplanatory*/);
 
     /**
     * Confirm user permission for SetUpCall
@@ -668,7 +623,7 @@
         const TDesC &aText,
         const TDesC &aSimAppName,
         TBool &aActionAccepted,
-        const CFbsBitmap* aIconBitmap,
+        const CFbsBitmap *aIconBitmap,
         const TBool aSelfExplanatory);
 
     /**
@@ -679,10 +634,10 @@
     /**
     * Show the Ss error note.
     */
-    virtual void ShowSsErrorNoteL() {};
+    virtual void ShowSsErrorNoteL();
 
     /**
-    * Start SatUi closing process.
+    * Close SatUi process.
     */
     virtual void CloseSatUI();
 
@@ -699,10 +654,7 @@
      * @param aMenuItem The selected menu item.
      * @param aHelpRequested Indicates whether help was requested.
      */
-    void menuSelection( int aMenuItem, bool aHelpRequested );
-
-protected:
-     //Q_DISABLE_COPY( SatAppEventProvider );
+    void menuSelection(int aMenuItem, bool aHelpRequested);
 
 private: // Data
 
@@ -712,6 +664,12 @@
      * own
      */
     CSatUiObserver *mObs;
+
+    /**
+     * Own, PlayTone
+     */
+    SatAppPlayToneProvider *mPlayTone;
+
 };
 
 #endif
--- a/satui/satapp/inc/satappgetinkeynote.h	Fri Apr 16 15:31:58 2010 +0300
+++ b/satui/satapp/inc/satappgetinkeynote.h	Mon May 03 13:01:45 2010 +0300
@@ -19,7 +19,6 @@
 #ifndef SATAPPGETINKEYNOTE_H
 #define SATAPPGETINKEYNOTE_H
 
-#include <exception>
 #include <QObject>
 #include <hbmessagebox.h>
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/satui/satapp/inc/satappplaytoneprovider.h	Mon May 03 13:01:45 2010 +0300
@@ -0,0 +1,190 @@
+/*
+* Copyright (c) 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:
+*
+*/
+#ifndef SATAPPPLAYTONEPROVIDER_H
+#define SATAPPPLAYTONEPROVIDER_H
+ 
+#include <QObject>
+#include <MdaAudioTonePlayer.h>//PlayStandardTone
+#include <MdaAudioSamplePlayer.h>//PlayUserSelectedTone
+#include <QEventLoop>
+#include <msatuiobserver.h>
+
+
+class CMdaAudioToneUtility;
+class CMdaAudioPlayerUtility;
+class QTimer;
+class HbMessageBox;
+
+class SatAppPlayToneProvider: public QObject,
+                           public MMdaAudioToneObserver,//PlayStandardTone
+                           public MMdaAudioPlayerCallback//PlayUserSelectedTone
+{
+    Q_OBJECT
+
+public:
+
+    /**
+    * Constructor
+    */
+    SatAppPlayToneProvider(QObject *parent = 0);
+
+    /**
+    * Distructor
+    */
+    virtual ~SatAppPlayToneProvider();
+
+public: // from MSatUiActionImplementer and impletment by Symbian
+
+    /**
+    * Handles Standard Tone playing.
+    * @param aText The text to be displayed.
+    * @param aFileName The name of the file corresponding to the tone.
+    * @param aDuration The duration of the tone to be played.
+    * @param aIconBitmap The tone playing note icon
+    * @param aSelfExplanatory Flag indicating if icon is self-explanatory.
+    * @return Information of the operation result.
+    */
+    virtual TSatUiResponse PlayStandardToneL(
+        const TDesC &aText,
+        const TDesC8 &aSequence,
+        TTimeIntervalMicroSeconds aDuration,
+        const CFbsBitmap *aIconBitmap,
+        const TBool aSelfExplanatory );
+
+    /**
+    * Plays user selected tone.
+    * @param aText The text to be displayed.
+    * @param aDuration Play duration.
+    * @param aTone Tone to be played.
+    * @param aIconBitmap The tone playing note icon
+    * @param aSelfExplanatory Flag indicating if icon is self-explanatory.
+    * @return Information on the operation result.
+    */
+    virtual TSatUiResponse PlayUserSelectedToneL(
+        const TDesC &aText,
+        TTimeIntervalMicroSeconds aDuration,
+        TSatTone aTone,
+        const CFbsBitmap *aIconBitmap,
+        const TBool aSelfExplanatory );
+
+    /**
+    * ClearScreen
+    */
+    void clearScreen();
+
+    /**
+    * CloseSatUI
+    */
+    void closeSatUI();
+
+public:// from MMdaAudioToneObserver
+
+    /**
+    * From MMdaAudioToneObserver Called by the player object when
+    * it has been initialised.
+    * @param aError Error type.
+    */
+    void MatoPrepareComplete( TInt aError );
+
+    /**
+    * From MMdaAudioToneObserver Called by the player object when
+    * the playback has been terminated.
+    * @param aError Error type.
+    */
+    void MatoPlayComplete( TInt aError );
+
+public://from MMdaAudioPlayerCallback
+    /**
+    * Initialisation of an audio sample has completed.
+    * @param aError The status of the audio sample after initialisation.
+    * @param aDuration The duration of the audio sample.
+    */
+    void MapcInitComplete( 
+        TInt aError, 
+        const TTimeIntervalMicroSeconds& /*aDuration*/ );
+
+    /**
+    * Play of an audio sample has completed.
+    * @param aError The status of playback.
+    */
+    void MapcPlayComplete( TInt aError );
+
+private:// for playTone
+
+    /**
+    * Get settings from current profile like volume, warning tones on/off etc.
+    * @param aTone, optional specifies the type of needed tone if necessary
+    * @param aToneName, optional buffer to get a soundfile name from 
+    * the active profile if necessary
+    */
+    void GetProfileParamsL( TSatTone aTone = ESatToneNotSet,
+                                             TDes *aToneName = NULL );
+
+    /**
+    * showWaitNote
+    */
+    void showWaitNote();
+
+private slots:
+
+    void stopPlayTone();
+
+private: // Data
+
+    /**
+    * Warning And Play Tones
+    */
+    bool mWarningAndPlayTones;
+
+    /**
+    * Play tone volume
+    */
+    int mVolume;
+
+    /**
+    * Own, Media server interface to play rtf file
+    */
+    CMdaAudioToneUtility *mPlayer;
+
+    /**
+    * Response of Play tone
+    */
+    TSatUiResponse mPlayToneError;
+
+    /*
+     *  Own. PlayTone
+     */
+    QTimer *mTimer;
+
+    /*
+     *  Own. PlayTone 
+     */
+    QEventLoop *mLoop;
+
+    /*
+     *  Own. PlayTone note
+     */
+    HbMessageBox *mPermanentNote; 
+
+    /*
+     *  Own. Player for user selected tones.
+     */ 
+    CMdaAudioPlayerUtility *mAudioPlayer;
+
+};
+
+#endif    //SATAPPPLAYTONEPROVIDER_H
--- a/satui/satapp/inc/satappuiprovider.h	Fri Apr 16 15:31:58 2010 +0300
+++ b/satui/satapp/inc/satappuiprovider.h	Mon May 03 13:01:45 2010 +0300
@@ -28,11 +28,11 @@
 class SatAppEventProvider;  // Call back from SatServer
 class SatAppView;           // SetupMenu and SelectItem
 class HbMessageBox;         // DisplayText
+class HbDeviceMessageBox;   // CallControl
 class SatAppGetInkeyNote;   // GetInKey
 class HbInputDialog;        // GetInKey
-class HbDialog;             // GetInput
-class HbProgressDialog;     // For wait note
 class QTimer;               // For SMS/DTMF
+class HbProgressDialog;
 
 // Here we create custom document loader to be able to use own classes in XML.
 class SatAppDocumentLoader : public HbDocumentLoader
@@ -206,11 +206,47 @@
             const QString &aText,
             const QString &aSimAppName,
             bool &aActionAccepted);
+            
+    /*
+     * Show Ss wait note
+     * @param aText The string shown in heading widget
+     */
+    void showSsWaitNote(const QString &aText, const bool aSelfExplanatoryIcon);
+    
+    /*
+     * Show call control device info note, with cancel key
+     * @param aText The string shown in heading widget
+     */    
+    void showCallControlNote(const QString &aText);
+    
+    /*
+     * Show receive data and send data wait note, with cancel key
+     * @param aText The string shown in heading widget
+     */    
+    void showBIPWaitNote(const QString &aText);
+    
+    /*
+     * Show Mo sms info note, with cancel key
+     * @param aText The string shown in heading widget
+     */    
+    void showMoSmControlNote(const QString &aText);
+    /*
+     * Show Close Channel wait note without cancel key
+     * @param aText The string shown in heading widget
+     */    
+    void showCloseChannelWaitNote(const QString &aText);
+    
+    /*
+     * Show sat info note
+     * @param aText The string shown in heading widget
+     */    
+    void showSatInfoNote(const QString &aText);
+
 signals:
     /*
-     * User cancel Dtmf response
+     * User cancel response, Send DTMF, Send Data, Receive Data
      */
-    void userCancelDtmfResponse();
+    void userCancelResponse();
 
 public slots:
     /*
@@ -245,9 +281,28 @@
     void updateQueryAction(QString text);
 
     /*
-     * User cancel Dtmf response
+     * User cancel response, Send DTMF, Send Data, Receive Data
      */
-    void cancelDtmfResponse();
+    void cancelResponse();
+ 
+     /*
+     * Show WaitNoteWithoutDelay
+     */   
+    void showWaitNoteWithoutDelay();
+
+    /*
+    * Show SsErrorNote
+    */   
+    void showSsErrorNote();
+
+    /*
+     * Comfirm OpenChannel
+     * @param aText 
+     * @param aActionAccepted 
+     */
+    void showConfirmOpenChannelQuery(
+            const QString &aText,
+            bool &aActionAccepted);
 
 private:
     /*
@@ -322,18 +377,19 @@
     HbMessageBox *mConfirmSendQuery;
 
     /*
-     *  Own. SmsWaitNote
-     */
-    HbProgressDialog *mSmsWaitNote;
-    /*
-     *  Own. DtmfWaitNote
-     */
-    HbProgressDialog *mDtmfWaitNote;
-
-    /*
      *  Own. SetUpCall Query
      */
     HbMessageBox *mSetUpCallQuery;
+    
+    /*
+     *  Own. CallControl Query
+     */
+    HbDeviceMessageBox *mCallControlMsg;
+
+    /*
+     *  Own. Confirm Bip Query
+     */
+    HbMessageBox *mConfirmBipQuery;
 
     /*
      *  General user response
@@ -359,6 +415,12 @@
      *  Own. 
      */   
     QEventLoop *mLoop;
+
+    /*
+     *  Own. SsWaitNote
+     */
+    HbProgressDialog *mWaitNote;
+
 };
 
 #endif// SATAPPUIPROVIDER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/satui/satapp/resource/qgn_menu_sat.svg	Mon May 03 13:01:45 2010 +0300
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg width="100%" height="100%" viewBox="0 0 88 88">
+<linearGradient id="_10" gradientUnits="userSpaceOnUse" x1="40.24" y1="46.68" x2="57.84" y2="81.34">
+<stop stop-color="#A2C2DD" offset="0.1"/>
+<stop stop-color="#6C83BB" offset="0.71"/>
+<stop stop-color="#003D6D" offset="0.99"/>
+</linearGradient>
+<path fill="url(#_10)" d="M26.734,9.7v41.113l-5.93-1.235L9.83,55.709l1.757,17.196l14.224,4.875l10.219-7.06l0.172-2.886 l33.144,7.405l3.086-3.029l0.747-43.317L58.593,14.075L30.578,8.457L26.734,9.7z"/>
+<linearGradient id="_11" gradientUnits="userSpaceOnUse" x1="60.52" y1="8.31" x2="41.86" y2="60.31">
+<stop stop-color="#FFFFFF" offset="0.05"/>
+<stop stop-color="#A2C2DD" offset="1"/>
+</linearGradient>
+<polygon fill="url(#_11)" points="69.207,31.139 69.207,74.493 27.435,65.159 27.435,10.123 54.951,16.272 "/>
+<linearGradient id="_12" gradientUnits="userSpaceOnUse" x1="35.08" y1="29.48" x2="48.42" y2="62.81">
+<stop stop-color="#E6EEF4" offset="0"/>
+<stop stop-color="#9646AC" offset="0.44"/>
+<stop stop-color="#3D013F" offset="0.94"/>
+</linearGradient>
+<path fill="url(#_12)" d="M54.835,57.479c0,9.869-10.149,8.211-12.022,7.35 c-2.881-0.682-11.616-5.004-11.616-13.557V41.204c0-10.296,11.059-7.697,11.285-7.728c0,0,11.985,2.593,12.354,13.935 V57.479z"/>
+<path fill="url(#_11)" d="M50.967,46.274l3.818,1.004l0.333-1.48l-4.151-1.092v-8.988l-1.53-0.061v11.992 c-0.937-0.701-2.028-1.332-3.222-1.857V33.926l-1.529-0.06v11.332c-0.48-0.166-3.066-0.803-3.815-0.891V33.065 l-1.53-0.061v11.214c-1.056-0.01-2.012,0.115-2.824,0.373v-12.67l-1.53-0.061v8.647l-3.821-1.002l-0.333,1.482 l4.154,1.086v21.064l1.53,0.061V52.026c0.814,0.654,1.771,1.254,2.824,1.775v10.482l1.53,0.061v-9.869 c0.68,0.264,3.253,0.949,3.815,1.039V65.69l1.529,0.059V55.692c1.197,0.072,2.289-0.016,3.222-0.256v11.5l1.53,0.061 v-8.152l3.818,1.004l0.333-1.48l-4.151-1.092V46.274z M36.516,50.256v-3.754c2.981-1.502,9.644-0.107,12.921,2.846 v4.227C45.988,54.948,39.223,53.006,36.516,50.256z"/>
+<linearGradient id="_14" gradientUnits="userSpaceOnUse" x1="70.44" y1="22.07" x2="71.08" y2="85.59">
+<stop stop-color="#FFFFFF" offset="0"/>
+<stop stop-color="#A2C2DD" offset="0.35"/>
+<stop stop-color="#6C83BB" offset="0.7"/>
+<stop stop-color="#003D6D" offset="1"/>
+</linearGradient>
+<polygon fill="url(#_14)" points="69.014,74.584 71.735,71.913 72.473,29.176 69.149,31.196 "/>
+<linearGradient id="_15" gradientUnits="userSpaceOnUse" x1="41.8" y1="15.16" x2="44.04" y2="9.08">
+<stop stop-color="#FFFFFF" offset="0.05"/>
+<stop stop-color="#A2C2DD" offset="1"/>
+</linearGradient>
+<polygon fill="url(#_15)" points="58.244,14.719 30.62,9.179 27.352,10.19 55.208,16.54 "/>
+<linearGradient id="_16" gradientUnits="userSpaceOnUse" x1="57.6" y1="-2.83" x2="65.7" y2="30.53">
+<stop stop-color="#FFFFFF" offset="0.15"/>
+<stop stop-color="#A2C2DD" offset="1"/>
+</linearGradient>
+<polygon fill="url(#_16)" points="55.208,16.54 69.149,31.196 72.473,29.176 58.244,14.719 "/>
+<polygon fill="#58A015" points="25.703,77.004 12.237,72.389 10.667,56.096 26.188,60.045 "/>
+<polygon fill="#17594C" points="25.703,77.004 35.351,70.338 36.358,53.522 25.703,60.045 "/>
+<linearGradient id="_17" gradientUnits="userSpaceOnUse" x1="10.57" y1="55.18" x2="36.31" y2="55.18">
+<stop stop-color="#DCE8E4" offset="0"/>
+<stop stop-color="#43910A" offset="1"/>
+</linearGradient>
+<polygon fill="url(#_17)" points="10.573,56.096 25.703,60.045 36.31,53.522 20.918,50.317 "/>
+<linearGradient id="_18" gradientUnits="userSpaceOnUse" x1="9.06" y1="79.5" x2="25.64" y2="70.32">
+<stop stop-color="#DCE8E4" offset="0"/>
+<stop stop-color="#43910A" offset="1"/>
+</linearGradient>
+<polygon fill="url(#_18)" points="25.669,68.159 25.703,77.004 12.237,72.389 23.495,64.79 "/>
+<rect fill="none" height="88" width="88"/>
+</svg>
\ No newline at end of file
Binary file satui/satapp/resource/sat_text_map.xls has changed
--- a/satui/satapp/resource/satapp.qrc	Fri Apr 16 15:31:58 2010 +0300
+++ b/satui/satapp/resource/satapp.qrc	Mon May 03 13:01:45 2010 +0300
@@ -6,5 +6,7 @@
     <qresource prefix="/translations" >
         <file alias="satapp_en">satapp_en.qm</file>
     </qresource>
-
+    <qresource prefix="/icons" >
+        <file>qgn_menu_sat.svg</file>
+    </qresource>    
 </RCC>
Binary file satui/satapp/resource/satapp_en.qm has changed
--- a/satui/satapp/resource/satapp_en.ts	Fri Apr 16 15:31:58 2010 +0300
+++ b/satui/satapp/resource/satapp_en.ts	Mon May 03 13:01:45 2010 +0300
@@ -1,7 +1,97 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <!DOCTYPE TS>
 <TS version="3.0" language="en_GB" sourcelanguage="en_GB">
 <context>
+<message numerus="no" id="txt_sat_setupcall_confirm_note">
+    <comment></comment>        
+    <source> about to call</source>
+    <translation variants="no"> about to call</translation>
+    <extra-loc-layout_id></extra-loc-layout_id>    
+    <extra-loc-viewid></extra-loc-viewid>
+    <extra-loc-positionid></extra-loc-positionid>
+    <extra-loc-feature></extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_sat_getinkey_char">
+    <comment></comment>        
+    <source>Enter character </source>
+    <translation variants="no">Enter character </translation>
+    <extra-loc-layout_id></extra-loc-layout_id>    
+    <extra-loc-viewid></extra-loc-viewid>
+    <extra-loc-positionid></extra-loc-positionid>
+    <extra-loc-feature></extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_sat_general_call">
+    <comment></comment>        
+    <source>Call</source>
+    <translation variants="no">Call</translation>
+    <extra-loc-layout_id></extra-loc-layout_id>    
+    <extra-loc-viewid></extra-loc-viewid>
+    <extra-loc-positionid></extra-loc-positionid>
+    <extra-loc-feature></extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_sat_conf_close_channel_bip">
+    <comment></comment>        
+    <source>Connection closed</source>
+    <translation variants="no">Connection closed</translation>
+    <extra-loc-layout_id></extra-loc-layout_id>    
+    <extra-loc-viewid></extra-loc-viewid>
+    <extra-loc-positionid></extra-loc-positionid>
+    <extra-loc-feature></extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_sat_request_modified">
+    <comment></comment>        
+    <source>Request modified</source>
+    <translation variants="no">Request modified</translation>
+    <extra-loc-layout_id></extra-loc-layout_id>    
+    <extra-loc-viewid></extra-loc-viewid>
+    <extra-loc-positionid></extra-loc-positionid>
+    <extra-loc-feature></extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_sat_sending_sms">
+    <comment></comment>        
+    <source>Sending…</source>
+    <translation variants="no">Sending…</translation>
+    <extra-loc-layout_id></extra-loc-layout_id>    
+    <extra-loc-viewid></extra-loc-viewid>
+    <extra-loc-positionid></extra-loc-positionid>
+    <extra-loc-feature></extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_sat_cc_not_allowed">
+    <comment></comment>        
+    <source>Request not allowed</source>
+    <translation variants="no">Request not allowed</translation>
+    <extra-loc-layout_id></extra-loc-layout_id>    
+    <extra-loc-viewid></extra-loc-viewid>
+    <extra-loc-positionid></extra-loc-positionid>
+    <extra-loc-feature></extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_sat_general_cancel">
+    <comment></comment>        
+    <source>Cancel</source>
+    <translation variants="no">Cancel</translation>
+    <extra-loc-layout_id></extra-loc-layout_id>    
+    <extra-loc-viewid></extra-loc-viewid>
+    <extra-loc-positionid></extra-loc-positionid>
+    <extra-loc-feature></extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_sat_cc_modified">
+    <comment></comment>        
+    <source>Request modified</source>
+    <translation variants="no">Request modified</translation>
+    <extra-loc-layout_id></extra-loc-layout_id>    
+    <extra-loc-viewid></extra-loc-viewid>
+    <extra-loc-positionid></extra-loc-positionid>
+    <extra-loc-feature></extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
 <message numerus="no" id="txt_sat_sendingtextmessage">
     <comment></comment>        
     <source>Sending Text message</source>
@@ -12,10 +102,50 @@
     <extra-loc-feature></extra-loc-feature>
     <extra-loc-blank>False</extra-loc-blank>
 </message>
-<message numerus="no" id="txt_sat_simatk_enter_nbr">
+<message numerus="no" id="txt_sat_application_name">
+    <comment></comment>        
+    <source>SAT MESSAGE HEADER</source>
+    <translation variants="no">SAT MESSAGE HEADER</translation>
+    <extra-loc-layout_id></extra-loc-layout_id>    
+    <extra-loc-viewid></extra-loc-viewid>
+    <extra-loc-positionid></extra-loc-positionid>
+    <extra-loc-feature></extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_sat_general_back">
+    <comment></comment>        
+    <source>Back</source>
+    <translation variants="no">Back</translation>
+    <extra-loc-layout_id></extra-loc-layout_id>    
+    <extra-loc-viewid></extra-loc-viewid>
+    <extra-loc-positionid></extra-loc-positionid>
+    <extra-loc-feature></extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_sat_general_no">
     <comment></comment>        
-    <source>Enter:\n(1 digit 0-9)</source>
-    <translation variants="no">Enter:\n(1 digit 0-9)</translation>
+    <source>No</source>
+    <translation variants="no">No</translation>
+    <extra-loc-layout_id></extra-loc-layout_id>    
+    <extra-loc-viewid></extra-loc-viewid>
+    <extra-loc-positionid></extra-loc-positionid>
+    <extra-loc-feature></extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_sat_sendss_wait_note_send">
+    <comment></comment>        
+    <source>Sending…</source>
+    <translation variants="no">Sending…</translation>
+    <extra-loc-layout_id></extra-loc-layout_id>    
+    <extra-loc-viewid></extra-loc-viewid>
+    <extra-loc-positionid></extra-loc-positionid>
+    <extra-loc-feature></extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_sat_general_yes">
+    <comment></comment>        
+    <source>Yes</source>
+    <translation variants="no">Yes</translation>
     <extra-loc-layout_id></extra-loc-layout_id>    
     <extra-loc-viewid></extra-loc-viewid>
     <extra-loc-positionid></extra-loc-positionid>
@@ -32,6 +162,26 @@
     <extra-loc-feature></extra-loc-feature>
     <extra-loc-blank>False</extra-loc-blank>
 </message>
+<message numerus="no" id="txt_sat_general_send">
+    <comment></comment>        
+    <source>Send</source>
+    <translation variants="no">Send</translation>
+    <extra-loc-layout_id></extra-loc-layout_id>    
+    <extra-loc-viewid></extra-loc-viewid>
+    <extra-loc-positionid></extra-loc-positionid>
+    <extra-loc-feature></extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_sat_sendss_error_note">
+    <comment></comment>        
+    <source>Not done</source>
+    <translation variants="no">Not done</translation>
+    <extra-loc-layout_id></extra-loc-layout_id>    
+    <extra-loc-viewid></extra-loc-viewid>
+    <extra-loc-positionid></extra-loc-positionid>
+    <extra-loc-feature></extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
 <message numerus="no" id="txt_sat_title">
     <comment></comment>        
     <source>SIM Services</source>
@@ -42,5 +192,155 @@
     <extra-loc-feature></extra-loc-feature>
     <extra-loc-blank>False</extra-loc-blank>
 </message>
+<message numerus="no" id="txt_sat_getinput_nbr">
+    <comment></comment>        
+    <source>Enter:\n(1 digit 0-9)</source>
+    <translation variants="no">Enter:\n(1 digit 0-9)</translation>
+    <extra-loc-layout_id></extra-loc-layout_id>    
+    <extra-loc-viewid></extra-loc-viewid>
+    <extra-loc-positionid></extra-loc-positionid>
+    <extra-loc-feature></extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_sat_getinkey_nbr">
+    <comment></comment>        
+    <source>Enternumber (1 digit 0-9) </source>
+    <translation variants="no">Enternumber (1 digit 0-9) </translation>
+    <extra-loc-layout_id></extra-loc-layout_id>    
+    <extra-loc-viewid></extra-loc-viewid>
+    <extra-loc-positionid></extra-loc-positionid>
+    <extra-loc-feature></extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_sat_sendss_wait_note_request">
+    <comment></comment>        
+    <source>Requesting…</source>
+    <translation variants="no">Requesting…</translation>
+    <extra-loc-layout_id></extra-loc-layout_id>    
+    <extra-loc-viewid></extra-loc-viewid>
+    <extra-loc-positionid></extra-loc-positionid>
+    <extra-loc-feature></extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_sat_openchannel_confirm_note">
+    <comment></comment>        
+    <source>Open connection?</source>
+    <translation variants="no">Open connection?</translation>
+    <extra-loc-layout_id></extra-loc-layout_id>    
+    <extra-loc-viewid></extra-loc-viewid>
+    <extra-loc-positionid></extra-loc-positionid>
+    <extra-loc-feature></extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_sat_conf_send_data_bip">
+    <comment></comment>        
+    <source>Sending data</source>
+    <translation variants="no">Sending data</translation>
+    <extra-loc-layout_id></extra-loc-layout_id>    
+    <extra-loc-viewid></extra-loc-viewid>
+    <extra-loc-positionid></extra-loc-positionid>
+    <extra-loc-feature></extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_sat_sim_notification_sendsms">
+    <comment></comment>        
+    <source>Allow SIM card to send message?</source>
+    <translation variants="no">Allow SIM card to send message?</translation>
+    <extra-loc-layout_id></extra-loc-layout_id>    
+    <extra-loc-viewid></extra-loc-viewid>
+    <extra-loc-positionid></extra-loc-positionid>
+    <extra-loc-feature></extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_sat_closechannel_wait_note">
+    <comment></comment>        
+    <source>Connection closed</source>
+    <translation variants="no">Connection closed</translation>
+    <extra-loc-layout_id></extra-loc-layout_id>    
+    <extra-loc-viewid></extra-loc-viewid>
+    <extra-loc-positionid></extra-loc-positionid>
+    <extra-loc-feature></extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_sat_general_ok">
+    <comment></comment>        
+    <source>OK</source>
+    <translation variants="no">OK</translation>
+    <extra-loc-layout_id></extra-loc-layout_id>    
+    <extra-loc-viewid></extra-loc-viewid>
+    <extra-loc-positionid></extra-loc-positionid>
+    <extra-loc-feature></extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_sat_sim_notification_sendss_ussd">
+    <comment></comment>        
+    <source>Allow SIM card to send a request to the network?</source>
+    <translation variants="no">Allow SIM card to send a request to the network?</translation>
+    <extra-loc-layout_id></extra-loc-layout_id>    
+    <extra-loc-viewid></extra-loc-viewid>
+    <extra-loc-positionid></extra-loc-positionid>
+    <extra-loc-feature></extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_sat_conf_receive_data_bip">
+    <comment></comment>        
+    <source>Receiving data</source>
+    <translation variants="no">Receiving data</translation>
+    <extra-loc-layout_id></extra-loc-layout_id>    
+    <extra-loc-viewid></extra-loc-viewid>
+    <extra-loc-positionid></extra-loc-positionid>
+    <extra-loc-feature></extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_sat_getinput_char">
+    <comment></comment>        
+    <source>Enter:</source>
+    <translation variants="no">Enter:</translation>
+    <extra-loc-layout_id></extra-loc-layout_id>    
+    <extra-loc-viewid></extra-loc-viewid>
+    <extra-loc-positionid></extra-loc-positionid>
+    <extra-loc-feature></extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_sat_senddtmf_wait_note">
+    <comment></comment>        
+    <source>Sending DTMF</source>
+    <translation variants="no">Sending DTMF</translation>
+    <extra-loc-layout_id></extra-loc-layout_id>    
+    <extra-loc-viewid></extra-loc-viewid>
+    <extra-loc-positionid></extra-loc-positionid>
+    <extra-loc-feature></extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_sat_note_sending_dtmf_template">
+    <comment></comment>        
+    <source>Sending\n%U</source>
+    <translation variants="no">Sending\n%U</translation>
+    <extra-loc-layout_id></extra-loc-layout_id>    
+    <extra-loc-viewid></extra-loc-viewid>
+    <extra-loc-positionid></extra-loc-positionid>
+    <extra-loc-feature></extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_sat_wait_note_without_delay">
+    <comment></comment>        
+    <source>Processing</source>
+    <translation variants="no">Processing</translation>
+    <extra-loc-layout_id></extra-loc-layout_id>    
+    <extra-loc-viewid></extra-loc-viewid>
+    <extra-loc-positionid></extra-loc-positionid>
+    <extra-loc-feature></extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
+<message numerus="no" id="txt_sat_mosm_not_allowed">
+    <comment></comment>        
+    <source>Request not allowed</source>
+    <translation variants="no">Request not allowed</translation>
+    <extra-loc-layout_id></extra-loc-layout_id>    
+    <extra-loc-viewid></extra-loc-viewid>
+    <extra-loc-positionid></extra-loc-positionid>
+    <extra-loc-feature></extra-loc-feature>
+    <extra-loc-blank>False</extra-loc-blank>
+</message>
 </context>
 </TS>
--- a/satui/satapp/rom/satapp.iby	Fri Apr 16 15:31:58 2010 +0300
+++ b/satui/satapp/rom/satapp.iby	Mon May 03 13:01:45 2010 +0300
@@ -24,6 +24,7 @@
 file=ABI_DIR\BUILD_DIR\satapp.exe                  SHARED_LIB_DIR\satapp.exe
 
 data=DATAZ_\resource\apps\satapp.rsc               resource\apps\satapp.rsc
+data=DATAZ_\resource\apps\satapp.mif               resource\apps\satapp.mif
 data=ZSYSTEM\install\satapp_stub.sis               system\install\satapp_stub.sis
 data=ZPRIVATE\10003a3f\import\apps\satapp_reg.rsc  private\10003a3f\import\apps\satapp_reg.rsc
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/satui/satapp/rom/satapp.pkg	Mon May 03 13:01:45 2010 +0300
@@ -0,0 +1,47 @@
+;
+; Copyright (c) 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: For packing sat application update.
+;
+
+; Language
+&EN
+
+; Header
+#{"satapp"}, (0x101f4ce0), 10, 1, 0, TYPE=PU
+
+; Localised Vendor name
+%{"Nokia"}
+
+; Unique Vendor name
+:"Nokia"
+
+; Localised Vendor name
+;%{"Nokia, Qt Software"}
+
+; Unique Vendor name
+;:"Nokia, Qt Software"
+
+; Dependencies
+[0x101F7961],0,0,0,{"S60ProductID"}
+[0x102032BE],0,0,0,{"S60ProductID"}
+[0x102752AE],0,0,0,{"S60ProductID"}
+[0x1028315F],0,0,0,{"S60ProductID"}
+(0x2001E61C), 4, 5, 0, {"QtLibs pre-release"}
+
+; Executable and default resource files
+"\epoc32\release\armv5\urel\satapp.exe"    - "!:\sys\bin\satapp.exe"
+"\epoc32\release\armv5\urel\satshellcntrl.dll"    - "!:\sys\bin\satshellcntrl.dll"
+"\epoc32\data\z\private\10003a3f\import\apps\satapp_reg.rsc"    - "!:\private\10003a3f\import\apps\satapp_reg.rsc"
+"\epoc32\data\z\resource\apps\satapp.mif"    - "!:\resource\apps\satapp.mif"
+
--- a/satui/satapp/rom/satapp_stub.pkg	Fri Apr 16 15:31:58 2010 +0300
+++ b/satui/satapp/rom/satapp_stub.pkg	Mon May 03 13:01:45 2010 +0300
@@ -30,3 +30,4 @@
 ""-"z:\sys\bin\satapp.exe"
 ""-"z:\resource\apps\satapp.rsc"
 ""-"z:\private\10003a3f\import\apps\satapp_reg.rsc"
+""-"z:\resource\apps\satapp.mif"
Binary file satui/satapp/rom/satapp_stub.sis has changed
--- a/satui/satapp/satapp.pro	Fri Apr 16 15:31:58 2010 +0300
+++ b/satui/satapp/satapp.pro	Mon May 03 13:01:45 2010 +0300
@@ -20,13 +20,17 @@
 TARGET = satapp
 DEPENDPATH += .
 HEADERS += $$PUBLIC_HEADERS
+MOC_DIR = moc
 
 CONFIG += hb
 
+ICON = resource/qgn_menu_sat.svg
 symbian: {
     TARGET.CAPABILITY = CAP_GENERAL_DLL
     TARGET.UID3=0x101f4ce0
     INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE \
+        .inc\
+        MOC_DIR \
         ../../inc 
     LIBS += -lSatClient.dll \
             -lSatInternalClient.dll \
@@ -35,7 +39,8 @@
             -lcentralrepository.dll \
             -lCenRepNotifHandler.dll \
             -lCdlEngine.dll \
-            -lFlogger.dll
+            -lFlogger.dll \
+            -lprofileeng.dll 
 
     HEADERS += inc/msatuiactionimplementer.h \
                inc/satappcommonconstant.h \
@@ -48,7 +53,7 @@
                inc/satappgetinkeynote.h \
                inc/csatuiobserver.h \
                inc/csatuiiconhandler.h \
-
+               inc/satappplaytoneprovider.h
 
     SOURCES += src/main.cpp \
                src/satappmainhandler.cpp \
@@ -58,10 +63,13 @@
                src/satappview.cpp \
                src/satappgetinkeynote.cpp \
                src/csatuiobserver.cpp \
-               src/csatuiiconhandler.cpp 
+               src/csatuiiconhandler.cpp \
+               src/satappplaytoneprovider.cpp
     
     BLD_INF_RULES.prj_exports += "rom/satapp.iby CORE_MW_LAYER_IBY_EXPORT_PATH(satapp.iby)" \
-                                 "rom/satapp_stub.sis /epoc32/data/z/system/install/satapp_stub.sis"    
+                                 "rom/satapp_stub.sis /epoc32/data/z/system/install/satapp_stub.sis" \
+                                 "resource/satapp_en.ts /epoc32/include/platform/qt/translations/satapp_en.ts"
+                                 
 }
 
 RESOURCES += resource/satapp.qrc
--- a/satui/satapp/sis/satapp.pkg	Fri Apr 16 15:31:58 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-;
-; Copyright (c) 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: For packing sat application update.
-;
-
-; Language
-&EN
-
-; Header
-#{"satapp"}, (0x101f4ce0), 10, 1, 0, TYPE=PU
-
-; Localised Vendor name
-%{"Nokia"}
-
-; Unique Vendor name
-:"Nokia"
-
-; Localised Vendor name
-;%{"Nokia, Qt Software"}
-
-; Unique Vendor name
-;:"Nokia, Qt Software"
-
-; Dependencies
-[0x101F7961],0,0,0,{"S60ProductID"}
-[0x102032BE],0,0,0,{"S60ProductID"}
-[0x102752AE],0,0,0,{"S60ProductID"}
-[0x1028315F],0,0,0,{"S60ProductID"}
-(0x2001E61C), 4, 5, 0, {"QtLibs pre-release"}
-
-; Executable and default resource files
-"\epoc32\release\armv5\urel\satapp.exe"    - "!:\sys\bin\satapp.exe"
-"\epoc32\release\armv5\urel\satshellcntrl.dll"    - "!:\sys\bin\satshellcntrl.dll"
-"\epoc32\data\z\private\10003a3f\import\apps\satapp_reg.rsc"    - "!:\private\10003a3f\import\apps\satapp_reg.rsc"
-
--- a/satui/satapp/src/csatuiobserver.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/satui/satapp/src/csatuiobserver.cpp	Mon May 03 13:01:45 2010 +0300
@@ -25,6 +25,7 @@
 #include    <settingsinternalcrkeys.h>
 #include    <gulicon.h> //for itemsicon
 #include    <fbs.h>
+#include    <HbGlobal>
 
 #include    "csatuiobserver.h"
 #include    "msatuiactionimplementer.h"
@@ -85,24 +86,6 @@
 void CSatUiObserver::ConstructL()
     {
     TFLOGSTRING("SATAPP: CSatUiObserver::ConstructL called")
-
-    //Register to Server as subsession
-    //If Server is not up, this function call may take time
-    iSatSession.ConnectL();
-
-    iSat.RegisterL(iSatSession, this);
-    iAdapter = iSat.Adapter();
-    if (!iAdapter)
-        {
-        User::Leave(KErrNotFound);
-        }
-
-    // create icon handler
-    //iIconHandler = CSatUiIconHandler::NewL();
-
-    //Item icons
-    //iItemIcons = new (ELeave) CAknIconArray(1);
-
     TFLOGSTRING("SATAPP: CSatUiObserver::ConstructL exit")
     }
 
@@ -131,23 +114,8 @@
 CSatUiObserver::~CSatUiObserver()
     {
     TFLOGSTRING("SATAPP: CSatUiObserver::~CSatUiObserver() called")
-
-    iSat.Close();
-    iSatSession.Close();
-
-//    if (iItemIcons)
-//        {
-//        iItemIcons->ResetAndDestroy();
-//        delete iItemIcons;
-//        }
-
-    // delete icon handler
-//    delete iIconHandler;
-//    iIconHandler = NULL;
-
     iActionImplementer = NULL;
     iAdapter = NULL;
-
     TFLOGSTRING("SATAPP: CSatUiObserver::~CSatUiObserver() exit")
     }
 
@@ -242,19 +210,19 @@
             aSustainedText, aDuration, aWaitUserToClear);
        );
 
-    if (err != KErrNone)
+    if ( KErrNone != err )
         {
         response = ESatFailure;
         aRequestedIconDisplayed = EFalse;
         }
 
-    if (iActionImplementer->GetEndKey())
+    if ( iActionImplementer->GetEndKey() )
         {
         response = ESatSessionTerminatedByUser;
-        iActionImplementer->SetEndKey(EFalse);
+        iActionImplementer->SetEndKey( EFalse );
         }
 
-    iActionImplementer->SetCommandPending(EFalse);
+    iActionImplementer->SetCommandPending( EFalse );
 
     TFLOGSTRING2("SATAPP: CSatUiObserver::DisplayText exit, return: %d", \
         response)
@@ -289,7 +257,7 @@
         input.Fill(aInput, 1);
         }
 
-    if ((aCharacterSet == ESatYesNo) && (aText.Length() == 0))
+    if ( ( ESatYesNo == aCharacterSet ) && (aText.Length() == 0) )
         {
         TFLOGSTRING("SATAPP: CSatUiObserver::GetInkey return ESatFailure")
         return ESatFailure;
@@ -343,17 +311,14 @@
                 aText, aCharacterSet, input, 1, 1, EFalse, ETrue,
                 iconBitmapGetInkey, selfExplanatory, aDuration);
 
-            if (ESatSuccess == response)
+            if ( ESatSuccess == response && input.Length() )
                 {
-                if (input.Length())
-                    {
-                    aInput = input[0];
-                    }
+                aInput = input[0];
                 }
             }
        );
 
-    if (err != KErrNone)
+    if ( KErrNone != err )
         {
         response = ESatFailure;
         }
@@ -431,7 +396,7 @@
             duration);
        );
 
-    if (err != KErrNone)
+    if ( KErrNone != err )
         {
         TFLOGSTRING2("SATAPP: CSatUiObserver::GetInput err:%d", err)
         response = ESatFailure;
@@ -499,7 +464,6 @@
         GetScalableBitmap(iconTitleBitmap, EIconSetUpMenuContext);
         }
 
-//    iItemIcons->ResetAndDestroy();
     TInt iconCount(0);
 
     if (aMenuIcons)
@@ -532,18 +496,17 @@
             iconItemBitmap = FetchIcon(itemIconId, EIconSetUpMenuItems);
 
             if (!iconItemBitmap &&
-                (aIconListQualifier == ESatSelfExplanatory))
+                (ESatSelfExplanatory == aIconListQualifier))
                 {
                 TFLOGSTRING("SATAPP: CSatUiObserver::SetUpMenu \
                     SelfExplanatory ")
                 CleanupStack::PopAndDestroy(gulIcon); // gulIcon
-//                iItemIcons->ResetAndDestroy();
                 continueLoop = EFalse;
                 }
             else
                 {
                 if (!iconItemBitmap &&
-                    (aIconListQualifier == ESatNotSelfExplanatory))
+                    (ESatNotSelfExplanatory == aIconListQualifier))
                     {
                     TFLOGSTRING("SATAPP: CSatUiObserver::SetUpMenu \
                         not SelfExplanatory ")
@@ -557,7 +520,6 @@
                     }
 
                 gulIcon->SetBitmap(iconItemBitmap);
-//                iItemIcons->AppendL(gulIcon);
                 CleanupStack::Pop(gulIcon);
                 }
             }
@@ -629,8 +591,6 @@
             aRequestedIconDisplayed);
         }
 
-    //iItemIcons->ResetAndDestroy();
-
     TInt iconCount(0);
 
     if (aMenuIcons)
@@ -642,14 +602,14 @@
 
     //if icons are available for item list
     if ((aMenuItems.MdcaCount() == iconCount) &&
-        ((aIconListQualifier == ESatSelfExplanatory) ||
-        (aIconListQualifier == ESatNotSelfExplanatory)) &&
+        ((ESatSelfExplanatory == aIconListQualifier) ||
+        (ESatNotSelfExplanatory == aIconListQualifier)) &&
         (iIconSupport))
         {
         TFLOGSTRING(
             "SATAPP: CSatUiObserver::SelectItem icon available for item list")
 
-        if (aIconListQualifier == ESatSelfExplanatory)
+        if (ESatSelfExplanatory == aIconListQualifier)
             {
             selfExplanatoryItems = ETrue;
             }
@@ -671,8 +631,6 @@
                 {
                 TFLOGSTRING("SATAPP: CSatUiObserver::SelectItem \
                     SelfExplanatory ")
-                CleanupStack::PopAndDestroy(gulIcon); // gulIcon
-                //iItemIcons->ResetAndDestroy();
                 continueLoop = EFalse;
                 aRequestedIconDisplayed = EFalse;
                 }
@@ -681,7 +639,7 @@
                 // when icon can't be received and is set to not self
                 // explanatory, we replace it with empty icon
                 if (!iconItemBitmap &&
-                    (aIconListQualifier == ESatNotSelfExplanatory))
+                    (ESatNotSelfExplanatory == aIconListQualifier))
                     {
                     TFLOGSTRING("SATAPP: CSatUiObserver::SelectItem \
                         not SelfExplanatory ")
@@ -708,7 +666,6 @@
                     }
 
                 gulIcon->SetBitmap(iconItemBitmap);
-                //iItemIcons->AppendL(gulIcon);
                 CleanupStack::Pop(gulIcon);
                 }
             }
@@ -721,7 +678,7 @@
             /*iItemIcons,*/ selfExplanatoryItems, aHelpIsAvailable);
        );
 
-    if (err != KErrNone)
+    if (KErrNone != err)
         {
         response = ESatFailure;
         aRequestedIconDisplayed = EFalse;
@@ -1049,32 +1006,32 @@
         {
         case ESatOpenChannelQuery:
             {
-            TFLOGSTRING(" Quering OpenChannel")
-            //TRAP(error, iActionImplementer->ConfirmOpenChannelL(
-            //    aText, aActionAccepted, iconBitmap, selfExplanatory));
+            TFLOGSTRING("Quering OpenChannel")
+            TRAP(error, iActionImplementer->ConfirmOpenChannelL(
+                 aText, aActionAccepted, iconBitmap, selfExplanatory));
             break;
             }
 
         case ESatSRefreshQuery:
             {
-            TFLOGSTRING(" Quering Refresh")
+            TFLOGSTRING("Quering Refresh")
             //TRAP(error, iActionImplementer->ConfirmRefreshL(aActionAccepted));
             break;
             }
 
         case ESatSLaunchBrowserQuery:
             {
-            TFLOGSTRING(" Quering LaunchBrowser")
+            TFLOGSTRING("Quering LaunchBrowser")
             HBufC* textHolder = NULL;
 
             TRAP(error,
             if (ESatAlphaIdNull != aAlphaIdStatus)
                 {
-                TFLOGSTRING(" CSatUiObserver::ConfirmCommand AlphaId \
+                TFLOGSTRING("CSatUiObserver::ConfirmCommand AlphaId \
                     isn't null")
                 if (ESatAlphaIdNotProvided == aAlphaIdStatus)
                     {
-                    TFLOGSTRING(" CSatUiObserver::ConfirmCommand \
+                    TFLOGSTRING("CSatUiObserver::ConfirmCommand \
                         AlphaId not provided")
                     // ToDo: replace the resouce with qt.
                     //textHolder = StringLoader::LoadLC(
@@ -1083,7 +1040,7 @@
                     }
                 else
                     {
-                    TFLOGSTRING(" CSatUiObserver::ConfirmCommand \
+                    TFLOGSTRING("CSatUiObserver::ConfirmCommand \
                         AlphaId provided")
                     textHolder = HBufC::NewLC(aText.Length());
                     TPtr ptr = textHolder->Des();
@@ -1103,7 +1060,7 @@
 
         case ESatSSendSmQuery:
             {
-            TFLOGSTRING( " Quering SendSm" )
+            TFLOGSTRING( "Quering SendSm" )
             TRAP( error, iActionImplementer->ConfirmSendL( aText,
                   aActionAccepted, ESatUiConfirmSendSms ) );
             break;
@@ -1112,16 +1069,16 @@
         case ESatSSendSsQuery:
             {
             TFLOGSTRING(" Quering SendSs")
-            //TRAP(error, iActionImplementer->ConfirmSendL(aText,
-            //      aActionAccepted, ESatUiConfirmSendSs));
+            TRAP(error, iActionImplementer->ConfirmSendL(aText,
+                  aActionAccepted, ESatUiConfirmSendSs));
             break;
             }
 
         case ESatSSendUssdQuery:
             {
             TFLOGSTRING(" Quering SendUssd")
-            //TRAP(error, iActionImplementer->ConfirmSendL(aText,
-            //      aActionAccepted, ESatUiConfirmSendUssd));
+            TRAP(error, iActionImplementer->ConfirmSendL(aText,
+                  aActionAccepted, ESatUiConfirmSendUssd));
             break;
             }
 
@@ -1153,10 +1110,6 @@
         aActionAccepted = EFalse;
         iActionImplementer->SetEndKey(EFalse);
         }
-    else
-        {
-        // Meaningless else
-        }
 
     iActionImplementer->SetCommandPending(EFalse);
     TFLOGSTRING("SATAPP: CSatUiObserver::ConfirmCommand exiting")
@@ -1176,39 +1129,47 @@
     const TSatControlResult aControlResult)
     {
     TFLOGSTRING("SATAPP: CSatUiObserver::Notification calling")
+    TFLOGSTRING2("SATAPP: CSatUiObserver::Notification str=%S", &aText)
     TSatUiResponse response = ESatSuccess;
     TInt error(KErrNone);
     aRequestedIconDisplayed = EFalse;
     iActionImplementer->SetCommandPending(ETrue);
 
     HBufC* textHolder = NULL;
-
+    QString resource;
     // In case where command id is SendDtmf and alphaID is not provided,
     // DTMF string to be sent is shown in dialog along with default text.
     if ((ESatSSendDtmfNotify == aCommandId) &&
-         (ESatAlphaIdNotProvided == aAlphaIdStatus))
-        {
+         (ESatAlphaIdNotProvided == aAlphaIdStatus)) {
         TFLOGSTRING("SATAPP: CSatUiObserver::Notification SendDtmf")
-        TRAP(error,
-            TInt resource = DefaultAlphaIdL(aCommandId, aControlResult);
-
-            // Todo:
-            // Now that resource is defined, get default text
-            //textHolder = StringLoader::LoadL(
-            //    resource, aText)
-           );
+        DefaultAlphaId(aCommandId, aControlResult,resource);
+        if ( resource.length()>0) 
+            {
+            TFLOGSTRING("SATAPP: CSatUiObserver::Notification SendDtmf resource")
+            TRAP(error, textHolder = HBufC::NewL(resource.length()));
+            if (KErrNone == error) 
+                {
+                textHolder->Des().Copy(reinterpret_cast<const TUint16*>
+                     (resource.utf16()));
+                }
+            }
         }
     // Get default text, if alpha not provided or it is NULL
     else if (aText.Length() == 0 && ESatAlphaIdNotNull != aAlphaIdStatus)
         {
         TFLOGSTRING("SATAPP: CSatUiObserver::Notification alpha is null")
-        TRAP(error,
-            TInt resource = DefaultAlphaIdL(aCommandId, aControlResult);
-            // Todo:
-            // Now that resource is defined, get default text
-            //textHolder = StringLoader::LoadL(
-            //    resource, iActionImplementer->CoeEnv())
-           );
+        DefaultAlphaId(aCommandId, aControlResult,resource);
+        if ( resource.length()>0) 
+            {
+            TFLOGSTRING("SATAPP: CSatUiObserver::Notification alpha null resource")
+            TRAP( error, textHolder = HBufC::NewL(resource.length()) );
+            if (KErrNone == error) 
+                {
+                textHolder->Des().Copy(reinterpret_cast<const TUint16*>
+                    (resource.utf16()));
+                }
+             }
+        TFLOGSTRING("SATAPP: CSatUiObserver::Notification alpha is null out")
         }
     // else use given text
     else
@@ -1220,16 +1181,16 @@
             ptr.Copy(aText);
            );
         }
-
     if (!textHolder)
         {
+         TFLOGSTRING("SATAPP: CSatUiObserver::Notification textHolder 0")
         TRAP(error, textHolder = HBufC::NewL(0));
         }
 
     // No need to add textHolder into CleanupStack, since this is
     // not a leaving function
 
-    if ((KErrNone == error || KErrArgument == error) && textHolder)
+    if ((KErrNone == error) && textHolder)
         {
         TFLOGSTRING("SATAPP: CSatUiObserver::Notification none error ")
         CFbsBitmap* iconBitmap = NULL;
@@ -1244,8 +1205,6 @@
             {
             iconBitmap = FetchIcon(aIconId.iIdentifier,
                 EIconNotification);
-            //GetScalableBitmap(iconBitmap, EIconNotification,
-            //    aRequestedIconDisplayed);
             }
 
         if (ESatSelfExplanatory == aIconId.iIconQualifier)
@@ -1302,9 +1261,9 @@
                 TFLOGSTRING(" Notifying CallControl")
                 iActionImplementer->DispatchTimer(iWait);
                 TRAP(error,
-                    iActionImplementer->CallControlL(
-                        *textHolder, aAlphaIdStatus)
-                   );
+                     iActionImplementer->CallControlL(
+                         *textHolder, aAlphaIdStatus)
+                     );
                 iActionImplementer->SetCommandPending(EFalse);
                 break;
                 }
@@ -1347,7 +1306,6 @@
                         iActionImplementer->ShowSmsWaitNoteL(*textHolder,
                             iconBitmap, selfExplanatoryIcon));
                     }
-
                 break;
                 }
             default:
@@ -1379,7 +1337,6 @@
         response = ESatSuccess;
         }
 
-
     TFLOGSTRING2("SATAPP: CSatUiObserver::Notification exiting, return: %d", \
         response)
     return response;
@@ -1460,104 +1417,94 @@
     }
 
 // ----------------------------------------------------------------------------
-// CSatUiObserver::DefaultAlphaIdL
+// CSatUiObserver::DefaultAlphaId
 // (other items were commented in a header).
 // ----------------------------------------------------------------------------
 //
-TInt CSatUiObserver::DefaultAlphaIdL(
+void CSatUiObserver::DefaultAlphaId(
     const TSatSNotifyCommand aCommandId,
-    const TSatControlResult aControlResult) const
+    const TSatControlResult aControlResult, QString &resource) const
     {
-    TFLOGSTRING("SATAPP: CSatUiObserver::DefaultAlphaIdL calling")
-    TInt resource(0);
-
+    TFLOGSTRING("SATAPP: CSatUiObserver::DefaultAlphaId calling")
     switch (aCommandId)
         {
         case ESatSSendDataNotify: // SendData
             {
-            TFLOGSTRING(" SendData default")
-            //resource = R_QTN_SAT_CONF_SEND_DATA_BIP;
+            TFLOGSTRING("SendData default")
+            resource = hbTrId("txt_sat_conf_send_data_bip");
             break;
             }
-
         case ESatSReceiveDataNotify: // ReceiveData
             {
-            TFLOGSTRING(" ReceiveData default")
-            //resource = R_QTN_SAT_CONF_RECEIVE_DATA_BIP;
+            TFLOGSTRING("ReceiveData default")
+            resource = hbTrId("txt_sat_conf_receive_data_bip");
             break;
             }
-
         case ESatSCloseChannelNotify: // CloseChannel
             {
-            TFLOGSTRING(" CloseChannel default")
-            //resource = R_QTN_SAT_CONF_CLOSE_CHANNEL_BIP;
+            TFLOGSTRING("CloseChannel default")
+            resource = hbTrId("txt_sat_conf_close_channel_bip");
             break;
             }
-
         case ESatSMoSmControlNotify: // MoSmControl
             {
             if (ESatNotAllowed == aControlResult)
                 {
                 TFLOGSTRING(" MoSmcontrol Not allowed default")
-                //resource = R_QTN_SAT_MOSM_NOT_ALLOWED;
+                resource = hbTrId("txt_sat_mosm_not_allowed");
                 }
             else if (ESatAllowedWithModifications == aControlResult)
                 {
                 TFLOGSTRING(" MoSmcontrol Modified default")
-                //resource = R_QTN_SAT_MOSM_MODIFIED;
+                resource = hbTrId("txt_sat_request_modified");
                 }
             else
                 {
                 TFLOGSTRING(" MoSmcontrol No default")
-                resource = 0; // Allowed, default alpha -> no info
+                resource = hbTrId(""); // Allowed, default alpha -> no info
                 }
             break;
             }
-
         case ESatSCallControlNotify: // CallControl
             {
             if (ESatNotAllowed == aControlResult)
                 {
-                TFLOGSTRING(" CallControl Not allowed default")
-                //resource = R_QTN_SAT_CC_NOT_ALLOWED;
+                TFLOGSTRING("CallControl Not allowed default")
+                resource = hbTrId("txt_sat_cc_not_allowed");
                 }
             else if (ESatAllowedWithModifications == aControlResult)
                 {
-                TFLOGSTRING(" CallControl Modified default")
-                //resource = R_QTN_SAT_CC_MODIFIED;
+                TFLOGSTRING("CallControl Modified default")
+                resource = hbTrId("txt_sat_cc_modified");
                 }
             else
                 {
-                TFLOGSTRING(" CallControl No default")
-                resource = 0; // Allowed, default alpha -> no info
+                TFLOGSTRING("CallControl No default")
+                resource = hbTrId(""); // Allowed, default alpha -> no info
                 }
             break;
             }
-
         case ESatSSendSmsNotify: // SendSm
             {
             TFLOGSTRING(" SendSms default")
-            //resource = R_QTN_SAT_SENDING_SMS;
+            resource = hbTrId("txt_sat_sending_sms");
             break;
             }
 
         case ESatSSendDtmfNotify: // SendDtmf
             {
             TFLOGSTRING(" SendDTMF default")
-            //resource = R_QTN_SAT_NOTE_SENDING_DTMF_TEMPLATE;
+            resource = hbTrId("txt_sat_note_sending_dtmf_template");
             break;
             }
-
         default:
             {
             TFLOGSTRING2(" Unknown command id: %i", aCommandId)
-            User::Leave(KErrArgument);
+            break;
             }
         }
 
-    TFLOGSTRING2("SATAPP: CSatUiObserver::DefaultAlphaIdL exiting, resource: \
-        %d", resource)
-    return resource;
+    TFLOGSTRING("SATAPP: CSatUiObserver::DefaultAlphaId exiting")
     }
 
 // ----------------------------------------------------------------------------
@@ -1572,30 +1519,6 @@
     TFLOGSTRING("SATAPP: CSatUiObserver::FetchIcon called")
 
     CFbsBitmap* iconBitmap = NULL;
-/*
-    TSize layoutSize(0, 0);
-
-    // Set icon max size according the command
-    if (GetPopUpWindowIconSize(layoutSize, aIconCommand))
-        {
-        TFLOGSTRING("SATAPP: CSatUiObserver::FetchIcon max size")
-        // Comment out icon related code, add qt icon support future
-        TRAPD(err, iconBitmap = iIconHandler->FetchIconL(iSatSession,
-            aIconId, layoutSize.iWidth, layoutSize.iHeight, iIconSupport));
-
-        if (err != KErrNone)
-            {
-            #if defined _DEBUG
-            _LIT(KFetchIcon, "SATAPP: CSatUiObserver::FetchIcon");
-            User::Panic(KFetchIcon, err);
-            #endif
-            }
-        }
-    else
-        {
-        TFLOGSTRING("SATAPP: CSatUiObserver::FetchIcon not supported")
-        }
-*/
     TFLOGSTRING("SATAPP: CSatUiObserver::FetchIcon exit")
     return iconBitmap;
     }
@@ -1606,82 +1529,11 @@
 // (other items were commented in a header).
 // ----------------------------------------------------------------------------
 //
-TBool CSatUiObserver::GetPopUpWindowIconSize(TSize& aSize,
+TBool CSatUiObserver::GetPopUpWindowIconSize(TSize& /*aSize*/,
     const TIconCommand /*aIconCommand*/)
     {
     TFLOGSTRING("SATAPP: CSatUiObserver::GetPopUpWindowIconSize called")
-
-    TRect rect(TSize(0, 0));
-    TBool supported(ETrue);
-    // Comment out this code for no icon support in current qt satapp
-/*    TAknLayoutRect opLogoLayout;
-
-    TFLOGSTRING2("SATAPP: CSatUiObserver::GetPopUpWindowIconSize, \
-        aIconCommand: %i", aIconCommand)
-    // depending on the command, get correct layout and
-    // Calculate rectangle based on LAF specification.
-    switch (aIconCommand)
-        {
-        case EIconSetUpMenuContext:
-            {
-            opLogoLayout.LayoutRect(rect,
-                AknLayoutScalable_Avkon::context_pane_g1().LayoutLine());
-            break;
-            }
-        case EIconSetUpMenuItems:
-            {
-            opLogoLayout.LayoutRect(rect,
-                AknLayout::List_pane_elements__single_graphic__Line_1());
-            break;
-            }
-        case EIconDisplayText:
-            {
-            // layout borrowed from video
-            opLogoLayout.LayoutRect(rect, AknLayoutScalable_Avkon::
-                popup_query_sat_info_window(0).LayoutLine());
-            break;
-            }
-        case EIconPlayTone:
-            {
-            opLogoLayout.LayoutRect(rect, AknLayoutScalable_Avkon::
-                popup_note_window_g1(0).LayoutLine());
-            break;
-            }
-        case EIconConfirmCommand:   // fall through
-        case EIconGetInput:         // fall through
-        case EIconGetYesNo:         // fall through
-        case EIconGetInkey:
-            {
-            opLogoLayout.LayoutRect(rect, AknLayout::Icon(0));
-            break;
-            }
-        case EIconNotification:
-            {
-            opLogoLayout.LayoutRect(rect, AknLayout::
-                Wait_or_progress_note_pop_up_window_elements_Line_1());
-            break;
-            }
-        default:
-            {
-            TFLOGSTRING(
-                "SATAPP: CSatUiObserver::GetPopUpWindowIconSize not supported")
-            supported = EFalse;
-            break;
-            }
-        }
-
-    aSize = opLogoLayout.Rect().Size();
-
-    // Layout for title icon gives incorrect width
-    // but since it is square height can be set to width
-    if (EIconSetUpMenuContext == aIconCommand)
-        {
-        aSize.iWidth = aSize.iHeight;
-        }
-*/
-    TFLOGSTRING3("SATAPP: CSatUiObserver::GetPopUpWindowIconSize %dx%d exit",
-        aSize.iWidth, aSize.iHeight)
-    return supported;
+    return ETrue;
     }
 
 // ----------------------------------------------------------------------------
@@ -1695,77 +1547,6 @@
     const TIconCommand  /*aIconCommand*/)
     {
     TFLOGSTRING("SATAPP: CSatUiObserver::GetScalableBitmap called")
-/*
-    TSize layoutSize(0, 0);
-    CFbsBitmap* bitmap = NULL;
-
-    // If scalable icon is supported in current layout then
-    // makes the scalable icon.
-    if (GetPopUpWindowIconSize(layoutSize, aIconCommand))
-        {
-        bitmap = new (ELeave) CFbsBitmap;
-        CleanupStack::PushL(bitmap);
-        // CAknIcon takes ownership of bitmaps.
-        CFbsBitmap* dupMain = new (ELeave) CFbsBitmap;
-        CleanupStack::PushL(dupMain);
-        TFLOGSTRING("SATAPP: CSatUiObserver::GetScalableBitmap duplicate original")
-        User::LeaveIfError(
-            dupMain->Duplicate(aBitMapToConvert->Handle()));
-
-        //CAknIcon* bitmapIcon = CAknIcon::NewL();
-        // Mask is not set because skins are not used.
-        // Ownership is transferred.
-        bitmapIcon->SetBitmap(dupMain);
-        CleanupStack::Pop(dupMain);
-        CleanupStack::PushL(bitmapIcon);
-        CAknIcon* scalableIcon = AknIconUtils::CreateIconL(bitmapIcon);
-        CleanupStack::Pop(bitmapIcon);
-        CleanupStack::PushL(scalableIcon);
-
-        // fetch the size of icon
-        TSize iconSize = dupMain->SizeInPixels();
-
-        // At first we assume that width is scaled to layout maximum and
-        // thus height is set so that the ratio of the image remains correct
-
-        TInt newHeight =
-            (layoutSize.iWidth * iconSize.iHeight) / iconSize.iWidth;
-
-        // If the new height is larger than the height of the layout
-        // we scale height to maximum and set the width so that the ratio of
-        // the image remains correct
-        if (newHeight > layoutSize.iHeight)
-            {
-            TFLOGSTRING("SATAPP: CSatUiObserver::GetScalableBitmap \
-                larger than layout height")
-            layoutSize.iWidth =
-                (layoutSize.iHeight * iconSize.iWidth) / iconSize.iHeight;
-            }
-        // If the new height is smaller or the same as the height of the
-        // layout, the image is scaled according to it
-        else
-            {
-            TFLOGSTRING("SATAPP: CSatUiObserver::GetScalableBitmap \
-                smaller than layout height")
-            layoutSize.iHeight = newHeight;
-            }
-
-        TFLOGSTRING("SATAPP: CSatUiObserver::GetScalableBitmap resize scaled icon")
-        AknIconUtils::SetSize(scalableIcon->Bitmap(), layoutSize);
-
-        TFLOGSTRING("SATAPP: CSatUiObserver::GetScalableBitmap duplicate scaled")
-        User::LeaveIfError(bitmap->Duplicate(
-            scalableIcon->Bitmap()->Handle()));
-
-        CleanupStack::PopAndDestroy(scalableIcon);
-
-        // Uses scaled icon if scalable bitmap is supported.
-        TFLOGSTRING("SATAPP: CSatUiObserver::GetScalableBitmap Show Scaled")
-        delete aBitMapToConvert;
-        aBitMapToConvert = bitmap;
-        CleanupStack::Pop(bitmap);
-        }
-*/
     TFLOGSTRING("SATAPP: CSatUiObserver::GetScalableBitmap exit")
     }
 
@@ -1781,37 +1562,6 @@
     TBool& /*aRequestedIconDisplayed*/)
     {
     TFLOGSTRING("SATAPP: CSatUiObserver::GetScalableBitmap called")
-/*
-    if (aBitMapToConvert)
-        {
-        TFLOGSTRING("SATAPP: CSatUiObserver::GetScalableBitmap bitmap \
-            to convert")
-        // Scale icon
-        TRAPD(err, GetScalableBitmapL(aBitMapToConvert, aIconCommand););
-
-        if (KErrNoMemory == err)
-            {
-            TFLOGSTRING("SATAPP: CSatUiObserver::GetScalableBitmap memory \
-                low")
-            // Memory low, command is done without icon
-            delete aBitMapToConvert;
-            aBitMapToConvert = NULL;
-            aRequestedIconDisplayed = EFalse;
-            }
-        else
-            {
-            TFLOGSTRING("SATAPP: CSatUiObserver::GetScalableBitmap have \
-                memory")
-            aRequestedIconDisplayed = ETrue;
-            }
-        }
-    else
-        {
-        TFLOGSTRING("SATAPP: CSatUiObserver::GetScalableBitmap  no bitmap")
-        // Icon not received
-        aRequestedIconDisplayed = EFalse;
-        }
-*/
     TFLOGSTRING("SATAPP: CSatUiObserver::GetScalableBitmap exit")
     }
 
@@ -1826,24 +1576,6 @@
     const TIconCommand /*aIconCommand*/)
     {
     TFLOGSTRING("SATAPP: CSatUiObserver::GetScalableBitmap called")
-/*
-    if (aBitMapToConvert)
-        {
-        TFLOGSTRING("SATAPP: CSatUiObserver::GetScalableBitmap bitmap \
-            to convert")
-        // Scale icon
-        TRAPD(err, GetScalableBitmapL(aBitMapToConvert, aIconCommand););
-
-        if (KErrNoMemory == err)
-            {
-             TFLOGSTRING("SATAPP: CSatUiObserver::GetScalableBitmap memory \
-                 low")
-            // Memory low, command is done without icon
-            delete aBitMapToConvert;
-            aBitMapToConvert = NULL;
-            }
-        }
-*/
     TFLOGSTRING("SATAPP: CSatUiObserver::GetScalableBitmap exit")
     }
 
@@ -1878,4 +1610,39 @@
     return profileId;
     }
 
+// ----------------------------------------------------------------------------
+// CSatUiObserver::ConnectRSatSessionL
+//
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+void CSatUiObserver::ConnectRSatSessionL()
+    {
+    TFLOGSTRING("SATAPP: CSatUiObserver::ConnectRSatSessionL called")
+    //Register to Server as subsession
+    //If Server is not up, this function call may take time
+    iSatSession.ConnectL();
+    iSat.RegisterL(iSatSession, this);
+    iAdapter = iSat.Adapter();
+    if (!iAdapter)
+        {
+        User::Leave(KErrNotFound);
+        }
+    TFLOGSTRING("SATAPP: CSatUiObserver::ConnectRSatSessionL exit")
+    }
+
+// ----------------------------------------------------------------------------
+// CSatUiObserver::DisconnectRSatSession
+// Get the profile status
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+void CSatUiObserver::DisconnectRSatSession()
+    {
+    TFLOGSTRING("SATAPP: CSatUiObserver::DisconnectRSatSession called")
+    iSat.Close();
+    iSatSession.Close();
+    TFLOGSTRING("SATAPP: CSatUiObserver::DisconnectRSatSession exit")
+    }
+
 //  End of File
--- a/satui/satapp/src/main.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/satui/satapp/src/main.cpp	Mon May 03 13:01:45 2010 +0300
@@ -17,12 +17,11 @@
 */
 
 #include <QApplication>
-
+#include <QTranslator>
 #include <hbapplication.h>
 #include <hbmainwindow.h>
-#include <QTranslator>
+
 #include "satappmainhandler.h"
-
 #include "tflogger.h"
 
 int main(int argc, char *argv[])
@@ -39,12 +38,6 @@
 
     HbMainWindow window;
     TFLOGSTRING("SATAPP: main window created")
-    
-    // the code is only for test, currently, dphone79 only support
-    // lanscape, remove it before official release
-    #ifndef __WINSCW
-    //window.setOrientation(Qt::Horizontal);
-    #endif
 
     SatAppMainHandler *mainHandler = new SatAppMainHandler(window);
         
--- a/satui/satapp/src/satappcommandhandler.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/satui/satapp/src/satappcommandhandler.cpp	Mon May 03 13:01:45 2010 +0300
@@ -107,7 +107,7 @@
     if (!aSimApplicationName.isEmpty()) {
         heading.append(aSimApplicationName);
     } else {
-        heading.append(QObject::tr("SAT MESSAGE HEADER"));
+        heading.append(hbTrId("txt_sat_application_name"));
     }
 
     // set time
@@ -190,11 +190,11 @@
     if (aTitleText.isEmpty()) {
         if (ESatDigitOnly == aCharacterSet) {
             TFLOGSTRING("SATAPP:SatAppCommandHandler::getInkey: ESatDigitOnly")
-            heading = tr("Enternumber (1 digit 0-9) ");
+            heading = hbTrId("txt_sat_getinkey_nbr");
         } else {
             // ESatCharSmsDefaultAlphabet or ESatCharUcs2Alphabet
             TFLOGSTRING("SatAppCommandHandler::getInkey others")
-            heading = tr("Enter character ");
+            heading = hbTrId("txt_sat_getinkey_char");
         }
      } else {
          heading = aTitleText;
@@ -205,7 +205,7 @@
     rsp = mUi.showGetInkeyQuery(heading, aInputText, aCharacterSet, aDuration);
 
     if (aDuration) {
-        aDuration = time.elapsed() / 100;
+        aDuration = time.elapsed() / KSymbianTimeConvertQtTime;
         TFLOGSTRING2("SATAPP: SatAppCommandHandler::getInkey\
                 return for server aDuration: %d", aDuration)
     }
@@ -309,12 +309,12 @@
     if (aTitleText.isEmpty()) {
         if (ESatDigitOnly == aCharacterSet) {
             TFLOGSTRING("SATAPP::getInput ESatDigitOnly")
-            heading = tr("Enter:\n(1 digit 0-9)");
+            heading = hbTrId("txt_sat_getinput_nbr");
         } else {
             // ESatCharSmsDefaultAlphabet or ESatCharUcs2Alphabet
             TFLOGSTRING("SatAppCommandHandler::getInput ESatCharSmsDefaultAlphabet \
                 or ESatCharUcs2Alphabet")
-               heading = tr("Enter:");
+               heading = hbTrId("txt_sat_getinput_char");
         }
     } else {
         heading.append(aTitleText);
@@ -365,6 +365,42 @@
 }
 
 // ----------------------------------------------------------------------------
+// SatAppCommandHandler::callControl
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+void SatAppCommandHandler::callControl(
+    const QString &aText,
+    const TSatAlphaIdStatus /*aAlphaIdStatus*/)
+{
+    TFLOGSTRING("SATAPP: SatAppCommandHandler::showCallControlNote call")
+    //if (ESatAlphaIdNotNull == aAlphaIdStatus) {
+    //TODO  The note will be disabled by the phone UI when the call is
+    // in connecting status. But call control case is an exception, So we
+    // use RAknKeyLock to enable soft notifications.
+    mUi.showCallControlNote(aText);
+    TFLOGSTRING("SATAPP: SatAppCommandHandler::showCallControlNote exit")
+}
+
+// ----------------------------------------------------------------------------
+// SatAppCommandHandler::moSmControl
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+void SatAppCommandHandler::moSmControl(
+    const QString &aText,
+    const TSatAlphaIdStatus aAlphaIdStatus)
+{
+    TFLOGSTRING("SATAPP: SatAppCommandHandler::moSmControl call")
+    if (ESatAlphaIdNotNull == aAlphaIdStatus) {
+         mUi.showMoSmControlNote(aText);
+    } else {
+        mUi.showSatInfoNote(aText);
+    }
+    TFLOGSTRING("SATAPP: SatAppCommandHandler::moSmControl exit")
+}
+
+// ----------------------------------------------------------------------------
 // SatAppCommandHandler::confirmSend
 // (other items were commented in a header).
 // ----------------------------------------------------------------------------
@@ -381,12 +417,16 @@
     switch (aType) {
         case ESatUiConfirmSendSms:
             {
-            title.append(tr("Allow SIM card to send message?"));
+            title.append(hbTrId("txt_sat_sim_notification_sendsms"));
+            TFLOGSTRING( "SATAPP: SatAppCommandHandler::confirmSend sms" )
+            }
             break;
-            }
         case ESatUiConfirmSendSs:
         case ESatUiConfirmSendUssd: //the same string for SS and USSD
-            //title.append(tr("xxxxx"));
+            {
+            title.append(hbTrId("txt_sat_sim_notification_sendss_ussd"));
+            TFLOGSTRING( "SATAPP: SatAppCommandHandler::confirmSend ussd or ss" )
+            }
             break;
         default:
            aRes = ESatFailure;
@@ -454,9 +494,47 @@
         //const TBool aSelfExplanatory
        )
 {
-    TFLOGSTRING("SatAppCommandHandler::showSetUpCallConfirm")
+    TFLOGSTRING("SATAPP: SatAppCommandHandler::showSetUpCallConfirm call")
     mUi.showConfirmSetUpCallQuery(aText, aSimAppName, aActionAccepted);
-    TFLOGSTRING("SatAppCommandHandler::showSetUpCallConfirm exit")
+    TFLOGSTRING("SATAPP: SatAppCommandHandler::showSetUpCallConfirm exit")
+}
+
+// ----------------------------------------------------------------------------
+// SatAppCommandHandler::showSsWaitNote
+// (other items were commented in a header).
+// Displays a wait note to indicate SS sending.
+// ----------------------------------------------------------------------------
+//
+void SatAppCommandHandler::showSsWaitNote(
+        const QString &aText,
+        //const CFbsBitmap* aIconBitmapSendSM,
+        const bool aSelfExplanatoryIcon)
+{
+    TFLOGSTRING("SATAPP: SatAppCommandHandler::showSsWaitNote call")
+    mUi.showSsWaitNote(aText, aSelfExplanatoryIcon);
+    TFLOGSTRING("SATAPP: SatAppCommandHandler::showSsWaitNote exit")
 }
 
+// ----------------------------------------------------------------------------
+// SatAppCommandHandler::showBIPWaitNote
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+void SatAppCommandHandler::showBIPWaitNote(int aCommand, const QString &aText)
+{
+    TFLOGSTRING("SATAPP: SatAppCommandHandler::showBIPWaitNote call")
+    QString title = aText;
+    if (ECloseChannelIdentifier == aCommand ){
+        if (aText.isEmpty()){
+            title= hbTrId("txt_sat_closechannel_wait_note");           
+        }
+        // No cancel key support, close channel
+        mUi.showCloseChannelWaitNote(title);
+    } else {
+        // Cancel key support, Send Data, Receive Data
+        mUi.showBIPWaitNote(title);
+    }
+    
+    TFLOGSTRING("SATAPP: SatAppCommandHandler::showBIPWaitNote exit")
+}
 //End of file
--- a/satui/satapp/src/satappeventprovider.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/satui/satapp/src/satappeventprovider.cpp	Mon May 03 13:01:45 2010 +0300
@@ -17,7 +17,9 @@
 
 #include <QStringList>
 #include <msatuiadapter.h>
+
 #include "satappeventprovider.h"
+#include "satappplaytoneprovider.h"
 #include "csatuiobserver.h"
 #include "tflogger.h"
 
@@ -27,33 +29,44 @@
 // ----------------------------------------------------------------------------
 //
 SatAppEventProvider::SatAppEventProvider(QObject *parent) :
-    QObject(parent), mObs(NULL)
+    QObject(parent), mObs(NULL), mPlayTone(NULL)
 {
     TFLOGSTRING("SATAPP: SatAppEventProvider::SatAppEventProvider call")
-    TRAPD(err, mObs = CSatUiObserver::NewL())
-    TFLOGSTRING2("SATAPP: SatAppEventProvider::SatAppEventProvider \
-        new CSatUiObserver err=%d", err)
-    
-    if (KErrNone != err) {
+    TRAPD(err, mObs = CSatUiObserver::NewL();
+                mObs->ConnectRSatSessionL();
+          );
+    if ( KErrNone != err ) {
         CloseSatUI();
     } else {
         mObs->SetImplementer(this);
-        TFLOGSTRING("SATAPP: SatAppEventProvider::SatAppEventProvider")
-    }  
+        TFLOGSTRING("SATAPP: SatAppEventProvider::SatAppEventProvider \
+            SetImplementer")
+        mPlayTone = new SatAppPlayToneProvider(this);
+    }
+
     TFLOGSTRING("SATAPP: SatAppEventProvider::SatAppEventProvider exit")
 }
 
 // ----------------------------------------------------------------------------
 // SatAppEventProvider::~SatAppEventProvider
-// Sets a pointer to CSatUiViewAppUi object.
+// Sets a pointer to SATAPP: SatAppEventProvider object.
 // (other items were commented in a header).
 // ----------------------------------------------------------------------------
 //
 SatAppEventProvider::~SatAppEventProvider()
 {
     TFLOGSTRING("SATAPP: SatAppEventProvider::~SatAppEventProvider call")
-    delete mObs;
-    mObs = NULL;
+    if (mObs){
+        mObs->DisconnectRSatSession();
+        delete mObs;
+        mObs = NULL;
+    }
+    if (mPlayTone) {
+        delete mPlayTone;
+        mPlayTone = NULL;
+        TFLOGSTRING("SATAPP: SatAppEventProvider::~SatAppEventProvider delete\
+            mPlayTone")
+    }
     TFLOGSTRING("SATAPP: SatAppEventProvider::~SatAppEventProvider exit")
 }
 
@@ -67,19 +80,18 @@
     const MDesCArray &aMenuItems,
     const CArrayFixFlat<TSatAction> */*aMenuItemNextActions*/,
     const CFbsBitmap */*aIconBitmap*/,
-    //const CAknIconArray */*aItemIconsArray*/,
     const TBool aSelfExplanatoryItems,
     const TBool aHelpIsAvailable)
-    {
+{
     TFLOGSTRING("SATAPP: SatAppEventProvider::SetUpMenuL call")
 
     TSatUiResponse response(ESatSuccess);
     QString title;
     if (aText.Length() > 0) {
         title = QString::fromUtf16 (aText.Ptr(), aText.Length());
-        TFLOGSTRING2("SATAPP: SatAppEventProvider::SetUpMenuL Title=%s",
-            title.utf16())
-        }
+        TFLOGSTRING2("SATAPP: SatAppEventProvider::SetUpMenuL Title=%S",
+            &aText)
+    }
 
     QStringList *menuList = new QStringList();
     TFLOGSTRING("SATAPP: SatAppEventProvider::SetUpMenuL List")
@@ -90,7 +102,7 @@
             QString item=QString::fromUtf16(aMenuItems.MdcaPoint(i).Ptr(),
                 aMenuItems.MdcaPoint(i).Length());
             menuList->append(item);
-            }
+        }
 
         TFLOGSTRING("SATAPP: SatAppEventProvider::SetUpMenuL add item")
 
@@ -98,9 +110,6 @@
             response,
             title,
             *menuList,
-            //const CArrayFixFlat<TSatAction> *aMenuItemNextActions,
-            //const HbIcon &aIcon,
-            //const CArrayFixFlat<TInt> *aMenuIcons,
             aSelfExplanatoryItems,
             aHelpIsAvailable);
 
@@ -109,7 +118,7 @@
     TFLOGSTRING("SATAPP: SatAppEventProvider::SetUpMenuL exit")
 
     return response;
-    }
+}
 
 // ----------------------------------------------------------------------------
 // SatAppEventProvider::SetUpMenuL
@@ -123,7 +132,6 @@
     const TInt aDefaultItem,
     TUint8 &aSelection,
     const CFbsBitmap */*aIconBitmap*/,
-    //const CAknIconArray */*aItemsIconArray*/,
     const TBool aSelfExplanatoryItems,
     const TBool aHelpIsAvailable)
 {
@@ -134,9 +142,9 @@
     QString title;
     if (aText.Length() > 0) {
         title=QString::fromUtf16(aText.Ptr(), aText.Length());
-        TFLOGSTRING2("SATAPP: SatAppEventProvider::SelectItemL Title=%s",
-            title.utf16())
-        }
+        TFLOGSTRING2("SATAPP: SatAppEventProvider::SelectItemL Title=%S",
+            &aText)
+    }
 
     QStringList *menuList = new QStringList();
     //Add Item
@@ -145,7 +153,7 @@
             QString item=QString::fromUtf16(aMenuItems.MdcaPoint(i).Ptr(),
                         aMenuItems.MdcaPoint(i).Length());
             menuList->append(item);
-            }
+        }
         TFLOGSTRING("SATAPP: SatAppEventProvider::SelectItemL add item")
 
         emit selectItemEvent(
@@ -154,9 +162,6 @@
             *menuList,
             aDefaultItem,
             aSelection,
-            //const CArrayFixFlat<TSatAction> *aMenuItemNextActions,
-            //const HbIcon &aIcon,
-            //const CArrayFixFlat<TInt> *aMenuIcons,
             aSelfExplanatoryItems,
             aHelpIsAvailable);
 
@@ -189,15 +194,15 @@
 // ----------------------------------------------------------------------------
 //
 void SatAppEventProvider::menuSelection(int aMenuItem, bool aHelpRequested)
-    {
+{
     TFLOGSTRING2("SATAPP: SatAppEventProvider::MenuSelection call\
         aMenuItem=%d", aMenuItem)
     if(mObs && mObs->Adapter()) {
         mObs->Adapter()->MenuSelection(aMenuItem, aHelpRequested);
-        }
+    }
 
     TFLOGSTRING("SATAPP: SatAppEventProvider::MenuSelection exit")
-    }
+}
 
 // ----------------------------------------------------------------------------
 // SatAppEventProvider::DisplayTextL
@@ -220,16 +225,16 @@
     if (aText.Length() > 0) {
         title=QString::fromUtf16(aText.Ptr(), aText.Length());
         TFLOGSTRING2("SATAPP: SatAppEventProvider::DisplayTextL \
-            Title=%s", title.utf16())
-        }
+            Title=%S", &aText)
+    }
 
     QString appName;
     if (aSimApplicationName.Length() > 0) {
          appName=QString::fromUtf16(aSimApplicationName.Ptr(),
                 aSimApplicationName.Length());
          TFLOGSTRING2("SATAPP: SatAppEventProvider::DisplayTextL \
-             appName=%s", appName.utf16())
-        }
+             appName=%S", &aSimApplicationName)
+    }
 
     int timeInterval = aDuration.Int();
     TFLOGSTRING2("SATAPP: SatAppEventProvider::DisplayTextL: \
@@ -276,26 +281,25 @@
     if (aText.Length() > 0) {
         title=QString::fromUtf16(aText.Ptr(), aText.Length());
         TFLOGSTRING2("SATAPP: SatAppEventProvider::GetInputL \
-            Title=%s", title.utf16())
-        }
+            Title=%S", &aText)
+     }
 
     QString inputText;
     if (aInput.Length() > 0) {
         inputText = QString::fromUtf16(aInput.Ptr(), aInput.Length());
         TFLOGSTRING2("SATAPP: SatAppEventProvider::GetInputL \
-            inputText=%s", inputText.utf16())
-        }
+            inputText=%S", &aInput)
+    }
     bool isSelfExplanatory = aSelfExplanatory;
     unsigned int duration = aDuration;
-    //QPixmap *iconBitmapGetInput = QPixmap::fromSymbianCFbsBitmap(CFbsBitmap *aIconBitmapGetInput);
-     if (aGetInkey) {
+    
+    if (aGetInkey) {
         //Get Inkey
          emit getInkeyEvent(
              response,
              title,
              aCharacterSet,
              inputText,
-             //iconBitmapGetInput,
              isSelfExplanatory,
              duration);
          TFLOGSTRING("SATAPP: SatAppEventProvider::GetInputL: GetInkey")
@@ -313,24 +317,62 @@
             minLength,
             maxLength,
             hideInput,
-            //iconBitmapGetInput,
             isSelfExplanatory,
             duration);
         int length = inputText.length();
         if (length > maxLength) {
             length = maxLength;
         }
-        TFLOGSTRING("SATAPP: SatAppEventProvider::GetInputL: GetInput")
-        TFLOGSTRING2( "SATAPP: SatAppEventProvider::GetInputL:GetInput \
-        text=%s", inputText.utf16() )
         aInput.Copy(reinterpret_cast<const TUint16*>(inputText.utf16()), length);
         TFLOGSTRING2("SATAPP: SatAppEventProvider::GetInputL aInput=%S", &aInput)
     }
     TFLOGSTRING("SATAPP: SatAppEventProvider::GetInputL exit")
     return response;
+}
+
+// ----------------------------------------------------------------------------
+// SatAppEventProvider::CallControlL
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//                                         
+TSatUiResponse SatAppEventProvider::CallControlL(
+    const TDesC &aText,
+    const TSatAlphaIdStatus aAlphaIdStatus)
+{
+    TFLOGSTRING("SATAPP: SatAppEventProvider::CallControlL call")
+    QString text;
+    if (aText.Length() > 0) {
+        text=QString::fromUtf16(aText.Ptr(), aText.Length());
+        TFLOGSTRING2("SATAPP: SatAppEventProvider::CallControlL \
+                aText=%S", &aText)
     }
+    emit callControlEvent(text, aAlphaIdStatus);
+    TFLOGSTRING("SATAPP: SatAppEventProvider::CallControlL exit")
+    return ESatSuccess;
+}
 
-    // ----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
+// SatAppEventProvider::MoSmControlL
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+TSatUiResponse SatAppEventProvider::MoSmControlL(
+    const TDesC &aText,
+    const TSatAlphaIdStatus aAlphaIdStatus)
+{
+    TFLOGSTRING("SATAPP: SatAppEventProvider::MoSmControlL call")
+    QString text;
+    if (aText.Length() > 0) {
+        text=QString::fromUtf16(aText.Ptr(), aText.Length());
+        TFLOGSTRING2("SATAPP: SatAppEventProvider::MoSmControlL \
+                aText=%S", &aText)
+    }
+    emit moSmControlEvent(text, aAlphaIdStatus);
+    TFLOGSTRING("SATAPP: SatAppEventProvider::MoSmControlL exit")
+    return ESatSuccess;
+}
+
+// ----------------------------------------------------------------------------
 // SatAppEventProvider::GetYesNoL
 // (other items were commented in a header).
 // ----------------------------------------------------------------------------
@@ -350,7 +392,7 @@
     if (aText.Length() > 0) {
         text=QString::fromUtf16(aText.Ptr(), aText.Length());
         TFLOGSTRING2("SATAPP: SatAppEventProvider::GetYesNoL \
-                aText=%s", text.utf16())
+                aText=%S", &aText)
     }
 
     unsigned int inKey = static_cast < TUint >(aInkey);
@@ -366,7 +408,6 @@
         text,
         aCharacterSet,
         inKey,
-        //const TSatIconId &aIconId,
         selfExplanatory,
         duration,
         immediateDigitResponse);
@@ -393,7 +434,7 @@
     if (aText.Length() > 0) {
         text=QString::fromUtf16(aText.Ptr(), aText.Length());
         TFLOGSTRING2("SATAPP: SatAppEventProvider::GetYesNoL \
-                aText=%s", text.utf16())
+                aText=%S", &aText)
     }
     bool actionAccepted = aActionAccepted;
     int type = aType;
@@ -402,6 +443,7 @@
         text,
         actionAccepted,
         type);
+    aActionAccepted = actionAccepted;
     TFLOGSTRING("SATAPP: SatAppEventProvider::ConfirmSendL exit")
     return response;
 }
@@ -421,7 +463,7 @@
     if (aText.Length() > 0) {
         title = QString::fromUtf16 (aText.Ptr(), aText.Length());
         TFLOGSTRING2("SATAPP: SatAppEventProvider::ShowSmsWaitNoteL \
-            Title=%s", title.utf16())
+            Title=%S", &aText)
     }
     bool selfExplanatoryIcon = aSelfExplanatoryIcon;
 
@@ -448,14 +490,14 @@
     if (aText.Length() > 0) {
         text = QString::fromUtf16 (aText.Ptr(), aText.Length());
         TFLOGSTRING2("SATAPP: SatAppEventProvider::ConfirmSetUpCallL \
-            text=%s", text.utf16())
+            text=%S", &aText)
     }
     
     QString title;
-    if (aText.Length() > 0) {
+    if (aSimAppName.Length() > 0) {
         title = QString::fromUtf16 (aSimAppName.Ptr(), aSimAppName.Length());
         TFLOGSTRING2("SATAPP: SatAppEventProvider::ConfirmSetUpCallL \
-            Title=%s", title.utf16())
+            Title=%S", &aSimAppName)
     }
     bool actionAccepted = aActionAccepted;
 
@@ -463,7 +505,9 @@
         text,
         title,
         actionAccepted);
-    TFLOGSTRING("SATAPP: SatAppEventProvider::ConfirmSetUpCallL exit")    
+    aActionAccepted = actionAccepted;
+    TFLOGSTRING2("SATAPP: SatAppEventProvider::ConfirmSetUpCallL aActionAccepted %d \
+    exit", aActionAccepted)
     }
 
 // ----------------------------------------------------------------------------
@@ -482,7 +526,7 @@
     if (aText.Length() > 0) {
         title = QString::fromUtf16 (aText.Ptr(), aText.Length());
         TFLOGSTRING2("SATAPP: SatAppEventProvider::ShowDtmfWaitNoteL \
-            Title=%s", title.utf16())
+            Title=%S", &aText)
     }
     emit showDtmfWaitNoteEvent(
         response,
@@ -499,6 +543,9 @@
 void SatAppEventProvider::ClearScreen()
 {
     TFLOGSTRING("SATAPP: SatAppEventProvider::ClearScreen call")
+    if (mPlayTone) {
+        mPlayTone->clearScreen();
+    }
     emit clearScreenEvent();
     TFLOGSTRING("SATAPP: SatAppEventProvider::ClearScreen exit")
 }
@@ -511,6 +558,10 @@
 void SatAppEventProvider::CloseSatUI()
 {
     TFLOGSTRING("SATAPP: SatAppEventProvider::CloseSatUI call")
+    if (mPlayTone) {
+        mPlayTone->closeSatUI();
+    }
+
     emit closeUiEvent();
     TFLOGSTRING("SATAPP: SatAppEventProvider::CloseSatUI exit")
 }
@@ -528,15 +579,151 @@
 }
 
 //-----------------------------------------------------------------------------
-// SatAppEventProvider::userCancelDtmfResponse
+// SatAppEventProvider::userCancelResponse
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+void SatAppEventProvider::userCancelResponse()
+{
+    TFLOGSTRING("SATAPP: SatAppEventProvider::userCancelResponse call")
+    mObs->Adapter()->SessionTerminated( ESessionCancel );
+    TFLOGSTRING("SATAPP: SatAppEventProvider::userCancelResponse exit")
+}
+
+//-----------------------------------------------------------------------------
+// SatAppEventProvider::ShowSsWaitNoteL
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+void SatAppEventProvider::ShowSsWaitNoteL(
+            const TDesC &aText,
+            const CFbsBitmap* /*aIconBitmap*/,
+            const TBool aSelfExplanatoryIcon )
+{
+    TFLOGSTRING("SATAPP: SatAppEventProvider::ShowSsWaitNoteL call")
+    QString title;
+    if (aText.Length() > 0) {
+        title = QString::fromUtf16 (aText.Ptr(), aText.Length());
+        TFLOGSTRING2("SATAPP: SatAppEventProvider::ShowSsWaitNoteL \
+            Title=%S", &aText)
+    }
+    bool selfExplanatoryIcon = aSelfExplanatoryIcon;
+
+    emit showSsWaitNoteEvent(
+        title,
+        selfExplanatoryIcon);
+    TFLOGSTRING("SATAPP: SatAppEventProvider::ShowSsWaitNoteL exit")
+}
+
+//-----------------------------------------------------------------------------
+// SatAppEventProvider::ShowWaitNoteWithoutDelayL
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+void SatAppEventProvider::ShowWaitNoteWithoutDelayL()
+{
+    TFLOGSTRING("SATAPP: SatAppEventProvider::ShowWaitNoteWithoutDelayL call")
+    emit showWaitNoteWithoutDelayEvent();
+    TFLOGSTRING("SATAPP: SatAppEventProvider::ShowWaitNoteWithoutDelayL exit")
+}
+
+//-----------------------------------------------------------------------------
+// SatAppEventProvider::showSsErrorNoteEvent
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+void SatAppEventProvider::ShowSsErrorNoteL()
+{
+    TFLOGSTRING("SATAPP: SatAppEventProvider::showSsErrorNoteEvent call")
+    emit showSsErrorNoteEvent();
+    TFLOGSTRING("SATAPP: SatAppEventProvider::showSsErrorNoteEvent exit")
+}
+
+//-----------------------------------------------------------------------------
+// SatAppEventProvider::ShowBIPNoteL
 // (other items were commented in a header).
 // ----------------------------------------------------------------------------
 //
-void SatAppEventProvider::userCancelDtmfResponse()
+void SatAppEventProvider::ShowBIPNoteL( TInt aCommand, const TDesC &aText,
+        const CFbsBitmap* /*aIconBitmap*/, const TBool /*aSelfExplanatory*/)
 {
-    TFLOGSTRING("SATAPP: SatAppEventProvider::userCancelDtmfResponse call")
-    mObs->Adapter()->SessionTerminated( ESessionCancel );
-    TFLOGSTRING("SATAPP: SatAppEventProvider::userCancelDtmfResponse exit")
+    TFLOGSTRING("SATAPP: SatAppEventProvider::ShowBIPNoteL call")
+    int cmdType = aCommand;
+    QString title;
+    if (aText.Length() > 0) {
+        title=QString::fromUtf16(aText.Ptr(), aText.Length());
+        TFLOGSTRING2("SATAPP: SatAppEventProvider::ShowBIPNoteL \
+            Title=%S", &aText)
+        }
+    emit showBIPNoteEvent(cmdType, title);
+    TFLOGSTRING("SATAPP: SatAppEventProvider::ShowBIPNoteL exit")
 }
 
- //End of file
+//-----------------------------------------------------------------------------
+// SatAppEventProvider::ConfirmOpenChannelL
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+TSatUiResponse SatAppEventProvider::ConfirmOpenChannelL(
+    const TDesC &aText,
+    TBool &aActionAccepted,
+    const CFbsBitmap* /*aIconBitmapOpenChannel*/,
+    const TBool /*aSelfExplanatory*/ )
+{
+    TFLOGSTRING("SATAPP: SatAppEventProvider::ConfirmOpenChannelL call")
+    TSatUiResponse response( ESatSuccess );
+
+    QString title;
+    if (aText.Length() > 0) {
+        title=QString::fromUtf16(aText.Ptr(), aText.Length());
+        TFLOGSTRING2("SATAPP: SatAppEventProvider::ConfirmOpenChannelL \
+            Title=%S", &aText)
+        }
+    bool actionAccepted = aActionAccepted;
+    emit showOpenChannelConfirmEvent(title, actionAccepted);
+    aActionAccepted = actionAccepted;
+    TFLOGSTRING2( "SATAPP: SatAppEventProvider::ConfirmOpenChannelL exit\
+        response: %d", response)
+    return response;
+}
+
+//-----------------------------------------------------------------------------
+// SatAppEventProvider::PlayStandardToneL
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+TSatUiResponse SatAppEventProvider::PlayStandardToneL( const TDesC& aText,
+    const TDesC8& aSequence,
+    TTimeIntervalMicroSeconds aDuration,
+    const CFbsBitmap* aIconBitmap,
+    const TBool aSelfExplanatory )
+{
+    TFLOGSTRING("SATAPP: SatAppEventProvider::PlayStandardToneL call")
+    TSatUiResponse response = mPlayTone->PlayStandardToneL(
+        aText, aSequence, aDuration, aIconBitmap, aSelfExplanatory);
+    TFLOGSTRING2("SATAPP: SatAppEventProvider::PlayStandardToneL \
+        response= %d exit", response)
+    return response;
+}
+
+//-----------------------------------------------------------------------------
+// SatAppEventProvider::PlayUserSelectedToneL
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+TSatUiResponse SatAppEventProvider::PlayUserSelectedToneL(
+        const TDesC &aText,
+        TTimeIntervalMicroSeconds aDuration,
+        TSatTone aTone,
+        const CFbsBitmap* aIconBitmap,
+        const TBool aSelfExplanatory )
+{
+    TFLOGSTRING("SatAppEventProvider::PlayUserSelectedToneL calling")
+    TSatUiResponse response = mPlayTone->PlayUserSelectedToneL(
+        aText, aDuration, aTone, aIconBitmap, aSelfExplanatory);
+    TFLOGSTRING2( "SatAppEventProvider::PlayUserSelectedToneL response= %d \
+        exit", response)
+    return response;
+}
+
+//End of file
--- a/satui/satapp/src/satappgetinkeynote.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/satui/satapp/src/satappgetinkeynote.cpp	Mon May 03 13:01:45 2010 +0300
@@ -15,7 +15,6 @@
 *
 *
 */
-#include <exception>
 
 #include "tflogger.h"
 #include "satappgetinkeynote.h"
--- a/satui/satapp/src/satappmainhandler.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/satui/satapp/src/satappmainhandler.cpp	Mon May 03 13:01:45 2010 +0300
@@ -15,6 +15,7 @@
 *
 *
 */
+
 #include "satappmainhandler.h"
 #include "satappuiprovider.h"
 #include "satappeventprovider.h"
@@ -30,17 +31,17 @@
 // ----------------------------------------------------------------------------
 //
 SatAppMainHandler::SatAppMainHandler(HbMainWindow &window, 
-    QObject */*parent*/):mEvent(0), mUi(0), mCommand(0)
+    QObject */*parent*/):mEvent(NULL), mUi(NULL), mCommand(NULL)
 {
     TFLOGSTRING("SATAPP: SatAppMainHandler::SatAppMainHandler call")
-    
+
     mEvent = new SatAppEventProvider(this);
     mUi = new SatAppUiProvider(window, *mEvent, this);
     mCommand = new SatAppCommandHandler(*mUi, this);
-    
+
     initConnections();
     TFLOGSTRING("SATAPP: SatAppMainHandler::SatAppMainHandler exit")
-    }
+}
 
 // ----------------------------------------------------------------------------
 // SatAppMainHandler::~SatAppMainHandler
@@ -52,26 +53,29 @@
     TFLOGSTRING("SATAPP: SatAppMainHandler::~SatAppMainHandler call-exit")
 }
 
-
+// ----------------------------------------------------------------------------
+// SatAppMainHandler::initConnections
+// 
+// ----------------------------------------------------------------------------
+//
 void SatAppMainHandler::initConnections()
 {
     TFLOGSTRING("SATAPP: SatAppMainHandler::initConnections call")
-    bool ret = false; 
     // For SetUpMenu
-    ret = connect(mEvent, SIGNAL(setUpMenuEvent(TSatUiResponse &,
-        QString, QStringList, /*const HbIcon& ,*/ bool, bool)),
+    bool ret = connect(mEvent, SIGNAL(setUpMenuEvent(TSatUiResponse &,
+        QString, QStringList, bool, bool)),
         mCommand, SLOT(setUpMenu(TSatUiResponse &,
-        QString, QStringList, /*const HbIcon& ,*/ bool, bool)),
+        QString, QStringList, bool, bool)),
         Qt::DirectConnection);
     TFLOGSTRING2("SATAPP: SatAppMainHandler::initConnections: \
         SetUpMenu=%d", ret)
     
     // For SelectItem
     ret = connect(mEvent, SIGNAL(selectItemEvent(TSatUiResponse&,
-        QString, QStringList, /*const HbIcon& ,*/
+        QString, QStringList, 
         int, unsigned char&, bool, bool)),
         mCommand, SLOT(selectItem(TSatUiResponse&,
-        QString,QStringList, /*const HbIcon& ,*/
+        QString,QStringList, 
         int, unsigned char&, bool, bool)),
         Qt::DirectConnection);
     TFLOGSTRING2("SATAPP: SatAppMainHandler::initConnections: \
@@ -79,9 +83,9 @@
     
     // for display text
     ret = connect(mEvent, SIGNAL(displayTextEvent(TSatUiResponse &,
-        QString, QString, /*const HbIcon & ,*/ bool &, bool, int, bool)),
+        QString, QString, bool &, bool, int, bool)),
         mCommand, SLOT(displayText(TSatUiResponse&,
-        QString, QString, /*const HbIcon & ,*/ bool &, bool, int, bool)),
+        QString, QString, bool &, bool, int, bool)),
         Qt::DirectConnection);
     
     TFLOGSTRING2("SATAPP: SatAppMainHandler::initConnections: \
@@ -104,11 +108,9 @@
     // For GetInkey
     ret = connect(mEvent, SIGNAL(getInkeyEvent(TSatUiResponse &,
         QString, TSatCharacterSet, QString &,
-        //const QPixmap* aIconBitmapGetInput,
         bool,unsigned int &)),
         mCommand, SLOT(getInkey(TSatUiResponse &, QString,
         TSatCharacterSet, QString &,
-        //const QPixmap* aIconBitmapGetInput,
         bool, unsigned int &)),
         Qt::DirectConnection);
     TFLOGSTRING2("SATAPP: SatAppMainHandler::initConnections: \
@@ -130,36 +132,49 @@
         mCommand, SLOT(getInput(TSatUiResponse &, QString, TSatCharacterSet,
         QString &, int, int, bool, bool, unsigned int &)),
         Qt::DirectConnection);
-    TFLOGSTRING2("SATAPP: SatAppMainHandler::initConnections: GetInput=%d", ret)
+    TFLOGSTRING2("SATAPP: SatAppMainHandler::initConnections: \
+        GetInput=%d", ret)
     
-    // For send confirm
-    ret = connect(mEvent, SIGNAL(confirmSendEvent(TSatUiResponse &, QString,
-        bool &, int)),
-        mCommand, SLOT(confirmSend(TSatUiResponse&, QString, bool &, int)),
+    // For CallControl
+    ret = connect(mEvent, SIGNAL(callControlEvent(QString,
+        TSatAlphaIdStatus)),
+        mCommand, SLOT(callControl(QString, TSatAlphaIdStatus)),
         Qt::DirectConnection);
-    TFLOGSTRING2("SATAPP: SatAppSendSms::initConnections: confirmSend=%d", ret)
+    TFLOGSTRING2("SATAPP: SatAppMainHandler::initConnections: \
+        CallControl=%d", ret)
 
+    // For MoSmControl
+    ret = connect(mEvent, SIGNAL(moSmControlEvent(QString,
+        TSatAlphaIdStatus)),
+        mCommand, SLOT(moSmControl(QString, TSatAlphaIdStatus)),
+        Qt::DirectConnection);
+    TFLOGSTRING2("SATAPP: SatAppMainHandler::initConnections: \
+        MoSmControl=%d", ret)
+
+    // For send confirm
     ret = connect(mEvent, SIGNAL(showSmsWaitNoteEvent(QString,
-            /*const CFbsBitmap* aIconBitmapSendSM,*/ bool)),
-            mCommand, SLOT(showSmsWaitNote(QString,
-            /*const CFbsBitmap* aIconBitmapSendSM,*/bool)),
-            Qt::DirectConnection);
-
+        bool)),
+        mCommand, SLOT(showSmsWaitNote(QString,
+        bool)),
+        Qt::DirectConnection);
     TFLOGSTRING2("SATAPP: SatAppMainHandler::initConnections: \
         showSmsWaitNote=%d", ret)
+        
     //For Send DTMF
     ret = connect(mEvent, SIGNAL(showDtmfWaitNoteEvent(
-        TSatUiResponse &, QString/*,
-        const CFbsBitmap* aIconBitmapSendDTMF, bool*/)),
-        mCommand, SLOT(showDtmfWaitNote(TSatUiResponse &, QString
-                /*const CFbsBitmap* aIconBitmapSendDTMF,bool*/)),
+        TSatUiResponse &, QString)),
+        mCommand, SLOT(showDtmfWaitNote(
+        TSatUiResponse &, QString)),
         Qt::DirectConnection);
-    TFLOGSTRING2("SATAPP: SatAppMainHandler::initConnections: showDtmfsWaitNote=%d", ret)
-    //For DTMF cancel
-    ret = connect(mUi, SIGNAL(userCancelDtmfResponse()),
-                mEvent, SLOT(userCancelDtmfResponse()),
+    TFLOGSTRING2("SATAPP: SatAppMainHandler::initConnections: \
+        showDtmfsWaitNote=%d", ret)
+    
+    //For DTMF, BIP cancel
+    ret = connect(mUi, SIGNAL(userCancelResponse()),
+                mEvent, SLOT(userCancelResponse()),
         Qt::DirectConnection);
-    TFLOGSTRING2("SATAPP: SatAppMainHandler::initConnections: userCancelDtmfResponse=%d", ret)
+    TFLOGSTRING2("SATAPP: SatAppMainHandler::initConnections: \
+        userCancelResponse=%d", ret)
     
     //Stop wait note
     ret = connect(mEvent, SIGNAL(stopShowWaitNoteEvent()),
@@ -167,6 +182,7 @@
         Qt::DirectConnection);
     TFLOGSTRING2("SATAPP: SatAppMainHandler::initConnections: \
         stopShowWaitNote=%d", ret)
+
     // For SetUpCall
     ret = connect(mEvent, SIGNAL(showSetUpCallConfirmEvent(
         QString, QString, bool &)),
@@ -175,7 +191,49 @@
         Qt::DirectConnection);
     TFLOGSTRING2("SATAPP: SatAppMainHandler::initConnections: \
         showSetUpCallConfirm=%d", ret)
+        
+    ret = connect(mEvent, SIGNAL(showSsWaitNoteEvent(QString,
+        bool)),
+        mCommand, SLOT(showSsWaitNote(QString,
+        bool)),
+        Qt::DirectConnection);
     
+    // For Send SS or USSD
+    TFLOGSTRING2("SATAPP: SatAppMainHandler::initConnections: \
+        showSsWaitNote=%d", ret)
+
+    //For showWaitNoteWithoutDelay
+    ret = connect(mEvent, SIGNAL(showWaitNoteWithoutDelayEvent()),
+        mUi, SLOT(showWaitNoteWithoutDelay()),
+        Qt::DirectConnection);
+     TFLOGSTRING2("SATAPP: SatAppMainHandler::initConnections: \
+        showWaitNoteWithoutDelayEvent=%d", ret)
+
+    //For showSsErrorNote
+    ret = connect(mEvent, SIGNAL(showSsErrorNoteEvent()),
+        mUi, SLOT(showSsErrorNote()),
+        Qt::DirectConnection);
+     TFLOGSTRING2("SATAPP: SatAppMainHandler::initConnections: \
+        showSsErrorNoteEvent=%d", ret)
+
+    // For Open Channel
+    ret = connect(mEvent, SIGNAL(showOpenChannelConfirmEvent(
+        QString, bool &)),
+        mUi, SLOT(showConfirmOpenChannelQuery(
+        QString, bool &)),
+        Qt::DirectConnection);
+    TFLOGSTRING2("SATAPP: SatAppMainHandler::initConnections: \
+        showOpenChannelConfirm=%d", ret)
+
+    // For BIP wait note
+    ret = connect(mEvent, SIGNAL(showBIPNoteEvent(
+        int, QString)),
+        mCommand, SLOT(showBIPWaitNote(
+        int, QString)),
+        Qt::DirectConnection);
+    TFLOGSTRING2("SATAPP: SatAppMainHandler::initConnections: \
+         showBIPNote=%d", ret)
+
     TFLOGSTRING("SATAPP: SatAppMainHandler::initConnections exit")
 }
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/satui/satapp/src/satappplaytoneprovider.cpp	Mon May 03 13:01:45 2010 +0300
@@ -0,0 +1,531 @@
+/*
+* Copyright (c) 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:
+*
+*/
+
+
+// PlayStandardTone
+#include    <MProfile.h>
+#include    <MProfileEngine.h>
+#include    <MProfileTones.h>
+#include    <TProfileToneSettings.h>
+#include    <audiopreference.h>//KAudioPriorityLowLevel
+#include    <Mda/Common/Resource.h>//KMdaRepeatForever
+#include    <QTimer> // timeout callback
+#include    <hbmessagebox.h>//playtone note
+#include    <mdaaudiotoneplayer.h>// for CMdaAudioToneUtility&CMdaAudioPlayerUtility
+#include    <e32std.h>//TTimeIntervalMicroSeconds
+
+#include "satappplaytoneprovider.h"
+#include "satappcommonconstant.h"
+#include "tflogger.h"
+
+//const
+// Maximum length for sound file. 
+const TInt KMaxSoundFileLength = 256;
+// Used when dividing some values. Used only for preventing the use of magic 
+// numbers
+// Audio sample is repeated indefinitely.
+const TInt KSoundPlayerRepeatForever = KMdaRepeatForever;
+
+// ----------------------------------------------------------------------------
+// SatAppPlayToneProvider::SatAppPlayToneProvider
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+SatAppPlayToneProvider::SatAppPlayToneProvider(QObject *parent) :
+    QObject(parent), mWarningAndPlayTones(false),mVolume(0),
+    mPlayer(0),mPlayToneError(ESatSuccess), mTimer(0),mLoop(0),
+    mPermanentNote(0), mAudioPlayer(0)
+{
+    TFLOGSTRING("SATAPP: SatAppPlayToneProvider::SatAppPlayToneProvider call")
+    TFLOGSTRING("SATAPP: SatAppPlayToneProvider::SatAppPlayToneProvider exit")
+}
+
+// ----------------------------------------------------------------------------
+// SatAppPlayToneProvider::~SatAppPlayToneProvider
+// Sets a pointer to CSatUiViewAppUi object.
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+SatAppPlayToneProvider::~SatAppPlayToneProvider()
+{
+    TFLOGSTRING("SATAPP: SatAppPlayToneProvider::~SatAppPlayToneProvider call")
+    stopPlayTone();
+    if (mPermanentNote) {
+        TFLOGSTRING("SATAPP: SatAppPlayToneProvider::~SatAppPlayToneProvider note 0")
+        delete mPermanentNote;
+        mPermanentNote = 0;
+    }
+    if (mTimer) {
+        TFLOGSTRING("SATAPP: SatAppPlayToneProvider::~SatAppPlayToneProvider timer 0")
+        delete mTimer;
+        mTimer = 0;
+    }
+    if (mLoop) {
+        TFLOGSTRING("SatAppPlayToneProvider::~SatAppPlayToneProvider loop 0")
+        delete mLoop;
+        mLoop = 0;
+    }
+    TFLOGSTRING("SATAPP: SatAppPlayToneProvider::~SatAppPlayToneProvider exit")
+}
+
+//-----------------------------------------------------------------------------
+// SatAppPlayToneProvider::PlayStandardToneL
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+TSatUiResponse SatAppPlayToneProvider::PlayStandardToneL( const TDesC& aText,
+    const TDesC8& aSequence,
+    TTimeIntervalMicroSeconds aDuration,
+    const CFbsBitmap* /*aIconBitmap*/,
+    const TBool aSelfExplanatory )
+{
+    TFLOGSTRING("SATAPP: SatAppPlayToneProvider::PlayStandardToneL call")
+    if (mTimer) {
+        if (mTimer->isActive()) {
+            mTimer->stop();
+        }
+        delete mTimer;
+        mTimer = 0;
+        TFLOGSTRING("SatAppPlayToneProvider::PlayStandardToneL delete timer")
+    }
+    if (mLoop) {
+        TFLOGSTRING("SatAppPlayToneProvider::PlayStandardToneL delete loop")
+        if (mLoop->isRunning()) {
+            mLoop->exit();
+        }
+        delete mLoop;
+        mLoop = 0;
+    }
+
+    TSatUiResponse response(ESatSuccess);
+    unsigned int duration(0);
+    if (aDuration > 0) {
+        duration = aDuration.Int64() / 1000;
+    }
+    TFLOGSTRING2("SATAPP: SatAppPlayToneProvider::PlayStandardToneL \
+     duration microseconds %d", duration)
+    QString text;
+    mLoop = new QEventLoop(this);
+    if (aText.Length() > 0) {
+        text = QString::fromUtf16(aText.Ptr(), aText.Length());
+        TFLOGSTRING2("SATAPP: SatAppPlayToneProvider::PlayStandardToneL \
+            text=%S", &aText)
+        mPermanentNote = new HbMessageBox(HbMessageBox::MessageTypeInformation);
+        bool ret = connect(mPermanentNote, SIGNAL(aboutToClose()),
+                this, SLOT(stopPlayTone()));
+        TFLOGSTRING2("SATAPP: SatAppPlayToneProvider::PlayStandardToneL connect \
+           note close to timer stop: %d", ret)
+
+        bool selfExplanatory = aSelfExplanatory;
+        if (!selfExplanatory) {
+            mPermanentNote->setText(text);
+            if (duration > 0 ) {
+                mPermanentNote->setTimeout(duration);
+            }
+            mPermanentNote->setDismissPolicy(HbPopup::TapAnywhere);
+            TFLOGSTRING("SatAppPlayToneProvider::PlayStandardToneL show before")
+            mPermanentNote->show();
+            TFLOGSTRING("SatAppPlayToneProvider::PlayStandardToneL show after")
+        }
+    }
+
+    if (mPlayer) {
+        delete mPlayer;
+        mPlayer = 0;
+    }
+    mPlayer = CMdaAudioToneUtility::NewL(*this);
+    TInt volume(mPlayer->MaxVolume());
+    mPlayer->SetVolume(volume);
+    mPlayer->PrepareToPlayDesSequence(aSequence);
+
+    if (duration > 0) {
+        mTimer = new QTimer(this);
+        bool ret = connect(mTimer, SIGNAL(timeout()),
+                this, SLOT(stopPlayTone()));
+        TFLOGSTRING2("SATAPP: SatAppPlayToneProvider::PlayStandardToneL \
+                connect mTimer stop: %d", ret)
+        mTimer->start(duration);
+    }
+
+    if (mLoop) {
+        TFLOGSTRING("SATAPP: SatAppPlayToneProvider::PlayStandardToneL loop")
+        mLoop->exec(QEventLoop::AllEvents);
+        TFLOGSTRING("SATAPP: SatAppPlayToneProvider::PlayStandardToneL quit loop")
+        delete mLoop;
+        mLoop = 0;
+    }
+    if (mPermanentNote) {
+        TFLOGSTRING("SATAPP: SatAppPlayToneProvider::PlayStandardToneL note 0")
+        delete mPermanentNote;
+        mPermanentNote = 0;
+    }
+    if (mTimer) {
+        TFLOGSTRING("SATAPP: SatAppPlayToneProvider::PlayStandardToneL timer 0")
+        delete mTimer;
+        mTimer = 0;
+    }
+
+
+    TFLOGSTRING("SATAPP: SatAppPlayToneProvider::PlayStandardToneL before play cancel")
+    mPlayer->CancelPlay();
+    delete mPlayer;
+    mPlayer = NULL;
+
+    //get warning and game tones setting from active profile
+    GetProfileParamsL();
+    if((EFalse == mWarningAndPlayTones) && 
+          (ESatSuccess == mPlayToneError)) {
+        mPlayToneError = ESatSuccessToneNotPlayed;
+    }
+    response = mPlayToneError;
+    TFLOGSTRING("SATAPP: SatAppPlayToneProvider::PlayStandardToneL exit")
+    return response;
+}
+
+
+// ---------------------------------------------------------
+// SatAppCommandHandler::GetProfileParamsL
+// Get and store settings from current profile 
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void SatAppPlayToneProvider::GetProfileParamsL( TSatTone aTone /*= ESatToneNotSet*/,
+                                         TDes* aToneName /*= NULL*/ )
+{
+    TFLOGSTRING( "SatAppCommandHandler::GetProfileParamsL calling" )
+    MProfile* profile = NULL;
+    MProfileEngine* engine = NULL;
+    engine = CreateProfileEngineL();
+    CleanupReleasePushL( *engine );
+
+    profile = engine->ActiveProfileLC();
+
+    const MProfileTones& tones = profile->ProfileTones();
+
+    // Takes a current warning and gametones setting.
+    const TProfileToneSettings& ts = tones.ToneSettings();
+    mWarningAndPlayTones = ts.iWarningAndGameTones;
+    mVolume = ts.iRingingVolume;
+    if ( ( ESatUserSelectedToneIncomingSms == aTone ) && ( aToneName ) )
+        {
+        TFLOGSTRING("SatAppCommandHandler::GetProfileParamsL message tone")
+        aToneName->Copy( tones.MessageAlertTone() );
+    } else if( aToneName ) {
+        TFLOGSTRING("SatAppCommandHandler::GetProfileParamsL ring tone")
+        aToneName->Copy( tones.RingingTone1() );
+    }
+
+    CleanupStack::PopAndDestroy(2); // engine, profile
+    TFLOGSTRING("SatAppCommandHandler::GetProfileParamsL exits")
+}
+
+// ---------------------------------------------------------
+// SatAppPlayToneProvider::MatoPrepareComplete
+// Indicates success or failure.
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void SatAppPlayToneProvider::MatoPrepareComplete(TInt aError)
+{
+    TFLOGSTRING2("SatAppPlayToneProvider::MatoPrepareComplete called\
+        aError = %d", aError)
+    if (KErrNone == aError && mPlayer) {
+        mPlayToneError = ESatSuccess;
+        TTimeIntervalMicroSeconds zero(static_cast<TInt64>( 0 ));
+        mPlayer->SetPriority(KAudioPriorityLowLevel,
+               STATIC_CAST(TMdaPriorityPreference, KAudioPrefConfirmation));
+        mPlayer->SetRepeats( KMdaAudioToneRepeatForever, zero );
+        mPlayer->Play();
+    } else {
+        mPlayToneError = ESatFailure;
+    }
+    TFLOGSTRING( "SatAppPlayToneProvider::MatoPrepareComplete exit" )
+}
+
+//-----------------------------------------------------------------------------
+// SatAppPlayToneProvider::MatoPlayComplete
+// Indicates success or failure.
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+void SatAppPlayToneProvider::MatoPlayComplete( TInt aError )
+{
+    TFLOGSTRING("SatAppPlayToneProvider::MatoPlayComplete calling")
+    if (KErrNone == aError && mPlayer) {
+        TFLOGSTRING("SatAppPlayToneProvider::MatoPlayComplete play")
+        mPlayer->Play();
+    } else {
+        TFLOGSTRING( "SatAppPlayToneProvider::MatoPlayComplete stop playing")
+        // Stops playing if error.
+        stopPlayTone();
+    }
+    TFLOGSTRING2("SatAppPlayToneProvider::MatoPlayComplete exit error %d", aError)
+}
+
+//-----------------------------------------------------------------------------
+// SatAppPlayToneProvider::PlayUserSelectedToneL
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+TSatUiResponse SatAppPlayToneProvider::PlayUserSelectedToneL(
+        const TDesC &aText,
+        TTimeIntervalMicroSeconds aDuration,
+        TSatTone aTone,
+        const CFbsBitmap* /*aIconBitmap*/,
+        const TBool aSelfExplanatory )
+{
+    TFLOGSTRING("SatAppPlayToneProvider::PlayUserSelectedToneL calling")
+    if (mTimer) {
+        delete mTimer;
+        mTimer = 0;
+        TFLOGSTRING("SatAppPlayToneProvider::PlayUserSelectedToneL delete timer")
+    }
+    if (mLoop) {
+        delete mLoop;
+        mLoop = 0;
+        TFLOGSTRING("SatAppPlayToneProvider::PlayUserSelectedToneL delete loop")
+    }
+    unsigned int duration(0);
+    if (aDuration > 0) {
+        duration = aDuration.Int64() / KPlayToneSymbianConvertQtTime;
+        TFLOGSTRING2("SatAppPlayToneProvider::PlayUserSelectedToneL duration %d",
+                duration)
+    }
+
+    QString text;
+    if (aText.Length() > 0) {
+        text = QString::fromUtf16(aText.Ptr(), aText.Length());
+        TFLOGSTRING2("SATAPP: SatAppPlayToneProvider::PlayUserSelectedToneL \
+            text=%S", &aText)
+        mPermanentNote = new HbMessageBox(HbMessageBox::MessageTypeInformation);
+        bool selfExplanatory = aSelfExplanatory;
+        if (!selfExplanatory) {
+            mPermanentNote->setText(text);
+            if (duration) {
+                mPermanentNote->setTimeout(duration);
+            }
+            mPermanentNote->setDismissPolicy(HbPopup::TapAnywhere);
+            TFLOGSTRING("SatAppPlayToneProvider::PlayUserSelectedToneL show before")
+            mPermanentNote->show();
+            TFLOGSTRING("SatAppPlayToneProvider::PlayUserSelectedToneL show after")
+        }
+    }
+
+    // If several messages/calls arrive during a small amount of time and if the
+    // message received or incoming call tone is already being played we do not 
+    // restart it.
+    if (mAudioPlayer) {
+        TFLOGSTRING( "SatAppPlayToneProvider::\
+            PlayUserSelectedToneL Error - already played" )
+        return ESatFailure;
+    }
+
+    TSatUiResponse response(ESatSuccess);
+    // This defines name for the current message alert or incoming call tone. 
+    TBuf<KMaxSoundFileLength> soundFileName;
+    GetProfileParamsL( aTone, &soundFileName );
+    // This defines the behaviour to be adopted by an
+    // audio client if a higher priority client takes over the device.
+    TInt mdaPriority( KAudioPrefIncomingCall );
+    // This is used to resolve conflicts when more than one client tries to 
+    // access the same sound output device simultaneously.
+    TInt audioPriority( KAudioPriorityPhoneCall );
+
+    TFLOGSTRING2( "SATAPP: SatAppPlayToneProvider::PlayUserSelectedToneL\
+        Volume is %d ", mVolume )
+
+    // Creates the audio player.
+    mAudioPlayer = CMdaAudioPlayerUtility::NewFilePlayerL( 
+        soundFileName,
+        *this,
+        audioPriority,
+        ( TMdaPriorityPreference ) mdaPriority );
+
+    if (aDuration > 0) {
+        TFLOGSTRING( "SATAPP: SatAppPlayToneProvider::PlayUserSelectedToneL\
+         duration not 0" )
+        mAudioPlayer->SetRepeats( KSoundPlayerRepeatForever, 
+                                  TTimeIntervalMicroSeconds( 
+                                  static_cast<TInt64>( 0 ) ) );
+        mTimer = new QTimer(this);
+        mTimer->start(duration);
+        mLoop = new QEventLoop(this);
+        bool ret = connect(mTimer, SIGNAL(timeout()), this, SLOT(stopPlayTone()));
+        TFLOGSTRING2("SATAPP: SatAppPlayToneProvider::PlayUserSelectedToneL\
+                connect mTimer stop: %d", ret)
+
+        if (mPermanentNote) {
+            ret = connect(mPermanentNote, SIGNAL(aboutToClose()),
+                    this, SLOT(stopPlayTone()));
+            TFLOGSTRING2("SATAPP: SatAppPlayToneProvider::PlayUserSelectedToneL \
+               connect note close to timer stop: %d", ret)
+        }
+        if (mLoop) {
+            mLoop->exec(QEventLoop::AllEvents);
+            TFLOGSTRING("SATAPP: SatAppPlayToneProvider::PlayUserSelectedToneL quit loop")
+            delete mLoop;
+            mLoop = 0;
+        }
+        if (mPermanentNote) {
+            TFLOGSTRING("SATAPP: SatAppPlayToneProvider::PlayUserSelectedToneL note 0")
+            delete mPermanentNote;
+            mPermanentNote = 0;
+        }
+        if (mTimer) {
+            TFLOGSTRING("SATAPP: SatAppPlayToneProvider::PlayUserSelectedToneL timer 0")
+            delete mTimer;
+            mTimer = 0;
+        }
+        // Sample is played in forever loop for the duration.
+        // After duration call back timers are destroyed       
+        // If player exists, stop playing and delete player. MapcPlayComplete
+        // is not called because CallBackTimer stops the playing.
+        if (mAudioPlayer) {
+            mAudioPlayer->Stop();
+            delete mAudioPlayer;
+            mAudioPlayer = 0;
+            TFLOGSTRING( "SatAppPlayToneProvider::PlayUserSelectedToneL\
+                mAudioPlayer deleted" )
+        }
+    } else {
+        // If duration is zero then tone is played only once.
+        // Playing duration is same as duration of the sample.
+        mAudioPlayer->SetRepeats(
+            0, TTimeIntervalMicroSeconds( static_cast<TInt64>( 0 ) ) );
+        TFLOGSTRING( "SatAppPlayToneProvider::PlayUserSelectedToneL SetRepeats 0" )
+    }
+
+    TFLOGSTRING( "SatAppPlayToneProvider::PlayUserSelectedToneL exit" )
+    if( EFalse == mWarningAndPlayTones ) {
+        response = ESatSuccessToneNotPlayed;
+    }
+
+    TFLOGSTRING( "SatAppPlayToneProvider::PlayUserSelectedToneL exit" )
+    return response;
+}
+
+//-----------------------------------------------------------------------------
+// SatAppPlayToneProvider::MapcInitComplete
+// Plays the tone.
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+void SatAppPlayToneProvider::MapcInitComplete( TInt aError, 
+    const TTimeIntervalMicroSeconds& /*aDuration*/ )
+{
+    TFLOGSTRING( "SatAppPlayToneProvider::MapcInitComplete called" )
+    // Audio player is initialised, so if there is no error, we can start 
+    // playing the tone.
+    if (KErrNone == aError && mAudioPlayer) {
+        const TInt volume( Max(0, Min(mVolume, 
+                           mAudioPlayer->MaxVolume())));
+        TFLOGSTRING2("CSatUiViewAppUi::\
+            MapcInitComplete SetVolume %d", volume )
+        // Set volume according Settings. 
+        mAudioPlayer->SetVolume( volume );
+        mAudioPlayer->Play();
+        TFLOGSTRING( "SatAppPlayToneProvider::MapcInitComplete Play" )
+    } else {
+        // Otherwise, we delete the initialised audio player.
+        if ( mAudioPlayer ) {
+            TFLOGSTRING( "SatAppPlayToneProvider::MapcInitComplete mAudioPlayer \
+                          true" )
+            delete mAudioPlayer;
+            mAudioPlayer = 0;
+     }
+
+        // Remove also the note for play tone
+        // If there was a duration for play tone, stop waiting
+        stopPlayTone();
+
+        TFLOGSTRING2( "SatAppPlayToneProvider::MapcInitComplete Error %d", aError )
+    }
+    TFLOGSTRING( "SatAppPlayToneProvider::MapcInitComplete exit" )
+}
+
+//-----------------------------------------------------------------------------
+// SatAppPlayToneProvider::MapcPlayComplete
+// Deletes audio player after playing is completed.
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+void SatAppPlayToneProvider::MapcPlayComplete( TInt /*aError*/ )
+{
+    TFLOGSTRING( "SatAppPlayToneProvider::MapcPlayComplete called" )
+
+    // When playing is completed, deleting the audio player.
+    if ( mAudioPlayer ) {
+        TFLOGSTRING("SatAppPlayToneProvider::MapcPlayComplete delete mAudioPlayer")
+        delete mAudioPlayer;
+        mAudioPlayer = 0;
+    }
+    // Remove note after play has completed.
+    stopPlayTone();
+    TFLOGSTRING("SatAppPlayToneProvider::MapcPlayComplete exit")
+}
+
+// ----------------------------------------------------------------------------
+// SatAppPlayToneProvider::clearScreen
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+void SatAppPlayToneProvider::clearScreen()
+{
+    TFLOGSTRING("SATAPP: SatAppEventProvider::ClearScreen call")
+    stopPlayTone();
+    TFLOGSTRING("SATAPP: SatAppEventProvider::ClearScreen exit")
+}
+
+// ----------------------------------------------------------------------------
+// SatAppPlayToneProvider::clearScreen
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+void SatAppPlayToneProvider::closeSatUI()
+{
+    TFLOGSTRING("SATAPP: SatAppEventProvider::closeSatUI call")
+    clearScreen();
+    TFLOGSTRING("SATAPP: SatAppEventProvider::closeSatUI exit")
+}
+
+// ----------------------------------------------------------------------------
+// SatAppPlayToneProvider::stopPlayTone
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+void SatAppPlayToneProvider::stopPlayTone()
+{
+    TFLOGSTRING("SATAPP: SatAppEventProvider::stopPlayTone call")
+     if (mPermanentNote) {
+        TFLOGSTRING("SatAppPlayToneProvider::stopPlayTone delete mPermanentNote")
+        disconnect(mPermanentNote,SIGNAL(aboutToClose()),
+                this, SLOT(stopPlayTone())); 
+        mPermanentNote->close();
+    }
+    if (mTimer) {
+        TFLOGSTRING("SatAppPlayToneProvider::stopPlayTone delete timer")
+        disconnect(mTimer,SIGNAL(timeout()), this, SLOT(stopPlayTone()));
+        if (mTimer->isActive()) {
+            mTimer->stop();
+        }
+    }
+    if (mLoop && mLoop->isRunning()) {
+        TFLOGSTRING("SatAppPlayToneProvider::stopPlayTone exit loop")
+        mLoop->exit();
+    }
+    TFLOGSTRING("SATAPP: SatAppEventProvider::stopPlayTone exit")
+}
+
+ //End of file
--- a/satui/satapp/src/satappuiprovider.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/satui/satapp/src/satappuiprovider.cpp	Mon May 03 13:01:45 2010 +0300
@@ -21,7 +21,8 @@
 #include <hbdocumentloader.h> // application xml
 #include <hbaction.h> // action user response
 #include <hbvalidator.h>
-#include <hbmessagebox.h> // DisplayText, ConfirmSend, SetUpCall
+#include <hbmessagebox.h> // DisplayText, ConfirmSend,
+#include <hbdevicemessagebox.h> // CallControl, SetUpCall
 #include <hblabel.h> // DisplayText, GetInput, SetUpCall
 #include <hbinputdialog.h> // GetInkey
 #include <hbprogressdialog.h> // SendSms wait note
@@ -29,7 +30,6 @@
 #include <hbinputeditorinterface.h> // GetInput
 #include "satappview.h" // SetUpMenu, SelectItem
 #include "satappgetinkeynote.h" // GetYesNo immediate digit response
-
 #include "satappuiprovider.h"
 #include "tflogger.h"
 
@@ -50,8 +50,9 @@
     QObject(parent), mMainWindow(window), mLoader(0),
     mSetupMenuView(0), mSelectItemView(0), mDisplayPopup(0),
     mGetInkeyQuery(0), mYesNoPopup(0), mGetInputQuery(0),
-    mConfirmSendQuery(0), mSmsWaitNote(0),mDtmfWaitNote(0), mSetUpCallQuery(0),
-    mUserRsp(EUserNoResponse), mDigitalRsp(0), mMinLength(0),mTimer(0),mLoop(0)
+    mConfirmSendQuery(0), mSetUpCallQuery(0), mCallControlMsg(0),
+    mConfirmBipQuery(0), mUserRsp(EUserNoResponse), mDigitalRsp(0), 
+    mMinLength(0), mTimer(0), mLoop(0),mWaitNote(0)
 {
     TFLOGSTRING("SATAPP: SatAppUiProvider::SatAppUiProvider call");
 
@@ -76,12 +77,10 @@
             mSelectItemView->setMainWindow(mMainWindow);
             mSelectItemView->initSelectItem(event, *this);
         }
-
-        } else {
+    } else {
         TFLOGSTRING(
         "SATAPP: SatAppUiProvider::SatAppUiProvider DOCML failure!");
-        }
-
+    }
     TFLOGSTRING("SATAPP: SatAppUiProvider::SatAppUiProvider eixt");
 }
 
@@ -113,14 +112,14 @@
 SatAppUiProvider::~SatAppUiProvider()
 {
     TFLOGSTRING("SATAPP: SatAppUiProvider::~SatAppUiProvider call");
-    //delete mTopicMonitor;  not in use at the moment
+    stopShowWaitNote();
     delete mLoader;
     // delete all objects created from DOCML.
     while (!mObjects.isEmpty()) {
         TFLOGSTRING(
         "SATAPP: SatAppUiProvider::~SatAppUiProvider object tree");
         delete mObjects.takeFirst();
-        }
+    }
     if (mDisplayPopup) {
         delete mDisplayPopup;
         mDisplayPopup = 0;
@@ -141,17 +140,20 @@
         delete mConfirmSendQuery;
         mConfirmSendQuery = 0;
     }
-    if (mSmsWaitNote) {
-        delete mSmsWaitNote;
-        mSmsWaitNote = 0;
-    }
+
     if (mSetUpCallQuery) {
         delete mSetUpCallQuery;
         mSetUpCallQuery = 0;
     }
-    if (mDtmfWaitNote) {
-        delete mDtmfWaitNote;
-        mDtmfWaitNote = 0;
+
+    if (mConfirmBipQuery ) {
+        delete mConfirmBipQuery ;
+        mConfirmBipQuery  = 0;
+    }
+
+    if (mWaitNote) {
+        delete mWaitNote;
+        mWaitNote = 0;
     }
 
     if (mLoop && mLoop->isRunning()) {
@@ -161,6 +163,10 @@
         TFLOGSTRING("SatAppUiProvider::~SatAppUiProvider exit loop")
     }
 
+    if (mCallControlMsg) {
+        delete mCallControlMsg;
+        mCallControlMsg = 0;
+    }
     TFLOGSTRING("SATAPP: SatAppUiProvider::~SatAppUiProvider exit");
 }
 
@@ -199,6 +205,7 @@
     const bool aHelpIsAvailable)
 {
     TFLOGSTRING("SATAPP: SatAppUiProvider::showSetUpMenuView call")
+    stopShowWaitNote();
     activeView("setupmenu_view");
 
     // The text is the application name
@@ -234,6 +241,7 @@
     const bool aHelpIsAvailable)
 {
     TFLOGSTRING("SATAPP: SatAppUiProvider::showSelectItemView call")
+    stopShowWaitNote();
     activeView("selectitem_view");
     mSelectItemView->showSelectItemContent(aRes, aText,
         aMenuItems, aDefaultItem, aSelection,
@@ -253,6 +261,7 @@
 {
     TFLOGSTRING("SATAPP: SatAppUiProvider::showDisplayTextPopup call")
     resetUserResponse();
+    stopShowWaitNote();
     // Create a note
     mDisplayPopup = new HbMessageBox(HbMessageBox::MessageTypeInformation);
 
@@ -290,12 +299,9 @@
     unsigned int &aDuration)
 {
     TFLOGSTRING("SATAPP: SatAppUiProvider::showGetInkeyQuery call")
-    TFLOGSTRING2("SATAPP: SatAppUiProvider::showGetInkeyQuery \
-         aHeading=%s", aHeading.utf16())
-    TFLOGSTRING2("SATAPP: SatAppUiProvider::showGetInkeyQuery \
-         aContent=%s", aContent.utf16())
 
     resetUserResponse();
+    stopShowWaitNote();
     // Create a query
     mGetInkeyQuery = new HbInputDialog();
     if (mGetInkeyQuery) {
@@ -310,7 +316,7 @@
         HbValidator *val =new HbValidator;
 
         if (ESatDigitOnly == aCharacterSet) {
-            // digit mode, digits only (0 9, *, #, and +);
+            // digit mode, digits only (0 9, *, #, and +)
             mGetInkeyQuery->setInputMode(HbInputDialog::IntInput);
             // Define what digits can be entered
             QRegExp r("[0123456789*#+]{1,1}"); // from 1 to 1 digits
@@ -321,9 +327,9 @@
             mGetInkeyQuery->setInputMode(HbInputDialog::TextInput);
         }
 
-        unsigned int duration = 60000;
+        unsigned int duration = KDefaultSelectionTimeoutMseconds;
         if (aDuration) {
-            duration = aDuration * 100;
+            duration = aDuration * KSymbianTimeConvertQtTime;
         }
         composeDialog(mGetInkeyQuery, duration, ESatDialogGetInkey);
         mGetInkeyQuery->lineEdit()->setMaxLength(1);
@@ -334,12 +340,8 @@
         TFLOGSTRING("SATAPP: SatAppUiProvider::showGetInkeyQuery end pop")
 
         QString inputString = (mGetInkeyQuery->value()).toString();
-        TFLOGSTRING2("SATAPP: SatAppUiProvider::showGetInkeyQuery \
-           inputString=%s", inputString.utf16())
         aContent = inputString;
         delete val;
-        TFLOGSTRING2("SATAPP: SatAppUiProvider::showGetInkeyQuery \
-                 aContent=%s", aContent.utf16())
         delete mGetInkeyQuery;
         mGetInkeyQuery = 0;
     }
@@ -359,11 +361,12 @@
 {
     TFLOGSTRING("SATAPP: SatAppUiProvider::showGetYesNoQuery call")
     resetUserResponse();
+    stopShowWaitNote();
     TFLOGSTRING2("SATAPP: SatAppUiProvider::showGetYesNoQuery duration in=%d",
             aDuration)
-    unsigned int duration = 60000;
+    unsigned int duration = KDefaultSelectionTimeoutMseconds;
     if (aDuration) {
-        duration = aDuration * 100;
+        duration = aDuration * KSymbianTimeConvertQtTime;
     }
     TFLOGSTRING2("SATAPP: SatAppUiProvider::showGetYesNoQuery duration=%d",
             duration)
@@ -393,7 +396,7 @@
         TFLOGSTRING("SATAPP: SatAppUiProvider::showGetYesNoQuery befor pop")
         mYesNoPopup->exec();
         TFLOGSTRING("SATAPP: SatAppUiProvider::showGetYesNoQuery end pop")
-        aDuration = time.elapsed() / 100;
+        aDuration = time.elapsed() / KSymbianTimeConvertQtTime;
         TFLOGSTRING2("SATAPP: SatAppUiProvider::showGetYesNoQuery duration out=%d",
                 aDuration)
         delete mYesNoPopup;
@@ -422,9 +425,8 @@
     TFLOGSTRING("SATAPP: SatAppUiProvider::showGetInputQuery call")
     TFLOGSTRING3("SATAPP: SatAppUiProvider::showGetInputQuery \
                   min %d max %d length", minLength, maxLength)
-    TFLOGSTRING2("SATAPP: SatAppUiProvider::showGetInputQuery in content=%s",
-    content.utf16())
     resetUserResponse();
+    stopShowWaitNote();
     mMinLength = minLength;
     // Create a query
     mGetInputQuery = new HbInputDialog();
@@ -438,7 +440,7 @@
     HbValidator *val =new HbValidator;
     QRegExp r;
     if (ESatDigitOnly == characterSet) {
-        // digit mode, digits only (0 9, *, #, and +);
+        // digit mode, digits only (0 9, *, #, and +)
         mGetInputQuery->setInputMode(HbInputDialog::IntInput);
         // Define what digits can be entered
         r.setPattern("[0123456789*#+]{0,255}"); // define what characters can be entered
@@ -453,10 +455,11 @@
         this, SLOT(updateQueryAction(QString)));
     mGetInputQuery->lineEdit()->setMaxLength(maxLength);
 
-    composeDialog(mGetInputQuery, 60000, ESatDialogGetInput);
+    composeDialog(mGetInputQuery, KDefaultSelectionTimeoutMseconds, ESatDialogGetInput);
     // Sets the "OK"-action/button
     if (0 == minLength || content.length() >= minLength) {
-        HbAction* okAction = new HbAction(tr("OK"), mGetInputQuery);
+        HbAction* okAction = new HbAction(hbTrId("txt_sat_general_ok"), 
+            mGetInputQuery);
         bool ret = connect(okAction, SIGNAL(triggered()),
                             this, SLOT(userPrimaryResponse()));
         TFLOGSTRING2("SATAPP: SatAppUiProvider::showGetInputQuery \
@@ -477,16 +480,14 @@
     TFLOGSTRING("SATAPP: SatAppUiProvider::showGetInputQuery end pop")
 
     content = (mGetInputQuery->value()).toString();
-    TFLOGSTRING2("SATAPP: SatAppUiProvider::showGetInputQuery out content=%s",
-    content.utf16())
 
     delete val;
     delete mGetInputQuery;
     mGetInputQuery = 0;
 
-    TFLOGSTRING("SATAPP: SatAppUiProvider::showGetInputQuery exit")
+    TFLOGSTRING2("SATAPP: SatAppUiProvider::showGetInputQuery mUserRsp =%d exit",
+            mUserRsp)
     return mUserRsp;
-
 }
 
 // ----------------------------------------------------------------------------
@@ -496,13 +497,12 @@
 void SatAppUiProvider::updateQueryAction(QString text)
 {
     TFLOGSTRING("SATAPP: SatAppUiProvider::updateQueryAction call")
-    TFLOGSTRING2("SATAPP: SatAppUiProvider::updateQueryAction text=%s", \
-        text.utf16())
     // Get Input
     if (mGetInputQuery) {
         if (text.length() >= mMinLength) {
             if (!mGetInputQuery->primaryAction()) {
-                HbAction *okAction = new HbAction(tr("OK"), mGetInputQuery);
+                HbAction *okAction = new HbAction(hbTrId("txt_sat_general_ok"), 
+                    mGetInputQuery);
                 bool ret = connect(
                     okAction, SIGNAL(triggered()),
                     this, SLOT(userPrimaryResponse()));
@@ -514,7 +514,7 @@
                 get input  OK")
         } else {
             if (mGetInputQuery->primaryAction()) {
-            mGetInputQuery->removeAction(mGetInputQuery->primaryAction());
+                mGetInputQuery->removeAction(mGetInputQuery->primaryAction());
             }
             TFLOGSTRING("SATAPP: SatAppUiProvider::updateQueryAction \
                 get input no OK Action")
@@ -523,7 +523,8 @@
     // Get InKey
     if (mGetInkeyQuery) {
         if (!mGetInkeyQuery->primaryAction() && (text.length() == 1)) {
-            HbAction *okAction = new HbAction(tr("OK"), mGetInkeyQuery);
+            HbAction *okAction = new HbAction(hbTrId("txt_sat_general_ok"), 
+                mGetInkeyQuery);
             bool ret = connect(okAction, SIGNAL(triggered()),
                 this, SLOT(userPrimaryResponse()));
             TFLOGSTRING2("SATAPP: SatAppUiProvider::updateQueryAction \
@@ -548,15 +549,14 @@
 // ----------------------------------------------------------------------------
 //
 void SatAppUiProvider::showConfirmSendQuery(
-    const QString &/*aText*/,
+    const QString &aText,
     bool &aActionAccepted)
 {
     TFLOGSTRING("SATAPP: SatAppUiProvider::showConfirmSendQuery call")
     resetUserResponse();
     mConfirmSendQuery = new HbMessageBox();
     if(mConfirmSendQuery) {
-        // Sets the "Yes"-action/button
-        mConfirmSendQuery->setText(tr("Allow SIM card to send message?"));
+        mConfirmSendQuery->setText(aText);
         composeDialog(mConfirmSendQuery, 0, ESatDialogConfirmSend);
 
         TFLOGSTRING("SATAPP: SatAppUiProvider::confirmSend before exec")
@@ -577,16 +577,19 @@
 void SatAppUiProvider::showSmsWaitNote(const QString &aText)
 {
     TFLOGSTRING("SATAPP: SatAppUiProvider::showSmsWaitNote")
-
-    mSmsWaitNote = new HbProgressDialog(HbProgressDialog::WaitDialog);
+    if (mWaitNote) {
+        delete mWaitNote;
+        mWaitNote = 0;
+    }
+    mWaitNote = new HbProgressDialog(HbProgressDialog::WaitDialog);
     //remove the default cancel softkey
-    mSmsWaitNote->removeAction(mSmsWaitNote->primaryAction());
+    mWaitNote->removeAction(mWaitNote->primaryAction());
     if(aText.isEmpty()) {
-        mSmsWaitNote->setText(hbTrId("txt_sat_sendingtextmessage"));
+        mWaitNote->setText(hbTrId("txt_sat_sendingtextmessage"));
     } else {
-        mSmsWaitNote->setText(aText);
+        mWaitNote->setText(aText);
     }
-    mSmsWaitNote->show();
+    mWaitNote->show();
     // Extend showing sms wait note  timer for test
     extendNoteShowtime();
     TFLOGSTRING("SATAPP: SatAppUiProvider::showSmsWaitNote exit")
@@ -603,23 +606,23 @@
     TFLOGSTRING("SATAPP: SatAppUiProvider::showDtmfWaitNote call")
     aRes = ESatSuccess;
 
-    if (mDtmfWaitNote) {
-        delete mDtmfWaitNote;
-        mDtmfWaitNote = 0;
+    if (mWaitNote) {
+        delete mWaitNote;
+        mWaitNote = 0;
     }
 
-    mDtmfWaitNote = new HbProgressDialog(HbProgressDialog::WaitDialog);
+    mWaitNote = new HbProgressDialog(HbProgressDialog::WaitDialog);
     //remove the default cancel softkey
-    bool ret = connect(mDtmfWaitNote->primaryAction(), SIGNAL(triggered()),
-                       this, SLOT(cancelDtmfResponse()));
+    bool ret = connect(mWaitNote->primaryAction(), SIGNAL(triggered()),
+                       this, SLOT(cancelResponse()));
     TFLOGSTRING2("SATAPP: SatAppUiProvider::showDtmfWaitNote \
     primaryAction=%d", ret)
     if(aText.isEmpty()) {
-        mDtmfWaitNote->setText(tr("Sending DTMF"));
+        mWaitNote->setText(hbTrId("txt_sat_senddtmf_wait_note"));
     } else {
-        mDtmfWaitNote->setText(aText);
+        mWaitNote->setText(aText);
     }
-    mDtmfWaitNote->show();
+    mWaitNote->show();
     // Extend showing sms wait note  timer for test
     extendNoteShowtime();
     TFLOGSTRING("SATAPP: SatAppUiProvider::showDtmfWaitNote exit")
@@ -632,17 +635,20 @@
 void SatAppUiProvider::stopShowWaitNote()
 {
     TFLOGSTRING("SATAPP: SatAppUiProvider::stopShowWaitNote call")
-    if(mSmsWaitNote) {
-        TFLOGSTRING("SATAPP: SatAppUiProvider::stopShowWaitNote SMS")
-        mSmsWaitNote->cancel();
-    }
-    if(mDtmfWaitNote) {
-        TFLOGSTRING("SATAPP: SatAppUiProvider::mDtmfWaitNote DTMF")
-        mDtmfWaitNote->close();
-        delete mDtmfWaitNote;
-        mDtmfWaitNote = 0;
+
+    if (mWaitNote) {
+        TFLOGSTRING("SATAPP: SatAppUiProvider::mWaitNote close")
+        mWaitNote->close();
+        delete mWaitNote;
+        mWaitNote = 0;
     }
 
+    if (mCallControlMsg) {
+        TFLOGSTRING("SATAPP: SatAppUiProvider::mCallControlMsg close")
+        mCallControlMsg->close();
+        delete mCallControlMsg;
+        mCallControlMsg = 0;
+    }
     TFLOGSTRING("SATAPP: SatAppUiProvider::stopShowWaitNote exit")
 }
 
@@ -663,9 +669,13 @@
         if (aSimAppName.length() > 0){
             alphaId.append(aSimAppName);
         } else {
-            alphaId.append(tr("SIM services"));
+            alphaId.append(hbTrId("txt_sat_title"));
         }
-        alphaId.append(tr(" about to call"));
+        alphaId.append(hbTrId("txt_sat_setupcall_confirm_note"));
+        TFLOGSTRING("SATAPP: SatAppUiProvider::showConfirmSetUpCallQUery length 0")
+    } else {
+        alphaId.append(aText);
+        TFLOGSTRING("SATAPP: SatAppUiProvider::showConfirmSetUpCallQUery exit")
     }
 
     mSetUpCallQuery = new HbMessageBox(HbMessageBox::MessageTypeInformation);
@@ -692,27 +702,49 @@
 {
     TFLOGSTRING("SATAPP: SatAppUiProvider::clearScreen called")
     if (mDisplayPopup) {
+        mDisplayPopup->close();
+        mDisplayPopup = NULL;
         TFLOGSTRING("SATAPP: SatAppUiProvider::clearScreen DisplayText")
-        mDisplayPopup->close();
     }
     if (mGetInkeyQuery) {
+        mGetInkeyQuery->close();
+        mGetInkeyQuery = NULL;
         TFLOGSTRING("SATAPP: SatAppUiProvider::clearScreen GetInkey")
-        mGetInkeyQuery->close();
     }
     if (mYesNoPopup) {
+        mYesNoPopup->close();
+        mYesNoPopup = NULL;
         TFLOGSTRING("SATAPP: SatAppUiProvider::clearScreen GetYesNo")
-        mYesNoPopup->close();
     }
     if (mGetInputQuery) {
+        mGetInputQuery->close();
+        mGetInputQuery = NULL;
         TFLOGSTRING("SATAPP: SatAppUiProvider::clearScreen GetInput")
-        mGetInputQuery->close();
-        }
+    }
     if(mConfirmSendQuery) {
         mConfirmSendQuery->close();
+        mConfirmSendQuery = NULL;
         TFLOGSTRING("SATAPP: SatAppUiProvider::clearScreen ConfirmSend")
     }
     if (mSetUpCallQuery) {
-        mConfirmSendQuery->close();
+        mSetUpCallQuery->close();
+        mSetUpCallQuery = NULL;
+        TFLOGSTRING("SATAPP: SatAppUiProvider::clearScreen SetUpCall")
+    }
+    if (mCallControlMsg){
+        mCallControlMsg->close();
+        mCallControlMsg = NULL;
+        TFLOGSTRING("SATAPP: SatAppUiProvider::clearScreen CallControlMsg")
+    }
+    if (mConfirmBipQuery){
+        mConfirmBipQuery->close();
+        mConfirmBipQuery = NULL;
+        TFLOGSTRING("SATAPP: SatAppUiProvider::clearScreen ConfirmBip")
+    }
+    if (mWaitNote){
+        mWaitNote->close();
+        mWaitNote = NULL;
+        TFLOGSTRING("SATAPP: SatAppUiProvider::clearScreen WaitNote")
     }
     mUserRsp = EUserClearResponse;
     TFLOGSTRING("SATAPP: SatAppUiProvider::clearScreen exit")
@@ -784,37 +816,42 @@
     HbAction *secondaryAction = 0;
 
     if (ESatDialogDisplayText == type){
-        primaryAction = new HbAction(tr("Ok"), dlg);
-        secondaryAction = new HbAction(tr("Back"), dlg);
+        primaryAction = new HbAction(hbTrId("txt_sat_general_ok"), dlg);
+        secondaryAction = new HbAction(hbTrId("txt_sat_general_back"), dlg);
         TFLOGSTRING("SATAPP: SatAppUiProvider::composeDialog \
             ESatDialogDisplayText")
     } else if (ESatDialogGetInput == type){
-        secondaryAction = new HbAction(tr("Cancel"), dlg);
+        secondaryAction = new HbAction(hbTrId("txt_sat_general_cancel"), dlg);
         TFLOGSTRING("SATAPP: SatAppUiProvider::composeDialog \
             ESatDialogGetInput")
     } else if (ESatDialogGetInkey == type){
-        secondaryAction = new HbAction(tr("Cancel"), dlg);
+        secondaryAction = new HbAction(hbTrId("txt_sat_general_cancel"), dlg);
         TFLOGSTRING("SATAPP: SatAppUiProvider::composeDialog \
             ESatDialogGetInkey")
     } else if (ESatDialogGetYesNo == type){
-        primaryAction = new HbAction(tr("Yes"), dlg);
-        secondaryAction = new HbAction(tr("No"), dlg);
+        primaryAction = new HbAction(hbTrId("txt_sat_general_yes"), dlg);
+        secondaryAction = new HbAction(hbTrId("txt_sat_general_no"), dlg);
         TFLOGSTRING("SATAPP: SatAppUiProvider::composeDialog \
             ESatDialogGetYesNo")
     } else if (ESatDialogGetDigitalRsp == type){
-        secondaryAction = new HbAction(tr("Cancel"), dlg);
+        secondaryAction = new HbAction(hbTrId("txt_sat_general_cancel"), dlg);
         TFLOGSTRING("SATAPP: SatAppUiProvider::composeDialog \
             ESatDialogGetDigitalRsp")
     } else if (ESatDialogSetUpCall == type){
-        primaryAction = new HbAction(tr("Call"), dlg);
-        secondaryAction = new HbAction(tr("Cancel"), dlg);
+        primaryAction = new HbAction(hbTrId("txt_sat_general_call"), dlg);
+        secondaryAction = new HbAction(hbTrId("txt_sat_general_cancel"), dlg);
         TFLOGSTRING("SATAPP: SatAppUiProvider::composeDialog \
             ESatDialogSetUpCall")
     } else if (ESatDialogConfirmSend == type){
-        primaryAction = new HbAction(tr("Yes"), dlg);
-        secondaryAction = new HbAction(tr("No"), dlg);
+        primaryAction = new HbAction(hbTrId("txt_sat_general_send"), dlg);
+        secondaryAction = new HbAction(hbTrId("txt_sat_general_cancel"), dlg);
         TFLOGSTRING("SATAPP: SatAppUiProvider::composeDialog \
             ESatDialogConfirmSend")
+    }else if (ESatDialogConfirmBip == type){
+        primaryAction = new HbAction(hbTrId("txt_sat_general_ok"), dlg);
+        secondaryAction = new HbAction(hbTrId("txt_sat_general_cancel"), dlg);
+        TFLOGSTRING("SATAPP: SatAppUiProvider::composeDialog \
+            ESatDialogConfirmBip")
     }
 
     if (primaryAction) {
@@ -860,7 +897,7 @@
     if (type == SatAppView::staticMetaObject.className()) {
         QObject *object = new SatAppView();
         TFLOGSTRING2(
-        "SATAPP: SatAppDocumentLoader::createObject %s", name.utf16())
+        "SATAPP: SatAppDocumentLoader::createObject %S", name.utf16())
         object->setObjectName(name);
         TFLOGSTRING("SATAPP: SatAppDocumentLoader::createObject sat view exit")
         return object;
@@ -886,7 +923,7 @@
         mLoop = 0;
         TFLOGSTRING("SatAppUiProvider::extendNoteShowtime delete loop")
     }
-    QTimer *mTimer = new QTimer(this);
+    mTimer = new QTimer(this);
     mTimer->start(KExtendTimeoutMseconds);
     bool ret = connect(mTimer, SIGNAL(timeout()), mTimer, SLOT(stop()));
     TFLOGSTRING2("SATAPP: SatAppUiProvider::extendNoteShowtime connect\
@@ -901,27 +938,223 @@
 }
 
 // ----------------------------------------------------------------------------
-//cancelDtmfResponse
+//cancelResponse
 // ----------------------------------------------------------------------------
 //
-void SatAppUiProvider::cancelDtmfResponse()
+void SatAppUiProvider::cancelResponse()
 {
-    TFLOGSTRING("SatAppUiProvider::cancelDtmfResponse")
-    if (mDtmfWaitNote) {
-        TFLOGSTRING("SatAppUiProvider::cancelDtmfResponse user cancel")
+    TFLOGSTRING("SatAppUiProvider::cancelResponse")
+    if (mWaitNote) {
+        TFLOGSTRING("SatAppUiProvider::cancelResponse user cancel")
         if (mTimer) {
             mTimer->stop();
-            TFLOGSTRING("SatAppUiProvider::cancelDtmfResponse time out")
+            TFLOGSTRING("SatAppUiProvider::cancelResponse time out")
         }
         if (mLoop && mLoop->isRunning()) {
             mLoop->exit();
-            TFLOGSTRING("SatAppUiProvider::cancelDtmfResponse exit loop")
+            TFLOGSTRING("SatAppUiProvider::cancelResponse exit loop")
         }
-        mDtmfWaitNote->setEnabled(false);
-        mDtmfWaitNote->close();
-        emit userCancelDtmfResponse();
+        mWaitNote->setEnabled(false);
+        mWaitNote->close();
+        emit userCancelResponse();
+    }
+    TFLOGSTRING("SatAppUiProvider::cancelResponse exit")
+}
+
+// ----------------------------------------------------------------------------
+//showSsWaitNote
+// Displays a wait note to indicate SS sending.
+// ----------------------------------------------------------------------------
+//
+void SatAppUiProvider::showSsWaitNote(const QString &aText,
+        const bool aSelfExplanatoryIcon)
+{
+    TFLOGSTRING("SATAPP: SatAppUiProvider::showSsWaitNote")
+    if (mWaitNote) {
+        delete mWaitNote;
+        mWaitNote = 0;
+    }
+    mWaitNote = new HbProgressDialog(HbProgressDialog::WaitDialog);
+    mWaitNote->removeAction(mWaitNote->primaryAction());
+    if (aText.length()) {
+        if (!aSelfExplanatoryIcon)  {
+            TFLOGSTRING("SATAPP: SatAppUiProvider::showSsWaitNote !Icon")
+            mWaitNote->setText(aText);
+        } else {
+            TFLOGSTRING("SATAPP: SatAppUiProvider::showSsWaitNote send")
+            mWaitNote->setText(hbTrId("txt_sat_sendss_wait_note_send"));
+        }    
+    }  else {
+        mWaitNote->setText(hbTrId("txt_sat_sendss_wait_note_request"));
+    }
+    TFLOGSTRING("SATAPP: SatAppUiProvider::showSsWaitNote show before")
+    mWaitNote->show();
+    TFLOGSTRING("SATAPP: SatAppUiProvider::showSsWaitNote exit")
+}
+
+// ----------------------------------------------------------------------------
+//showWaitNoteWithoutDelay
+// 
+// ----------------------------------------------------------------------------
+//
+void SatAppUiProvider::showWaitNoteWithoutDelay()
+{
+    TFLOGSTRING("SATAPP: SatAppUiProvider::showWaitNoteWithoutDelay")
+    if (mWaitNote) {
+        delete mWaitNote;
+        mWaitNote = 0;
+    }
+    mWaitNote = new HbProgressDialog(HbProgressDialog::WaitDialog);
+    mWaitNote->removeAction(mWaitNote->primaryAction());
+    mWaitNote->setText(hbTrId("txt_sat_wait_note_without_delay"));
+    mWaitNote->show();
+    TFLOGSTRING("SATAPP: SatAppUiProvider::showWaitNoteWithoutDelay exit")
+}
+
+// ----------------------------------------------------------------------------
+//showSsErrorNote
+// 
+// ----------------------------------------------------------------------------
+//
+void SatAppUiProvider::showSsErrorNote()
+{
+    TFLOGSTRING("SATAPP: SatAppUiProvider::showSsErrorNote")
+    HbMessageBox *msgBox = new HbMessageBox(HbMessageBox::MessageTypeInformation);
+    msgBox->setText(hbTrId("txt_sat_sendss_error_note"));
+    msgBox->exec();
+    delete msgBox;
+    msgBox = NULL;
+    TFLOGSTRING("SATAPP: SatAppUiProvider::showSsErrorNote exit")
+}
+
+// ----------------------------------------------------------------------------
+// showConfirmOpenChannelQuery
+// ----------------------------------------------------------------------------
+//
+void SatAppUiProvider::showConfirmOpenChannelQuery(
+        const QString &aText,
+        bool &aActionAccepted)
+{
+    TFLOGSTRING("SATAPP: SatAppUiProvider::showConfirmOpenChannelQuery call")
+    QString title = aText;
+    if (!aText.length()){
+        title = hbTrId("txt_sat_openchannel_confirm_note");
+    }
+
+    mConfirmBipQuery = new HbMessageBox();
+    if(mConfirmBipQuery) {
+        // Sets the "Yes"-action/button
+        mConfirmBipQuery->setText(title);
+        composeDialog(mConfirmBipQuery, 0, ESatDialogConfirmBip);
+
+        TFLOGSTRING("SATAPP: SatAppUiProvider::showConfirmOpenChannelQuery before exec")
+        mConfirmBipQuery->exec();
+        TFLOGSTRING("SATAPP: SatAppUiProvider::showConfirmOpenChannelQuery after exec")
+
+        delete mConfirmBipQuery;
+        mConfirmBipQuery = 0;
     }
-    TFLOGSTRING("SatAppUiProvider::cancelDtmfResponse exit")
+
+    aActionAccepted = (EUserPrimaryResponse == mUserRsp) ? true : false;
+    
+    TFLOGSTRING("SATAPP: SatAppUiProvider::showConfirmOpenChannelQuery exit")
+}
+
+// ----------------------------------------------------------------------------
+//showCallControlNote
+// 
+// ----------------------------------------------------------------------------
+//
+void SatAppUiProvider::showCallControlNote(const QString &aText)
+{
+    TFLOGSTRING("SATAPP: SatAppUiProvider::showCallControlNote")
+    if (mCallControlMsg) {
+        delete mCallControlMsg;
+        mCallControlMsg = 0;
+    }
+    mCallControlMsg = new HbDeviceMessageBox(HbMessageBox::MessageTypeInformation);
+    mCallControlMsg->setText(aText);
+    mCallControlMsg->show();
+    // Extend showing sms wait note  timer for test
+    extendNoteShowtime();
+    TFLOGSTRING("SATAPP: SatAppUiProvider::showCallControlNote exit")
+
+}
+
+// ----------------------------------------------------------------------------
+// showBIPWaitNote
+// ----------------------------------------------------------------------------
+//
+void SatAppUiProvider::showBIPWaitNote(const QString &aText)
+{
+    TFLOGSTRING("SATAPP: SatAppUiProvider::showBIPWaitNote call")
+    if (!mWaitNote) {
+        mWaitNote = new HbProgressDialog(HbProgressDialog::WaitDialog);
+        mWaitNote->setText(aText);
+
+        //remove the default cancel softkey
+        bool ret = connect(mWaitNote->primaryAction(), SIGNAL(triggered()),
+                           this, SLOT(cancelResponse()));
+        TFLOGSTRING2("SATAPP: SatAppUiProvider::showDtmfWaitNote \
+        primaryAction=%d", ret)
+    
+        mWaitNote->show();
+    } else {
+        mWaitNote->setText(aText);
+        TFLOGSTRING("SATAPP: SatAppUiProvider::showBIPWaitNote Update Text")
+    }    
+    TFLOGSTRING("SATAPP: SatAppUiProvider::showBIPWaitNote exit")
+}
+
+// ----------------------------------------------------------------------------
+//showMoSmControlNote
+//
+// ----------------------------------------------------------------------------
+//
+void SatAppUiProvider::showMoSmControlNote(const QString &aText)
+{
+    TFLOGSTRING("SATAPP: SatAppUiProvider::showMoSmControlNote")
+    HbMessageBox *msgBox = new HbMessageBox(HbMessageBox::MessageTypeInformation);
+    msgBox->setText(aText);
+    msgBox->setTimeout(KMoSmControlTimeOut);
+    msgBox->exec();
+    delete msgBox;
+    TFLOGSTRING("SATAPP: SatAppUiProvider::showMoSmControlNote exit")
+
+}
+
+// ----------------------------------------------------------------------------
+// showCloseChannelWaitNote
+// ----------------------------------------------------------------------------
+//
+void SatAppUiProvider::showCloseChannelWaitNote(const QString &aText)
+{
+    TFLOGSTRING("SATAPP: SatAppUiProvider::showCloseChannelWaitNote call")
+    if (mWaitNote) {
+        delete mWaitNote;
+        mWaitNote = 0;
+    }   
+    mWaitNote = new HbProgressDialog(HbProgressDialog::WaitDialog);
+    mWaitNote->removeAction(mWaitNote->primaryAction());
+    mWaitNote->setText(aText);
+    mWaitNote->show();
+    TFLOGSTRING("SATAPP: SatAppUiProvider::showCloseChannelWaitNote exit")
+}
+
+// ----------------------------------------------------------------------------
+//showSatInfoNote
+//
+// ----------------------------------------------------------------------------
+//
+void SatAppUiProvider::showSatInfoNote(const QString &aText)
+{
+    TFLOGSTRING("SATAPP: SatAppUiProvider::showSatInfoNote")
+    HbMessageBox *msgBox = new HbMessageBox(HbMessageBox::MessageTypeInformation);
+    msgBox->setText(aText);
+    msgBox->exec();
+    delete msgBox;
+    msgBox = 0;
+    TFLOGSTRING("SATAPP: SatAppUiProvider::showSatInfoNote exit")
 }
 
 // End of file
--- a/satui/satapp/src/satappview.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/satui/satapp/src/satappview.cpp	Mon May 03 13:01:45 2010 +0300
@@ -72,9 +72,9 @@
     TFLOGSTRING("SATAPP: SatAppView::~SatAppView")
     // The objects are outside the object tree, Delete them manually
     if (mTimer) {
-    delete mTimer;
-    mTimer = 0;
-    TFLOGSTRING("SATAPP: SatAppView::~SatAppView delete subtitle")
+        delete mTimer;
+        mTimer = 0;
+        TFLOGSTRING("SATAPP: SatAppView::~SatAppView delete subtitle")
     }
 
     if (mLoop) {
@@ -104,11 +104,9 @@
     // Listwidget
     mListWidget = qobject_cast<HbListWidget *>
         ( mUi->docmlLoader()->findWidget(SATAPP_MENUITEM ));
-    //mMenu = new HbMenu();
     if (mListWidget && mWindow) {
         mSoftKeyQuitAction = new HbAction(Hb::QuitAction,this);
-        HbMenu *addMenu = menu();
-        HbAction *menuAction = addMenu->addAction("Exit");
+        HbAction *menuAction = menu()->addAction("Exit");
         bool ret = connect(menuAction, SIGNAL(triggered()),
                        mSoftKeyQuitAction, SIGNAL(triggered()));
         TFLOGSTRING2("SATAPP: SatAppView::initSetupMenu: \
@@ -117,8 +115,8 @@
                        mWindow, SLOT(close()));
         TFLOGSTRING2("SATAPP: SatAppView::initSetupMenu: \
             quit connected %d", ret)
+    }
 
-    }
     TFLOGSTRING("SATAPP: SatAppView::initSetupMenu exit")
 }
 
@@ -144,13 +142,12 @@
 
     if (mSelectListWidget && mWindow) {
         mSoftKeyBackAction = new HbAction(Hb::BackAction,this);
-        HbMenu *addMenu = menu();
-        HbAction *menuBack = addMenu->addAction("Back");
+        HbAction *menuBack = menu()->addAction("Back");
         bool ret = connect(menuBack, SIGNAL(triggered()),
                        mSoftKeyBackAction, SIGNAL(triggered()));
         TFLOGSTRING2("SATAPP: SatAppView::initSelectItem: \
             menu connected %d", ret)
-        HbAction *menuQuit = addMenu->addAction("Exit");
+        HbAction *menuQuit = menu()->addAction("Exit");
         ret = connect(menuQuit, SIGNAL(triggered()),
                       mWindow, SLOT(close()));
         TFLOGSTRING2("SATAPP: SatAppView::initSelectItem: \
@@ -198,6 +195,7 @@
         }
         // connect setup menu item
         connectItem();
+        setNavigationAction(mSoftKeyQuitAction);
     }
     TFLOGSTRING("SATAPP: SatAppView::SetUpMenu exit")
 }
@@ -229,10 +227,9 @@
     if (mWindow){
         mWindow->setCurrentViewIndex(aDefaultItem);
     }
-
+    
     // Set sub title
     if (!aText.isEmpty()) {
-        TFLOGSTRING2("SATAPP: aText=%s", aText.utf16())
         mSubTitle->setPlainText(aText);
     } else {
         TFLOGSTRING("SATAPP: txt_sat_selectitem_title")
@@ -246,6 +243,12 @@
             mSelectListWidget->addItem(aMenuItems.at( i ));
         }
     }
+    // Set Back key
+    //setSoftkeyBack();
+    if (mSoftKeyBackAction) {
+       setNavigationAction(mSoftKeyBackAction);
+       TFLOGSTRING("SATAPP: SatAppView::selectItem set softkey back")
+    }
     // connect selectitem 
     connectItem();
 
@@ -275,14 +278,13 @@
     } else {
         TFLOGSTRING2("SATAPP: SatAppView::selectItem selected %d",
                       mItemIndex)
-        //TODO: fix this below. 
         //For Demo. We will not return user select item to SIM.
         aSelection = mItemIndex;
     }
    // disconnet select item
     disconnectItem();
     TFLOGSTRING2("SATAPP: SatAppView::selectItem aRes:%d", aRes)
-    mTimeout=false;
+    mTimeout = false;
     TFLOGSTRING("SATAPP: SatAppView::selectItem exit")
 }
 
@@ -336,10 +338,15 @@
 void SatAppView::backButtonClicked()
 {
     TFLOGSTRING("SATAPP: SatAppView::backButtonClicked")
-    if (mSelectItem && mLoop->isRunning() ) {
+    if (mSelectItem) {
         mClickBackSoftkey = true;
         TFLOGSTRING("SATAPP: SatAppView::backButtonClicked back selected")
-        mLoop->exit();
+        if (mLoop) {
+            TFLOGSTRING("SATAPP: SatAppView::backButtonClicked quit loop")
+            if (mLoop->isRunning()) {
+                mLoop->exit();
+            }
+        }
     }
     TFLOGSTRING("SATAPP: SatAppView::backButtonClicked exit")
 }
@@ -369,9 +376,9 @@
     if(mSelectItem && mSelectListWidget) {
         mItemIndex = mSelectListWidget->row(item);
         if (mLoop && mLoop->isRunning()) {
-        TFLOGSTRING( "SATAPP: SatAppView::menuItemSelected sel item")
-        mLoop->quit();
-        TFLOGSTRING( "SATAPP: SatAppView::menuItemSelected exit loop")
+            TFLOGSTRING( "SATAPP: SatAppView::menuItemSelected sel item")
+            mLoop->quit();
+            TFLOGSTRING( "SATAPP: SatAppView::menuItemSelected exit loop")
         }
     } 
     if (!mSelectItem && mListWidget) {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/satui/satapp/tsrc/ut_satapp/inc/dummyeventprovider.h	Mon May 03 13:01:45 2010 +0300
@@ -0,0 +1,687 @@
+/*
+* Copyright (c) 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: dummyeventprovider.h
+*
+*/
+
+#ifndef DUMMYEVENTPROVIDER_H
+#define DUMMYEVENTPROVIDER_H
+
+#include <QObject>
+#include <msatuiobserver.h>
+
+
+#include "msatuiactionimplementer.h"
+
+class CSatUiObserver;
+//class QPixmap; // For future icon support
+class DummyPlayToneProvider;
+
+class DummyEventProvider: public QObject,
+                          public MSatUiActionImplementer
+{
+    Q_OBJECT
+
+public:
+
+    /**
+    * Constructor
+    */
+    DummyEventProvider(QObject *parent = 0);
+
+    /**
+    * Distructor
+    */
+    virtual ~DummyEventProvider();
+
+signals:
+     /**
+     * Notification of the SAT Display Text command.
+     * @param aRes, the User's response.
+     * @param aText The text string to be displayed.
+     * @param aSimApplicationName  Sim Application name
+     * @param aIcon the icon to show.
+     * @param aRequestedIconDisplayed Informs if icon is not used.
+     * @param aSustainedText Indicates is this text sustained ie. no timers
+     *        used if true.
+     * @param aDuration Duration for showing the text
+     * @param aWaitUserToClear Indication if user is needed to clear
+     *        message
+     */
+    void displayTextEvent(
+        TSatUiResponse &aRes,
+        const QString &aText,
+        const QString &aSimApplicationName,
+        //const HbIcon &aIcon,
+        bool &aRequestedIconDisplayed,
+        const bool aSustainedText,
+        const int aDuration,
+        const bool aWaitUserToClear);
+
+    /**
+     * Notification of the SAT Get Input command.
+     * @param aText The query text.
+     * @param aCharacterSet The character range allowed.
+     * @param aInput The input string.
+     * @param aMaxLength The maximum length of the input allowed.
+     * @param aMinLength The minimum length of the input allowed.
+     * @param aHideInput A flag indicating if the input should be hidden.
+     * @param aHelpIsAvailable indicates if help can be requested.
+     * @param aIconId The id of icon.
+     * @param aRequestedIconDisplayed Informs if icon is not used.
+     * @return The response of the UI to this command.
+     */
+    void getInputEvent(
+        TSatUiResponse &aRes,
+        const QString &aTitleText,
+        const TSatCharacterSet aCharacterSet,
+        QString &aInputText,
+        const int aMinLength,
+        const int aMaxLength,
+        const bool aHideInput,
+        //const QPixmap* /*aIconBitmapGetInput*/,
+        const bool aSelfExplanatory,
+        unsigned int &aDuration );
+
+    /**
+     * Notification of the SAT Get Inkey command.
+     * @param aText The query text.
+     * @param aCharacterSet The character range allowed.
+     * @param aInput The input string.
+     * @param aHideInput A flag indicating if the input should be hidden.
+     * @param aHelpIsAvailable indicates if help can be requested.
+     * @param aIconId The id of icon.
+     * @param aRequestedIconDisplayed Informs if icon is not used.
+     */
+    void getInkeyEvent(
+        TSatUiResponse &aRes,
+        const QString &aTitleText,
+        const TSatCharacterSet aCharacterSet,
+        QString &aInputText,
+        //const QPixmap* /*aIconBitmapGetInput*/,
+        const bool aSelfExplanatory,
+        unsigned int &aDuration );
+
+    /**
+     * Notification of the SAT Get YesNo command.
+     * @param aText The query text.
+     * @param aCharacterSet The character range allowed.
+     * @param aInput The input character.
+     * @param aHelpIsAvailable indicates if help can be requested.
+     * @param aIconId The id of icon.
+     * @param aRequestedIconDisplayed Informs if icon is not used.
+     * @param aDuration Duration for showing the dialog.
+     * @param aImmediateDigitResponse Indication if Immediate digit response
+     *        is needed.
+     * @return The response of the UI to this command.
+     */
+    void getYesNoEvent(
+        TSatUiResponse &aRes,
+        const QString &aText,
+        const TSatCharacterSet aCharacterSet,
+        unsigned int &aInkey,
+        //const TSatIconId &aIconId,
+        const bool &aSelfExplanatory,
+        unsigned int &aDuration,
+        const bool aImmediateDigitResponse );
+
+    /**
+    * Handles the SetUpMenu command.
+    * @param aRes the out parameter. the result of the command.
+    * @param aText The title text.
+    * @param aMenuItems The array of menu item captions.
+    * @param aMenuItemNextActions The array of menu item next action
+    * indicator captions.
+    * @param aIconBitmap The Context pane icon.
+    * @param aItemsIconArray Array of item icons
+    * @param aSelfExplanatoryItems A flag indicating if only icons are shown.
+    * @param aHelpIsAvailable A flag indicating if SAT help is available.
+    */
+    void setUpMenuEvent(
+        TSatUiResponse &aRes,
+        const QString &aText,
+        const QStringList &aMenuItems,
+        //const CArrayFixFlat<TSatAction>* aMenuItemNextActions,
+        //const HbIcon &aIcon,
+        //const CAknIconArray* aItemIconsArray,
+        const bool aSelfExplanatoryItems,
+        const bool aHelpIsAvailable);
+
+    /**
+    * Handles the SelectItem view.
+    * @param aRes the out parameter. the result of the command.
+    * @param aText The title text.
+    * @param aMenuItems The array of menu items.
+    * @param aMenuItemNextActions The array of next action indicators.
+    * @param aDefaultItem The item in focus.
+    * @param aSelection The item index selected by the user.
+    * @param aIconBitmap The Context Pane icon.
+    * @param aItemsIconArray Array of item icons
+    * @param aSelfExplanatoryItems Flag indicating if only icons are shown.
+    * @param aHelpIsAvailable A flag indicating if SAT help is available.
+    * @return Information of the operation result.
+    */
+    void selectItemEvent(
+        TSatUiResponse &aRes,
+        const QString &aText,
+        const QStringList &aMenuItems,
+        //const CArrayFixFlat<TSatAction>* aMenuItemNextActions,
+        const int aDefaultItem,
+        unsigned char &aSelection,
+        //const HbIcon &aIcon,
+        //const CAknIconArray* aItemsIconArray,
+        const bool aSelfExplanatoryItems,
+        const bool aHelpIsAvailable);
+
+    /**
+    * Shows the confirmation note about the SAT Send SMS, Send SS or
+    * Send USSD command.
+    * @param aText The text to be displayed.
+    * @param aActionAccepted Indicates whether the command was accepted.
+    * @param aType Type of the request (SMS, SS, USSD).
+    * @return Information of the operation result.
+    */
+    void confirmSendEvent(
+        TSatUiResponse &aRes,
+        const QString &aText,
+        bool &aActionAccepted,
+        int aType);
+
+     /**
+     * Shows the wait note about the Send SMS command.
+     * @param aText The text to be displayed.
+     * @param aIconBitmapSendSM Sending dialog icon.
+     * @param aSelfExplanatoryIcon A flag indicating if only icon is shown.
+     */
+    void showSmsWaitNoteEvent(
+        const QString &aText,
+        //const CFbsBitmap* aIconBitmapSendSM,
+        const bool aSelfExplanatoryIcon
+        );
+    
+    /**
+    * Shows the confirmation not about SetUpCall.
+    * @param aText The text to be displayed.
+    * @param aSimAppName The header to be displayed.
+    * @param aActionAccepted Indicates whether the command was accepted.
+    */
+   void showSetUpCallConfirmEvent(
+        const QString &aText,
+        const QString &aSimAppName,
+        bool &aActionAccepted//,
+        //const CFbsBitmap* aIconBitmap,
+        //const TBool aSelfExplanatory
+       );
+
+     /**
+     * Shows the wait note about the Send DTMF command.
+     * @param aText The text to be displayed.
+     * @param aIconBitmapSendSM Sending dialog icon.
+     */
+    void showDtmfWaitNoteEvent(
+        TSatUiResponse &aRes,
+        const QString &aText);
+
+
+     /**
+     * Shows the wait note about the Send Ss or Ussd command.
+     * @param aText The text to be displayed.
+     * @param aIconBitmapSendSM Sending dialog icon.
+     * @param aSelfExplanatoryIcon A flag indicating if only icon is shown.
+     */
+    void showSsWaitNoteEvent(
+        const QString &aText,
+        //const CFbsBitmap* aIconBitmapSendSM,
+        const bool aSelfExplanatoryIcon
+        );
+
+     /**
+     * Shows the wait note about Open Channel
+     * @param aText The text to be displayed.
+     * @param aActionAccepted Indicates whether the command was accepted.
+     */
+    void showOpenChannelConfirmEvent(
+        const QString &aText,
+        bool &aActionAccepted);
+
+
+    /*!
+     Removes Display Text Dialog from the screen.
+    */
+    void clearScreenEvent();
+
+    /*!
+     Close the sat ui
+     */
+    void closeUiEvent();
+
+    /*!
+    *Close wait note
+    */
+    void stopShowWaitNoteEvent();
+
+    /*!
+    *Show SsWaitNote without Delay
+    */  
+    void showWaitNoteWithoutDelayEvent();
+
+    /*!
+    *ShowSsErrorNoteEvent
+    */  
+    void showSsErrorNoteEvent();
+    
+    /*!
+    * Show BIP related Note 
+    */      
+    void showBIPNoteEvent(int aCommand, const QString &aText);
+
+public slots:
+    /*!
+    *User cancel response, Send DTMF, Send Data, Receive Data
+    */
+    void userCancelResponse();
+
+public: // from MSatUiActionImplementer and impletment by QT
+
+    /**
+    * Shows the wait note.
+    */
+    virtual void ShowWaitNoteL() {};
+
+    /**
+    * Shows the wait note without delay
+    */
+    virtual void ShowWaitNoteWithoutDelayL();
+
+    /**
+    * Removes the wait note from the screen.
+    */
+    void StopShowWaitNote();
+
+    /**
+     * Handles the SetUpMenu view.
+     * @param aText The title text.
+     * @param aMenuItems The array of menu item captions.
+     * @param aMenuItemNextActions The array of menu item next action
+     * indicator captions.
+     * @param aIconBitmap The Context pane icon.
+     * @param aItemsIconArray Array of item icons
+     * @param aSelfExplanatoryItems Flag indicating if only icons are shown.
+     * @param aHelpIsAvailable A flag indicating if SAT help is available.
+     * @return Information of the operation result.
+     */
+     virtual TSatUiResponse SetUpMenuL(
+         const TDesC &aText,
+         const MDesCArray &aMenuItems,
+         const CArrayFixFlat<TSatAction>* aMenuItemNextActions,
+         const CFbsBitmap* aIconBitmap,
+         //const CAknIconArray* aItemIconsArray,
+         const TBool aSelfExplanatoryItems,
+         const TBool aHelpIsAvailable);
+
+    /**
+     * Handles the SelectItem view.
+     * @param aText The title text.
+     * @param aMenuItems The array of menu items.
+     * @param aMenuItemNextActions The array of next action indicators.
+     * @param aDefaultItem The item in focus.
+     * @param aSelection The item index selected by the user.
+     * @param aIconBitmap The Context Pane icon.
+     * @param aItemsIconArray Array of item icons
+     * @param aSelfExplanatoryItems Flag indicating if only icons are shown.
+     * @param aHelpIsAvailable A flag indicating if SAT help is available.
+     * @return Information of the operation result.
+     */
+     virtual TSatUiResponse SelectItemL( const TDesC &aText,
+         const MDesCArray &aMenuItems,
+         const CArrayFixFlat<TSatAction>* aMenuItemNextActions,
+         const TInt aDefaultItem,
+         TUint8 &aSelection,
+         const CFbsBitmap* aIconBitmap,
+         //const CAknIconArray* aItemsIconArray,
+         const TBool aSelfExplanatoryItems,
+         const TBool aHelpIsAvailable );
+
+public: // from MSatUiActionImplementer and impletment by Symbian
+
+    /**
+    * Returns CoeEnv.
+    */
+    virtual CCoeEnv* CoeEnv() { return 0; };
+
+    /**
+    * Handles the DisplayText operation.
+    * @param aText Text to be shown.
+    * @param aSimApplicationName  Sim Application name
+    * @param aIconBitmapDisplayText Icon for dialog
+    * @param aSustainedText Indicates is this text sustained ie. no timers
+    *        used if ETrue.
+    * @param aDuration Duration for showing the text
+    * @param aWaitUserToClear Indication if user is needed to clear
+    *        message
+    * @return Information of the operation result.
+    */
+    virtual TSatUiResponse DisplayTextL(
+        const TDesC &aText,
+        const TDesC &aSimApplicationName,
+        CFbsBitmap* aIconBitmapDisplayText,
+        const TBool aSelfExplanatoryIcon,
+        const TBool aSustainedText,
+        const TTimeIntervalSeconds aDuration,
+        const TBool aWaitUserToClear);
+
+    /**
+    * Removes Display Text Dialog from the screen.
+    */
+    virtual void ClearScreen();
+
+    /**
+    * Asks a Yes/No answer from the user.
+    * @param aText A question to be shown.
+    * @param aCharacterSet The character range allowed.
+    * @param aInkey Character user feeds.
+    * @param aIconBitmap Icon for query dialog.
+    * @param aSelfExplanatory Flag indicating if icon is self-explanatory.
+    * @param aDuration Duration for showing the dialog.
+    * @param aImmediateDigitResponse Indication if Immediate digit response
+    *        is needed.
+    * @return Information of the operation result.
+    */
+    virtual TSatUiResponse GetYesNoL(
+        const TDesC &aText,
+        const TSatCharacterSet aCharacterSet,
+        TChar &aInkey,
+        const CFbsBitmap* /*aIconBitmap*/,
+        const TBool aSelfExplanatory,
+        TUint &aDuration,
+        const TBool aImmediateDigitResponse);
+
+    /**
+    * Asks input from the user.
+    * @param aText A question to be shown.
+    * @param aCharacterSet The character range allowed.
+    * @param aInput The input string.
+    * @param aMinLength The minimum length of the input allowed.
+    * @param aMaxLength The maximum length of the input allowed.
+    * @param aHideInput A flag indicating if the input should be hidden.
+    * @param aGetInkey A flag indicating if GetInkey command is used.
+    * @param aIconBitmapGetInput Icon for query dialog.
+    * @param aSelfExplanatory  A flag indicating if icon is self-explanatory.
+    * @param aDuration Duration for showing the dialog.
+    * @return Information of the operation result.
+    */
+    virtual TSatUiResponse GetInputL(
+        const TDesC &aText,
+        const TSatCharacterSet aCharacterSet,
+        TDes &aInput,
+        const TInt aMinLength,
+        const TInt aMaxLength,
+        const TBool aHideInput,
+        const TBool aGetInkey,
+        const CFbsBitmap* aIconBitmapGetInput,
+        const TBool aSelfExplanatory,
+        TUint &aDuration );
+
+
+    /**
+    * Handles Standard Tone playing.
+    * @param aText The text to be displayed.
+    * @param aFileName The name of the file corresponding to the tone.
+    * @param aDuration The duration of the tone to be played.
+    * @param aIconBitmap The tone playing note icon
+    * @param aSelfExplanatory Flag indicating if icon is self-explanatory.
+    * @return Information of the operation result.
+    */
+    virtual TSatUiResponse PlayStandardToneL(
+        const TDesC &aText,
+        const TDesC8 &aSequence,
+        TTimeIntervalMicroSeconds aDuration,
+        const CFbsBitmap* aIconBitmap,
+        const TBool aSelfExplanatory );
+
+    /**
+    * Shows the confirmation note about the SAT Send SMS, Send SS or
+    * Send USSD command.
+    * @param aText The text to be displayed.
+    * @param aActionAccepted Indicates whether the command was accepted.
+    * @param aType Type of the request (SMS, SS, USSD).
+    * @return Information of the operation result.
+    */
+    virtual TSatUiResponse ConfirmSendL(
+        const TDesC &aText,
+        TBool &aActionAccepted,
+        TInt aType);
+
+    /**
+    * Shows the wait note about the Send SMS command.
+    * @param aText The text to be displayed.
+    * @param aIconBitmapSendSM Sending dialog icon.
+    * @param aSelfExplanatoryIcon A flag indicating if only icon is shown.
+    */
+    virtual void ShowSmsWaitNoteL(
+        const TDesC &aText,
+        const CFbsBitmap* aIconBitmapSendSM,
+        const TBool aSelfExplanatoryIcon);
+
+    /**
+    * Shows the wait note about the Send SS command.
+    * @param aText The text to be displayed.
+    * @param aIconBitmap Sending dialog icon.
+    * @param aSelfExplanatoryIcon A flag indicating if only icon is shown.
+    */
+    virtual void ShowSsWaitNoteL(
+            const TDesC &aText,
+            const CFbsBitmap* /*aIconBitmap*/,
+            const TBool aSelfExplanatoryIcon );
+
+    /**
+    * Shows the confirmation note about the SAT Refresh command.
+    * @param aActionAccepted Indicates whether the command was accepted.
+    * @return Information of the operation result.
+    */
+    virtual TSatUiResponse ConfirmRefreshL(
+            TBool &/*aActionAccepted*/)
+        {
+            return ESatSuccess;
+        };
+
+    /**
+    * Notification of the SAT Call Control command.
+    * @param aText The text string to be displayed.
+    * @param aAlphaIdStatus Alpha Identifier status
+    * @param aControlResult Call control general result
+    * @return The response from the UI
+    */
+    virtual TSatUiResponse CallControlL(
+            const TDesC &/*aText*/,
+            const TSatAlphaIdStatus /*aAlphaIdStatus*/ )
+        {
+            return ESatSuccess;
+        };
+
+    /**
+    * Notification of the SAT Launch browser confirmation request
+    * @param aText The text to be displayed.
+    * @param aActionAccepted Indicates whether the command was accepted.
+    * @param aIconBitmap The confirm note icon
+    * @param aSelfExplanatory Flag indicating if icon is self-explanatory.
+    */
+    virtual void ConfirmLaunchBrowserL(
+        const TDesC &/*aText*/,
+        TBool &/*aActionAccepted*/,
+        const CFbsBitmap* /*aIconBitmap*/,
+        const TBool /*aSelfExplanatory*/) {};
+
+    /**
+    * Notification of the SAT Mo Sm Control command.
+    * @param aText The text string to be displayed.
+    * @param aAlphaIdStatus Alpha Identifier status
+    * @param aControlResult Mo Sm control general result
+    * @return The response from the UI
+    */
+    virtual TSatUiResponse MoSmControlL(
+        const TDesC &/*aText*/,
+        const TSatAlphaIdStatus /*aAlphaIdStatus*/ )
+        {
+            return ESatSuccess;
+        };
+
+    /**
+    * Shows the wait note while DTMF are being sent.
+    * @param aText The text to be displayed.
+    * @param aIconBitmap The confirm note icon
+    * @param aSelfExplanatory Flag indicating if icon is self-explanatory.
+    * @return Information on the operation result.
+    */
+    virtual TSatUiResponse ShowDtmfWaitNoteL(
+            const TDesC &aText,
+            const CFbsBitmap* aIconBitmap,
+            const TBool aSelfExplanatoryIcon );
+
+    /**
+    * Dispatch iWait to action implementer.
+    * @param aWait Timer.
+    */
+    virtual void DispatchTimer(CActiveSchedulerWait &/*aWait*/) {};
+
+    /**
+    * Get flag which is indicating if end key is pressed.
+    * @return A Boolean flag which is indicating if end key is pressed.
+    */
+    virtual TBool GetEndKey()
+        {
+            return EFalse;
+        };
+
+    /**
+    * Set a flag which is indicating if end key is pressed.
+    * @param aValue Status of end key
+    */
+    virtual void SetEndKey(TBool /*aValue*/) {};
+
+    /**
+    * Set a flag which is indicating if proactive command is pending.
+    * @param aValue Status of proactive command
+    */
+    virtual void SetCommandPending(TBool /*aValue*/) {};
+
+    /**
+    * Plays user selected tone.
+    * @param aText The text to be displayed.
+    * @param aDuration Play duration.
+    * @param aTone Tone to be played.
+    * @param aIconBitmap The tone playing note icon
+    * @param aSelfExplanatory Flag indicating if icon is self-explanatory.
+    * @return Information on the operation result.
+    */
+    virtual TSatUiResponse PlayUserSelectedToneL(
+        const TDesC &aText,
+        TTimeIntervalMicroSeconds aDuration,
+        TSatTone aTone,
+        const CFbsBitmap* aIconBitmap,
+        const TBool aSelfExplanatory );
+
+    /**
+    * Confirm user permission for Open Channel.
+    * @param aText The text to be displayed.
+    * @param aActionAccepted Indicates whether the command was accepted.
+    * @param aIconBitmapOpenChannel Icon for query dialog
+    * @param aSelfExplanatory A flag indicating if icon is self-explanatory
+    * @return Operation result
+    */
+    virtual TSatUiResponse ConfirmOpenChannelL(
+        const TDesC &aText,
+        TBool &aActionAccepted,
+        const CFbsBitmap* /*aIconBitmapOpenChannel*/,
+        const TBool aSelfExplanatory );
+
+    /**
+    * Shows the wait note while BIP packets are sent.
+    * @param aCommand Command type.
+    * @param aText The text to be displayed.
+    * @param aIconBitmap Icon for query dialog
+    * @param aSelfExplanatory A flag indicating if icon is self-explanatory
+    */
+    virtual void ShowBIPNoteL(
+        TInt aCommand,
+        const TDesC &aText,
+        const CFbsBitmap* /*aIconBitmap*/,
+        const TBool /*aSelfExplanatory*/);
+
+    /**
+    * Confirm user permission for SetUpCall
+    * @param aText The text to be displayed.
+    * @param aSimAppName Header for th equery
+    * @param aActionAccepted Indicates whether the command was accepted.
+    * @param aIconBitmap Icon for query dialog
+    * @param aSelfExplanatory A flag indicating if icon is self-explanatory
+    */
+    virtual void ConfirmSetUpCallL(
+        const TDesC &aText,
+        const TDesC &aSimAppName,
+        TBool &aActionAccepted,
+        const CFbsBitmap* aIconBitmap,
+        const TBool aSelfExplanatory);
+
+    /**
+    * Show note indicating SAT is not available.
+    */
+    virtual void ShowNotAvailableNoteL() {};
+
+    /**
+    * Show the Ss error note.
+    */
+    virtual void ShowSsErrorNoteL();
+
+    /**
+    * Start SatUi closing process.
+    */
+    virtual void CloseSatUI();
+
+
+public: // new method
+
+    /**
+    * Return current profile state.
+    * @return current profile state.
+    */
+    int profileState();
+
+     /**
+     * Response to the Set Up Menu command.
+     * @param aMenuItem The selected menu item.
+     * @param aHelpRequested Indicates whether help was requested.
+     */
+    void menuSelection( int aMenuItem, bool aHelpRequested );
+
+protected:
+     //Q_DISABLE_COPY( SatAppEventProvider );
+
+private: // Data
+
+    /**
+     * The pointer to the sybmian class CSatUiObserver
+     * which will access Sat Client API
+     * own
+     */
+    CSatUiObserver *mObs;
+
+    /**
+     * Own,PlayTone
+     */
+    DummyPlayToneProvider *mPlayTone;
+
+};
+
+#endif  //DUMMYEVENTPROVIDER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/satui/satapp/tsrc/ut_satapp/inc/dummyplaytoneprovider.h	Mon May 03 13:01:45 2010 +0300
@@ -0,0 +1,144 @@
+/*
+* Copyright (c) 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:
+*
+*/
+#ifndef DUMMYPLAYTONEPROVIDER_H
+#define DUMMYPLAYTONEPROVIDER_H
+ 
+#include <QObject>
+#include <MdaAudioTonePlayer.h>//PlayStandardTone
+#include <MdaAudioSamplePlayer.h>//PlayUserSelectedTone
+#include <QEventLoop>
+#include <msatuiobserver.h>
+
+
+class CMdaAudioToneUtility;
+class CMdaAudioPlayerUtility;
+class QTimer;
+class HbMessageBox;
+
+class DummyPlayToneProvider: public QObject,
+                           public MMdaAudioToneObserver,//PlayStandardTone
+                           public MMdaAudioPlayerCallback//PlayUserSelectedTone
+{
+    Q_OBJECT
+
+public:
+
+    /**
+    * Constructor
+    */
+    DummyPlayToneProvider(QObject *parent = 0);
+
+    /**
+    * Distructor
+    */
+    virtual ~DummyPlayToneProvider();
+
+public: // from MSatUiActionImplementer and impletment by Symbian
+
+    /**
+    * Handles Standard Tone playing.
+    * @param aText The text to be displayed.
+    * @param aFileName The name of the file corresponding to the tone.
+    * @param aDuration The duration of the tone to be played.
+    * @param aIconBitmap The tone playing note icon
+    * @param aSelfExplanatory Flag indicating if icon is self-explanatory.
+    * @return Information of the operation result.
+    */
+    virtual TSatUiResponse PlayStandardToneL(
+        const TDesC &aText,
+        const TDesC8 &aSequence,
+        TTimeIntervalMicroSeconds aDuration,
+        const CFbsBitmap* aIconBitmap,
+        const TBool aSelfExplanatory );
+
+    /**
+    * Plays user selected tone.
+    * @param aText The text to be displayed.
+    * @param aDuration Play duration.
+    * @param aTone Tone to be played.
+    * @param aIconBitmap The tone playing note icon
+    * @param aSelfExplanatory Flag indicating if icon is self-explanatory.
+    * @return Information on the operation result.
+    */
+    virtual TSatUiResponse PlayUserSelectedToneL(
+        const TDesC &aText,
+        TTimeIntervalMicroSeconds aDuration,
+        TSatTone aTone,
+        const CFbsBitmap* aIconBitmap,
+        const TBool aSelfExplanatory );
+
+    /**
+    * ClearScreen
+    */
+    void clearScreen();
+
+    /**
+    * CloseSatUI
+    */
+    void closeSatUI();
+
+public:// from MMdaAudioToneObserver
+
+    /**
+    * From MMdaAudioToneObserver Called by the player object when
+    * it has been initialised.
+    * @param aError Error type.
+    */
+    void MatoPrepareComplete( TInt aError );
+
+    /**
+    * From MMdaAudioToneObserver Called by the player object when
+    * the playback has been terminated.
+    * @param aError Error type.
+    */
+    void MatoPlayComplete( TInt aError );
+
+public://from MMdaAudioPlayerCallback
+    /**
+    * Initialisation of an audio sample has completed.
+    * @param aError The status of the audio sample after initialisation.
+    * @param aDuration The duration of the audio sample.
+    */
+    void MapcInitComplete( 
+        TInt aError, 
+        const TTimeIntervalMicroSeconds& /*aDuration*/ );
+
+    /**
+    * Play of an audio sample has completed.
+    * @param aError The status of playback.
+    */
+    void MapcPlayComplete( TInt aError );
+
+private:// for playTone
+
+    /**
+    * Get settings from current profile like volume, warning tones on/off etc.
+    * @param aTone, optional specifies the type of needed tone if necessary
+    * @param aToneName, optional buffer to get a soundfile name from 
+    * the active profile if necessary
+    */
+    void GetProfileParamsL( TSatTone aTone = ESatToneNotSet,
+                                             TDes* aToneName = NULL );
+
+    /**
+    * showWaitNote
+    */
+    void showWaitNote();
+
+};
+
+#endif    //DUMMYPLAYTONEPROVIDER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/satui/satapp/tsrc/ut_satapp/inc/ut_csatuiobserver.h	Mon May 03 13:01:45 2010 +0300
@@ -0,0 +1,217 @@
+/*
+* Copyright (c) 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: Unit test CSatUiObserver class
+*
+*/
+
+#ifndef UT_CSATUIOBSERVER_H
+#define UT_CSATUIOBSERVER_H
+
+#include <QtTest/QtTest>
+#include <QObject>
+
+// Class forwards
+class CSatUiObserver;
+class DummyEventProvider;
+
+/**
+ *  CSatUiObserver unit test class.
+ * 
+ *  @since S60 <TB10.1>
+ */
+class Ut_CSatUiObserver : public QObject
+{
+    Q_OBJECT
+
+public:
+     /**
+     * Constructor.
+     */
+    Ut_CSatUiObserver(QObject *parent = 0);
+     /**
+     * Destructor.
+     */
+    virtual ~Ut_CSatUiObserver();
+
+private slots:
+
+     /**
+     * Called before the first testfunction is executed.
+     * Handles the SetUpMenu command.
+     */
+    void initTestCase();
+
+     /**
+     * Called after the last testfunction has been executed.
+     * 
+     */
+    void cleanupTestCase();
+
+     /**
+     * Test CSatUiObserver's ConnectRSatSessionL.
+     * 
+     */
+    void testConnectRSatSession();
+
+     /**
+     * Test CSatUiObserver's Adapter.
+     * 
+     */
+    void testAdapter();
+
+     /**
+     * Test CSatUiObserver's DisconnectRSatSession.
+     * 
+     */
+    void testDisconnectRSatSession();
+
+     /**
+     * Test CSatUiObserver's ProfileState.
+     * 
+     */
+    void testProfileState();
+
+    /**
+     * Test CSatUiObserver's SetImplementer.
+     * 
+     */
+    void testSetImplementer();
+
+    /**
+     * Test CSatUiObserver's testDisplayText's input param list.
+     * 
+     */
+    void testDisplayText_data();
+
+     /**
+     * Test CSatUiObserver's DisplayTextL.
+     * 
+     */
+    void testDisplayText();
+
+    /**
+     * Test CSatUiObserver's testSetUpMenu's input param list.
+     * 
+     */
+    void testSetUpMenu_data();
+
+     /**
+     * Test CSatUiObserver's SetUpMenuL.
+     * 
+     */
+    void testSetUpMenu();
+
+     /**
+     * Test CSatUiObserver's testGetInkey's input param list.
+     * 
+     */
+    void testGetInkey_data();
+
+     /**
+     * Test CSatUiObserver's GetInkeyL.
+     * 
+     */
+    void testGetInkey();
+
+     /**
+     * Test CSatUiObserver's testGetInput's input param list.
+     * 
+     */
+    void testGetInput_data();
+
+     /**
+     * Test CSatUiObserver's GetInputL.
+     * 
+     */
+    void testGetInput();
+
+     /**
+     * Test CSatUiObserver's testConfirmCommand's input param list.
+     * 
+     */
+    void testConfirmCommand_data();
+
+     /**
+     * Test CSatUiObserver's ConfirmCommand.
+     * 
+     */
+    void testConfirmCommand();
+    
+    
+    /**
+    * Test CSatUiObserver's Notification input param list.
+    * 
+    */
+   void testNotification_data();
+
+    /**
+    * Test CSatUiObserver's Notification.
+    * 
+    */
+   void testNotification();
+
+
+   /**
+   * Test CSatUiObserver's EventNotification input param list.
+   * 
+   */
+    void testEventNotification_data();
+
+   /**
+   * Test CSatUiObserver's Notification.
+   * 
+   */
+    void testEventNotification();
+
+  /**
+   * Test CSatUiObserver's testSetUpMenu's input param list.
+   * 
+   */
+    void testSelectItem_data();
+
+   /**
+   * Test CSatUiObserver's SetUpMenuL.
+   * 
+   */
+    void testSelectItem();
+
+  /**
+   * Test CSatUiObserver's testPlayTone input param list.
+   * 
+   */
+    void testPlayTone_data();
+
+   /**
+   * Test CSatUiObserver's testPlayTone.
+   * 
+   */
+    void testPlayTone();
+
+private:
+
+     /**
+     * Own.
+     * 
+     */
+    CSatUiObserver *mSatObserver;
+
+    /**
+     * Own.
+     * 
+     */
+    DummyEventProvider *mImplementer;
+
+};
+
+#endif // UT_CSATUIOBSERVER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/satui/satapp/tsrc/ut_satapp/inc/ut_playtoneprovider.h	Mon May 03 13:01:45 2010 +0300
@@ -0,0 +1,131 @@
+/*
+* Copyright (c) 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: 
+*
+*/
+
+#ifndef UT_SATAPPPLAYTONEPROVIDER_H
+#define UT_SATAPPPLAYTONEPROVIDER_H
+
+#include <QtTest/QtTest>
+#include <QObject>
+
+
+// Class forwards
+class SatAppPlayToneProvider;
+
+/**
+ *  Satapp unit test class.
+ * 
+ *  @since S60 <TB10.1>
+ */
+class Ut_SatAppPlayToneProvider : public QObject
+{
+    Q_OBJECT
+
+public:
+
+    Ut_SatAppPlayToneProvider(QObject *parent = 0);
+
+    virtual ~Ut_SatAppPlayToneProvider();
+
+private slots:
+    /**
+     * Called before the first testfunction is executed.
+     * Handles the SetUpMenu command.
+     */
+    void initTestCase();
+
+    /**
+     * Called after the last testfunction has been executed.
+     * 
+     */
+    void cleanupTestCase();
+
+    /**
+     * Test SatAppPlayToneProvider's constructor.
+     * 
+     */
+    void testCreatePlayTone();
+
+    /**
+   * Test SatAppPlayToneProvider's testPlayStandardTone input param list.
+   * 
+   */
+    void testPlayStandardTone_data();
+
+    /**
+   * Test SatAppPlayToneProvider's PlayStandardToneL.
+   * 
+   */
+    void testPlayStandardTone();
+
+    /**
+   * Test SatAppPlayToneProvider's testPlayUserSelectedTone input param list.
+   * 
+   */
+    void testPlayUserSelectedTone_data();
+
+    /**
+   * Test SatAppPlayToneProvider's PlayUserSelectedToneL.
+   * 
+   */
+    void testPlayUserSelectedTone();
+
+    /**
+   * Test SatAppPlayToneProvider's closeSatUI.
+   * 
+   */
+    void testCloseSatUI();
+
+    /**
+   * Test SatAppPlayToneProvider's clearScreen.
+   * 
+   */
+    void testClearScreen();
+
+    /**
+   * Test SatAppPlayToneProvider's testMapcPlayComplete input param list.
+   * 
+   */
+    void testMapcPlayComplete_data();
+
+    /**
+   * Test SatAppPlayToneProvider's MapcPlayComplete.
+   * 
+   */
+    void testMapcPlayComplete();
+
+    /**
+   * Test SatAppPlayToneProvider's testMapcInitComplete input param list.
+   * 
+   */
+    void testMapcInitComplete_data();
+
+    
+    /**
+   * Test SatAppPlayToneProvider's MapcInitComplete.
+   * 
+   */
+    void testMapcInitComplete();
+
+private:
+     /**
+     * Own.
+     */
+    SatAppPlayToneProvider *mPlayTone;
+
+};
+
+#endif // UT_SATAPPPLAYTONEPROVIDER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/satui/satapp/tsrc/ut_satapp/inc/ut_satappeventhandler.h	Mon May 03 13:01:45 2010 +0300
@@ -0,0 +1,109 @@
+/*
+* Copyright (c) 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: 
+*
+*/
+
+#ifndef UT_SATAPPEVENTPROVIDER_H
+#define UT_SATAPPEVENTPROVIDER_H
+
+#include <QtTest/QtTest>
+#include <QObject>
+#include <hbview.h>
+
+// Class forwards
+class HbMainWindow;
+class HbView;
+class SatAppEventProvider;
+
+/**
+ *  Satapp unit test class.
+ * 
+ *  @since S60 <TB10.1>
+ */
+class Ut_SatAppEventProvider : public QObject
+{
+    Q_OBJECT
+
+public:
+
+    Ut_SatAppEventProvider(QObject *parent = 0);
+
+
+    virtual ~Ut_SatAppEventProvider();
+
+private slots:
+     /**
+     * Called before the first testfunction is executed.
+     * Handles the SetUpMenu command.
+     */
+    void initTestCase();
+
+     /**
+     * Called after the last testfunction has been executed.
+     * 
+     */
+    void cleanupTestCase();
+
+     /**
+     * Test SatAppEventProvider's constructor.
+     * 
+     */
+    void testCreateEventHandler();
+
+    /**
+     * Test SatAppEventProvider's testShowSsWaitNote param list.
+     * 
+     */
+    void testShowSsWaitNote_data();
+
+     /**
+     * Test SatAppEventProvider's showSsWaitNote.
+     * 
+     */
+    void testShowSsWaitNote();
+
+     /**
+     * Test SatAppEventProvider's StopShowWaitNote.
+     * 
+     */
+    void testStopShowWaitNote();
+
+     /**
+     * Test SatAppEventProvider's ShowWaitNoteWithoutDelayL.
+     * 
+     */
+    void testShowWaitNoteWithoutDelay();
+
+     /**
+     * Test SatAppEventProvider's ShowSsErrorNoteL.
+     * 
+     */
+    void testShowSsErrorNote();
+
+private:
+    /**
+     * Own.
+     */
+    SatAppEventProvider *mEventHandler;
+
+    /**
+     * Own.
+     */
+    HbMainWindow *mWindow;
+
+
+};
+
+#endif // UT_SATAPPEVENTPROVIDER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/satui/satapp/tsrc/ut_satapp/inc/ut_satappmainhandler.h	Mon May 03 13:01:45 2010 +0300
@@ -0,0 +1,70 @@
+/*
+* Copyright (c) 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: 
+*
+*/
+
+#ifndef UT_SATAPPMAINHANDLER_H
+#define UT_SATAPPMAINHANDLER_H
+
+#include <QtTest/QtTest>
+#include <QObject>
+
+
+// Class forwards
+class SatAppMainHandler;
+
+/**
+ *  Satapp unit test class.
+ * 
+ *  @since S60 <TB10.1>
+ */
+class Ut_SatAppMainHandler : public QObject
+{
+    Q_OBJECT
+
+public:
+
+    Ut_SatAppMainHandler(QObject *parent = 0);
+
+    virtual ~Ut_SatAppMainHandler();
+
+private slots:
+     /**
+     * Called before the first testfunction is executed.
+     * Handles the SetUpMenu command.
+     */
+    void initTestCase();
+
+     /**
+     * Called after the last testfunction has been executed.
+     * 
+     */
+    void cleanupTestCase();
+
+     /**
+     * Test SatAppMainHandler's constructor.
+     * 
+     */
+    void testCreateMainHandler();
+
+private:
+     /**
+     * Own.
+     */
+    SatAppMainHandler *mMainHandler;
+
+};
+
+#endif // UT_SATAPPMAINHANDLER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/satui/satapp/tsrc/ut_satapp/src/dummyeventprovider.cpp	Mon May 03 13:01:45 2010 +0300
@@ -0,0 +1,681 @@
+/*
+* Copyright (c) 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:
+*
+*/
+
+#include <QStringList>
+#include <msatuiadapter.h>
+#include "dummyeventprovider.h"
+#include "tflogger.h"
+#include "csatuiobserver.h"
+#include "dummyplaytoneprovider.h"
+
+// ----------------------------------------------------------------------------
+// DummyEventProvider::DummyEventProvider
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+DummyEventProvider::DummyEventProvider(QObject *parent) :
+    QObject(parent), mObs(NULL)
+{
+    qDebug("SATAPP: DummyEventProvider::DummyEventProvider call");
+    TRAPD(err, mObs = CSatUiObserver::NewL());
+    
+    if (KErrNone != err) {
+        CloseSatUI();
+    } else {
+        mObs->SetImplementer(this);
+        TFLOGSTRING("SATAPP: DummyEventProvider::DummyEventProvider \
+            SetImplementer")
+        mPlayTone = new DummyPlayToneProvider(this);
+    }  
+    qDebug("SATAPP: DummyEventProvider::DummyEventProvider exit");
+}
+
+// ----------------------------------------------------------------------------
+// DummyEventProvider::~DummyEventProvider
+// Sets a pointer to CSatUiViewAppUi object.
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+DummyEventProvider::~DummyEventProvider()
+{
+    qDebug("SATAPP: DummyEventProvider::~DummyEventProvider call");
+    delete mObs;
+    mObs = NULL;
+    if (mPlayTone) {
+        delete mPlayTone;
+        mPlayTone = 0;
+        TFLOGSTRING("SATAPP: DummyEventProvider::~DummyEventProvider delete\
+            mPlayTone")
+    }
+    qDebug("SATAPP: DummyEventProvider::~DummyEventProvider exit");
+}
+
+// ----------------------------------------------------------------------------
+// DummyEventProvider::SetUpMenuL
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+TSatUiResponse DummyEventProvider::SetUpMenuL(
+    const TDesC &aText,
+    const MDesCArray &aMenuItems,
+    const CArrayFixFlat<TSatAction> */*aMenuItemNextActions*/,
+    const CFbsBitmap */*aIconBitmap*/,
+    //const CAknIconArray */*aItemIconsArray*/,
+    const TBool aSelfExplanatoryItems,
+    const TBool aHelpIsAvailable)
+    {
+    qDebug("SATAPP: DummyEventProvider::SetUpMenuL call");
+
+    TSatUiResponse response(ESatSuccess);
+    QString title;
+    if (aText.Length() > 0) {
+        title = QString::fromUtf16 (aText.Ptr(), aText.Length());
+        }
+
+    QStringList *menuList = new QStringList();
+    qDebug("SATAPP: DummyEventProvider::SetUpMenuL List");
+
+    //Add Item
+    if(menuList) {
+        for (int i=0 ; i<aMenuItems.MdcaCount() ; i++) {
+            QString item=QString::fromUtf16(aMenuItems.MdcaPoint(i).Ptr(),
+                aMenuItems.MdcaPoint(i).Length());
+            menuList->append(item);
+            }
+
+        qDebug("SATAPP: DummyEventProvider::SetUpMenuL add item");
+
+        emit setUpMenuEvent(
+            response,
+            title,
+            *menuList,
+            //const CArrayFixFlat<TSatAction> *aMenuItemNextActions,
+            //const HbIcon &aIcon,
+            //const CArrayFixFlat<TInt> *aMenuIcons,
+            aSelfExplanatoryItems,
+            aHelpIsAvailable);
+
+        delete menuList;
+    }
+    qDebug("SATAPP: DummyEventProvider::SetUpMenuL exit");
+
+    return response;
+    }
+
+// ----------------------------------------------------------------------------
+// DummyEventProvider::SetUpMenuL
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+TSatUiResponse DummyEventProvider::SelectItemL(
+    const TDesC &aText,
+    const MDesCArray &aMenuItems,
+    const CArrayFixFlat<TSatAction> */*aMenuItemNextActions*/,
+    const TInt aDefaultItem,
+    TUint8 &aSelection,
+    const CFbsBitmap */*aIconBitmap*/,
+    //const CAknIconArray */*aItemsIconArray*/,
+    const TBool aSelfExplanatoryItems,
+    const TBool aHelpIsAvailable)
+{
+    qDebug("SATAPP: DummyEventProvider::SelectItemL call");
+
+    TSatUiResponse response(ESatSuccess);
+    aSelection = 0;
+    QString title;
+    if (aText.Length() > 0) {
+        title=QString::fromUtf16(aText.Ptr(), aText.Length());
+        }
+
+    QStringList *menuList = new QStringList();
+    //Add Item
+    if(menuList) {
+        for (int i=0 ; i<aMenuItems.MdcaCount() ; i++) {
+            QString item=QString::fromUtf16(aMenuItems.MdcaPoint(i).Ptr(),
+                        aMenuItems.MdcaPoint(i).Length());
+            menuList->append(item);
+            }
+        qDebug("SATAPP: DummyEventProvider::SelectItemL add item");
+
+        emit selectItemEvent(
+            response,
+            title,
+            *menuList,
+            aDefaultItem,
+            aSelection,
+            //const CArrayFixFlat<TSatAction> *aMenuItemNextActions,
+            //const HbIcon &aIcon,
+            //const CArrayFixFlat<TInt> *aMenuIcons,
+            aSelfExplanatoryItems,
+            aHelpIsAvailable);
+
+        delete menuList;
+    }
+    qDebug("SATAPP: DummyEventProvider::SelectItemL exit");
+
+    return response;
+}
+
+// ----------------------------------------------------------------------------
+// DummyEventProvider::ProfileState
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+int DummyEventProvider::profileState()
+{
+    qDebug("SATAPP: DummyEventProvider::ProfileState call");
+    int res (0);
+    if (mObs) {
+       res = mObs->ProfileState();
+    }
+    qDebug("SATAPP: DummyEventProvider::ProfileState exit");
+    return res;
+}
+
+// ----------------------------------------------------------------------------
+// DummyEventProvider::MenuSelection
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+void DummyEventProvider::menuSelection(int aMenuItem, bool aHelpRequested)
+    {
+    if(mObs && mObs->Adapter()) {
+        mObs->Adapter()->MenuSelection(aMenuItem, aHelpRequested);
+        }
+
+    qDebug("SATAPP: DummyEventProvider::MenuSelection exit");
+    }
+
+// ----------------------------------------------------------------------------
+// DummyEventProvider::DisplayTextL
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+TSatUiResponse DummyEventProvider::DisplayTextL(
+    const TDesC &aText,
+    const TDesC &aSimApplicationName,
+    CFbsBitmap */*aIconBitmapDisplayText*/,
+    const TBool aSelfExplanatoryIcon,
+    const TBool aSustainedText,
+    const TTimeIntervalSeconds aDuration,
+    const TBool aWaitUserToClear)
+    {
+    qDebug("SATAPP: DummyEventProvider::DisplayTextL call");
+
+    TSatUiResponse response(ESatFailure);
+    QString title;
+    if (aText.Length() > 0) {
+        title=QString::fromUtf16(aText.Ptr(), aText.Length());
+    } else {
+         qDebug("SATAPP: DummyEventProvider::DisplayTextL null text");
+         response = ESatFailure;
+    }
+
+    QString appName;
+    if (aSimApplicationName.Length() > 0) {
+         appName=QString::fromUtf16(aSimApplicationName.Ptr(),
+                aSimApplicationName.Length());
+    } else {
+        // test leave
+        qDebug("SATAPP: DummyEventProvider::DisplayTextL leave exit");
+        User::Leave(KErrNotFound);
+    }
+
+    int timeInterval = aDuration.Int();
+
+    bool isSelfExplanatoryIcon = (aSelfExplanatoryIcon) ? true : false;
+
+    emit displayTextEvent(
+       response,
+       title,
+       appName,
+       //const HbIcon &aIcon,
+       isSelfExplanatoryIcon,
+       aSustainedText,
+       timeInterval,
+       aWaitUserToClear);
+
+    qDebug("SATAPP: DummyEventProvider::DisplayTextL exit");
+    return response;
+    }
+
+// ----------------------------------------------------------------------------
+// DummyEventProvider::GetInputLL
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+TSatUiResponse DummyEventProvider::GetInputL(
+    const TDesC &aText,
+    const TSatCharacterSet aCharacterSet,
+    TDes &aInput,
+    const TInt aMinLength,
+    const TInt aMaxLength,
+    const TBool aHideInput,
+    const TBool aGetInkey,
+    const CFbsBitmap */*aIconBitmapGetInput*/,
+    const TBool aSelfExplanatory,
+    TUint &aDuration)
+{
+    qDebug("SATAPP: DummyEventProvider::GetInputL call");
+
+    TSatUiResponse response(ESatSuccess);
+
+    QString title;
+    if (aText.Length() > 0) {
+        title=QString::fromUtf16(aText.Ptr(), aText.Length());
+        TFLOGSTRING2("SATAPP: DummyEventProvider::GetInputL \
+            Title=%S", &aText)
+        }
+
+    QString inputText;
+    if (aInput.Length() > 0) {
+        inputText = QString::fromUtf16(aInput.Ptr(), aInput.Length());
+    } else {
+        // test leave
+        TFLOGSTRING("SATAPP: DummyEventProvider::GetInkey test leave")
+        User::Leave(KErrNotFound);
+    }
+    bool isSelfExplanatory = aSelfExplanatory;
+    unsigned int duration = aDuration;
+     if (aGetInkey) {
+        //Get Inkey
+         emit getInkeyEvent(
+             response,
+             title,
+             aCharacterSet,
+             inputText,
+             //iconBitmapGetInput,
+             isSelfExplanatory,
+             duration);
+         qDebug("SATAPP: DummyEventProvider::GetInputL: GetInkey");
+         aInput.Copy(reinterpret_cast<const TUint16*>(inputText.utf16()), inputText.length());
+     } else {
+        // Get Input
+        bool hideInput = aHideInput;
+        int minLength = aMinLength;
+        int maxLength = aMaxLength;
+        emit getInputEvent(
+            response,
+            title,
+            aCharacterSet,
+            inputText,
+            minLength,
+            maxLength,
+            hideInput,
+            //iconBitmapGetInput,
+            isSelfExplanatory,
+            duration);
+        int length = inputText.length();
+        if (length > maxLength) {
+            length = maxLength;
+        }
+        qDebug("SATAPP: DummyEventProvider::GetInputL: GetInput");
+        aInput.Copy(reinterpret_cast<const TUint16*>(inputText.utf16()), length);
+    }
+    qDebug("SATAPP: DummyEventProvider::GetInputL exit");
+    return response;
+    }
+
+    // ----------------------------------------------------------------------------
+// DummyEventProvider::GetYesNoL
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+TSatUiResponse DummyEventProvider::GetYesNoL(
+    const TDesC &aText,
+    const TSatCharacterSet aCharacterSet,
+    TChar &aInkey,
+    const CFbsBitmap */*aIconBitmap*/,
+    const TBool aSelfExplanatory,
+    TUint &aDuration,
+    const TBool aImmediateDigitResponse)
+{
+    qDebug("SATAPP: DummyEventProvider::GetYesNoL call");
+    TSatUiResponse response(ESatSuccess);
+    QString text;
+    if (aText.Length() > 0) {
+        text=QString::fromUtf16(aText.Ptr(), aText.Length());
+    }
+
+    unsigned int inKey = static_cast < TUint >(aInkey);
+
+    bool selfExplanatory = aSelfExplanatory;
+    bool immediateDigitResponse = aImmediateDigitResponse;
+    unsigned int duration = aDuration;
+
+    emit getYesNoEvent(
+        response,
+        text,
+        aCharacterSet,
+        inKey,
+        //const TSatIconId &aIconId,
+        selfExplanatory,
+        duration,
+        immediateDigitResponse);
+
+    aInkey = inKey;
+    qDebug("SATAPP: DummyEventProvider::GetYesNoL exit");
+    return response;
+}
+
+// ----------------------------------------------------------------------------
+// DummyEventProvider::ConfirmSendL
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+TSatUiResponse DummyEventProvider::ConfirmSendL(
+    const TDesC &aText,
+    TBool &aActionAccepted,
+    TInt aType)
+{
+    qDebug("SATAPP: DummyEventProvider::ConfirmSendL call");
+    TSatUiResponse response(ESatSuccess);
+    QString text;
+    if (aText.Length() > 0) {
+        text=QString::fromUtf16(aText.Ptr(), aText.Length());
+    }
+    bool actionAccepted = aActionAccepted;
+    int type = aType;
+    emit confirmSendEvent(
+        response,
+        text,
+        actionAccepted,
+        type);
+    qDebug("SATAPP: DummyEventProvider::ConfirmSendL exit");
+    return response;
+}
+
+// ----------------------------------------------------------------------------
+// DummyEventProvider::ShowSmsWaitNoteL
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+void DummyEventProvider::ShowSmsWaitNoteL(
+    const TDesC &aText,
+    const CFbsBitmap */*aIconBitmapSendSM*/,
+    const TBool aSelfExplanatoryIcon)
+{
+    qDebug("SATAPP: DummyEventProvider::ShowSmsWaitNoteL call");
+    QString title;
+    if (aText.Length() > 0) {
+        title = QString::fromUtf16 (aText.Ptr(), aText.Length());
+    }
+    bool selfExplanatoryIcon = aSelfExplanatoryIcon;
+
+    emit showSmsWaitNoteEvent(
+        title,
+        selfExplanatoryIcon);
+    qDebug("SATAPP: DummyEventProvider::ShowSmsWaitNoteL exit");
+}
+
+// ----------------------------------------------------------------------------
+// DummyEventProvider::ConfirmSetUpCallL
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+void DummyEventProvider::ConfirmSetUpCallL(
+    const TDesC &aText,
+    const TDesC &aSimAppName,
+    TBool &aActionAccepted,
+    const CFbsBitmap */*aIconBitmap*/,
+    const TBool /*aSelfExplanatory*/)
+    {
+    qDebug("SATAPP: DummyEventProvider::ConfirmSetUpCallL call");
+    QString text;
+    if (aText.Length() > 0) {
+        text = QString::fromUtf16 (aText.Ptr(), aText.Length());
+        TFLOGSTRING2("SATAPP: DummyEventProvider::ConfirmSetUpCallL \
+            text=%S", text.utf16())
+    }
+    
+    QString title;
+    if (aText.Length() > 0) {
+        title = QString::fromUtf16 (aSimAppName.Ptr(), aSimAppName.Length());
+        TFLOGSTRING2("SATAPP: DummyEventProvider::ConfirmSetUpCallL \
+            Title=%S", title.utf16())
+    }
+    bool actionAccepted = aActionAccepted;
+
+    emit showSetUpCallConfirmEvent(
+        text,
+        title,
+        actionAccepted);
+    qDebug("SATAPP: DummyEventProvider::ConfirmSetUpCallL exit");
+    }
+
+// ----------------------------------------------------------------------------
+// DummyEventProvider::ShowDtmfWaitNoteL
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+TSatUiResponse DummyEventProvider::ShowDtmfWaitNoteL(
+    const TDesC &aText,
+    const CFbsBitmap */*aIconBitmapSendSM*/,
+    const TBool /*aSelfExplanatoryIcon*/)
+{
+    TSatUiResponse response(ESatSuccess);
+    qDebug("SATAPP: DummyEventProvider::ShowDtmfWaitNoteL call");
+    QString title;
+    if (aText.Length() > 0) {
+        title = QString::fromUtf16 (aText.Ptr(), aText.Length());
+        TFLOGSTRING2("SATAPP: DummyEventProvider::ShowDtmfWaitNoteL \
+            Title=%S", title.utf16())
+    }
+    emit showDtmfWaitNoteEvent(
+        response,
+        title);
+    qDebug("SATAPP: DummyEventProvider::ShowDtmfWaitNoteL exit");
+    return response;
+}
+
+// ----------------------------------------------------------------------------
+// DummyEventProvider::clearScreen
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+void DummyEventProvider::ClearScreen()
+{
+    qDebug("SATAPP: DummyEventProvider::ClearScreen call");
+    if (mPlayTone) {
+        mPlayTone->clearScreen();
+    }
+    emit clearScreenEvent();
+    qDebug("SATAPP: DummyEventProvider::ClearScreen exit");
+}
+
+// ----------------------------------------------------------------------------
+// DummyEventProvider::CloseSatUI
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+void DummyEventProvider::CloseSatUI()
+{
+    qDebug("SATAPP: DummyEventProvider::CloseSatUI call");
+    if (mPlayTone) {
+        mPlayTone->closeSatUI();
+    }
+    emit closeUiEvent();
+    qDebug("SATAPP: DummyEventProvider::CloseSatUI exit");
+}
+
+//-----------------------------------------------------------------------------
+// DummyEventProvider::StopShowWaitNote
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//    
+void DummyEventProvider::StopShowWaitNote()
+{
+    qDebug("SATAPP: DummyEventProvider::StopShowWaitNote call");
+    emit stopShowWaitNoteEvent();
+    qDebug("SATAPP: DummyEventProvider::StopShowWaitNote exit");
+}
+
+//-----------------------------------------------------------------------------
+// DummyEventProvider::userCancelDtmfResponse
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+void DummyEventProvider::userCancelResponse()
+{
+    qDebug("SATAPP: DummyEventProvider::userCancelDtmfResponse call");
+    mObs->Adapter()->SessionTerminated( ESessionCancel );
+    qDebug("SATAPP: DummyEventProvider::userCancelDtmfResponse exit");
+}
+
+//-----------------------------------------------------------------------------
+// DummyEventProvider::ShowSsWaitNoteL
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+void DummyEventProvider::ShowSsWaitNoteL(
+            const TDesC &aText,
+            const CFbsBitmap* /*aIconBitmap*/,
+            const TBool aSelfExplanatoryIcon )
+{
+    TFLOGSTRING("SATAPP: DummyEventProvider::ShowSsWaitNoteL call")
+    QString title;
+    if (aText.Length() > 0) {
+        title = QString::fromUtf16 (aText.Ptr(), aText.Length());
+        TFLOGSTRING2("SATAPP: DummyEventProvider::ShowSsWaitNoteL \
+            Title=%s", title.utf16())
+    }
+    bool selfExplanatoryIcon = aSelfExplanatoryIcon;
+
+    emit showSsWaitNoteEvent(
+        title,
+        selfExplanatoryIcon);
+    TFLOGSTRING("SATAPP: DummyEventProvider::ShowSsWaitNoteL exit")
+}
+
+//-----------------------------------------------------------------------------
+// DummyEventProvider::ShowWaitNoteWithoutDelayL
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+void DummyEventProvider::ShowWaitNoteWithoutDelayL()
+{
+    TFLOGSTRING("SATAPP: DummyEventProvider::ShowWaitNoteWithoutDelayL call")
+    emit showWaitNoteWithoutDelayEvent();
+    TFLOGSTRING("SATAPP: DummyEventProvider::ShowWaitNoteWithoutDelayL exit")
+}
+
+//-----------------------------------------------------------------------------
+// DummyEventProvider::showSsErrorNoteEvent
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+void DummyEventProvider::ShowSsErrorNoteL()
+{
+    TFLOGSTRING("SATAPP: DummyEventProvider::showSsErrorNoteEvent call")
+    emit showSsErrorNoteEvent();
+    TFLOGSTRING("SATAPP: DummyEventProvider::showSsErrorNoteEvent exit")
+}
+
+//-----------------------------------------------------------------------------
+// DummyEventProvider::ShowBIPNoteL
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+void DummyEventProvider::ShowBIPNoteL( TInt aCommand, const TDesC &aText,
+        const CFbsBitmap* /*aIconBitmap*/, const TBool /*aSelfExplanatory*/)
+{
+    TFLOGSTRING("SATAPP: DummyEventProvider::ShowBIPNoteL call")
+    int cmdType = aCommand;
+    QString title;
+    if (aText.Length() > 0) {
+        title=QString::fromUtf16(aText.Ptr(), aText.Length());
+        TFLOGSTRING2("SATAPP: DummyEventProvider::ShowBIPNoteL \
+            Title=%S", title.utf16())
+        }
+    emit showBIPNoteEvent(cmdType, title);
+    TFLOGSTRING("SATAPP: DummyEventProvider::ShowBIPNoteL exit")
+}
+
+//-----------------------------------------------------------------------------
+// DummyEventProvider::ConfirmOpenChannelL
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+TSatUiResponse DummyEventProvider::ConfirmOpenChannelL(
+    const TDesC &aText,
+    TBool &aActionAccepted,
+    const CFbsBitmap* /*aIconBitmapOpenChannel*/,
+    const TBool /*aSelfExplanatory*/ )
+{
+    TFLOGSTRING("SATAPP: DummyEventProvider::ConfirmOpenChannelL call")
+        
+    TSatUiResponse response( ESatSuccess );
+
+    QString title;
+    if (aText.Length() > 0) {
+        title=QString::fromUtf16(aText.Ptr(), aText.Length());
+        TFLOGSTRING2("SATAPP: DummyEventProvider::ConfirmOpenChannelL \
+            Title=%s", title.utf16())
+        }
+     
+    bool actionAccepted = aActionAccepted;
+    
+    emit showOpenChannelConfirmEvent(title, actionAccepted);
+    
+    TFLOGSTRING2( "SATAPP: DummyEventProvider::ConfirmOpenChannelL exit\
+        response: %d", response)
+    return response;
+}
+
+//-----------------------------------------------------------------------------
+// DummyEventProvider::PlayStandardToneL
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+TSatUiResponse DummyEventProvider::PlayStandardToneL( const TDesC& aText,
+    const TDesC8& aSequence,
+    TTimeIntervalMicroSeconds aDuration,
+    const CFbsBitmap* aIconBitmap,
+    const TBool aSelfExplanatory )
+{
+    TFLOGSTRING("SATAPP: DummyEventProvider::PlayStandardToneL call")
+    TSatUiResponse response = mPlayTone->PlayStandardToneL(
+        aText, aSequence, aDuration, aIconBitmap, aSelfExplanatory);
+    TFLOGSTRING2("SATAPP: DummyEventProvider::PlayStandardToneL \
+        response= %d exit", response)
+    return response;
+}
+
+//-----------------------------------------------------------------------------
+// DummyEventProvider::PlayUserSelectedToneL
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+TSatUiResponse DummyEventProvider::PlayUserSelectedToneL(
+        const TDesC &aText,
+        TTimeIntervalMicroSeconds aDuration,
+        TSatTone aTone,
+        const CFbsBitmap* aIconBitmap,
+        const TBool aSelfExplanatory )
+{
+    TFLOGSTRING("DummyEventProvider::PlayUserSelectedToneL calling")
+    if (100 == aTone) {
+        TFLOGSTRING("DummyEventProvider::PlayUserSelectedToneL test failure")
+        return ESatFailure;
+    }
+    TSatUiResponse response = mPlayTone->PlayUserSelectedToneL(
+        aText, aDuration, aTone, aIconBitmap, aSelfExplanatory);
+    TFLOGSTRING2( "DummyEventProvider::PlayUserSelectedToneL response= %d \
+        exit", response)
+    return response;
+}
+ //End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/satui/satapp/tsrc/ut_satapp/src/dummyplaytoneprovider.cpp	Mon May 03 13:01:45 2010 +0300
@@ -0,0 +1,178 @@
+/*
+* Copyright (c) 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:
+*
+*/
+
+
+// PlayStandardTone
+#include    <MProfile.h>
+#include    <MProfileEngine.h>
+#include    <MProfileTones.h>
+#include    <TProfileToneSettings.h>
+#include    <audiopreference.h>//KAudioPriorityLowLevel
+
+#include    <Mda/Common/Resource.h>//KMdaRepeatForever
+#include    <QTimer> // timeout callback
+#include    <hbmessagebox.h>//playtone note
+#include    <mdaaudiotoneplayer.h>// for CMdaAudioToneUtility&CMdaAudioPlayerUtility
+#include    <e32std.h>//TTimeIntervalMicroSeconds
+
+#include "dummyplaytoneprovider.h"
+
+//#include "tflogger.h"
+
+
+// ----------------------------------------------------------------------------
+// DummyPlayToneProvider::DummyPlayToneProvider
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+DummyPlayToneProvider::DummyPlayToneProvider(QObject *parent) :
+    QObject(parent)
+{
+    qDebug("SATAPP: DummyPlayToneProvider::DummyPlayToneProvider >");
+    qDebug("SATAPP: DummyPlayToneProvider::DummyPlayToneProvider <");
+}
+
+// ----------------------------------------------------------------------------
+// DummyPlayToneProvider::~DummyPlayToneProvider
+// Sets a pointer to CSatUiViewAppUi object.
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+DummyPlayToneProvider::~DummyPlayToneProvider()
+{
+    qDebug("SATAPP: DummyPlayToneProvider::~DummyPlayToneProvider >");
+    qDebug("SATAPP: DummyPlayToneProvider::~DummyPlayToneProvider <");
+}
+
+//-----------------------------------------------------------------------------
+// DummyPlayToneProvider::PlayStandardToneL
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+TSatUiResponse DummyPlayToneProvider::PlayStandardToneL( const TDesC& /*aText*/,
+    const TDesC8& /*aSequence*/,
+    TTimeIntervalMicroSeconds /*aDuration*/,
+    const CFbsBitmap* /*aIconBitmap*/,
+    const TBool /*aSelfExplanatory*/ )
+{
+    qDebug("SATAPP: DummyPlayToneProvider::PlayStandardToneL >");
+    qDebug("SATAPP: DummyPlayToneProvider::PlayStandardToneL <");
+    return ESatSuccess;
+}
+
+
+// ---------------------------------------------------------
+// SatAppCommandHandler::GetProfileParamsL
+// Get and store settings from current profile 
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void DummyPlayToneProvider::GetProfileParamsL( TSatTone 
+                  /*aTone = ESatToneNotSet*/, TDes* /*aToneName = NULL*/ )
+{
+    qDebug( "SatAppCommandHandler::GetProfileParamsL >");
+    qDebug("SatAppCommandHandler::GetProfileParamsL <");
+}
+
+// ---------------------------------------------------------
+// DummyPlayToneProvider::MatoPrepareComplete
+// Indicates success or failure.
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void DummyPlayToneProvider::MatoPrepareComplete(TInt /*aError*/)
+{
+    qDebug("DummyPlayToneProvider::MatoPrepareComplete >");
+    qDebug( "DummyPlayToneProvider::MatoPrepareComplete <");
+}
+
+//-----------------------------------------------------------------------------
+// DummyPlayToneProvider::MatoPlayComplete
+// Indicates success or failure.
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+void DummyPlayToneProvider::MatoPlayComplete( TInt /*aError*/ )
+{
+    qDebug("DummyPlayToneProvider::MatoPlayComplete >");
+    qDebug("DummyPlayToneProvider::MatoPlayComplete <");
+}
+
+//-----------------------------------------------------------------------------
+// DummyPlayToneProvider::PlayUserSelectedToneL
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+TSatUiResponse DummyPlayToneProvider::PlayUserSelectedToneL(
+        const TDesC &/*aText*/,
+        TTimeIntervalMicroSeconds /*aDuration*/,
+        TSatTone /*aTone*/,
+        const CFbsBitmap* /*aIconBitmap*/,
+        const TBool /*aSelfExplanatory*/ )
+{
+    qDebug("DummyPlayToneProvider::PlayUserSelectedToneL >");
+    qDebug( "DummyPlayToneProvider::PlayUserSelectedToneL <");
+    return ESatSuccess;
+}
+
+//-----------------------------------------------------------------------------
+// DummyPlayToneProvider::MapcInitComplete
+// Plays the tone.
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+void DummyPlayToneProvider::MapcInitComplete( TInt /*aError*/, 
+    const TTimeIntervalMicroSeconds& /*aDuration*/ )
+{
+    qDebug( "DummyPlayToneProvider::MapcInitComplete >" );
+    qDebug( "DummyPlayToneProvider::MapcInitComplete <" );
+}
+
+//-----------------------------------------------------------------------------
+// DummyPlayToneProvider::MapcPlayComplete
+// Deletes audio player after playing is completed.
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+void DummyPlayToneProvider::MapcPlayComplete( TInt /*aError*/ )
+{
+    qDebug( "DummyPlayToneProvider::MapcPlayComplete >");
+    qDebug("DummyPlayToneProvider::MapcPlayComplete <");
+}
+
+// ----------------------------------------------------------------------------
+// DummyPlayToneProvider::clearScreen
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+void DummyPlayToneProvider::clearScreen()
+{
+    qDebug("SATAPP: SatAppEventProvider::clearScreen >");
+    qDebug("SATAPP: DummyPlayToneProvider::clearScreen <");
+}
+
+// ----------------------------------------------------------------------------
+// DummyPlayToneProvider::clearScreen
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+void DummyPlayToneProvider::closeSatUI()
+{
+    qDebug("SATAPP: DummyPlayToneProvider::closeSatUI >");
+    clearScreen();
+    qDebug("SATAPP: DummyPlayToneProvider::closeSatUI <");
+}
+
+ //End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/satui/satapp/tsrc/ut_satapp/src/main.cpp	Mon May 03 13:01:45 2010 +0300
@@ -0,0 +1,71 @@
+/*
+* Copyright (c) 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:Unit testing of SatApp
+*
+*
+*/
+
+
+#include <QtTest/QtTest>
+
+#include "ut_satappmainhandler.h"
+#include "ut_csatuiobserver.h"
+#include "ut_satappeventhandler.h"
+#include "ut_playtoneprovider.h"
+
+int main(int argc, char *argv[])
+{
+    qDebug("Ut_SatApp: main() >");
+    QApplication app(argc, argv);
+
+    int result(0);
+    char *pass[3];
+    pass[0] = argv[0];
+    pass[1] = "-o"; 
+    pass[2] = "c:\\logs\\sat\\ut_SatAppMainHandler.txt";
+    
+    qDebug("Test SatAppMainHandler");
+    Ut_SatAppMainHandler tc;
+    result = QTest::qExec(&tc, 3, pass);
+    qDebug("Ut_SatApp: main() test SatAppMainHandler, result=%d", result);
+
+    //qDebug("Test CSatUiObserve");
+    Ut_CSatUiObserver utCSatUiObserver;
+    char *test[3];
+    test[0] = argv[0];
+    test[1] = "-o"; 
+    test[2] = "c:\\logs\\sat\\ut_CSatUiObserver.txt";
+    result = QTest::qExec(&utCSatUiObserver, 3, test);
+    qDebug("Ut_SatApp: main() test CSatUiObserver<, result=%d", result);
+
+    /*Ut_SatAppEventProvider utSatAppEventProvider;
+    char *test_event[3];
+    test_event[0] = argv[0];
+    test_event[1] = "-o"; 
+    test_event[2] = "c:\\logs\\sat\\ut_SatAppEventProvide.txt";
+    result = QTest::qExec(&utSatAppEventProvider, 3, test_event);
+    qDebug("Ut_SatApp: main() test SatAppEventProvide<, result=%d", result);*/
+
+    Ut_SatAppPlayToneProvider utPlayTone;
+    char *test_playtone[3];
+    test_playtone[0] = argv[0];
+    test_playtone[1] = "-o"; 
+    test_playtone[2] = "c:\\logs\\sat\\Ut_SatAppPlayToneProvider.txt";
+    result = QTest::qExec(&utPlayTone, 3, test_playtone);
+    qDebug("Ut_SatApp: main() test SatAppPlayToneProvider<, result=%d", result);
+
+    return result;
+}
+
+//End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/satui/satapp/tsrc/ut_satapp/src/ut_csatuiobserver.cpp	Mon May 03 13:01:45 2010 +0300
@@ -0,0 +1,1079 @@
+/*
+* Copyright (c) 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: Unit test for CSatUiObserver
+*
+*/
+
+//symbian
+#include <e32base.h>
+//#include <e32cmn.h>
+#include <badesca.h>
+#include <msatuiobserver.h>
+//qt
+#include <QStringList>
+//test class
+#include "csatuiobserver.h"
+#include "ut_csatuiobserver.h"
+#include "dummyeventprovider.h"
+
+
+
+// -----------------------------------------------------------------------------
+// Ut_CSatUiObserver::Ut_CSatUiObserver
+// -----------------------------------------------------------------------------
+//
+Ut_CSatUiObserver::Ut_CSatUiObserver(QObject *parent):QObject(parent) 
+{
+    qDebug("Ut_CSatUiObserver::Ut_CSatUiObserver >");
+    TRAPD(err, mSatObserver = CSatUiObserver::NewL());
+    qDebug("Ut_CSatUiObserver: Ut_CSatUiObserver, err=%d", err);
+    mImplementer = new DummyEventProvider();
+    QVERIFY(mImplementer);
+    qDebug("Ut_CSatUiObserver::Ut_CSatUiObserver <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_CSatUiObserver::~Ut_CSatUiObserver
+// -----------------------------------------------------------------------------
+//
+Ut_CSatUiObserver::~Ut_CSatUiObserver()
+{
+    qDebug("Ut_CSatUiObserver::~Ut_CSatUiObserver >");
+    if (mSatObserver) {
+        qDebug("Ut_CSatUiObserver::~Ut_CSatUiObserver delete mSatObserver...");
+        delete mSatObserver;
+        mSatObserver = 0;
+    }
+    if (mImplementer) {
+        qDebug("Ut_CSatUiObserver::~Ut_CSatUiObserver delete mImplementer...");
+        delete mImplementer;
+        mImplementer = 0;
+    }
+    qDebug("Ut_CSatUiObserver::~Ut_CSatUiObserver <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_CSatUiObserver::initTestCase
+// QTestLib cleanup method, called after the last testfunction .
+// -----------------------------------------------------------------------------
+void Ut_CSatUiObserver::initTestCase()
+{
+    qDebug("Ut_CSatUiObserver::initTestCase >");
+    qDebug("Ut_CSatUiObserver::initTestCase <");
+}
+
+
+// -----------------------------------------------------------------------------
+// Ut_CSatUiObserver::cleanupTestCase
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_CSatUiObserver::cleanupTestCase()
+{
+    qDebug("Ut_CSatUiObserver::cleanupTestCase >");
+    qDebug("Ut_CSatUiObserver::cleanupTestCase <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_CSatUiObserver::testConnectRSatSession
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_CSatUiObserver::testConnectRSatSession()
+{
+    qDebug("Ut_CSatUiObserver::testConnectRSatSession >");
+    QVERIFY(mSatObserver);
+    TRAP_IGNORE(mSatObserver->ConnectRSatSessionL());
+    qDebug("Ut_CSatUiObserver::testConnectRSatSession <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_CSatUiObserver::testAdapter
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_CSatUiObserver::testAdapter()
+{
+    qDebug("Ut_CSatUiObserver::testAdapter >");
+    QVERIFY(mSatObserver);
+    mSatObserver->Adapter();
+    qDebug("Ut_CSatUiObserver::testAdapter <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_CSatUiObserver::testDisconnectRSatSession
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_CSatUiObserver::testDisconnectRSatSession()
+{
+    qDebug("Ut_CSatUiObserver::testDisconnectRSatSession >");
+    QVERIFY(mSatObserver);
+    mSatObserver->DisconnectRSatSession();
+    qDebug("Ut_CSatUiObserver::testDisconnectRSatSession <");
+} 
+
+// -----------------------------------------------------------------------------
+// Ut_CSatUiObserver::testProfileState
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_CSatUiObserver::testProfileState()
+{
+    qDebug("Ut_CSatUiObserver::testProfileState >");
+    QVERIFY(mSatObserver);
+    mSatObserver->ProfileState();
+    qDebug("Ut_CSatUiObserver::testProfileState <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_CSatUiObserver::testSetImplementer
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_CSatUiObserver::testSetImplementer()
+{
+    qDebug("Ut_CSatUiObserver::testSetImplementer >");
+    QVERIFY(mSatObserver);
+    QVERIFY(mImplementer);
+    mSatObserver->SetImplementer(mImplementer);
+    qDebug("Ut_CSatUiObserver::testSetImplementer <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_CSatUiObserver::testDisplayText_data
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_CSatUiObserver::testDisplayText_data()
+{
+    qDebug("Ut_CSatUiObserver::testDisplayText_data >");
+    QTest::addColumn<QString>("text");
+    QTest::addColumn<QString>("appName");
+    QTest::addColumn<int>("iconIdIdentifier");
+    QTest::addColumn<int>("iconIdQualifier");//enum 0~3
+    QTest::addColumn<bool>("isIconDisplayed");
+    QTest::addColumn<bool>("sustainedText");
+    QTest::addColumn<int>("duration");
+    QTest::addColumn<bool>("isWaitUsertoClear");
+    QTest::addColumn<int>("expectValue");
+
+    QTest::newRow("first") << "Show Display text!" << "Unit test SIM Service" << 
+        84 << 1 << false << false << 2500 << true << 0;
+
+    QTest::newRow("second") << "Show Display text!" << "SIM Service" << 
+        84 << 1 << true << false << 2500 << false << 0;
+    // test null text
+    QTest::newRow("third") << "" << "SIM Service" << 
+        84 << 1 << true << false << 2500 << false << -1;
+
+    // test icon is available for command
+    QTest::newRow("fouth") << "Show Display text!" << "SIM Service" << 
+        84 << 2 << true << false << 2500 << false << 0;
+
+    // test leave occurs
+    //QTest::newRow("forth") << "Show Display text!" << "" << 
+    //    84 << 2 << true << false << 2500 << false << 1;
+
+    qDebug("Ut_CSatUiObserver::testDisplayText_data <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_SatApp::testDisplayText
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_CSatUiObserver::testDisplayText()
+{
+    qDebug("Ut_CSatUiObserver::testDisplayText >");
+    QVERIFY(mSatObserver);
+    QFETCH(QString, text);
+    QFETCH(QString, appName);
+    QFETCH(int, iconIdIdentifier);
+    QFETCH(int, iconIdQualifier);
+    QFETCH(bool, isIconDisplayed);
+    QFETCH(bool, sustainedText);
+    QFETCH(int, duration);
+    QFETCH(bool, isWaitUsertoClear);
+    QFETCH(int, expectValue);
+
+    // text
+    HBufC* hText = HBufC::New(text.length());
+    TPtr aText( hText->Des() );
+    aText.Copy( text.utf16() );
+    // sim name
+    HBufC* hSimAppName = HBufC::New(appName.length());
+    TPtr aSimApplicationName( hSimAppName->Des() );
+    aSimApplicationName.Copy( appName.utf16() );
+
+    TSatIconId aIconId;
+    aIconId.iIdentifier = iconIdIdentifier;
+    aIconId.iIconQualifier = static_cast<TSatIconQualifier>(iconIdQualifier);
+    TBool aIsIconDisplayed(isIconDisplayed);
+
+    TSatUiResponse result(ESatSuccess);
+    // It seems that TRAPD&QT_TRAP_THROWING does nothing if leave occurs, need 
+    // to investigate.
+    QT_TRAP_THROWING( result = mSatObserver->DisplayTextL(
+                              aText, 
+                              aSimApplicationName,
+                              aIconId,
+                              aIsIconDisplayed,
+                              sustainedText,
+                              duration,
+                              isWaitUsertoClear
+                              ));
+    delete hText;
+    hText = 0;
+    TSatUiResponse exValue = static_cast<TSatUiResponse>(expectValue);
+    QCOMPARE(exValue, result);
+    qDebug("Ut_CSatUiObserver::testDisplayText <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_CSatUiObserver::testSetUpMenu_data
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_CSatUiObserver::testSetUpMenu_data()
+{
+    qDebug("Ut_CSatUiObserver::testSetUpMenu_data >");
+    QTest::addColumn<QString>("text");
+    QTest::addColumn<QStringList>("setupMenuItem");
+    QTest::addColumn<bool>("isHelpIsAvailable");
+    QTest::addColumn<int>("iconIdIdentifier");
+    QTest::addColumn<int>("iconIdQualifier");//enum 0~3
+    QTest::addColumn<int>("iconListQualifier");
+    QTest::addColumn<int>("expectReturnValue");
+
+    QStringList testSetUpMenu_1_items;
+    testSetUpMenu_1_items 
+    << "SendData" 
+    << "ReceiveData" 
+    << "CloseChannel"
+    << "OpenChannel"
+    << "GetChannelStatus"
+    << "DisplayText with different symbols and durations"
+    << "GetInkey"
+    << "GetInput"
+    << "SelectItem"
+    << "PlayTone"
+    << "RefreshRequired"
+    << "DoRefresh"
+    << "SendSm"
+    << "SendSs"
+    << "SendUssd"
+    << "SetUpCall"
+    << "SetUpIdleModeText"
+    << "CallControl"
+    << "MoSmControl"
+    << "LaunchBrowser"
+    << "SendDTMF"
+    << "SetUpEventList"
+    << "ProvideLocalInfo"
+    << "EventDownload for IdleScreen available event"
+    << "SetUpMenu";
+
+    QTest::newRow("first") << "SAT" << testSetUpMenu_1_items << 
+        false << 80 << 1 << 2 << 0;
+
+    qDebug("Ut_CSatUiObserver::testSetUpMenu_data <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_CSatUiObserver::testSetUpMenu
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_CSatUiObserver::testSetUpMenu()
+{
+    qDebug("Ut_CSatUiObserver::testSetUpMenu >");
+    QVERIFY(mSatObserver);
+    QFETCH(QString, text);
+    QFETCH(QStringList, setupMenuItem);
+    QFETCH(bool, isHelpIsAvailable);
+    QFETCH(int, iconIdIdentifier);
+    QFETCH(int, iconIdQualifier);
+    QFETCH(int, iconListQualifier);
+    QFETCH(int, expectReturnValue);
+
+    // aText
+    HBufC* hText = HBufC::New(text.length());
+    TPtr aText( hText->Des() );
+    aText.Copy( text.utf16() );
+    // aMenuItems
+    TBuf<128> menuItem;
+    CDesCArrayFlat* aMenuItems = new CDesCArrayFlat(4);
+    QVERIFY(aMenuItems);
+    for (int i = 0; i< setupMenuItem.count(); i++) {
+        menuItem = setupMenuItem.at(i).utf16();
+        QT_TRAP_THROWING(aMenuItems->AppendL(menuItem));
+    }
+    // aIconId
+    TSatIconId aIconId;
+    aIconId.iIdentifier = iconIdIdentifier;
+    aIconId.iIconQualifier = static_cast<TSatIconQualifier>(iconIdQualifier);
+    // aMenuItemNextActions
+    CArrayFixFlat<TSatAction>* aMenuItemNextActions = 
+          new CArrayFixFlat<TSatAction> (4);
+     QVERIFY(aMenuItemNextActions);
+    // Temp test
+     QT_TRAP_THROWING(aMenuItemNextActions->AppendL(ESatSetUpMenuAction));
+    // aMenuIcons
+    CArrayFixFlat<TInt>* aMenuIcons = new CArrayFixFlat<TInt>(2);
+    QVERIFY(aMenuIcons);
+    // Temp test
+    QT_TRAP_THROWING(aMenuIcons->AppendL(1));
+    // aIconListQualifier
+    TSatIconQualifier aIconListQualifier = 
+        static_cast<TSatIconQualifier>(iconListQualifier);
+    // TSatSelectionPreference, useless
+    TSatSelectionPreference aSelectionPreference(ESatNoSelectionPreference);
+    TSatUiResponse result(ESatSuccess);
+    QT_TRAP_THROWING(result = mSatObserver->SetUpMenuL(
+                              aText,
+                              *aMenuItems,
+                              aMenuItemNextActions,
+                              isHelpIsAvailable,
+                              aIconId,
+                              aMenuIcons,
+                              aIconListQualifier,
+                              aSelectionPreference
+                              ));
+    TSatUiResponse exValue = static_cast<TSatUiResponse>(expectReturnValue);
+    QCOMPARE(exValue, result);
+
+    delete hText;
+    hText = 0;
+    delete aMenuItems;
+    aMenuItems = 0;
+    delete aMenuItemNextActions;
+    aMenuItemNextActions = 0;
+    delete aMenuIcons;
+    aMenuIcons = 0;
+    qDebug("Ut_CSatUiObserver::testSetUpMenu <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_CSatUiObserver::testGetInkey_data
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_CSatUiObserver::testGetInkey_data()
+{
+    qDebug("Ut_CSatUiObserver::testGetInkey_data >");
+    QTest::addColumn<QString>("text");
+    QTest::addColumn<int>("characterSet");//enum 0~3
+    QTest::addColumn<QString>("input");
+    QTest::addColumn<bool>("isHelpIsAvailable");
+    QTest::addColumn<int>("iconIdIdentifier");
+    QTest::addColumn<int>("iconIdQualifier");//enum 0~3
+    QTest::addColumn<bool>("isRequestedIconDisplayed");
+    QTest::addColumn<int>("duration");
+    QTest::addColumn<bool>("isImmediateDigitResponse");
+    QTest::addColumn<int>("expectValue");
+    //// test ESatDigitOnly
+    QTest::newRow("first") << "Test GetInKey" << 0 << 
+        "8" << false << 60 << 1 << false << 2500 << true << 0;
+    // null text && EIconGetYesNo
+    QTest::newRow("second") << "" << 0 << 
+        "s" << false<< 60 << 1 << false << 2500 << true << 0;
+    // test EIconGetYesNo
+    QTest::newRow("third") << "Test GetInKey" << 3 << 
+        "s" << false << 60 << 1 << false << 2500 << true << 0;
+    // test ESatCharSmsDefaultAlphabet
+    QTest::newRow("fourth") << "Test GetInKey" << 3 << 
+        "$" << false << 60 << 1 << false << 2500 << true << 0;
+    // ino immediateDigitResponse
+    QTest::newRow("fifth") << "Test GetInKey" << 1 << 
+    "#" << false<< 60 << 1 << false << 2500 << false << 0;
+    // test leave
+    //QTest::newRow("sisth") << "Test GetInKey" << 1 << 
+    //    "" << false << 60 << 1 << false << 2500 << true << 0;
+    qDebug("Ut_CSatUiObserver::testGetInkey_data <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_CSatUiObserver::testGetInkey
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_CSatUiObserver::testGetInkey()
+{
+    qDebug("Ut_CSatUiObserver::testGetInkey >");
+    QVERIFY(mSatObserver);
+    QFETCH(QString, text);
+    QFETCH(int, characterSet);
+    QFETCH(QString, input);
+    QFETCH(bool, isHelpIsAvailable);
+    QFETCH(int, iconIdIdentifier);
+    QFETCH(int, iconIdQualifier);
+    QFETCH(bool, isRequestedIconDisplayed);
+    QFETCH(int, duration);
+    QFETCH(bool, isImmediateDigitResponse);
+    QFETCH(int, expectValue);
+
+    // text
+    HBufC* hText = HBufC::New(text.length());
+    TPtr aText( hText->Des() );
+    aText.Copy( text.utf16() );
+    // aCharacterSet
+    TSatCharacterSet aCharacterSet = static_cast<TSatCharacterSet>(characterSet);
+    // aInput
+    TBuf<1> tInput = input.utf16();
+    TChar aInput(tInput[0]);
+    // aHelpIsAvailable
+    TBool aHelpIsAvailable(isHelpIsAvailable);
+    // aIconId
+    TSatIconId aIconId;
+    aIconId.iIdentifier = iconIdIdentifier;
+    aIconId.iIconQualifier = static_cast<TSatIconQualifier>(iconIdQualifier);
+    // aRequestedIconDisplayed
+    TBool aRequestedIconDisplayed(isRequestedIconDisplayed);
+    // aDuration
+    TUint aDuration= static_cast<TUint>(duration);
+    // aRequestedIconDisplayed
+    //TBool aImmediateDigitResponse(isImmediateDigitResponse);
+
+    TSatUiResponse result(ESatSuccess);
+    QT_TRAP_THROWING( result = mSatObserver->GetInkeyL(
+                              aText, 
+                              aCharacterSet,
+                              aInput,
+                              aHelpIsAvailable,
+                              aIconId,
+                              aRequestedIconDisplayed,
+                              aDuration,
+                              isImmediateDigitResponse
+                              ));
+    delete hText;
+    hText = 0;
+    TSatUiResponse exValue = static_cast<TSatUiResponse>(expectValue);
+    QCOMPARE(exValue, result);
+
+    qDebug("Ut_CSatUiObserver::testGetInkey <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_CSatUiObserver::testGetInput_data
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_CSatUiObserver::testGetInput_data()
+{
+    qDebug("Ut_CSatUiObserver::testGetInput_data >");
+    QTest::addColumn<QString>("text");
+    QTest::addColumn<int>("characterSet");//enum 0~3
+    QTest::addColumn<QString>("input");
+    QTest::addColumn<int>("minLength");
+    QTest::addColumn<int>("maxLength");
+    QTest::addColumn<bool>("isHideInput");
+    QTest::addColumn<bool>("isHelpIsAvailable");
+    QTest::addColumn<int>("iconIdIdentifier");
+    QTest::addColumn<int>("iconIdQualifier");//enum 0~3
+    QTest::addColumn<bool>("isRequestedIconDisplayed");
+    QTest::addColumn<int>("expectValue");
+    // test characterSet ESatCharSmsDefaultAlphabet
+    QTest::newRow("first") << "Test GetInput" << 1 << 
+        "get input" << 1 << 5 << false << false <<60 << 1 << true << 0;
+    // test iconIdQualifier ESatSelfExplanatory
+    QTest::newRow("second") << "Test GetInput" << 0 << 
+      "get input" << 1 << 5 << false << false <<60 << 2 << true << 0;
+    // test leave
+    //QTest::newRow("third") << "Test GetInput" << 0 << 
+    //  "" << 1 << 5 << false << false <<60 << 2 << true << 0;
+    qDebug("Ut_CSatUiObserver::testGetInput_data <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_CSatUiObserver::testGetInput
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_CSatUiObserver::testGetInput()
+{
+    qDebug("Ut_CSatUiObserver::testGetInput >");
+    QVERIFY(mSatObserver);
+    QFETCH(QString, text);
+    QFETCH(int, characterSet);
+    QFETCH(QString, input);
+    QFETCH(int, minLength);
+    QFETCH(int, maxLength);
+    QFETCH(bool, isHideInput);
+    QFETCH(bool, isHelpIsAvailable);
+    QFETCH(int, iconIdIdentifier);
+    QFETCH(int, iconIdQualifier);
+    QFETCH(bool, isRequestedIconDisplayed);
+    QFETCH(int, expectValue);
+
+    // text
+    HBufC* hText = HBufC::New(text.length());
+    TPtr aText( hText->Des() );
+    aText.Copy( text.utf16() );
+    // aCharacterSet
+    TSatCharacterSet aCharacterSet = static_cast<TSatCharacterSet>(characterSet);
+    // aInput
+    HBufC* hInput = HBufC::New(input.length());
+    TPtr aInput( hInput->Des() );
+    aInput.Copy( input.utf16() );
+    // aIconId
+    TSatIconId aIconId;
+    aIconId.iIdentifier = iconIdIdentifier;
+    aIconId.iIconQualifier = static_cast<TSatIconQualifier>(iconIdQualifier);
+    // aRequestedIconDisplayed
+    TBool aRequestedIconDisplayed(isRequestedIconDisplayed);
+
+    TSatUiResponse result(ESatSuccess);
+    QT_TRAP_THROWING( result = mSatObserver->GetInputL(
+                              aText, 
+                              aCharacterSet,
+                              aInput,
+                              minLength,
+                              maxLength,
+                              isHideInput,
+                              isHelpIsAvailable,
+                              aIconId,
+                              aRequestedIconDisplayed
+                              ));
+    delete hText;
+    hText = 0;
+    delete hInput;
+    hInput = 0;
+    TSatUiResponse exValue = static_cast<TSatUiResponse>(expectValue);
+    QCOMPARE(exValue, result);
+    qDebug("Ut_CSatUiObserver::testGetInput <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_CSatUiObserver::testConfirmCommand_data
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_CSatUiObserver::testConfirmCommand_data()
+{
+    qDebug("Ut_CSatUiObserver::testConfirmCommand_data >");
+    QTest::addColumn<int>("commandId");// enum 0~6
+    QTest::addColumn<int>("alphaIdStatus");
+    QTest::addColumn<QString>("text");
+    QTest::addColumn<QString>("additionalText");
+    QTest::addColumn<bool>("isctionAccepted");
+    QTest::addColumn<int>("iconIdIdentifier");
+    QTest::addColumn<int>("iconIdQualifier");//enum 0~3
+    QTest::addColumn<bool>("isRequestedIconDisplayed");
+    QTest::addColumn<bool>("isterminatedByUser");
+    // test commandId ESatSSendSmQuery
+    QTest::newRow("first") << 0 << 1 << "ConfirmCommand SendSm" 
+        << "SendSm" <<false << 60 << 1 << false <<false;
+    // test commandId ESatSSendSsQuery
+    QTest::newRow("second") << 1 << 1 << "ConfirmCommand SendSs" 
+        << "SendSs" <<false << 60 << 1 << false <<false;
+    // test commandId ESatSSendUssdQuery
+    QTest::newRow("third") << 2 << 1 << "ConfirmCommand SendUssd" 
+        << "SendUssd" <<false << 60 << 1 << false <<false;
+    // test commandId ESatSRefreshQuery
+    QTest::newRow("fourth") << 3 << 1 << "ConfirmCommand Refresh" 
+        << "First test case" <<false << 60 << 1 << false <<false;
+    // test commandId ESatSLaunchBrowserQuery
+    QTest::newRow("fifth") << 4 << 1 << "ConfirmCommand LaunchBrowser" 
+        << "LaunchBrowser" <<false << 60 << 1 << false <<false;
+    // test commandId ESatOpenChannelQuery
+    QTest::newRow("sixth") << 5 << 1 << "ConfirmCommand OpenChannel" 
+        << "OpenChanne" <<false << 60 << 1 << false <<false;
+    // test commandId ESatSSetUpCallQuery
+    QTest::newRow("seventh") << 6 << 1 << "ConfirmCommand SetUpCall" 
+        << "SetUpCall" <<false << 60 << 1 << false <<false;
+    // test commandId ESatSelfExplanatory
+    QTest::newRow("eighth") << 0 << 1 << "ConfirmCommand SendSm" 
+        << "SendSm SelfExplanatory" <<false << 60 << 2 << true <<false;
+
+    qDebug("Ut_CSatUiObserver::testConfirmCommand_data <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_CSatUiObserver::testConfirmCommand
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_CSatUiObserver::testConfirmCommand()
+{
+    qDebug("Ut_CSatUiObserver::testConfirmCommand >");
+    QVERIFY(mSatObserver);
+    QFETCH(int, commandId);
+    QFETCH(int, alphaIdStatus);
+    QFETCH(QString, text);
+    QFETCH(QString, additionalText);
+    QFETCH(bool, isctionAccepted);
+    QFETCH(int, iconIdIdentifier);
+    QFETCH(int, iconIdQualifier);
+    QFETCH(bool, isRequestedIconDisplayed);
+    QFETCH(bool, isterminatedByUser);
+
+    // aCharacterSet
+    TSatSQueryCommand aCommandId = static_cast<TSatSQueryCommand>(commandId);
+    // aAlphaIdStatus
+    TSatAlphaIdStatus aAlphaIdStatus = static_cast<TSatAlphaIdStatus>(alphaIdStatus);
+    // text
+    HBufC* hText = HBufC::New(text.length());
+    TPtr aText( hText->Des() );
+    aText.Copy( text.utf16() );
+    // aAdditionalText
+    HBufC* hAdditionalText = HBufC::New(additionalText.length());
+    TPtr aAdditionalText( hAdditionalText->Des() );
+    aAdditionalText.Copy( additionalText.utf16() );
+    // aActionAccepted
+    TBool aActionAccepted(isctionAccepted);
+    // aIconId
+    TSatIconId aIconId;
+    aIconId.iIdentifier = iconIdIdentifier;
+    aIconId.iIconQualifier = static_cast<TSatIconQualifier>(iconIdQualifier);
+    // aRequestedIconDisplayed
+    TBool aRequestedIconDisplayed(isRequestedIconDisplayed);
+    // aRequestedIconDisplayed
+    TBool aTerminatedByUser(isterminatedByUser);
+
+    mSatObserver->ConfirmCommand(
+                              aCommandId,
+                              aAlphaIdStatus,
+                              aText, 
+                              aAdditionalText,
+                              aActionAccepted,
+                              aIconId,
+                              aRequestedIconDisplayed,
+                              aTerminatedByUser
+                              );
+    delete hText;
+    hText = 0;
+    delete hAdditionalText;
+    hAdditionalText = 0;
+    qDebug("Ut_CSatUiObserver::testConfirmCommand <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_CSatUiObserver::testNotification_data
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_CSatUiObserver::testNotification_data()
+{
+    qDebug("Ut_CSatUiObserver::testNotification_data >");
+    QTest::addColumn<int>("commandId");// enum 0~6
+    QTest::addColumn<int>("alphaIdStatus");
+    QTest::addColumn<QString>("text");
+    QTest::addColumn<int>("iconIdIdentifier");
+    QTest::addColumn<int>("iconIdQualifier");//enum 0~3
+    QTest::addColumn<bool>("isRequestedIconDisplayed");
+    QTest::addColumn<int>("controlResult");
+ 
+    // test commandId ESatSSendDataNotify    
+    QTest::newRow("Senddata_0id") << 0 << 0 << "Send data notify" 
+    << 2 << 0 << false <<0;
+    // test commandId ESatSSendDataNotify alpha id not null but string length is zero   
+    QTest::newRow("Senddata_1id") << 0 << 1 << "" 
+    << 2 << 0 << false <<0;
+    QTest::newRow("Senddata_2id") << 0 << 2 << "Send data notify AlphaIdNotProvided" 
+    << 2 << 0 << false <<0;
+    // test commandId ESatSReceiveDataNotify
+    QTest::newRow("Recievedata_0id") << 1 << 0 << "Recieve data notify" 
+    << 2 << 3 << false <<0;
+    QTest::newRow("Recievedata_1id") << 1 << 1 << "Recieve data notify" 
+    << 2 << 3 << false <<0;
+    QTest::newRow("Recievedata_2id") << 1 << 2 << "Recieve data notify AlphaIdNotProvided" 
+    << 2 << 3 << false <<0;
+    // test commandId ESatSCloseChannelNotify
+    QTest::newRow("CloseChannel_0id") << 2 << 0 << "Close channel notify" 
+    << 2 << 3 << false <<0;
+    QTest::newRow("CloseChannel_1id") << 2 << 1 << "" 
+    << 2 << 3 << false <<0;
+    QTest::newRow("CloseChannel_2id") << 2 << 2 << "Close channel notify AlphaIdNotProvided" 
+    << 2 << 3 << false <<0;
+    // test commandId ESatSMoSmControlNotify
+    QTest::newRow("MoSm_0id") << 3 << 0 << "SM control notify" 
+    << 2 << 0 << false <<0;
+    QTest::newRow("MoSm_1id") << 3 << 1 << "0" 
+    << 2 << 0 << false <<0;
+    QTest::newRow("MoSm_2id") << 3 << 2 << "SM control notify AlphaIdNotProvided" 
+    << 2 << 0 << false <<0;
+    // test commandId ESatSCallControlNotify
+    QTest::newRow("CallControl_0id") << 4 << 0 << "Call control notify" 
+    << 2 << 1 << false <<0;
+    QTest::newRow("CallControl_1id") << 4 << 1 << ""
+    << 2 << 1 << false <<0;
+    QTest::newRow("CallControl_2id") << 4 << 2 << "Call control notify AlphaIdNotProvided" 
+    << 2 << 1 << false <<0;
+    // test commandId ESatSSendSsNotify
+    QTest::newRow("SendSs_0id") << 5 << 0 << "Send SS notify" 
+    << 2 << 2 << false <<0;
+    QTest::newRow("SendSs_1id") << 5 << 1 << "" 
+    << 2 << 2 << false <<0;
+    QTest::newRow("SendSs_2id") << 5 << 2 << "Send SS notify AlphaIdNotProvided" 
+    << 2 << 2 << false <<0;
+    // test commandId ESatSSendUssdNotify
+    QTest::newRow("SendUssd_0id") << 6 << 0 << "Send Ussd notify" 
+    << 2 << 3 << false <<0;
+    // test commandId ESatSSendUssdNotify
+    QTest::newRow("SendUssd_1id") << 6 << 1 << "" 
+    << 2 << 3 << false <<0;
+    // test commandId ESatSSendUssdNotify
+    QTest::newRow("SendUssd_2id") << 6 << 2 << "Send Ussd notify AlphaIdNotProvided" 
+    << 2 << 3 << false <<0;
+    // test commandId ESatSSendDtmfNotify
+    QTest::newRow("SendDtmf_0id") << 7 << 0 << "Send dtmf notify" 
+    << 2 << 3 << false <<0;
+    QTest::newRow("SendDtmf_1id") << 7 << 1 << "Send dtmf notify" 
+    << 2 << 3 << false <<0;
+    QTest::newRow("SendDtmf_2id") << 7 << 2 << "Send dtmf notify AlphaIdNotProvided" 
+    << 2 << 3 << false <<0;
+    // test commandId ESatSSendSmsNotify
+    QTest::newRow("SendSm_0id") << 8 << 0 << "SendSm notify" 
+    << 2 << 2 << false <<0;
+    QTest::newRow("SendSm_1id") << 8 << 1 << "SendSm notify" 
+    << 2 << 2 << false <<0;
+    QTest::newRow("SendSm_2id") << 8 << 2 << "SendSm notify AlphaIdNotProvided" 
+    << 2 << 2 << false <<0;
+    qDebug("Ut_CSatUiObserver::testNotification_data <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_CSatUiObserver::testNotification
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_CSatUiObserver::testNotification()
+{
+    qDebug("Ut_CSatUiObserver::testNotification >");
+    QVERIFY(mSatObserver);
+    QFETCH(int, commandId);
+    QFETCH(int, alphaIdStatus);
+    QFETCH(QString, text);
+    QFETCH(int, iconIdIdentifier);
+    QFETCH(int, iconIdQualifier);
+    QFETCH(bool, isRequestedIconDisplayed);
+    QFETCH(int, controlResult);
+
+    // aCommandId
+    TSatSNotifyCommand aCommandId = static_cast<TSatSNotifyCommand>(commandId);
+    // aAlphaIdStatus
+    TSatAlphaIdStatus aAlphaIdStatus = static_cast<TSatAlphaIdStatus>(alphaIdStatus);
+    // text
+    HBufC* hText = HBufC::New(text.length());
+    TPtr aText( hText->Des() );
+    aText.Copy( text.utf16() );
+
+    // aIconId
+    TSatIconId aIconId;
+    aIconId.iIdentifier = iconIdIdentifier;
+    aIconId.iIconQualifier = static_cast<TSatIconQualifier>(iconIdQualifier);
+    // aRequestedIconDisplayed
+    TBool aRequestedIconDisplayed(isRequestedIconDisplayed);
+    // aRequestedIconDisplayed
+    TSatControlResult aControlResult = static_cast<TSatControlResult>(controlResult);
+
+    mSatObserver->Notification(
+                              aCommandId,
+                              aAlphaIdStatus,
+                              aText, 
+                              aIconId,
+                              aRequestedIconDisplayed,
+                              aControlResult
+                              );
+    delete hText;
+    hText = 0;
+    qDebug("Ut_CSatUiObserver::testNotification <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_CSatUiObserver::testEventNotification_data
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_CSatUiObserver::testEventNotification_data()
+{
+    qDebug("Ut_CSatUiObserver::testEventNotification_data >");
+    QTest::addColumn<int>("eventId");// enum 0~6
+    
+    // test eventId ESatSRefreshStartEvent    
+    QTest::newRow("RefreshStartEvent") << 0 ;
+    // test eventId ESatSRefreshEndEvent
+    QTest::newRow("RefreshEndEvent") << 1;
+    // test eventId ESatSSmEndEvent
+    QTest::newRow("SSmEndEvent") << 2;
+    // test eventId ESatSClearScreenEvent
+    QTest::newRow("ClearScreenEvent") << 3;
+    // test eventId ESatSCloseSatUiAppEvent
+    QTest::newRow("CloseSatUiAppEvent") << 4;
+    // test eventId ESatSsEndEvent
+    QTest::newRow("SsEndEvent") << 5;
+    // test eventId ESatSsErrorEvent
+    QTest::newRow("SsErrorEvent") << 6;
+    // test eventId ESatSDtmfEndEvent
+    QTest::newRow("DtmfEndEvent") << 7;
+
+    qDebug("Ut_CSatUiObserver::testEventNotification_data <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_CSatUiObserver::testEventNotification
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_CSatUiObserver::testEventNotification()
+{
+    qDebug("Ut_CSatUiObserver::testEventNotification >");
+    QVERIFY(mSatObserver);
+    QFETCH(int, eventId);
+
+    TSatSEvent aEventId = static_cast<TSatSEvent>(eventId);
+    TSatSEventStatus aEventStatus = ESatEventCompleteOk;
+    mSatObserver->EventNotification(aEventId, aEventStatus, 0);
+    qDebug("Ut_CSatUiObserver::testEventNotification <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_CSatUiObserver::testSelectItem_data
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_CSatUiObserver::testSelectItem_data()
+{
+    qDebug("Ut_CSatUiObserver::testSelectItem_data >");
+    QTest::addColumn<QString>("text");
+    QTest::addColumn<QStringList>("selectItemItem");
+    QTest::addColumn<int>("defaultItem");
+    QTest::addColumn<bool>("isHelpIsAvailable");
+    QTest::addColumn<int>("iconIdIdentifier");
+    QTest::addColumn<int>("iconIdQualifier");//enum 0~3
+    QTest::addColumn<int>("iconListQualifier");
+    QTest::addColumn<int>("expectReturnValue");
+
+    QStringList testSelectItem_1_items;
+    testSelectItem_1_items 
+    << "Select Item 1" 
+    << "Select Item 2" 
+    << "Select Item 3" 
+    << "Select Item 4" 
+    << "Select Item 5";
+
+    QTest::newRow("first") << "Make a Choice" << testSelectItem_1_items << 
+        0 << false << 80 << 1 << 2 << 0;
+
+    qDebug("Ut_CSatUiObserver::testSelectItem_data <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_CSatUiObserver::testSetUpMenu
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_CSatUiObserver::testSelectItem()
+{
+    qDebug("Ut_CSatUiObserver::testSelectItem >");
+    QVERIFY(mSatObserver);
+    QFETCH(QString, text);
+    QFETCH(QStringList, selectItemItem);
+    QFETCH(int, defaultItem);
+    QFETCH(bool, isHelpIsAvailable);
+    QFETCH(int, iconIdIdentifier);
+    QFETCH(int, iconIdQualifier);
+    QFETCH(int, iconListQualifier);
+    QFETCH(int, expectReturnValue);
+
+    // aText
+    HBufC* hText = HBufC::New(text.length());
+    TPtr aText( hText->Des() );
+    aText.Copy( text.utf16() );
+    // aMenuItems
+    TBuf<128> menuItem;
+    CDesCArrayFlat* aMenuItems = new CDesCArrayFlat(4);
+    QVERIFY(aMenuItems);
+    for (int i = 0; i< selectItemItem.count(); i++) {
+        menuItem = selectItemItem.at(i).utf16();
+        QT_TRAP_THROWING(aMenuItems->AppendL(menuItem));
+    }
+    
+    TUint8 aSelectedItem( 1 );
+    // aIconId
+    TSatIconId aIconId;
+    aIconId.iIdentifier = iconIdIdentifier;
+    aIconId.iIconQualifier = static_cast<TSatIconQualifier>(iconIdQualifier);
+    // aMenuItemNextActions
+    CArrayFixFlat<TSatAction>* aMenuItemNextActions = 
+          new CArrayFixFlat<TSatAction> (4);
+     QVERIFY(aMenuItemNextActions);
+    // Temp test
+     QT_TRAP_THROWING(aMenuItemNextActions->AppendL(ESatSelectItemAction));
+    // aMenuIcons
+    CArrayFixFlat<TInt>* aMenuIcons = new CArrayFixFlat<TInt>(2);
+    QVERIFY(aMenuIcons);
+    // Temp test
+    QT_TRAP_THROWING(aMenuIcons->AppendL(1));
+    // aIconListQualifier
+    TSatIconQualifier aIconListQualifier = 
+        static_cast<TSatIconQualifier>(iconListQualifier);
+    // TSatSelectionPreference, useless
+    TSatSelectionPreference aSelectionPreference(ESatNoSelectionPreference);
+    TBool aRequestIconDisplayed (EFalse);
+    
+    TSatUiResponse result(ESatSuccess);
+    QT_TRAP_THROWING(result = mSatObserver->SelectItemL(
+                              aText,
+                              *aMenuItems,
+                              aMenuItemNextActions,
+                              defaultItem,
+                              aSelectedItem,
+                              isHelpIsAvailable,
+                              aIconId,
+                              aMenuIcons,
+                              aIconListQualifier,
+                              aRequestIconDisplayed,
+                              aSelectionPreference
+                              ));
+    TSatUiResponse exValue = static_cast<TSatUiResponse>(expectReturnValue);
+    QCOMPARE(exValue, result);
+
+    delete hText;
+    hText = 0;
+    delete aMenuItems;
+    aMenuItems = 0;
+    delete aMenuItemNextActions;
+    aMenuItemNextActions = 0;
+    delete aMenuIcons;
+    aMenuIcons = 0;
+    qDebug("Ut_CSatUiObserver::testSelectItem <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_CSatUiObserver::testSetUpMenu
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_CSatUiObserver::testPlayTone_data()
+{
+    qDebug("Ut_CSatUiObserver::testPlayTone_data >");
+    QTest::addColumn<QString>("text");//enum 0~3
+    QTest::addColumn<int>("satTone");
+    QTest::addColumn<int>("duration");
+    QTest::addColumn<int>("iconIdIdentifier");
+    QTest::addColumn<int>("iconIdQualifier");//enum 0~3
+    QTest::addColumn<bool>("isRequestedIconDisplayed");
+    QTest::addColumn<int>("expectReturnValue");
+    QTest::newRow("Response_Failure") << "PlayStandardTone" << 100 << 
+        0 << 80 << 1 << false << -1;
+    QTest::newRow("ToneNotSet") << "PlayStandardTone" << -1 << 
+        0 << 80<< 0 << false << 0;
+    QTest::newRow("DialTone_0") << "PlayStandardTone" << 1 << 
+        0 << 80<< 1 << false << 0;
+    QTest::newRow("DialTone_2000") << "PlayStandardTone" << 1 << 
+        2000 << 80 << 2 << false << 0;
+    QTest::newRow("DialTone_true") << "PlayStandardTone" << 1 << 
+        2000 << 80 << 3 << true << 0;
+    QTest::newRow("Busy") << "PlayStandardTone" << 2 << 
+        2000 << 80 << 3 << false << 0;
+    QTest::newRow("Congestion") << "PlayStandardTone" << 3 << 
+        25000 << 80 << 3 << false << 0;
+    QTest::newRow("Congestion_0") << "PlayStandardTone" << 3 << 
+        0 << 80 << 3 << false << 0;
+    QTest::newRow("Acknowledge ") << "PlayStandardTone" << 4 << 
+        25000 << 80 << 3 << false << 0;
+    QTest::newRow("Acknowledge_0") << "PlayStandardTone" << 4 << 
+        0 << 80 << 3 << false << 0;
+    QTest::newRow("CallDropped") << "PlayStandardTone" << 5 << 
+        25000 << 80 << 1 << false << 0;
+    QTest::newRow("CallDropped_0") << "PlayStandardTone" << 5 << 
+        0 << 80 << 1 << false << 0;
+    QTest::newRow("SpecialInfo") << "PlayStandardTone" << 6 << 
+        25000 << 80 << 1 << false << 0;
+    QTest::newRow("SpecialInfo_0") << "PlayStandardTone" << 6 << 
+        0 << 80 << 1 << false << 0;
+    QTest::newRow("WaitingTone") << "PlayStandardTone" << 7 << 
+        25000 << 80 << 1 << false << 0;
+    QTest::newRow("WaitingTone_0") << "PlayStandardTone" << 7 << 
+        0 << 80 << 1 << false << 0;
+    QTest::newRow("RingingTone") << "PlayStandardTone" << 8 << 
+        25000 << 80 << 1 << false << 0;
+    QTest::newRow("RingingTone_0") << "PlayStandardTone" << 8 << 
+        0 << 80 << 1 << false << 0;
+    QTest::newRow("GeneralBeep") << "PlayStandardTone" << 16 << 
+        25000 << 80 << 1 << false << 0;
+    QTest::newRow("GeneralBeep_0") << "PlayStandardTone" << 16 << 
+        0 << 80 << 1 << false << 0;
+    QTest::newRow("PositiveTone") << "PlayStandardTone" << 17 << 
+        25000 << 80 << 1 << false << 0;
+    QTest::newRow("PositiveTone_0") << "PlayStandardTone" << 17 << 
+        0 << 80 << 1 << false << 0;
+    QTest::newRow("NegativeTone") << "PlayStandardTone" << 18 << 
+        25000 << 80 << 1 << false << 0;
+    QTest::newRow("NegativeTone_0") << "PlayStandardTone" << 18 << 
+        0 << 80 << 1 << false << 0;
+    QTest::newRow("Speech") << "PlayStandardTone" << 19 << 
+        25000 << 80 << 1 << false << 0;
+    QTest::newRow("Speech_0") << "PlayStandardTone" << 19 << 
+        25000 << 80 << 1 << false << 0;
+    QTest::newRow("Sms") << "PlayStandardTone" << 20 << 
+        25000 << 80 << 1 << false << 0;
+    QTest::newRow("Sms_0") << "PlayStandardTone" << 20 << 
+        0 << 80 << 1 << false << 0;
+    QTest::newRow("Busy_0") << "PlayStandardTone" << 2 << 
+        0 << 80 << 3 << false << 0;
+    qDebug("Ut_CSatUiObserver::testPlayTone_data <");
+}
+
+
+// -----------------------------------------------------------------------------
+// Ut_CSatUiObserver::testSetUpMenu
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_CSatUiObserver::testPlayTone()
+{
+    qDebug("Ut_CSatUiObserver::testPlayTone >");
+    QVERIFY(mSatObserver);
+    QFETCH(QString, text);
+    QFETCH(int, duration);
+    QFETCH(int, satTone);
+    QFETCH(int, iconIdIdentifier);
+    QFETCH(int, iconIdQualifier);
+    QFETCH(bool, isRequestedIconDisplayed);
+    QFETCH(int, expectReturnValue);
+    qDebug("Ut_CSatUiObserver::testPlayTone after fetch");
+    // text
+    HBufC* hText = HBufC::New(text.length());
+    TPtr aText( hText->Des() );
+    aText.Copy( text.utf16() );
+    // aTone
+    TSatTone aTone = static_cast<TSatTone>(satTone);
+    // aDuration
+    TUint aDuration= static_cast<TUint>(duration);
+    // aIconId
+    TSatIconId aIconId;
+    aIconId.iIdentifier = iconIdIdentifier;
+    aIconId.iIconQualifier = static_cast<TSatIconQualifier>(iconIdQualifier);
+    // aRequestedIconDisplayed
+    TBool aRequestedIconDisplayed(isRequestedIconDisplayed);
+    qDebug("Ut_CSatUiObserver::testPlayTone call observer");
+    TSatUiResponse result(ESatSuccess);
+    result = mSatObserver->PlayTone(
+                              aText,
+                              aTone,
+                              aDuration,
+                              aIconId,
+                              aRequestedIconDisplayed
+                              );
+    TSatUiResponse exValue = static_cast<TSatUiResponse>(expectReturnValue);
+    QCOMPARE(exValue, result);
+    delete hText;
+    hText = 0;
+    qDebug("Ut_CSatUiObserver::testPlayTone <");
+}
+
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/satui/satapp/tsrc/ut_satapp/src/ut_playtoneprovider.cpp	Mon May 03 13:01:45 2010 +0300
@@ -0,0 +1,287 @@
+/*
+* Copyright (c) 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: Unit test for satappmainhandler
+*
+*/
+
+
+#include <msatuiobserver.h>
+#include "ut_playtoneprovider.h"
+//test class
+#include "satappplaytoneprovider.h"
+
+// -----------------------------------------------------------------------------
+// Ut_SatAppPlayToneProvider::Ut_SatAppPlayToneProvider
+// -----------------------------------------------------------------------------
+//
+Ut_SatAppPlayToneProvider::Ut_SatAppPlayToneProvider(QObject *parent):QObject(parent) 
+{
+    qDebug("Ut_SatAppPlayToneProvider::Ut_SatAppPlayToneProvider >");
+    qDebug("Ut_SatAppPlayToneProvider::Ut_SatAppPlayToneProvider <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_SatAppPlayToneProvider::~Ut_SatAppPlayToneProvider
+// -----------------------------------------------------------------------------
+//
+Ut_SatAppPlayToneProvider::~Ut_SatAppPlayToneProvider()
+{
+    qDebug("Ut_SatAppPlayToneProvider::~Ut_SatAppPlayToneProvider >");
+    qDebug("Ut_SatAppPlayToneProvider::~Ut_SatAppPlayToneProvider <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_SatAppPlayToneProvider::initTestCase
+// QTestLib cleanup method, called after the last testfunction .
+// -----------------------------------------------------------------------------
+void Ut_SatAppPlayToneProvider::initTestCase()
+{
+    qDebug("Ut_SatAppPlayToneProvider::initTestCase >");
+    qDebug("Ut_SatAppPlayToneProvider::initTestCase <");
+}
+
+
+// -----------------------------------------------------------------------------
+// Ut_SatAppPlayToneProvider::cleanupTestCase
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_SatAppPlayToneProvider::cleanupTestCase()
+{
+    qDebug("Ut_SatAppPlayToneProvider::cleanupTestCase >");
+    if (mPlayTone) {
+        qDebug("Ut_SatAppPlayToneProvider::cleanupTestCase delete mPlayTone...");
+        delete mPlayTone;
+        mPlayTone = 0;
+    }
+    qDebug("Ut_SatAppPlayToneProvider::cleanupTestCase <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_SatAppPlayToneProvider::testCreatePlayTone
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_SatAppPlayToneProvider::testCreatePlayTone()
+{
+    qDebug("Ut_SatAppPlayToneProvider::testCreatePlayTone >");
+    mPlayTone = new SatAppPlayToneProvider();
+    QVERIFY(mPlayTone); 
+    qDebug("Ut_SatAppPlayToneProvider::testCreatePlayTone <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_SatAppPlayToneProvider::testPlayStandardTone_data
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_SatAppPlayToneProvider::testPlayStandardTone_data()
+{
+    qDebug("Ut_SatAppPlayToneProvider::testPlayStandardTone_data >");
+    QTest::addColumn<QString>("text");//enum 0~3
+    QTest::addColumn<int>("duration");
+    QTest::addColumn<bool>("isRequestedIconDisplayed");
+    QTest::addColumn<int>("expectReturnValue");
+    // test duration 0
+    QTest::newRow("duration_0") << "Play Standard tone" << 0 << false << 0;
+    QTest::newRow("duration") << "Play Standard tone" << 1000000 << false << 0;
+    QTest::newRow("textnull") << "" << 10000000 << false << 0;
+    qDebug("Ut_SatAppPlayToneProvider::testPlayStandardTone_data <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_SatAppPlayToneProvider::testPlayStandardTone
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_SatAppPlayToneProvider::testPlayStandardTone()
+{
+    qDebug("Ut_SatAppPlayToneProvider::testPlayStandardTone >");
+    QVERIFY(mPlayTone);
+    QFETCH(QString, text);
+    QFETCH(int, duration);
+    QFETCH(bool, isRequestedIconDisplayed);
+    QFETCH(int, expectReturnValue);
+    qDebug("Ut_SatAppPlayToneProvider::testPlayTone after fetch");
+    // text
+    HBufC* hText = HBufC::New(text.length());
+    TPtr aText( hText->Des() );
+    aText.Copy( text.utf16() );
+    // text
+    _LIT( KPlayToneSequence, "Play tone sequence");
+    TBuf8<32> aSequence;
+    aSequence.Copy(KPlayToneSequence);
+
+    // aDuration
+    TUint aDuration= static_cast<TUint>(duration);
+    CFbsBitmap*  bitmap(NULL);
+    qDebug("Ut_SatAppPlayToneProvider::testPlayStandardTone call");
+    TSatUiResponse result(ESatSuccess);
+    TRAPD(err, result = mPlayTone->PlayStandardToneL(
+            aText,
+            aSequence,
+            aDuration,
+            bitmap,
+            isRequestedIconDisplayed));
+    QCOMPARE(KErrNone, err);
+    TSatUiResponse exValue = static_cast<TSatUiResponse>(expectReturnValue);
+    QCOMPARE(exValue, result);
+    delete hText;
+    qDebug("Ut_SatAppPlayToneProvider::testPlayStandardTone <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_SatAppPlayToneProvider::testPlayUserSelectedTone_data
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_SatAppPlayToneProvider::testPlayUserSelectedTone_data()
+{
+    qDebug("Ut_SatAppPlayToneProvider::testPlayUserSelectedTone_data >");
+    QTest::addColumn<QString>("text");//enum 0~3
+    QTest::addColumn<int>("duration");
+    QTest::addColumn<int>("satTone");
+    QTest::addColumn<bool>("isaSelfExplanatory");
+    QTest::addColumn<int>("expectReturnValue");
+    //QTest::newRow("duration_0") << "Play UserSelectedTone" << 0 << 1 <<false << 0;
+    QTest::newRow("duration") << "Play UserSelectedTone" << 1000000 << 2 << false << 0;
+    QTest::newRow("true") << "Play UserSelectedTone" << 20000000 << 4 << true << 0;
+    QTest::newRow("textnull") << "" << 10000000 << 3 << true << 0;
+    qDebug("Ut_SatAppPlayToneProvider::testPlayUserSelectedTone_data <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_SatAppPlayToneProvider::testPlayUserSelectedTone
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_SatAppPlayToneProvider::testPlayUserSelectedTone()
+{
+    qDebug("Ut_SatAppPlayToneProvider::testPlayUserSelectedTone >");
+    QVERIFY(mPlayTone);
+    QFETCH(QString, text);
+    QFETCH(int, duration);
+    QFETCH(int, satTone);
+    QFETCH(bool, isaSelfExplanatory);
+    QFETCH(int, expectReturnValue);
+    qDebug("Ut_SatAppPlayToneProvider::testPlayTone after fetch");
+    // text
+    HBufC* hText = HBufC::New(text.length());
+    TPtr aText( hText->Des() );
+    aText.Copy( text.utf16() );
+    // aTone
+    TSatTone aTone = static_cast<TSatTone>(satTone);
+    // aDuration
+    TUint aDuration= static_cast<TUint>(duration);
+    CFbsBitmap*  bitmap(NULL);
+    TBool aSelfExplanatory(isaSelfExplanatory);
+    TSatUiResponse result(ESatSuccess);
+    TRAPD(err, result = mPlayTone->PlayUserSelectedToneL(
+                        aText,
+                        aDuration,
+                        aTone,
+                        bitmap,
+                        aSelfExplanatory ));
+    QCOMPARE(KErrNone, err);
+    delete hText;
+    hText = 0;
+    TSatUiResponse exValue = static_cast<TSatUiResponse>(expectReturnValue);
+    QCOMPARE(exValue, result);
+    qDebug("Ut_SatAppPlayToneProvider::testPlayUserSelectedTone <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_SatAppPlayToneProvider::testPlayUserSelectedTone
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_SatAppPlayToneProvider::testCloseSatUI()
+{
+    qDebug("Ut_SatAppPlayToneProvider::closeSatUI >");
+    QVERIFY(mPlayTone);
+    mPlayTone->closeSatUI();
+    qDebug("Ut_SatAppPlayToneProvider::closeSatUI <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_SatAppPlayToneProvider::testPlayUserSelectedTone
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_SatAppPlayToneProvider::testClearScreen()
+{
+    qDebug("Ut_SatAppPlayToneProvider::clearScreen >");
+    QVERIFY(mPlayTone);
+    mPlayTone->clearScreen();
+    qDebug("Ut_SatAppPlayToneProvider::clearScreen <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_SatAppPlayToneProvider::testMapcPlayComplete_data
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_SatAppPlayToneProvider::testMapcPlayComplete_data()
+{
+    qDebug("Ut_SatAppPlayToneProvider::testMapcPlayComplete_data >");
+    QTest::addColumn<int>("error");
+    QTest::newRow("error_0") << 0;
+    QTest::newRow("error_-6") << -6;
+    qDebug("Ut_SatAppPlayToneProvider::testMapcPlayComplete_data <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_SatAppPlayToneProvider::testMapcPlayComplete
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_SatAppPlayToneProvider::testMapcPlayComplete()
+{
+    qDebug("Ut_SatAppPlayToneProvider::testMapcPlayComplete >");
+    QVERIFY(mPlayTone);
+    QFETCH(int, error);
+    mPlayTone->MapcPlayComplete(error);
+    qDebug("Ut_SatAppPlayToneProvider::testMapcPlayComplete <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_SatAppPlayToneProvider::testMapcInitComplete_data
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_SatAppPlayToneProvider::testMapcInitComplete_data()
+{
+    qDebug("Ut_SatAppPlayToneProvider::testMapcInitComplete_data >");
+    QTest::addColumn<int>("error");
+    QTest::newRow("error_0") << 0;
+    QTest::newRow("error_-6") << -6;
+    qDebug("Ut_SatAppPlayToneProvider::testMapcInitComplete_data <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_SatAppPlayToneProvider::testMapcInitComplete
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_SatAppPlayToneProvider::testMapcInitComplete()
+{
+    qDebug("Ut_SatAppPlayToneProvider::testMapcInitComplete >");
+    QVERIFY(mPlayTone);
+    QFETCH(int, error);
+    mPlayTone->MapcInitComplete(error, 0);
+    qDebug("Ut_SatAppPlayToneProvider::testMapcInitComplete <");
+}
+
+// End of file
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/satui/satapp/tsrc/ut_satapp/src/ut_satappeventhandler.cpp	Mon May 03 13:01:45 2010 +0300
@@ -0,0 +1,160 @@
+/*
+* Copyright (c) 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: Unit test for satappeventprovider
+*
+*/
+
+#include "ut_satappeventhandler.h"
+//test class
+#include "satappeventprovider.h"
+
+// -----------------------------------------------------------------------------
+// Ut_SatAppEventProvider::Ut_SatAppEventProvider
+// -----------------------------------------------------------------------------
+//
+Ut_SatAppEventProvider::Ut_SatAppEventProvider(QObject *parent):
+        QObject(parent), mEventHandler(0)
+{
+    qDebug("Ut_SatAppEventProvider::Ut_SatAppEventProvider >");
+    qDebug("Ut_SatAppEventProvider::Ut_SatAppEventProvider <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_SatAppEventProvider::~Ut_SatAppEventProvider
+// -----------------------------------------------------------------------------
+//
+Ut_SatAppEventProvider::~Ut_SatAppEventProvider()
+{
+    qDebug("Ut_SatAppEventProvider::~Ut_SatAppEventProvider >");
+    qDebug("Ut_SatAppEventProvider::~Ut_SatAppEventProvider <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_SatAppEventProvider::initTestCase
+// QTestLib cleanup method, called after the last testfunction .
+// -----------------------------------------------------------------------------
+void Ut_SatAppEventProvider::initTestCase()
+{
+    qDebug("Ut_SatAppEventProvider::initTestCase >");
+    qDebug("Ut_SatAppEventProvider::initTestCase <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_SatAppEventProvider::cleanupTestCase
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_SatAppEventProvider::cleanupTestCase()
+{
+    qDebug("Ut_SatAppEventProvider::cleanupTestCase >");
+    delete mEventHandler;
+    mEventHandler = 0;
+    qDebug("Ut_SatAppEventProvider::cleanupTestCase <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_SatAppEventProvider::testProfileState
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_SatAppEventProvider::testCreateEventHandler()
+{
+    qDebug("Ut_SatAppEventProvider::testCreateEventHandler >");
+    mEventHandler = new SatAppEventProvider;
+    QVERIFY(mEventHandler);
+    qDebug("Ut_SatAppEventProvider::testCreateEventHandler <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_SatAppEventProvider::testShowSsWaitNote_data
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_SatAppEventProvider::testShowSsWaitNote_data()
+{
+    qDebug("Ut_SatAppEventProvider::testShowSsWaitNote_data >");
+    QTest::addColumn<QString>("text");
+    QTest::addColumn<bool>("isSelfExplanatoryIcon");
+    QTest::newRow("first") << "Show Ss Wait note First!" << false;
+    QTest::newRow("second") << "Show Ss Wait note seconde!" << true;
+    QTest::newRow("third") << "" << false;
+    qDebug("Ut_SatAppEventProvider::testShowSsWaitNote_data <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_SatAppEventProvider::testProfileState
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_SatAppEventProvider::testShowSsWaitNote()
+{
+    qDebug("Ut_SatAppEventProvider::testShowSsWaitNote >");
+    QVERIFY(mEventHandler);
+    QFETCH(QString, text);
+    QFETCH(bool, isSelfExplanatoryIcon);
+    // text
+    HBufC* hText = HBufC::New(text.length());
+    TPtr aText( hText->Des() );
+    aText.Copy( text.utf16() );
+    CFbsBitmap* bitmap(NULL);
+    TRAPD(err, mEventHandler->ShowSsWaitNoteL(aText,bitmap,
+          isSelfExplanatoryIcon));
+    delete hText;
+    hText = 0;
+    QCOMPARE(err, KErrNone);
+    qDebug("Ut_SatAppEventProvider::testShowSsWaitNote <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_SatAppEventProvider::testProfileState
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_SatAppEventProvider:: testStopShowWaitNote()
+{
+    qDebug("Ut_SatAppEventProvider::testStopShowWaitNote >");
+    QVERIFY(mEventHandler);
+    mEventHandler->StopShowWaitNote();
+    qDebug("Ut_SatAppEventProvider::testStopShowWaitNote <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_SatAppEventProvider::ShowWaitNoteWithoutDelayL
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_SatAppEventProvider::testShowWaitNoteWithoutDelay()
+{
+    qDebug("Ut_SatAppEventProvider::testShowWaitNoteWithoutDelay >");
+    QVERIFY(mEventHandler);
+    TRAPD(err,mEventHandler->ShowWaitNoteWithoutDelayL());
+    QCOMPARE(err, KErrNone);
+    qDebug("Ut_SatAppEventProvider::testShowWaitNoteWithoutDelay <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_SatAppEventProvider::testShowSsErrorNote
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_SatAppEventProvider::testShowSsErrorNote()
+{
+    qDebug("Ut_SatAppEventProvider::testShowSsErrorNote >");
+    QVERIFY(mEventHandler);
+    TRAPD(err, mEventHandler->ShowSsErrorNoteL());
+    QCOMPARE(err, KErrNone);
+    qDebug("Ut_SatAppEventProvider::testShowSsErrorNote <");
+}
+    
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/satui/satapp/tsrc/ut_satapp/src/ut_satappmainhandler.cpp	Mon May 03 13:01:45 2010 +0300
@@ -0,0 +1,86 @@
+/*
+* Copyright (c) 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: Unit test for satappmainhandler
+*
+*/
+
+
+#include <hbmainwindow.h>
+#include "ut_satappmainhandler.h"
+//test class
+#include "satappmainhandler.h"
+
+// -----------------------------------------------------------------------------
+// Ut_SatAppMainHandler::Ut_SatAppMainHandler
+// -----------------------------------------------------------------------------
+//
+Ut_SatAppMainHandler::Ut_SatAppMainHandler(QObject *parent):QObject(parent) 
+{
+    qDebug("Ut_SatAppMainHandler::Ut_SatAppMainHandler >");
+    qDebug("Ut_SatAppMainHandler::Ut_SatAppMainHandler <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_SatAppMainHandler::~Ut_SatAppMainHandler
+// -----------------------------------------------------------------------------
+//
+Ut_SatAppMainHandler::~Ut_SatAppMainHandler()
+{
+    qDebug("Ut_SatAppMainHandler::~Ut_SatAppMainHandler >");
+    qDebug("Ut_SatAppMainHandler::~Ut_SatAppMainHandler <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_SatAppMainHandler::initTestCase
+// QTestLib cleanup method, called after the last testfunction .
+// -----------------------------------------------------------------------------
+void Ut_SatAppMainHandler::initTestCase()
+{
+    qDebug("Ut_SatAppMainHandler::initTestCase >");
+    qDebug("Ut_SatAppMainHandler::initTestCase <");
+}
+
+
+// -----------------------------------------------------------------------------
+// Ut_SatAppMainHandler::cleanupTestCase
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_SatAppMainHandler::cleanupTestCase()
+{
+    qDebug("Ut_SatAppMainHandler::cleanupTestCase >");
+    if (mMainHandler) {
+        qDebug("Ut_SatAppMainHandler::cleanupTestCase delete mMainHandler...");
+        delete mMainHandler;
+        mMainHandler = 0;
+    }
+    qDebug("Ut_SatAppMainHandler::cleanupTestCase <");
+}
+
+// -----------------------------------------------------------------------------
+// Ut_SatAppMainHandler::testProfileState
+// 
+// Connects to test object signal and verifies received data.
+// -----------------------------------------------------------------------------
+void Ut_SatAppMainHandler::testCreateMainHandler()
+{
+    qDebug("Ut_SatAppMainHandler::testProfileState >");
+    HbMainWindow* window = new HbMainWindow();
+    QVERIFY(window);
+    mMainHandler = new SatAppMainHandler(*window);
+    QVERIFY(mMainHandler); 
+    qDebug("Ut_SatAppMainHandler::testProfileState <");
+}
+
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/satui/satapp/tsrc/ut_satapp/ut_satapp.pro	Mon May 03 13:01:45 2010 +0300
@@ -0,0 +1,83 @@
+#
+# Copyright (c) 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: unit test pro file for satapp.
+#
+
+TEMPLATE = app
+TARGET = utsatapp
+DEPENDPATH += .
+INCLUDEPATH += .
+CONFIG += hb
+CONFIG += qtestlib
+HEADERS += $$PUBLIC_HEADERS
+MOC_DIR = moc_utsatapp
+
+symbian {
+    TARGET.CAPABILITY = CAP_GENERAL_DLL
+    INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE \
+                   .inc \
+                    ../../../../inc \
+                    .MOC_DIR 
+
+    LIBS += -lSatClient.dll \
+            -lSatInternalClient.dll \
+            -legul.dll \
+            -lfbscli.dll \
+            -lcentralrepository.dll \
+            -lCenRepNotifHandler.dll \
+            -lCdlEngine.dll \
+            -lFlogger.dll \
+            -lbafl.dll \
+            -lprofileeng.dll 
+
+    HEADERS += ../../inc \
+               ../../inc/msatuiactionimplementer.h \
+               ../../inc/satappcommonconstant.h \
+               ../../inc/tflogger.h \
+               ../../inc/satappmainhandler.h \
+               ../../inc/csatuiobserver.h\
+               ../../inc/satappcommandhandler.h \
+               ../../inc/satappeventprovider.h \
+               ../../inc/satappuiprovider.h \
+               ../../inc/satappview.h \
+               ../../inc/satappgetinkeynote.h \
+               ../../inc/csatuiobserver.h \
+               ../../inc/csatuiiconhandler.h \
+               ../../inc/satappplaytoneprovider.h \
+               inc/dummyeventprovider.h \
+               inc/dummyplaytoneprovider.h \
+               inc/ut_satappmainhandler.h \
+               inc/ut_csatuiobserver.h \
+               inc/ut_satappeventhandler.h \
+               inc/ut_playtoneprovider.h 
+
+
+    SOURCES +=  ../../src/csatuiobserver.cpp \
+               ../../src/satappmainhandler.cpp \
+               ../../src/satappcommandhandler.cpp \
+               ../../src/satappuiprovider.cpp \
+               ../../src/satappeventprovider.cpp \
+               ../../src/satappview.cpp \
+               ../../src/satappgetinkeynote.cpp \
+               ../../src/csatuiiconhandler.cpp\
+               ../../src/satappplaytoneprovider.cpp\
+               src/main.cpp \
+               src/dummyeventprovider.cpp \
+               src/dummyplaytoneprovider.cpp \
+               src/ut_satappmainhandler.cpp \
+               src/ut_csatuiobserver.cpp \
+               src/ut_satappeventhandler.cpp \
+               src/ut_playtoneprovider.cpp 
+
+}
--- a/telutils/dialpad/dialpad.qrc	Fri Apr 16 15:31:58 2010 +0300
+++ b/telutils/dialpad/dialpad.qrc	Mon May 03 13:01:45 2010 +0300
@@ -31,5 +31,6 @@
         <file>themes/icons/hbdefault/scalable/qtg_fr_input_bg_c.svg</file>
         <file>themes/icons/hbdefault/scalable/qtg_fr_input_bg_t.svg</file>
         <file>themes/icons/hbdefault/scalable/qtg_mono_backspace2.svg</file>
+        <file alias="dialpad_color.css">resources/dialpad_color.css</file>
     </qresource>
 </RCC>
--- a/telutils/dialpad/inc/dialpadbluetootheventfilter.h	Fri Apr 16 15:31:58 2010 +0300
+++ b/telutils/dialpad/inc/dialpadbluetootheventfilter.h	Mon May 03 13:01:45 2010 +0300
@@ -18,7 +18,7 @@
 #ifndef DIALPADBLUETOOTHEVENTFILTER_H
 #define DIALPADBLUETOOTHEVENTFILTER_H
 
-#include <qobject>
+#include <QObject>
 
 class QTimer;
 class Dialpad;
--- a/telutils/dialpad/inc/dialpadbutton.h	Fri Apr 16 15:31:58 2010 +0300
+++ b/telutils/dialpad/inc/dialpadbutton.h	Mon May 03 13:01:45 2010 +0300
@@ -24,13 +24,30 @@
 {
     Q_OBJECT
 
+    Q_PROPERTY(DialpadButtonType buttonType READ buttonType WRITE setButtonType)
+    Q_ENUMS(DialpadButtonType)
+
+public:
+    enum DialpadButtonType {
+        NumericButton = 0x1,
+        FunctionButton = 0x2,
+        CallButton = 0x3
+    };
+
 public:
     explicit DialpadButton(QGraphicsItem *parent = 0 );
     virtual ~DialpadButton( );
 
+    DialpadButtonType buttonType() const;
+    void setButtonType(DialpadButtonType type);
+
 protected:
     void changeEvent(QEvent *event);
     bool sceneEvent(QEvent *event);
+    void polish(HbStyleParameters& params);
+
+private:
+    DialpadButtonType mButtonType;
 };
 
 #endif // DIALPADBUTTON_H
--- a/telutils/dialpad/inc/dialpadsymbianwrapper.h	Fri Apr 16 15:31:58 2010 +0300
+++ b/telutils/dialpad/inc/dialpadsymbianwrapper.h	Mon May 03 13:01:45 2010 +0300
@@ -18,8 +18,8 @@
 #ifndef DIALPADSYMBIANWRAPPER_H
 #define DIALPADSYMBIANWRAPPER_H
 
-#include <qobject>
-#include <qstring>
+#include <QObject>
+#include <QString>
 #include <qglobal.h>
 
 class DialpadSymbianWrapperPrivate;
--- a/telutils/dialpad/inc/dialpadsymbianwrapper_p.h	Fri Apr 16 15:31:58 2010 +0300
+++ b/telutils/dialpad/inc/dialpadsymbianwrapper_p.h	Mon May 03 13:01:45 2010 +0300
@@ -18,7 +18,7 @@
 #ifndef DIALPADSYMBIANWRAPPERPRIVATE_H
 #define DIALPADSYMBIANWRAPPERPRIVATE_H
 
-#include <qstring>
+#include <QString>
 #include <qglobal.h>
 
 class CVoiceMailbox;
--- a/telutils/dialpad/inc/dialpadsymbianwrapper_p_stub.h	Fri Apr 16 15:31:58 2010 +0300
+++ b/telutils/dialpad/inc/dialpadsymbianwrapper_p_stub.h	Mon May 03 13:01:45 2010 +0300
@@ -18,7 +18,7 @@
 #ifndef DIALPADSYMBIANWRAPPERPRIVATE_H
 #define DIALPADSYMBIANWRAPPERPRIVATE_H
 
-#include <qstring>
+#include <QString>
 #include <qglobal.h>
 
 class DialpadSymbianWrapper;
--- a/telutils/dialpad/inc/dialpadvoicemailboxeventfilter.h	Fri Apr 16 15:31:58 2010 +0300
+++ b/telutils/dialpad/inc/dialpadvoicemailboxeventfilter.h	Mon May 03 13:01:45 2010 +0300
@@ -18,7 +18,7 @@
 #ifndef DIALPADVOICEMAILBOXEVENTFILTER_H
 #define DIALPADVOICEMAILBOXEVENTFILTER_H
 
-#include <qobject>
+#include <QObject>
 
 class QTimer;
 class Dialpad;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/resources/dialpad_color.css	Mon May 03 13:01:45 2010 +0300
@@ -0,0 +1,55 @@
+
+
+/* numeric button normal state */
+DialpadButton[state = "normal"][buttonType = "1"]::icon{
+    color: var(qtc_input_button_normal);
+}
+
+DialpadButton[state = "normal"][buttonType = "1"]::text{
+	  color: var(qtc_input_button_normal);
+}
+
+DialpadButton[state = "normal"][buttonType = "1"]::additional-text
+{
+    color: var(qtc_input_button_normal);
+}
+
+/* numeric button pressed state */
+DialpadButton[state = "pressed"][buttonType = "1"]::icon{
+    color: var(qtc_input_button_pressed);
+}
+
+DialpadButton[state = "pressed"][buttonType = "1"]::text{
+	  color: var(qtc_input_button_pressed);
+}
+
+DialpadButton[state = "pressed"][buttonType = "1"]::additional-text
+{
+    color: var(qtc_input_button_pressed);
+}
+
+/* backspace */
+DialpadButton[state = "normal"][buttonType = "2"]::icon{
+    color: var(qtc_input_function_normal);
+}
+
+DialpadButton[state = "pressed"][buttonType = "2"]::icon{
+    color: var(qtc_input_function_pressed);
+}
+
+DialpadButton[buttonType = "2"]::icon[!enabled]{
+    color: var(qtc_input_function_disabled);
+}
+
+/* call button */
+DialpadButton[state = "normal"][buttonType = "3"]::icon{
+    color: var(qtc_callhandling_answer_normal);
+}
+
+DialpadButton[state = "pressed"][buttonType = "3"]::icon{
+    color: var(qtc_callhandling_answer_pressed);
+}
+
+DialpadButton[buttonType = "3"]::icon[!enabled]{
+    color: var(qtc_input_function_disabled);
+}
--- a/telutils/dialpad/src/dialpad.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/telutils/dialpad/src/dialpad.cpp	Mon May 03 13:01:45 2010 +0300
@@ -131,6 +131,7 @@
 
     // custom button style
     HbStyleLoader::registerFilePath(":/dialpad.css");
+    HbStyleLoader::registerFilePath(":/dialpad_color.css");
     HbStyleLoader::registerFilePath(":/dialpad.dialpadbutton.widgetml");
 }
 
--- a/telutils/dialpad/src/dialpadbluetootheventfilter.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/telutils/dialpad/src/dialpadbluetootheventfilter.cpp	Mon May 03 13:01:45 2010 +0300
@@ -14,8 +14,8 @@
 * Description: 
 *
 */
-#include <qtimer>
-#include <qkeyevent>
+#include <QTimer>
+#include <QKeyEvent>
 #include <hblineedit.h>
 #include "dialpadbluetootheventfilter.h"
 #include "dialpad.h"
--- a/telutils/dialpad/src/dialpadbutton.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/telutils/dialpad/src/dialpadbutton.cpp	Mon May 03 13:01:45 2010 +0300
@@ -24,7 +24,7 @@
 #include "dialpadbutton.h"
 
 DialpadButton::DialpadButton(QGraphicsItem *parent)
-    : HbPushButton(parent)
+    : HbPushButton(parent), mButtonType(NumericButton)
 {
 }
 
@@ -32,6 +32,16 @@
 {
 }
 
+DialpadButton::DialpadButtonType DialpadButton::buttonType() const
+{
+    return mButtonType;
+}
+
+void DialpadButton::setButtonType(DialpadButtonType type)
+{
+    mButtonType = type;
+}
+
 void DialpadButton::changeEvent(QEvent *event)
 {
     if (event->type() == HbEvent::ThemeChanged) {
@@ -60,4 +70,10 @@
     return result;
 }
 
+void DialpadButton::polish(HbStyleParameters& params)
+{
+    // HbPushButton::polish() prevents layouting
+    // text and additional-text horizontally.
+    HbAbstractButton::polish( params );
+}
 
--- a/telutils/dialpad/src/dialpadbuttonstyle.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/telutils/dialpad/src/dialpadbuttonstyle.cpp	Mon May 03 13:01:45 2010 +0300
@@ -19,9 +19,6 @@
 #include <hbstyleoptionpushbutton.h>
 #include <hbframeitem.h>
 #include <hbframedrawer.h>
-#include <hbiconitem.h>
-#include <hbtextitem.h>
-#include <hbcolorscheme.h>
 #include "dialpadbuttonstyle.h"
 
 DialpadButtonStyle::DialpadButtonStyle()
@@ -63,7 +60,7 @@
                 state = QIcon::On;
 
             if (mode == QIcon::Disabled && state == QIcon::Off) {
-                frameGraphicsName = "qtg_fr_btn_disabled";
+                frameGraphicsName = "qtg_fr_input_btn_function_disabled";
             } else if (mode == QIcon::Normal && state == QIcon::On) {
                 if (mButtonStyle==CallButtonStyle) {
                     frameGraphicsName = "qtg_fr_btn_green_pressed";
@@ -99,54 +96,6 @@
         break;
     }
 
-    case P_PushButton_icon: {
-        HbStyle::updatePrimitive(item,primitive,option);
-
-        // override color (todo: via css, when supported by fw)
-        const HbStyleOptionPushButton *opt =
-            qstyleoption_cast<const HbStyleOptionPushButton *>(option);
-        QIcon::Mode mode = QIcon::Disabled;
-        QIcon::State state = QIcon::Off;
-        if (opt->state & QStyle::State_Enabled)
-            mode = QIcon::Normal;
-        if (opt->state & QStyle::State_On)
-            state = QIcon::On;
-
-        if (mButtonStyle==CallButtonStyle &&
-            mode == QIcon::Normal) {
-            if (state==QIcon::On) {
-                QColor color(HbColorScheme::color("qtc_callhandling_answer_pressed"));
-                setIconColor(item,color);
-            } else {
-                QColor color(HbColorScheme::color("qtc_callhandling_answer_normal"));
-                setIconColor(item,color);
-            }
-        } else if (mButtonStyle==NormalButtonStyle) {
-            QColor color;
-            color = HbColorScheme::color("qtc_input_button_normal");
-            setIconColor(item,color);
-        } else { // function button
-            QColor color;
-            color = HbColorScheme::color("qtc_input_function_normal");
-            setIconColor(item,color);
-        }
-        break;
-    }
-
-    case P_PushButton_text: {
-        HbStyle::updatePrimitive(item,primitive,option);
-        // override color (todo: via css, when supported by fw)
-        setTextColor(item);
-        break;
-    }
-
-    case P_PushButton_additionaltext: {
-        HbStyle::updatePrimitive(item,primitive,option);
-        // override color (todo: via css, when supported by fw)
-        setTextColor(item);
-        break;
-    }
-
     default:
         HbStyle::updatePrimitive(item,primitive,option);
         break;
@@ -157,32 +106,3 @@
 {
     mButtonStyle = style;
 }
-
-void DialpadButtonStyle::setTextColor(QGraphicsItem *item) const
-{
-    HbTextItem *textPrim = qgraphicsitem_cast<HbTextItem*>(item);
-    if (textPrim) {
-        QColor color;
-        color = HbColorScheme::color("qtc_input_button_normal");
-        if (color.isValid()) {
-            textPrim->setTextColor(color);
-        } else {
-            textPrim->setTextColor(Qt::black);
-        }
-    }
-}
-
-void DialpadButtonStyle::setIconColor(
-    QGraphicsItem *item,
-    const QColor &color ) const
-{
-    HbIconItem *iconItem = qgraphicsitem_cast<HbIconItem*>(item);
-
-    if (iconItem) {
-        if (color.isValid()) {
-            iconItem->setColor(color);
-        } else {
-            iconItem->setColor(Qt::black);
-        }
-    }
-}
--- a/telutils/dialpad/src/dialpadinputfield.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/telutils/dialpad/src/dialpadinputfield.cpp	Mon May 03 13:01:45 2010 +0300
@@ -51,6 +51,7 @@
     mFunctionButtonStyle->setButtonStyle(
         DialpadButtonStyle::FunctionButtonStyle);
     mBackspace->setStyle(mFunctionButtonStyle);
+    mBackspace->setButtonType(DialpadButton::FunctionButton); // for css
     mBackspace->setFocusPolicy(Qt::NoFocus);
     mBackspace->setFlag(QGraphicsItem::ItemIsFocusable,false);
     mBackspace->setIcon(HbIcon(HbBackspaceIcon));
--- a/telutils/dialpad/src/dialpadkeypad.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/telutils/dialpad/src/dialpadkeypad.cpp	Mon May 03 13:01:45 2010 +0300
@@ -93,8 +93,10 @@
             button->setStyle(mCallButtonStyle);
             HbIcon callIcon(handsetIcon); // todo correct icon
             button->setIcon(callIcon);
+            button->setButtonType(DialpadButton::CallButton); // for css
         } else {
             button->setStyle(mNormalButtonStyle);
+            button->setButtonType(DialpadButton::NumericButton); // for css
         }
 
         if (keyCode==Qt::Key_1) {
--- a/telutils/dialpad/src/dialpadsymbianwrapper.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/telutils/dialpad/src/dialpadsymbianwrapper.cpp	Mon May 03 13:01:45 2010 +0300
@@ -32,13 +32,13 @@
 
 int DialpadSymbianWrapper::getMailboxNumber(QString &vmbxNumber)
 {
-    Q_D(DialpadSymbianWrapper);
+    //Q_D(DialpadSymbianWrapper);
     return d_ptr->getMailboxNumber(vmbxNumber);
 }
 
 int DialpadSymbianWrapper::defineMailboxNumber(QString &vmbxNumber)
 {
-    Q_D(DialpadSymbianWrapper);
+    //Q_D(DialpadSymbianWrapper);
     return d_ptr->defineMailboxNumber(vmbxNumber);
 }
 
--- a/telutils/dialpad/src/dialpadvoicemailboxeventfilter.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/telutils/dialpad/src/dialpadvoicemailboxeventfilter.cpp	Mon May 03 13:01:45 2010 +0300
@@ -14,8 +14,8 @@
 * Description: 
 *
 */
-#include <qtimer>
-#include <qkeyevent>
+#include <QTimer>
+#include <QKeyEvent>
 #include <hblineedit.h>
 #include <hbstringutil.h>
 #include "dialpadvoicemailboxeventfilter.h"
--- a/telutils/dialpad/tsrc/dialpadtest/dialpadtestview.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/telutils/dialpad/tsrc/dialpadtest/dialpadtestview.cpp	Mon May 03 13:01:45 2010 +0300
@@ -101,7 +101,10 @@
 
 void DialpadTestView::setDialpadPosition()
 {
-    QRectF screenRect = mMainWindow.layoutRect();
+    // workaround to tsw error JMKN-83NAPU (fix coming in MCL wk14)
+    // QRectF screenRect(mMainWindow.layoutRect());
+    QRectF screenRect = (mMainWindow.orientation() == Qt::Horizontal) ?
+                        QRectF(0,0,640,360) : QRectF(0,0,360,640);
 
     if (mMainWindow.orientation() == Qt::Horizontal) {
         // dialpad takes half of the screen
--- a/telutils/dialpad/tsrc/unit/unit.pro	Fri Apr 16 15:31:58 2010 +0300
+++ b/telutils/dialpad/tsrc/unit/unit.pro	Mon May 03 13:01:45 2010 +0300
@@ -17,6 +17,7 @@
 
 TEMPLATE = subdirs
 SUBDIRS += ut_dialpadbuttonstyle
+SUBDIRS += ut_dialpadbutton
 SUBDIRS += ut_dialpadmultitaphandler
 SUBDIRS += ut_dialpadvoicemailboxeventfilter
 SUBDIRS += ut_dialpadbluetootheventfilter
--- a/telutils/dialpad/tsrc/unit/ut_dialpadbluetootheventfilter/ut_dialpadbluetootheventfilter.pro	Fri Apr 16 15:31:58 2010 +0300
+++ b/telutils/dialpad/tsrc/unit/ut_dialpadbluetootheventfilter/ut_dialpadbluetootheventfilter.pro	Mon May 03 13:01:45 2010 +0300
@@ -17,7 +17,7 @@
 
 TEMPLATE = app
 TARGET =
-INCLUDEPATH += . ../../../inc  ../shared
+INCLUDEPATH += . ../../../inc ../../../../../inc  ../shared
 
 CONFIG += hb qtestlib
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/tsrc/unit/ut_dialpadbutton/ut_dialpadbutton.cpp	Mon May 03 13:01:45 2010 +0300
@@ -0,0 +1,58 @@
+/*!
+* 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:
+*
+*/
+
+#include <QtGui>
+#include <QtTest/QtTest>
+
+#include <hbapplication.h>
+
+#include "dialpadtest.h"
+#include "dialpadbutton.h"
+
+class ut_DialpadButton : public QObject
+{
+    Q_OBJECT
+
+private slots:
+    void initTestCase();
+    void cleanupTestCase();
+
+    void testButtonType();
+
+private:
+    DialpadButton *mButton;
+};
+
+void ut_DialpadButton::initTestCase()
+{
+    mButton = new DialpadButton();
+}
+
+void ut_DialpadButton::cleanupTestCase()
+{
+    delete mButton;
+}
+
+void ut_DialpadButton::testButtonType()
+{
+    QVERIFY(mButton->buttonType()==DialpadButton::NumericButton);
+    mButton->setButtonType(DialpadButton::FunctionButton);
+    QVERIFY(mButton->buttonType()==DialpadButton::FunctionButton);
+}
+
+DIALPAD_TEST_MAIN(ut_DialpadButton)
+#include "ut_dialpadbutton.moc"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/tsrc/unit/ut_dialpadbutton/ut_dialpadbutton.pro	Mon May 03 13:01:45 2010 +0300
@@ -0,0 +1,34 @@
+#
+# 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:
+#
+#
+
+TEMPLATE = app
+TARGET = 
+DEPENDPATH += . ../../../src
+INCLUDEPATH += . ../../../inc ../shared
+CONFIG += hb qtestlib
+
+symbian {
+    INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
+} else:win32 {
+    DESTDIR = ./
+}
+
+HEADERS += ../../../inc/dialpadbutton.h
+
+SOURCES += ut_dialpadbutton.cpp \
+           ../../../src/dialpadbutton.cpp
+
--- a/telutils/dialpad/tsrc/unit/ut_dialpadbuttonstyle/ut_dialpadbuttonstyle.cpp	Fri Apr 16 15:31:58 2010 +0300
+++ b/telutils/dialpad/tsrc/unit/ut_dialpadbuttonstyle/ut_dialpadbuttonstyle.cpp	Mon May 03 13:01:45 2010 +0300
@@ -39,9 +39,6 @@
     void cleanupTestCase();
 
     void testPushButtonFrame();
-    void testTextColor();
-    void testAdditionalTextColor();
-    void testPushButtonIcon();
 
 private:
     DialpadButtonStyle *mStyle;
@@ -98,7 +95,7 @@
     // Disabled
     option.state &= ~QStyle::State_Enabled;
     mStyle->updatePrimitive(item,HbStyle::P_PushButton_background,&option);
-    QVERIFY(item->frameDrawer().frameGraphicsName()=="qtg_fr_btn_disabled");
+    QVERIFY(item->frameDrawer().frameGraphicsName()=="qtg_fr_input_btn_function_disabled");
 
     // Selected
     option.state |= QStyle::State_Selected;
@@ -113,72 +110,5 @@
     delete item2;
 }
 
-void ut_DialpadButtonStyle::testTextColor()
-{
-    HbTextItem* item = new HbTextItem();
-    HbStyleOptionPushButton option;
-    option.backgroundFrameDrawer = 0;
-    QColor color;
-    color = HbColorScheme::color("qtc_input_button_normal");
-
-    // Enabled ON
-    option.state |= QStyle::State_On;
-    option.state |= QStyle::State_Enabled;
-
-    mStyle->updatePrimitive(item,HbStyle::P_PushButton_text,&option);
-
-    QVERIFY(item->textColor()==color);
-}
-
-void ut_DialpadButtonStyle::testAdditionalTextColor()
-{
-    HbTextItem* item = new HbTextItem();
-    HbStyleOptionPushButton option;
-    option.backgroundFrameDrawer = 0;
-    QColor color;
-    color = HbColorScheme::color("qtc_input_button_normal");
-
-    // Enabled ON
-    option.state |= QStyle::State_On;
-    option.state |= QStyle::State_Enabled;
-
-    mStyle->updatePrimitive(item,HbStyle::P_PushButton_additionaltext,&option);
-
-    QVERIFY(item->textColor()==color);
-}
-
-void ut_DialpadButtonStyle::testPushButtonIcon()
-{
-    HbIconItem* item = new HbIconItem();
-    HbStyleOptionPushButton option;
-    QColor funcColor(HbColorScheme::color("qtc_input_function_normal"));
-    QColor normColor(HbColorScheme::color("qtc_input_button_normal"));
-    QColor answerNormal(HbColorScheme::color("qtc_callhandling_answer_normal"));
-    QColor answerPressed(HbColorScheme::color("qtc_callhandling_answer_pressed"));
-
-    // Normal
-    option.state |= QStyle::State_Enabled;
-    option.state |= QStyle::State_Off;
-
-    mStyle->setButtonStyle(DialpadButtonStyle::NormalButtonStyle);
-    mStyle->updatePrimitive(item,HbStyle::P_PushButton_icon,&option);
-    QVERIFY(item->color()==normColor);
-
-    mStyle->setButtonStyle(DialpadButtonStyle::FunctionButtonStyle);
-    mStyle->updatePrimitive(item,HbStyle::P_PushButton_icon,&option);
-    QVERIFY(item->color()==funcColor);
-
-    mStyle->setButtonStyle(DialpadButtonStyle::CallButtonStyle);
-    mStyle->updatePrimitive(item,HbStyle::P_PushButton_icon,&option);
-    QVERIFY(item->color()==answerNormal);
-
-    // Pressed
-    option.state |= QStyle::State_On;
-    option.state &= ~QStyle::State_Off;
-    mStyle->setButtonStyle(DialpadButtonStyle::CallButtonStyle);
-    mStyle->updatePrimitive(item,HbStyle::P_PushButton_icon,&option);
-    QVERIFY(item->color()==answerPressed);
-}
-
 DIALPAD_TEST_MAIN(ut_DialpadButtonStyle)
 #include "ut_dialpadbuttonstyle.moc"
--- a/telutils/dialpad/tsrc/unit/ut_dialpadvoicemailboxeventfilter/ut_dialpadvoicemailboxeventfilter.pro	Fri Apr 16 15:31:58 2010 +0300
+++ b/telutils/dialpad/tsrc/unit/ut_dialpadvoicemailboxeventfilter/ut_dialpadvoicemailboxeventfilter.pro	Mon May 03 13:01:45 2010 +0300
@@ -17,7 +17,7 @@
 
 TEMPLATE = app
 TARGET =
-INCLUDEPATH += . ../../../inc  ../shared
+INCLUDEPATH += . ../../../inc ../../../../../inc  ../shared
 
 CONFIG += hb qtestlib
 
--- a/vmbx/vmbxengine/inc/vmbxsatrefreshobserver.h	Fri Apr 16 15:31:58 2010 +0300
+++ b/vmbx/vmbxengine/inc/vmbxsatrefreshobserver.h	Mon May 03 13:01:45 2010 +0300
@@ -22,8 +22,8 @@
 
 // INCLUDES
 #include <e32base.h>
-#include <RSatSession.h>
-#include <RSatRefresh.h>
+#include <rsatsession.h>
+#include <rsatrefresh.h>
 #include <msatrefreshobserver.h>
 #include "mvmbxsatrefreshobserver.h"